1、第一步新建 C# 解决方案,然后新建类库。
2、引用 cad 内部 dll 接口。
引用 acdbmgd.dll 和 acmgd.dll,它们在 cad 安装目录都能很容易找到。
别忘了引用后修改 dll 属性为复制到本地。
3、引用命名空间。
其实这一步可有可无,因为如果 vs 里面有类似 resharp 等插件等话,需要等时候会只能提示引用。在此把常用的命名空间写一下:
using AcadApp = Autodesk.AutoCAD.ApplicationServices.Application;
using Autodesk.AutoCAD.EditorInput ;//(Editor, PromptXOptions, PromptXResult)
using Autodesk.AutoCAD.Runtime;// (CommandMethodAttribute, RXObject, CommandFlag)
using Autodesk.AutoCAD.ApplicationServices;// (Application, Document)
using Autodesk.AutoCAD.Geometry ;//(Point3d, Line3d, Curve3d)
using Autodesk.AutoCAD.DatabaseServices;// (Database, DBPoint, Line, Spline)
为了后面编写代码的方面,也可有在类里面加上常用的类,比如:
方法很简单,在类上加上标记就好了,比如:
首先,我们需要会用命令与前台交互,因为 winform 也是需要用命令调出的,这是基础必须掌握。
4、与用户前台交互数据的方式有两种,一种是用命令行输入自定义命名,一种是通过自定义 winform 通过按钮操作,原理都是一样。在此一一介绍。
public Editor ed = AcadApp.DocumentManager.MdiActiveDocument.Editor;
public Database db = AcadApp.DocumentManager.MdiActiveDocument.Database;
public Document doc = AcadApp.DocumentManager.MdiActiveDocument;
- [CommandMethod("myZoom")]
- public void Zoom()
- {
- Document doc = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument;
- Point2d pt1 =newPoint2d(0,0);
- Point2d pt2 =newPoint2d(2,2);
- stringcmd =string.Format("Zoom {0},{1} {2},{3} ", pt1.X, pt1.Y, pt2.X, pt2.Y);
- doc.SendStringToExecute(cmd, true,false,false);
- }
这就是一个我们自定义的图形缩放的命令,输入 myZoom 就可以自动缩放到由(0,0)和(2,2)为两个顶点的矩形大小。
5、好了,一个简单的功能就完成了,生成 dll 后我们该如何调用呢?
很简单,打开用 cad 打开 dwg 图形,在命令行输入 netload(或者在菜单栏选择工具 - 加载 net 程序)然后选择刚刚生成的 dll 文件就好了。
然后输入 myZoom 试试,看看有没有变化?如果你有什么问题,请直接留言回复,我们一起学习一起进步。
后续请继续关注 cad 更多操作方式。
来源: http://www.cnblogs.com/birdofparadise/p/6919344.html