|
在CAD电子图版的插件开发中,如何获取整个图纸对象并对其缩放?我按照文档的说明写了如下代码,但运行报错:
CRxDbDatabase *pDb = crxdbHostApplicationServices()->workingDatabase();
// 打开当前图形模型空间块表记录
CDraft::ErrorStatus es = CDraft::eOk;
//
CRxDbPaperTable* pTable;
es = pDb->getPaperTable(pTable, CRxDb::kForRead);
if (es != CDraft::eOk)
return es;
CRxDbObjectId entId;
CRxDbPaperTableRecord* pRecord;
pTable->getAt(_T("Model"), pRecord, CRxDb::kForRead);
// pTable->getAt(_T("Model"), entId);
//如果记录不为空,则读取明细表内容
// if (pRecord != NULL)
{
// entId = pRecord->objectId();
entId = pTable->objectId();
}
CRxGeMatrix3d mat;
mat.setToScaling(scaleRatio, CCalculation::Pt2dTo3d(CRxGePoint2d::kOrigin));
// 对实体进行变换
CRxDbEntity *pEnt = NULL;
es = acdbOpenObject(pEnt, entId, CRxDb::kForWrite, false);
if (es != CDraft::eOk)
return es;
// pRecord->close();
pTable->close();
es = pEnt->transformBy(mat); // 运行至此报错(内存方面的错误)
pEnt->close();
return es;
|
|