• C#操作CAD-初始化、引用dll


    操作cad等方式有很多,比如C,C++,vb、lisp(效率最高,但是语言结构性太差)和C#,因为我等个人习惯和方便等原因,在此讲解一下用C#操作流程,后续会更新操作图层、扩展数据、绘图等操作步骤。当然前提是电脑上用cad程序,要不然没法调试哟!

    1、第一步新建C#解决方案,然后新建类库。

    2、引用cad内部dll接口。

    引用acdbmgd.dll和acmgd.dll,它们在cad安装目录都能很容易找到。

    别忘了引用后修改dll属性为复制到本地。

    3、引用命名空间。

    其实这一步可有可无,因为如果vs里面有类似resharp等插件等话,需要等时候会只能提示引用。在此把常用的命名空间写一下:

    using Autodesk.AutoCAD.DatabaseServices;// (Database, DBPoint, Line, Spline) 
    using Autodesk.AutoCAD.Geometry ;//(Point3d, Line3d, Curve3d) 
    using Autodesk.AutoCAD.ApplicationServices;// (Application, Document) 
    using Autodesk.AutoCAD.Runtime;// (CommandMethodAttribute, RXObject, CommandFlag) 
    using Autodesk.AutoCAD.EditorInput ;//(Editor, PromptXOptions, PromptXResult)
    using AcadApp = Autodesk.AutoCAD.ApplicationServices.Application;

    为了后面编写代码的方面,也可有在类里面加上常用的类,比如:

    public Document doc = AcadApp.DocumentManager.MdiActiveDocument;
    public Database db = AcadApp.DocumentManager.MdiActiveDocument.Database;
    public Editor ed = AcadApp.DocumentManager.MdiActiveDocument.Editor;
    4、与用户前台交互数据的方式有两种,一种是用命令行输入自定义命名,一种是通过自定义winform通过按钮操作,原理都是一样。在此一一介绍。
    首先,我们需要会用命令与前台交互,因为winform也是需要用命令调出的,这是基础必须掌握。
    方法很简单,在类上加上标记就好了,比如:
    [CommandMethod("myZoom")]
    public void Zoom()
     {
                Document doc = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument;
                Point2d pt1 = new Point2d(0, 0);
                Point2d pt2 = new Point2d(2, 2);
                string cmd = 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更多操作方式。

     
    身是菩提树,心如明镜台,时时勤拂拭,勿使惹尘埃。
  • 相关阅读:
    httpcontext in asp.net unit test
    initialize or clean up your unittest within .net unit test
    Load a script file in sencha, supports both asynchronous and synchronous approaches
    classes system in sencha touch
    ASP.NET MVC got 405 error on HTTP DELETE request
    how to run demo city bars using sencha architect
    sencha touch mvc
    sencha touch json store
    sencha touch jsonp
    51Nod 1344:走格子(贪心)
  • 原文地址:https://www.cnblogs.com/birdofparadise/p/6919344.html
Copyright © 2020-2023  润新知