CAD二次开发(C#) CAD2017+VS2015 (一 环境配置)
一、 VS和CAD版本问题
Microsoft Visual Studio是不依赖AutoCAD运行的面向对象编程环境。虽然Microsoft Visual Studio是AutoCAD及其他应用程序的外部环境,但它能与那些公开了自己的本地.NET API或ActiveX/COM库的应用程序进行交互。
https://blog.csdn.net/l93919861/article/details/83963673[各版本CAD VS ObjectARX的对应关系]
二、 VS + CAD 环境搭建
步骤:
- 创建类库项目:新建项目 -> 创建类库 -> 添加新的引用
- 添加新的引用:右击引用 -> 添加引用 -> l浏览 -> 到CAD安装目录下找到 AcCui.dll acdbmgd.dll acmgd.dll accoremgd.dll AdWindows.dll文件添加
- 将刚刚新添的引用文件复制本地改为False:选中文件 -> 属性 -> 复制地址 -> False
- 新建类,类中添加所示引用,若添加成功则说明开发环境已经完毕,可以进行开发
二、VS + CAD 环境调试
在VS中调试代码,直接进行调试的话VS会报错,因为这个是类库文件,不是一些exe文件之类的,所以需要调试的话我们需要外部启动CAD。
步骤:
- 打开CAD安装根目录,找到acad.exe.config文件,打开,在文件中添加:
- 调试之前启动外部程序。在类库项目上右键->属性,在启动外部程序中,找到CAD安装目录下的acad.exe文件。
- 添加程序:CAD命令栏输入netload -> 找到工程文件(*.dll)路径(一般在Debug或者Release目录下) -> 选中文件添加 -> 加载 -> 在命令行输入代码中自定义命令[Hello]
类中添加Hello方法
[CommandMethod("SayHello")]public void SayHello(){Editor editor = Application.DocumentManager.MdiActiveDocument.Editor;editor.WriteMessage("Hello World");}
程序解释:
Hello方法上面有一个CommandMethod的特性,CAD在运行的时候会搜索所有有CommandMethod特性的方法来作为命令入口。
所以在CAD中输入SayHello命令就会执行该方法内的动作。
在方法内我们获取了一个Editor对象,该对象表示CAD的命令行输入输出区域。我们也可以看到这个Editor对象是通过应用程序 → 文档管理器 → 当前文档 → Editor来获取的。
问题解决方法:
1) 输入命令,却显示为未知命令
a. 检查引用文件复制本地的属性是否已经改成False
b. 调试页面启用调试器选择 “启用本机代码调试”【这是导致本次问题的源头】
2) 出现处理器框架不匹配警告
a. 试着将项目属性 -> 生成 -> X64 可以解决
CAD二次开发(C#) CAD2017+VS2015 (一 环境配置)相关推荐
- CAD二次开发--CAD2007(.Net3.5环境)等低版本CAD二次开发在VS中无法捕获断点调试解决办法(CAD二次开发无法断点调试解决办法)
目录 1.说明 2.解决办法 1.说明 在进行CAD二次开发的时候如果想进行断点调试,众所周知,在VS环境里设置断点后直接启动类库项目就好了,只需要在启动项属性里设置下"启动外部程序&quo ...
- cad二次开发-在vs编译软件环境下使用c#语言编写dll文件-新建图层
//LayerColer的值可取1~255代表不同颜色,代表的颜色可参考cad图层管理器中的颜色设置 public void CreateLayer(short LayerColer,string L ...
- cad二次开发-在vs编译软件环境下使用c#语言编写dll文件-添加单行文本
//调用时-方法参数列表填写文字写入位置,以及要写的文字,sx.sy填写0(sx和sy代表文字对齐坐标),或填写文字对齐坐标-单行文字-角度填写1~360度public void addText(do ...
- cad二次开发c#学习记录1——hello carrot!
准备工作:安装Autocad和VS2015.过程略.购买参考书<Autocad开发基础与实例教程c#版>,个人感觉看完这本书基本可以做些自己相关的实用的cad二次开发了. 打开vs,新建- ...
- C#CAD二次开发视频全套介绍及基础环境搭建
本人录制c#CAD二次开发视频 基础入门全套,感兴趣可以淘宝搜索店铺 PT的cad小店 https://i.xue.taobao.com/detail.htm?spm=a2174.7765247.0. ...
- cad二次开发程序的绿色安装
此问题的引入是因为一个cad二次开发软件,客户要求做成绿色安装.何为绿色安装呢?软件包copy到一台电脑上(已安装CAD),双击exe,打开的界面包含自定义的菜单.菜单的图标能正确显示.每个功能能使用 ...
- intersect 相交 范围_关于CAD二次开发中(范围线自相交)相交线的问题
CAD二次开发对于毕业没多久,又是半路出家的我来说,是一个很大的挑战,遇到过很多难以解决的问题,这次在CAD二次开发遇到一个很苦恼的问题:判断 一个由线段组成的闭合区域中,是否存在着相互之间相交的线段 ...
- CAD 二次开发 图层操作(1)创建图层
CAD二次开发的资料比较少,除了李冠亿先生的<深居浅出AutoCAD二次开发>这本书之外,目前没有找到合适的参考资料.现将自己工作中用的的一些方法贴出来.方便各位网友快速入门. #regi ...
- CAD 二次开发 图层操作(3)取得指定图层下的所有对象id
对于CAD二次开发的人来说,可能需要对某一图层下的实体(点,线,面域,块,三维实体)进行不同的操作.下面的方法,即可实现获取指定图层名称下的所有实体ID. 输入参数为图层名称: 返回值为:对象主键集合 ...
最新文章
- css3 动画 火箭,CSS3 火箭发射动画 寓意创新起航
- jquery效果案例学习站
- sql server检查临时表是否存在
- python django图书管理系统_Python框架:Django写图书管理系统(LMS)
- 谷歌,IE,火狐浏览器内核
- 八款最佳的远程桌面工具
- Excel设置(单行或多行)固定表头的方法
- 如何不靠运气变得富有 (十四) —— 特殊技能(specific knowledge)极富创造性或技术性
- 快速排序(快排) (C语言实现)
- windows10怎么卸载计算机,Win10怎么卸载声卡驱动?电脑声卡驱动怎么卸载?
- floyd算法----牛栏
- deepin官方历史版本存档
- Unity中国象棋(二)——走棋
- MATLAB之易经卜卦程序+GUI
- 微信分享链接不显示缩略图
- 软件设计之UML—UML的构成[上]
- Let's go home 【2-sat 经典作图】+【scc判定有无解】
- scrollbar滚动条修改样式
- 时间类Carbon的安装和使用
- 基于WebRTC实现1v1音视频聊天室