1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > 在CAD环境外新建dwg文件并读取外部dwg文件数据

在CAD环境外新建dwg文件并读取外部dwg文件数据

时间:2021-11-24 18:53:34

相关推荐

在CAD环境外新建dwg文件并读取外部dwg文件数据

1.新建dwg文件

因此,实现dwg新建的关键是建立和保存数据库,至于对数据库的操作,则与在CAD环境中操作数据库是一样的。获取当前CAD数据库方式:

AcDbDatabase* pDb = acdbHostApplicationServices()-> workingDatabase();

2.读取外部dwg数据

因此,读取外部dwg数据,首先是获取该文件的数据库,然后进行数据库操作,最终保存数据库。

3.示例代码

static void vcppMyGroupMYWRITE () {// Put your command code hereAcDbDatabase *pDb = new AcDbDatabase();AcDbBlockTable *pBlkTab;pDb->getBlockTable(pBlkTab, AcDb::kForRead);AcDbBlockTableRecord *pBlkTabRcd;pBlkTab->getAt(ACDB_MODEL_SPACE,pBlkTabRcd, AcDb::kForWrite);pBlkTab->close();AcGePoint3d pt1(10,0,0);AcGePoint3d pt2(30,0,0);AcDbLine *line = new AcDbLine(pt1, pt2);pBlkTabRcd->appendAcDbEntity(line);line->close();pBlkTabRcd->close();pDb->saveAs(_T("E:/test.dwg"));delete pDb;}static void vcppMyGroupMYREAD(){AcDbDatabase *pDb = new AcDbDatabase();pDb->readDwgFile(_T("E:/test.dwg"));AcDbBlockTable *pBlkTab;pDb->getBlockTable(pBlkTab, AcDb::kForRead);AcDbBlockTableRecord *pBlkTabRcd;pBlkTab->getAt(ACDB_MODEL_SPACE, pBlkTabRcd, AcDb::kForWrite);pBlkTab->close();AcDbBlockTableRecordIterator *pBlkTabRcdItr;pBlkTabRcd->newIterator(pBlkTabRcdItr);AcDbEntity *pEn;for(pBlkTabRcdItr->start(); !pBlkTabRcdItr->done(); pBlkTabRcdItr->step()){pBlkTabRcdItr->getEntity(pEn, AcDb::kForRead);acutPrintf(_T("\n实体类型是:%s"), pEn->isA()->name());pEn->close();}AcGePoint3d p1(20,0,0);AcGePoint3d p2(40,0,0);AcDbLine *line = new AcDbLine(p1,p2);pBlkTabRcd->appendAcDbEntity(line);pBlkTabRcd->close();line->close();if(pDb->saveAs(_T("E:/test.dwg")) == Acad::eOk){acutPrintf(_T("The file has been saved..."));};delete pDb;}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。