autocad连接mysql_访问AutoCAD对象

本文介绍了如何通过Autodesk.AutoCAD的Application对象访问当前文档的数据库,以及如何附加图形文件到数据库中。同时,展示了如何使用C#获取模型空间中所有实体对象的列表。
摘要由CSDN通过智能技术生成

Application对象的DocumentManager属性允许我们使用它的MdiActiveDocument属性来访问当前文档,从MdiActiveDocument属性返回Document对象,我们可以用Document对象的Database属性访问文档的数据库。

Autodesk.AutoCAD.DatabaseServices.Database acCurDb;

acCurDb = Application.DocumentManager.MdiActiveDocument.Database;

将一个图形文件附加到当前图形的数据库中

string strFName, strBlkName;

Autodesk.AutoCAD.DatabaseServices.ObjectId objId;

strFName = "c:/test.dwg";

strBlkName = System.IO.Path.GetFileNameWithoutExtension(strName);

objId = Application.DocumentManager.MdiActiveDocument.Database.AttachXref(strFName,strBlkName);

使用acCurDb,将一个图形文件添加到acCurDb数据库中

string strFName, strBlkName;

Autodesk.AutoCAD.DatabaseServices.ObjectId objId;

Autodesk.AutoCAD.DatabaseServices.Database acCurDb;

acCurDb = Application.DocumentManager.MdiActiveDocument.Database;

strFName = "c:/test.dwg";

strBlkName = System.IO.Path.GetFileNameWithoutExtension(strName);

objId = acCurDb.AttachXref(strFName,strBlkName);

返回模型空间中所有实体对象的列表

using Autodesk.AutoCAD.Runtime;

using Autodesk.AutoCAD.ApplicationServices;

using Autodesk.AutoCAD.DatabaseServices;

[CommandMethod("ListEntities")]

public static void ListEntities()

{

//获取当前数据库,启动事务

Document acDoc = Application.DocumentManager.MdiActiveDocument;

Database acCurDb = acDoc.Database;

using (Transaction acTrans = acCurDb.TransactionManager.StartTransaction())

{

//以读模式打开块表

BlockTable acBlkTbl;

acBlkTbl = acTrans.GetObject(acCurDb.BlockTableId,OpenMode.ForRead) as BlockTable;

//以读模式打开块表记录模型空间

BlockTableRecord acBlkTblRec;

acBlkTblRec = acTrans.GetObject(acBlkTbl[BlockTableRecord.ModelSpace],OpenMode.ForRead) as BlockTableRecord;

int nCnt = 0;

acDoc.Editor.WriteMessage("\nModel space objects: ");

//遍历模型控件里的每个对象,并显示找到的对象类型

foreach(ObjectId acObjId in acBlkTblRec)

{

acDoc.Editor.WriteMessage("\n" + acObjId.ObjectClass.DxfName);

nCnt = nCnt + 1;

}

//如果没发现对象则显示提示信息

if(nCnt == 0)

{

acDoc.Editor.WriteMessage("\n No objects found");

}

//关闭事务

}

}

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值