ObjectARX, AutoCAD. Среда программирования библиотеки C++


AcDbDatabase:: wblockCloneObjects () Функция - часть 2


//

pDb = new AcDbDatabase(Adesk::kFalse);

pDb->readDwgFile(fname);

// Get the block table and then the model space record.

//

AcDbBlockTable *pBlockTable;

pDb->getSymbolTable(pBlockTable, AcDb::kForRead);

AcDbBlockTableRecord *pOtherMsBtr;

pBlockTable->getAt(ACDB_MODEL_SPACE, pOtherMsBtr,

AcDb::kForRead);

pBlockTable->close();

// Create an iterator

//

AcDbBlockTableRecordIterator *pIter;

pOtherMsBtr->newIterator(pIter);

// Set up an object ID array.

//

AcDbObjectIdArray objIdArray;

// Iterate over the model space BTR. Look specifically

// for Lines and append their object ID to the array.

//

for (pIter->start(); !pIter->done(); pIter->step()) {

AcDbEntity *pEntity;

pIter->getEntity(pEntity, AcDb::kForRead);

// Look for only AcDbLine objects and add them to the

// objectId array.

//

if (pEntity->isKindOf(AcDbLine::desc())) {

objIdArray.append(pEntity->objectId());

}

pEntity->close();

}

delete pIter;

pOtherMsBtr->close();

// Now get the current database and the object ID for the

// current database’s model space BTR.

//

AcDbBlockTable *pThisBlockTable;

acdbHostApplicationServices()->workingDatabase()

->getSymbolTable(pThisBlockTable, AcDb::kForRead);

AcDbBlockTableRecord *pThisMsBtr;

pThisBlockTable->getAt(ACDB_MODEL_SPACE, pThisMsBtr,

AcDb::kForWrite);

pThisBlockTable->close();

AcDbObjectId id = pThisMsBtr->objectId();

pThisMsBtr->close();

// Create the long transaction. This will check all the entities

// out of the external database.

acapLongTransactionManagerPtr()->checkOut(transId,

objIdArray, id);

// Now modify the color of these entities.

//

int colorIndex;

acedGetInt("\nEnter color number to change entities to: ",

&colorIndex);

AcDbObject* pObj;

if (acdbOpenObject(pObj, transId, AcDb::kForRead) == Acad::eOk)

{

// Get a pointer to the transaction

//

AcDbLongTransaction* pLongTrans =

AcDbLongTransaction::cast(pObj);

if (pLongTrans != NULL) {




Начало  Назад  Вперед



Книжный магазин