C#实战之CAD二次开发001:CAD和C#的环境配置
前言
本博文主要介绍利用C#对CAD进行二次开发,结合了ObjectARX功能强大的特点和VBA易用的特点,通过实战项目对C#开发CAD进行一个简要的介绍。
1.CAD的安裝
首先我们需要安装CAD,不同版本的CAD所对应的.NET版本不同,这里我安装的CAD版本为2010,从网上下载好安装包之后,进行安装。详细安装流程可参考 https://jingyan.baidu.com/article/03b2f78c1bdfd05ea337ae66.html
2.VS2012的安装
这里我们开发环境选择VS2012,当然选择VS2015也是可以的,读者可在官网下载相应的版本。如果遇到无法卸载VS2015的情况,可利用这个工具进行卸载:https://download.csdn.net/download/qq_26739139/10974619 安装好之后我们就可以进行环境的配置了。
3.配置VS2012
CAD和VS2012安装完毕之后,我们就可以开始准备环境的配置了,首先我们新建一个类库项目,然后再引用CAD的两个dll文件,在CAD的安装目录下的找到这两个文件,acmgd.dll和acdbmgd.dll,由于VS2012的.NET版本较高,而CAD2010的.NET版本为3.5,可能会出现不兼容的情况,所以需要把项目的目标框架改为.NET3.5。
4.第一个AutoCAD程序
下面我们来实践一下,上面我们新建了一个类库项目,名字默认Class1,引用上面所说的两个文件,并将项目目标框架改为.NET3.5。在Class1中敲入一下代码:
using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.EditorInput;
using Autodesk.AutoCAD.Runtime;
接下来在Class1类中加入命令Hello。要加入能在AutoCAD中调用的命令,就必须要使用CommandMethod属性,这个属性由Runtime命名空间提供。
public class Class1{[CommandMethod("Hello")]public void Hello(){//获取当前活动文档的Editor对象,也就是命令行Editor ed = Application.DocumentManager.MdiActiveDocument.Editor;//调用Editor对象的WriteMessage函数在命令行上显示文本ed.WriteMessage("Hello, 欢迎进入.NET 开发CAD世界");}}
接下我们选择生成解决方案或快捷键F6编译程序,如果显示生成成功则表示程序已经成功被编译。启动AutoCAD2010,使用NetLoad命令装在编译好的托管程序,在CAD中执行NetLoad命令,会弹出一个对话框,找到项目中生成的Hello.dll,然后打开它。
这时在CAD命令行中输入hello并按Enter键,就会显示下图所示。
这里介绍一个小技巧,如果在做大项目的时候,每次都在CAD中执行NetLoad命令,会很耽误效率,在CAD安装目录下的Support文件夹中找到acad2010.lsp文件,打开在最下方输入以下指令 (command “netload” “你項目生成的dll路徑”),这样就不用每次运行CAD就执行NetLoad命令了。
由此,CAD和C#的环境配置已基本完成了,项目主要参考资料为
AutoCAD VBA&VB.NET开发基础与实例教程(第二版)
有兴趣的读者可以阅读学习一下!
C#实战之CAD二次开发001:CAD和C#的环境配置相关推荐
- c# CAD二次开发 模拟CAD移动图形, 通过圆现在注记,改变图形颜色
c# CAD二次开发 模拟CAD移动图形, 通过圆现在注记,改变图形颜色 using Autodesk.AutoCAD.DatabaseServices; using Autodesk.AutoCAD ...
- c# cad 二次开发 类库 CAD表格的操作,给CAD添加一个表格
c# cad 二次开发 类库 CAD表格的操作,给CAD添加一个表格 using Autodesk.AutoCAD.ApplicationServices; using Autodesk.AutoCA ...
- 基于C#的中望CAD二次开发学习笔记(1)环境测试
目录 前言 一.ZRXSDK的安装使用 二.创建项目 三.编写环境测试代码 四.在ZWCAD中测试 参考资料 总结 前言 作为一个设计院搬砖人,和各种CAD打交道是必不可少的.当然,其中最为正统的是A ...
- C#CAD二次开发视频全套介绍及基础环境搭建
本人录制c#CAD二次开发视频 基础入门全套,感兴趣可以淘宝搜索店铺 PT的cad小店 https://i.xue.taobao.com/detail.htm?spm=a2174.7765247.0. ...
- 【CAD二次开发】CAD选择集的问题集合
var result = ed.SelectCrossingWindow();获取指定范围内的对象,类似从右下角到左上角框选: 注意框选对象要在CAD的窗体范围内,否则会返回错误结果.
- C#之CAD二次开发(5) CAD图形填充封装
0.引言 我们首先来康康在CAD中填充创建的一个过程(图有点吃藕,凑合看==) 搞清楚这个以后,我们在把之前那张出镜率很高的CAD类继承关系图拿出来 可以看到的是Hatch(填充)类继承于Entity ...
- CAD二次开发获取CAD内所有的大字体SHX字体
using Autodesk.AutoCAD.ApplicationServices; using Autodesk.AutoCAD.Runtime; using Microsoft.Win32; u ...
- [CAD二次开发]获取CAD内3D块参照的欧拉旋转角,Matrix3d矩阵转欧拉角。
根据选择块参照生成新的欧拉角相同的块参照 [CommandMethod("ttt")]public void rr(){Document doc = Application.Doc ...
- C#实战之CAD二次开发006:与python进行Socket传输文件
前言 前面介绍了与CAD相关的一些功能,本期介绍一下C#和python如何通过socket通信来进行文件的传输,建议不了解Socket的同学先去了解一下socket的通讯原理,这样看起来不会云里雾里的 ...
最新文章
- 能打开java文件_用java打开一个本地文件
- ConcurrentHashMap实现原理--转载
- python 白化_MeteoInfo和Python显著性检验
- linux kernel下输入输出console如何实现
- 黑马程序员入学基础测试(五)
- Android实现多条Toast快速显示(强制中止上一条Toast的显示)
- 解决wineQQ不能输入中文
- Python实现井字棋游戏
- 桌面提醒助手谷歌浏览器插件
- STM32自定义创建工程模板
- db_LINK详解东子
- 地产中介门店10用户桌面云方案
- D2C-Net: A Dual-branch, Dual-guidance and Cross-refine Network for Camouflaged Object Detection阅读笔记
- 串口流控(CTS/RTS)使用详解
- HTML5 Canvas 初吻
- Vue调用手机相机和相册以及上传
- mysql144错误_MySQL 144错误
- 【差异分析】蓝牙4.0 vs 蓝牙4.1 vs 蓝牙4.2 vs 蓝牙5.0
- Java工程师工资一般是多少?
- 【图像识别】基于svm植物叶子疾病检测和分类
热门文章
- android多语言切换失效
- 如何用python写 翻译腔?天哪~这实在是太有趣了~
- Linux中常见的web中间件
- 自定义AXI IP核实验——FPGA Vitis篇
- 地震反演近期文章阅读
- Maven的pom文件里,类似于这种版本号${spring.version} 是什么意思?
- 自制 | 纯手工自制一个16位RISC架构CPU
- html初识教学反思,《初识FrontPage》教学反思
- 可选int参数“id”存在,但由于被声明为基元类型,因此无法转换为null值。考虑将其声明为对应的基元类型的对象包装器。
- PJblog教程:无缝滚动友情连接菜单