Тема: Каким образом скопировать AcDbTable из одного рисунка в другой?

Каким образом скопировать AcDbTable из одного рисунка в другой (как при копировании Ctrl+C и Ctrl+V )

Re: Каким образом скопировать AcDbTable из одного рисунка в другой?

> Dima
Воспользуйся AcDbDatabase::wblock(...)
Посмотри пример использования в ObjectARX SDK Samples\database\ARXDBG

Re: Каким образом скопировать AcDbTable из одного рисунка в другой?

    // 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 скопированной таблицы??

Re: Каким образом скопировать AcDbTable из одного рисунка в другой?

> Dima
А почему не копировать напрямую в текующую базу, минуя временную? Указываешь нужный block_table_record в новой базе и копируешь. Я обычно делаю это через AcDbDatabase::wblockCloneObjects().

Re: Каким образом скопировать AcDbTable из одного рисунка в другой?

> Dima
Не поленись, скомпилируй проект ARXDBG, загрузи его в AutoCAD, затем запусти команду _TestTransDbClones и скопируй таблицу из одного документа в другой. Убедись, что таблица нормально скопировалась. Если все в порядке, то исследуй исходный код этого примера.