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

20/12/2013

Получение информации из прокси-примитивов

Вы можете воспользоваться классом “AcDbProxyEntity” для получения оригинального имени класса, оригинального dxf-имени и числа ссылок на этот примитив в файле чертежа.

Ниже код, который получает “originalClassName” и “originalDxfName” прокси-примитива.

Код - C++: [Выделить]
  1. void GetProxyInfo()
  2. {
  3.   int nReturn ;
  4.   ads_name name;
  5.   ads_point pt;
  6.   nReturn = acedEntSel(_T("\nВыберите прокси-примитив: "), name, pt);
  7.   if(nReturn != RTNORM)
  8.     return;
  9.   // Получаем ObjectId примитива
  10.   AcDbObjectId Id;
  11.   if(acdbGetObjectId(Id, name) != Acad::eOk)
  12.     return;
  13.   // Открываем выбранный примитив
  14.   AcDbObject *pObject = NULL;
  15.   if(acdbOpenAcDbObject(pObject, Id, AcDb::kForRead) != Acad::eOk)
  16.   {
  17.     return;
  18.   }
  19.   AcDbProxyEntity *pProxy = AcDbProxyEntity::cast(pObject);
  20.   if(pProxy != NULL)
  21.   {
  22.     acutPrintf(_T("\nОригинальное имя класса : %s"), pProxy->originalClassName());
  23.     acutPrintf(_T("\nDXF имя : %s"), pProxy->originalDxfName());
  24.     acutPrintf(_T("\nОписание : %s"), pProxy->applicationDescription());
  25.   }
  26.   pObject->close();
  27. }

Источник: http://adndevblog.typepad.com/autocad/2012/08/getting-proxy-entitys-information.html

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

Опубликовано 20.12.2013
Отредактировано 21.12.2013 в 11:58:56