objectarx 把当前图形输出

方法1:

AcDbDatabase *pdb;
acdbCurDwg()->wblock(pdb);
pdb->saveAs(str);
pdb->closeInput(true);
delete pdb;

方法2:

AcDbDatabase * pDB=acdbHostApplicationServices()->workingDatabase();
AcDbBlockTable *pBT1;
pDB->getBlockTable(pBT1,AcDb::kForRead);

AcDbBlockTableRecord *pBTR1;
pBT1->getAt(ACDB_MODEL_SPACE,pBTR1,AcDb::kForRead);
AcDbBlockTableRecordIterator * pBTRIt;
AcDbObjectIdArray objArr;
AcDbIdMapping idMap;

pBTR1->newIterator(pBTRIt);
pBTRIt->start();

for (;!pBTRIt->done();pBTRIt->step())
{
AcDbObjectId objID;
pBTRIt->getEntityId(objID);
objArr.append(objID);
}
delete pBTRIt;
pBTR1->close();
pBT1->close();
AcDbDatabase* pTempDb=new AcDbDatabase();
idMap.setDestDb(pTempDb);
pTempDb->getSymbolTable(pBT1,AcDb::kForRead);
Acad::ErrorStatus e;
AcDbBlockTableRecord * pBTR2;
AcDbObjectId pSpaceObjID;
pBT1->getAt(ACDB_MODEL_SPACE,pSpaceObjID);
pBT1->close();
// pSpaceObjID=getBlockId(ACDB_PAPER_SPACE);

e=pTempDb->wblockCloneObjects(objArr,pSpaceObjID,idMap,AcDb::kDrcIgnore);
//acdbHostApplicationServices()->setWorkingDatabase(pTempDb);

//if (Acad::eOk!=acdbHostApplicationServices()->workingDatabase()
//->insert(AcGeMatrix3d::kIdentity,pTempDb))
//{
//acedAlert(_T("insert 操作失败!"));
//}

//delete pTempDb;
pTempDb->saveAs(str);
delete pTempDb;

声明:该文章系转载,转载该文章的目的在于更广泛的传递信息,并不代表本网站赞同其观点,文章内容仅供参考。

本站是一个个人学习和交流平台,网站上部分文章为网站管理员和网友从相关媒体转载而来,并不用于任何商业目的,内容为作者个人观点, 并不代表本网站赞同其观点和对其真实性负责。

我们已经尽可能的对作者和来源进行了通告,但是可能由于能力有限或疏忽,导致作者和来源有误,亦可能您并不期望您的作品在我们的网站上发布。我们为这些问题向您致歉,如果您在我站上发现此类问题,请及时联系我们,我们将根据您的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。