CAD这个软件对于建筑或者船舶等工程行业的人应该不陌生,大量的图纸需要用CAD进行绘制。CAD的功能基本上很全面,覆盖了所有能用到的功能。但是在具体到某项工作时,有可能仍会有一定的力不从心,结合最近做的一个合并图纸并批量打印的小项目,简单谈谈应用C#.NET对CAD进行二次开发时的一些经验与收获,与大家共勉,这部分内容就先简单介绍一下基本操作。

该示例所应用的是CAD2019(版本的不同导致基于不同版本开发的程序不能直接使用),win10系统,VS2013。

1、创建项目

打开VS2013,点击文件-新建-项目,选择类库,命名为Demo(自己随意),点击确定。

新建项目

然后右键点击引用-添加引用-浏览。打开CAD安装路径,在根目录下找到以下dll文件:accoremgd.dll,AcCui.dll,acdbmgd.dll,acmgd.dll,AcWindows,AdWindows,Autodesk.AutoCAD.Interop以及Autodesk.AutoCAD.Interop.Common;同样地再次点击引用-添加引用-COM,选择如下图所示的两个类型库。注意:不同版本的CAD对应的类型库的名称也是不一样的。

添加类型库

添加完成后,将添加的这些dll的属性里的复制本地改为False。这是因为如果选择True,那么在生成解决方案时这些dll都会被保存在下来,导致文件夹类文件太多,更重要的一点是,由于版本的问题以及CAD安装路径的不一样,在别的电脑上修改代码时需要重新添加引用。

二、修改配置

右键点击项目-属性-应用程序,将目标框架修改为.NET Framework 4.7(对不同版本的CAD二次开发目标框架也不一样,比如CAD2017需要的框架为.NET Framework 4.5);

点击生成,将目标平台改为x64;

调试-启动操作-启动外部程序,选择CAD安装目录下的acad.exe启动文件。

这样基本的环境配置就完成了,接下来,就开始完成代码的部分。

三、代码编写

现在切换页面到新建的类,将类名重命名为CADTest(可选),在最上面添加using引用CAD的方法;

方法引用

添加这些引用的作用就是为了简化代码,不然用到CAD的某些方法就要写到上述的语句,就比如:不添加引用:Autodesk.AutoCAD.ApplicationServices.Document doc ; 添加引用:Document doc1;这两句效果是一样的,都是为了声明Document。

先写一个简单的测试程序,在CAD中弹出对话框“Hello World”,继续添加如下代码:

代码编写

这时会发现打出MessageBox会提示报错,这就需要右键引用-添加引用-程序集-框架,找到System.Windows.Forms,点击确定。然后在代码上方添加 “using System.Windows.Forms;”。

注:图片中的“Autodesk.AutoCAD.ApplicationServices.Application”本来可以添加到using的部分来减少后续相关代码的编写,但是由于“System.Windows.Forms”也有一个“System.Windows.Forms.Application”会引起冲突,所以这里就没有简写。

上述代码完成后,点击启动,会自动打开CAD程序。然后在命令行输入netload后回车,用以加载编写好的dll程序。选择该项目目录X:\Demo\Demo\bin\Debug,选择该dll文件点击打开,然后选择始终加载或者加载一次。这样就把程序加载到了CAD中。

加载程序

然后在命令行中输入命令helloworld,点回车,就会弹出对话框,显示“Hello World!”注:输入的命令helloworld,与代码中[CommandMethod("HelloWorld")]引号内的内容有关,如果写成[CommandMethod("Test")],那么就在命令行中输入test来启动程序。输入时大小写不影响。

效果显示

这就是用C#对CAD进行二次开发时的一些基本操作,后续会对其进行进一步的扩展。

autocad 二次开发 拆分图纸_谈谈AUTOCAD.NET二次开发的一些经验(一)相关推荐

  1. android开发人员要求_如何成为一名Android开发人员

    android开发人员要求 An Android Developer is somebody who creates our lives simple by creating a correspond ...

  2. linux开发板推荐_【新品发布】WiFi开发板XW-01-Kit,超低功耗,冷启快联,智能门锁首选!...

    智能门锁作为智能家居的入口级产品以及家庭智能安防的核心单品,已然成为智能家居生态链中不可或缺的核心组成部分. 智能门锁方案的研发仍然面临着诸多痛点,如耗电问题.连接繁琐和安全隐患等. 物联网的应用与发 ...

  3. 蚂蚁金服java二面在线编程题目_蚂蚁金服-二面

    昨天晚上面完二面后整个人都很懵,二面和一面的感觉特别不同,可以这样说面完二面的心情真的特别糟糕.7.25下午5点多面试官打来电话问晚上什么时候有空,我约了晚上8点面试.8点准时接到面试官的电话,这次非 ...

  4. java web开发学习手册_【Java手册】Java开发手册_华山版(2019.06)

    版本号:1.5.0 更新日期:2019.06.19 制定团队:阿里巴巴与Java社区开发者 更新亮点:华山版,新增21条设计规约,修改描述112处,完善若干处示例 2017年春天,<阿里巴巴Ja ...

  5. 火狐web开发清楚缓存_如何使用Firefox的Web开发工具

    火狐web开发清楚缓存 Firefox's Web Developer menu contains tools for inspecting pages, executing arbitrary Ja ...

  6. lte协议栈开发基本内容_关于如何成为全栈开发人员的6个基本技巧

    lte协议栈开发基本内容 如何成为全栈开发人员? 作为开发人员最热门的主题之一,讨论从未停止. 在LinkedIn和Facebook上,许多人把他们的职位称为全职开发人员. 此外,"全栈&q ...

  7. autocad 二次开发 拆分图纸_AutoCAD二次开发技术在工程图纸绘制中的应用

    本文通过作者在最近几年的计算机辅助设计和绘图工作中应用 A utoCAD 进行二次开发的一些经 验 , 分别利用几个实例程序来说明 A utoCAD 二次开发技术在工程图纸绘制中的应用 . [ 中图分 ...

  8. python开发app教程_知到APP_数据库应用与开发_答案教程

    知到APP_数据库应用与开发_答案教程 更多相关问题 [单选题]下列选项中,属于sendRedirect(java.lang.String url)方法所在接口的是( ) A. HttpSession ...

  9. vue 开发ui库_面向设计师的ui ux开发vue js

    vue 开发ui库 Because sometimes we have to add logic to our concepts, and Vue makes it a whole lot easie ...

  10. python全栈开发工程师招聘_浅谈Python全栈开发工程师,让程序员都眼红的职业!...

    若把学C/C++难度比作做冰箱设计师,那么Java就是公司做冰箱的工人,而Python就是使用冰箱的客户.这只是难度的比较,那么就有人要说Python肯定很弱了,是真的如此吗? 领域--------流 ...

最新文章

  1. OpenCV读写视频文件解析
  2. Java标识符首字母可以是哪些_Java编程中你不知道的一些标识符有哪些呢?
  3. python自学书籍推荐豆瓣-【转】如果有人让你推荐Python技术书,请让他看这个列表...
  4. ASP常用进制转化类(2,8,10,16,32,64)
  5. 【网络安全】Xred蠕虫再分析及修复工具编写
  6. This Style does not belong to the supplied Workbook. Are you trying to assign a style from one workb
  7. 今天开始记录我的开发生涯
  8. IoT开发精英实战营招募啦!速来报名!
  9. 你们期待的小屏旗舰来了: 骁龙855 没有刘海!
  10. 2013下半年(11月)信息系统项目管理师考试题型分析(综合知识、案例分析、论文)...
  11. 解决远程服务器出现桌面和任务栏全无问题
  12. 苹果蓝牙耳机使用说明_苹果蓝牙耳机怎么用,其功能及使用方法介绍
  13. android+背景虚化,android背景虚化
  14. Google企业邮箱申请
  15. 为什么服务网页打开需要很久,点击之后计算机在处理什么,为什么我打开电脑桌面全部显示出来后要等很久才能打开连接.doc...
  16. 基于AD Event日志实时检测GPO后门
  17. veket linux应用软件,veket linux
  18. 华为Nova 4 HL1VCEM (VCE-L22/VCE-AL00)手机图纸电路原理图+主板高清图片
  19. Mp异常:xxx. Not Found TableInfoCache
  20. 2016张小龙微信开发公开课全文

热门文章

  1. LINUX 用户 及 组
  2. npm安装包报400错误
  3. Unity教程2D入门
  4. 【Python05】Python转义字符
  5. Java实现一个打飞机的小游戏【附源码】
  6. tmux使用指南:1 :简介与安装
  7. python UI自动化自动关闭浏览器学习记录
  8. 常用计算机储存设备有哪些,计算机的存储设备有哪些
  9. 计算机专硕一般研二在干嘛,专硕一般研二在干嘛,专硕两年怎么安排
  10. ElasticSearch聚合基础使用《玩转ElasticSearch 4》