前言
本博文主要介绍利用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#的环境配置相关推荐

  1. c# CAD二次开发 模拟CAD移动图形, 通过圆现在注记,改变图形颜色

    c# CAD二次开发 模拟CAD移动图形, 通过圆现在注记,改变图形颜色 using Autodesk.AutoCAD.DatabaseServices; using Autodesk.AutoCAD ...

  2. c# cad 二次开发 类库 CAD表格的操作,给CAD添加一个表格

    c# cad 二次开发 类库 CAD表格的操作,给CAD添加一个表格 using Autodesk.AutoCAD.ApplicationServices; using Autodesk.AutoCA ...

  3. 基于C#的中望CAD二次开发学习笔记(1)环境测试

    目录 前言 一.ZRXSDK的安装使用 二.创建项目 三.编写环境测试代码 四.在ZWCAD中测试 参考资料 总结 前言 作为一个设计院搬砖人,和各种CAD打交道是必不可少的.当然,其中最为正统的是A ...

  4. C#CAD二次开发视频全套介绍及基础环境搭建

    本人录制c#CAD二次开发视频 基础入门全套,感兴趣可以淘宝搜索店铺 PT的cad小店 https://i.xue.taobao.com/detail.htm?spm=a2174.7765247.0. ...

  5. 【CAD二次开发】CAD选择集的问题集合

    var result = ed.SelectCrossingWindow();获取指定范围内的对象,类似从右下角到左上角框选: 注意框选对象要在CAD的窗体范围内,否则会返回错误结果.

  6. C#之CAD二次开发(5) CAD图形填充封装

    0.引言 我们首先来康康在CAD中填充创建的一个过程(图有点吃藕,凑合看==) 搞清楚这个以后,我们在把之前那张出镜率很高的CAD类继承关系图拿出来 可以看到的是Hatch(填充)类继承于Entity ...

  7. CAD二次开发获取CAD内所有的大字体SHX字体

    using Autodesk.AutoCAD.ApplicationServices; using Autodesk.AutoCAD.Runtime; using Microsoft.Win32; u ...

  8. [CAD二次开发]获取CAD内3D块参照的欧拉旋转角,Matrix3d矩阵转欧拉角。

    根据选择块参照生成新的欧拉角相同的块参照 [CommandMethod("ttt")]public void rr(){Document doc = Application.Doc ...

  9. C#实战之CAD二次开发006:与python进行Socket传输文件

    前言 前面介绍了与CAD相关的一些功能,本期介绍一下C#和python如何通过socket通信来进行文件的传输,建议不了解Socket的同学先去了解一下socket的通讯原理,这样看起来不会云里雾里的 ...

最新文章

  1. 能打开java文件_用java打开一个本地文件
  2. ConcurrentHashMap实现原理--转载
  3. python 白化_MeteoInfo和Python显著性检验
  4. linux kernel下输入输出console如何实现
  5. 黑马程序员入学基础测试(五)
  6. Android实现多条Toast快速显示(强制中止上一条Toast的显示)
  7. 解决wineQQ不能输入中文
  8. Python实现井字棋游戏
  9. 桌面提醒助手谷歌浏览器插件
  10. STM32自定义创建工程模板
  11. db_LINK详解东子
  12. 地产中介门店10用户桌面云方案
  13. D2C-Net: A Dual-branch, Dual-guidance and Cross-refine Network for Camouflaged Object Detection阅读笔记
  14. 串口流控(CTS/RTS)使用详解
  15. HTML5 Canvas 初吻
  16. Vue调用手机相机和相册以及上传
  17. mysql144错误_MySQL 144错误
  18. 【差异分析】蓝牙4.0 vs 蓝牙4.1 vs 蓝牙4.2 vs 蓝牙5.0
  19. Java工程师工资一般是多少?
  20. 【图像识别】基于svm植物叶子疾病检测和分类

热门文章

  1. android多语言切换失效
  2. 如何用python写 翻译腔?天哪~这实在是太有趣了~
  3. Linux中常见的web中间件
  4. 自定义AXI IP核实验——FPGA Vitis篇
  5. 地震反演近期文章阅读
  6. Maven的pom文件里,类似于这种版本号${spring.version} 是什么意思?
  7. 自制 | 纯手工自制一个16位RISC架构CPU
  8. html初识教学反思,《初识FrontPage》教学反思
  9. 可选int参数“id”存在,但由于被声明为基元类型,因此无法转换为null值。考虑将其声明为对应的基元类型的对象包装器。
  10. PJblog教程:无缝滚动友情连接菜单