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

16/09/2015

Как удалить профиль вращения после создания тела вращения

Иногда я получаю запросы от партнеров ADN о том что:

“После использования AcDb3dSolid::createRevolvedSolid() образующая кривая вращения видна в твердом теле.”

Профиль используемый для вращения виден в твёрдом теле как показано на картинке.

 

Он может быть удалён при помощи метода cleanBody класса AcDb3dSolid, который удаляет все грани и ребра, которые не нужны для поддержки топологии твердого тела:

Код - C++: [Выделить]
  1. void createSolid()
  2. {
  3.   double PI_VALUE = 4.0 * atan(1.0);
  4.   AcGePoint2dArray pointArray;
  5.   pointArray.append(AcGePoint2d(10.0, 0.0));
  6.   pointArray.append(AcGePoint2d(15.0, 0.0));
  7.   pointArray.append(AcGePoint2d(16.0, 2.0));
  8.   pointArray.append(AcGePoint2d(16.0, 10.0));
  9.   pointArray.append(AcGePoint2d(10.0, 10.0));
  10.   pointArray.append(AcGePoint2d(10.0, 0.0));
  11.  
  12.   AcDbPolyline* pPline = new AcDbPolyline();
  13.  
  14.   for (int i = 0; i < pointArray.length(); i++)
  15.   {
  16.     pPline->addVertexAt(i, pointArray[i]);
  17.   }
  18.  
  19.   AcDbRevolveOptions revolveOptions;
  20.  
  21.   AcDb3dSolid* pSolid = new AcDb3dSolid();
  22.  
  23.   if (eOkVerify(pSolid->createRevolvedSolid(pPline,
  24.     AcGePoint3d::kOrigin,
  25.     AcGeVector3d::kYAxis,
  26.     2.0 * PI_VALUE,
  27.     0.0, revolveOptions)))
  28.   {
  29.  
  30.     /* Удаляем все ребра и грани, которые не нужны для поддержки
  31.     топологии этого твердого тела. */
  32.  
  33.     if(eOkVerify(pSolid->cleanBody()))
  34.     {
  35.       AcDbObjectId objId;
  36.       AcDbDatabase* pcurDb = acdbHostApplicationServices()->workingDatabase();
  37.       postToDatabase(pcurDb, pSolid, objId);
  38.     }
  39.   }
  40.  
  41.   delete pSolid;
  42.  
  43.   pSolid = NULL;
  44.  
  45.   return;
  46.  
  47. }

 

Источник: http://adndevblog.typepad.com/autocad/2015/07/how-to-remove-the-profile-to-revolve-after-forming-the-revolved-solid.html

Автор перевода: Александр Ривилис

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

Опубликовано 16.09.2015