zoukankan      html  css  js  c++  java
  • 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更多操作方式。

     
    身是菩提树,心如明镜台,时时勤拂拭,勿使惹尘埃。
  • 相关阅读:
    用Taro写一个微信小程序——版本升级
    matlab subplot 的边距(with tight margins)
    Nginx(Tengine) 解决 unknown directive "stream" 问题
    MinIO 分布式集群搭建
    Docker 及 Docker Compose 日常操作(团队培训材料)
    基于 AdoptOpenjdk 官方 Dockerfile 制作 jre8 镜像(修改字符集和时区)
    Syncthing 开源文件同步工具
    Harbor 2.2.0 搭建与使用
    Centos7 使用 chronyd 进行时钟同步
    Centos7 安装 Python3 及配置国内源、虚拟环境
  • 原文地址:https://www.cnblogs.com/birdofparadise/p/6919344.html
Copyright © 2011-2022 走看看