04/05/2015
Экспорт динамического блока из текущего чертежа как вариативного элемента
Динамические блоки из чертежа можно сохранять в новых чертежах как вариативные элементы. Это помогает создать архив динамических блоков для их повторного использования по мере необходимости. Новый чертеж может быть вставлен в другой чертеж, чтобы получить в нём динамический блок. Средствами интерфейса AutoCAD создать такой вариативный элемент можно при помощи команды ПБЛОК (_WBLOCK), выбрав один из динамических блоков, доступных из списка блоков. Тоже самое можно сделать и при помощи кода, указанного ниже:
Код - C++: [Выделить]
- // Записываем динамический блок как вариативный элемент
- Acad::ErrorStatus es;
- AcApDocument *pActiveDoc = acDocManager->mdiActiveDocument();
- AcDbDatabase *pCurDb = pActiveDoc->database();
- AcDbBlockTable* pCurentDwgBlockTable;
- es = pCurDb->getBlockTable(pCurentDwgBlockTable, kForRead);
- if ( es == eOk)
- {
- AcDbBlockTableRecord* pRecord;
- // Подразумевается что динамический блок "Test"
- // есть в текущем чертеже
- es = pCurentDwgBlockTable->getAt(
- ACRX_T("Test" ),
- pRecord,
- kForRead, false );
- if (es != eOk)
- {
- pCurentDwgBlockTable->close();
- return ;
- }
- AcDbObjectId btrId = pRecord->objectId();
- pRecord->close();
- pCurentDwgBlockTable->close();
- // Создаём целевую базу
- AcDbDatabase *pNewDb = NULL;
- es = pCurDb->wblock(pNewDb, btrId);
- if (es == Acad::eOk)
- {
- es = pNewDb->saveAs(
- _T("D://Temp//TestBlock.dwg" ));
- delete pNewDb;
- }
- }
Автор перевода: Александр Ривилис
Обсуждение: http://adn-cis.org/forum/index.php?topic=2690
Опубликовано 04.05.2015