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

30/05/2013

Создание BMP-файла из выбранных примитивов

Если вы хотите создать/сохранить BMP-файл из выбранных примитивов вы можете воспользоваться методом Export() класса AcadDocument из состава ActiveX Automation API AutoCAD’а

Следующий пример на MS VC++ создает BMP-файл из набора примитивов.

Код - C++: [Выделить]
  1. // Важно: установит флажок “Use MFC” когда создаёте
  2. // ObjectARX проект при помощи ObjectARX Wizard
  3. void fCreateBMP()
  4. {
  5.   try
  6.   {
  7.   IAcadApplicationPtr pApp;
  8.   IAcadDocumentPtr pAtvDoc;
  9.   IAcadSelectionSetPtr pSS;
  10.   pApp = acedGetAcadWinApp()->GetIDispatch(TRUE);
  11.   //Получаем активный документ и набор примитивов
  12.   pApp->get_ActiveDocument(&pAtvDoc);
  13.   pSS = pAtvDoc->get_ActiveSelectionSet(&pSS);
  14.   // Выбираем на экране без фильтров
  15.   pSS->SelectOnScreen();
  16.   if(S_OK == pAtvDoc->Export(_bstr_t("c:\\test"),
  17.    _bstr_t("BMP"),pSS))
  18.    acutPrintf(L"\nBMP-файл успешно создан.");
  19.   }
  20.   catch (_com_error &es)
  21.   {
  22.    acutPrintf(L"\nошибка %s",
  23.            (char *) es.Description());
  24.   }
  25. }

Отметим, что BMP-файл генерируется на основе видимой на экране области документа и его размер зависит от размеров окна документа.

Если вы хотите управлять размером BMP-файла, тогда перед его генерацией установите высоту и ширину окна, используя свойства Height() and Width() класса IAcadDocument . Перед изменением размеров окна убедитесь, что windowState() установлен в нормальный размер. Еще можно программно зумировать область после выбора пользователем примитивов на экране.

Источник: http://adndevblog.typepad.com/autocad/2013/02/create-bitmap-of-selected-entities.html

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

Опубликовано 30.05.2013
Отредактировано 08.06.2013 в 02:20:59