ADN Open CIS
Сообщество программистов Autodesk в СНГ

02/08/2013

Как преобразовать AcGeCircArc3d в AcDbArc и наоборот?

Следующий код показывает как это сделать:

Код - C++: [Выделить]
  1. void convertArc2Arc( AcGeCircArc3d*pGeArc, AcDbArc*&pDbArc )
  2. {
  3.  AcGePoint3d center = pGeArc->center();
  4.  AcGeVector3d normal = pGeArc->normal();
  5.  AcGeVector3d refVec = pGeArc->refVec();
  6.  AcGePlane plane = AcGePlane(center, normal);
  7.  double ang = refVec.angleOnPlane(plane);
  8.  pDbArc = new AcDbArc(center, normal,
  9.   pGeArc->radius(),pGeArc->startAng() + ang,
  10.   pGeArc->endAng() + ang );
  11. }
  12.  
  13. void convertArc2Arc( AcDbArc*pDbArc, AcGeCircArc3d*&pGeArc)
  14. {
  15.  pGeArc = new AcGeCircArc3d(
  16.  pDbArc->center(),
  17.  pDbArc->normal(),
  18.  pDbArc->normal().perpVector(),
  19.  pDbArc->radius(),
  20.  pDbArc->startAngle(),
  21.  pDbArc->endAngle());
  22. }

 

Источник: http://adndevblog.typepad.com/autocad/2012/12/how-to-convert-an-acgecircarc3d-to-an-acdbarc-and-vice-versa.html

Обсуждение: http://adn-cis.org/forum/index.php?topic=142.0

Опубликовано 02.08.2013
Отредактировано 04.08.2013 в 17:28:17