马上加入IBC程序猿 各种源码随意下,各种教程随便看! 注册 每日签到 加入编程讨论群

C#教程 ASP.NET教程 C#视频教程程序源码享受不尽 C#技术求助 ASP.NET技术求助

【源码下载】 社群合作 申请版主 程序开发 【远程协助】 每天乐一乐 每日签到 【承接外包项目】 面试-葵花宝典下载

官方一群:

官方二群:

C#操作CAD方法

  [复制链接]
查看8019 | 回复5 | 2017-6-5 09:13:27 | 显示全部楼层 |阅读模式

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


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


2、引用cad内部dll接口。


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


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


3、引用命名空间。


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


[C#] 纯文本查看 复制代码
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;


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



[C#] 纯文本查看 复制代码
public Document doc = AcadApp.DocumentManager.MdiActiveDocument;
public Database db = AcadApp.DocumentManager.MdiActiveDocument.Database;
public Editor ed = AcadApp.DocumentManager.MdiActiveDocument.Editor;

4、与用户前台交互数据的方式有两种,一种是用命令行输入自定义命名,一种是通过自定义winform通过按钮操作,原理都是一样。在此一一介绍。

首先,我们需要会用命令与前台交互,因为winform也是需要用命令调出的,这是基础必须掌握。

方法很简单,在类上加上标记就好了,比如:


[C#] 纯文本查看 复制代码
[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更多操作方式。


本文转载博客园。




C#论坛 www.ibcibc.com IBC编程社区
C#
C#论坛
IBC编程社区
ibcadmin | 2017-6-5 09:13:50 | 显示全部楼层
111
C#论坛 www.ibcibc.com IBC编程社区
C#
C#论坛
IBC编程社区
Amy尾巴 | 2017-6-5 09:15:35 | 显示全部楼层
222
洛水千尘 | 2017-6-5 09:20:52 | 显示全部楼层
CAD画地图的啊
ibcadmin | 2017-6-5 09:22:36 | 显示全部楼层

是的 户型图什么的
C#论坛 www.ibcibc.com IBC编程社区
C#
C#论坛
IBC编程社区
pphjy | 2017-11-27 21:05:40 | 显示全部楼层
谢谢你啊,好帖子不顶不行












2017最火正规网赚项目
第五代QQ机器人QQ群机器人论坛QQ机器人智能客服机器人QQ淘客机器人QQ群互联机器人..联系QQ800829129 演示3群:28352615
*滑块验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则