Тема: Каким образом скопировать AcDbTable из одного рисунка в другой?
Каким образом скопировать AcDbTable из одного рисунка в другой (как при копировании Ctrl+C и Ctrl+V )
Информационный портал для профессионалов в области САПР
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Форумы CADUser → Программирование → ObjectARX → Каким образом скопировать AcDbTable из одного рисунка в другой?
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Каким образом скопировать AcDbTable из одного рисунка в другой (как при копировании Ctrl+C и Ctrl+V )
> Dima
Воспользуйся AcDbDatabase::wblock(...)
Посмотри пример использования в ObjectARX SDK Samples\database\ARXDBG
// id - id таблицы (AcDbTable)в базе sourceDb AcDbObjectIdArray arrId; arrId.append( id ); AcDbDatabase* pTempDB; AcDbObjectId idBlock; es = sourceDb.wblock( pTempDB, arrId, m_InsertPoint ); if( es == Acad::eOk ) es = acdbCurDwg()->insert(AcGeMatrix3d::kIdentity, pTempDB ); delete pTempDB; if( es != Acad::eOk ) return;
после чего пробую выделить ее, AutoCad падает :(
что я не так делаю??
и как получить id скопированной таблицы??
> Dima
А почему не копировать напрямую в текующую базу, минуя временную? Указываешь нужный block_table_record в новой базе и копируешь. Я обычно делаю это через AcDbDatabase::wblockCloneObjects().
> Dima
Не поленись, скомпилируй проект ARXDBG, загрузи его в AutoCAD, затем запусти команду _TestTransDbClones и скопируй таблицу из одного документа в другой. Убедись, что таблица нормально скопировалась. Если все в порядке, то исследуй исходный код этого примера.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Форумы CADUser → Программирование → ObjectARX → Каким образом скопировать AcDbTable из одного рисунка в другой?
Форум работает на PunBB, при поддержке Informer Technologies, Inc