Создание BMP-файла из выбранных примитивов
Если вы хотите создать/сохранить BMP-файл из выбранных примитивов вы можете воспользоваться методом Export() класса AcadDocument из состава ActiveX Automation API AutoCAD’а
Следующий пример на MS VC++ создает BMP-файл из набора примитивов.
- // Важно: установит флажок “Use MFC” когда создаёте
- // ObjectARX проект при помощи ObjectARX Wizard
- void fCreateBMP()
- {
- try
- {
- IAcadApplicationPtr pApp;
- IAcadDocumentPtr pAtvDoc;
- IAcadSelectionSetPtr pSS;
- pApp = acedGetAcadWinApp()->GetIDispatch(TRUE);
- //Получаем активный документ и набор примитивов
- pApp->get_ActiveDocument(&pAtvDoc);
- pSS = pAtvDoc->get_ActiveSelectionSet(&pSS);
- // Выбираем на экране без фильтров
- pSS->SelectOnScreen();
- if(S_OK == pAtvDoc->Export(_bstr_t("c:\\test"),
- _bstr_t("BMP"),pSS))
- acutPrintf(L"\nBMP-файл успешно создан.");
- }
- catch (_com_error &es)
- {
- acutPrintf(L"\nошибка %s",
- (char *) es.Description());
- }
- }
Отметим, что 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
Отредактировано 08.06.2013 в 02:20:59