autoCAD数据库读写
2021/12/7 2:17:18
本文主要是介绍autoCAD数据库读写,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
数据库写入
获取cad的安装路径
static bool GetCadPath(CString & strCadPath) { //获取cad的安装路径 DWORD dRet = GetModuleFileName(acedGetAcadWinApp()->m_hInstance, strCadPath.GetBuffer(_MAX_PATH), _MAX_PATH); if (0 == dRet) { return false; } strCadPath.ReleaseBuffer(); return true; }
写入数据
static void MyTestCreateDwg() { AcDbDatabase * pDb = new AcDbDatabase(); //创建一个数据库 AcDbBlockTable * pBlkTbl = NULL; pDb->getSymbolTable(pBlkTbl, AcDb::kForRead); //获取块表 AcDbBlockTableRecord * pBlkTblRcd = NULL; pBlkTbl->getAt(ACDB_MODEL_SPACE, pBlkTblRcd, AcDb::kForWrite); //获取块记录表 pBlkTbl->close(); //关闭块表 AcGePoint3d ptS(10, 10, 0); AcGePoint3d ptE(30,30,0); AcDbLine * pLine = new AcDbLine(ptS, ptE); //创建一条直线(实体) pBlkTblRcd->appendAcDbEntity(pLine); //将直线加入到块记录表中 pLine->close(); pBlkTblRcd->close(); CString strCadPath; if (GetCadPath(strCadPath)) //得到cad安装的路径 { strCadPath = strCadPath.Left(strCadPath.GetLength() - 8); //减去 acad.exe acutPrintf(strCadPath); pDb->saveAs(strCadPath+_T("Test.dwg")); } delete pDb; }
.
.
.
数据读取
static void MyTestReadDwg() { AcDbDatabase * pDb = new AcDbDatabase(false); //创建一个数据库 对象为空 CString strPath; GetCadPath(strPath); strPath = strPath.Left(strPath.GetLength() - 8); CString strDwgPath = strPath + _T("Test.dwg"); pDb->readDwgFile(strDwgPath); //数据库中读取信息 //获取指定数据库中的所有实体进行遍历 AcDbObjectIdArray allEntIds = Help::GetAllEntityIds(pDb); for (int i = 0; i < allEntIds.length(); i++) { AcDbEntity * pEnt = NULL; if (acdbOpenObject(pEnt,allEntIds[i],AcDb::kForRead) == Acad::eOk) { CString str = pEnt->isA()->name(); acutPrintf(str); //acutPrintf(_T("类名称:%s"), (pEnt->isA())->name()); pEnt->close(); } } delete pDb; }
这篇关于autoCAD数据库读写的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-07-03微信支付提示下单账户与支付账户不一致-icode9专业技术文章分享
- 2024-07-03微信支付提示订单号重复-icode9专业技术文章分享
- 2024-07-02微服务启动nacos注册上去了,但是一直没有收到请求-icode9专业技术文章分享
- 2024-07-02如何检查文件的编码格式-icode9专业技术文章分享
- 2024-07-02sublime 更改编码格式-icode9专业技术文章分享
- 2024-06-30uniAPP 实现全屏左右滚动滚动的效果-icode9专业技术文章分享
- 2024-06-30如何在本地使用授权或插件-icode9专业技术文章分享
- 2024-06-30伪静态规则配置方法汇总-icode9专业技术文章分享
- 2024-06-29易优CMS安装常见问题汇总-icode9专业技术文章分享
- 2024-06-28易优新手必读安装教程-icode9专业技术文章分享