基于.NET的CAD二次开发学习笔记一:CAD开发入门
1、AutoCAD .NET API由不同的DLL文件组成,它们提供用于访问图形文件或AutoCAD应用程序的包含丰富的类、结构、方法和事件。每一个DLL文件都定义不同的使用基于功能的库组织组件的命名空间。
下面是你将频繁地要使用的AutoCAD .NET API 的三个主要的DLL文件:
AcDbMgd.dll. 当使用图形文件中的对象时使用这个DLL文件。
AcMgd.dll. 当使用AutoCAD应用程序时使用这个DLL文件。
AcCui.dll. 当使用自定义文件时使用这个DLL文件。
注意:在创建CAD项目时,需要引用到以上DLL,一般来说前面两个使用的较多。AutoCAD .NET API DLL被引用,就必须设置引用DLL文件的“复制到本地”属性为False。复制到本地属性确定当Microsoft Visual Studio编译工程时是否创建一个引用DLL文件的副本并将它放在与工程的程序集文件相同的目录下。由于引用文件已经是AutoCAD附属文件,因此,创建引用文件的副本后当加载程序集文件到AutoCAD中时将可能引发意想不到的结果。
2、在.NET 类中加入CAD能调用的命令,必须用到CommandMethod属性,这个属性由Runtime命名空间提供。代码如下所示
Imports Autodesk.AutoCAD.Runtime
Imports Autodesk.AutoCAD.ApplicationServices
Imports Autodesk.AutoCAD.DatabaseServices Public Class MyHello
<CommandMethod("Hello")> _
Public Sub Hello()
'获取当前活动文档的Editor对象,
Dim Doc As Autodesk.AutoCAD.ApplicationServices.Document = Application.DocumentManager.MdiActiveDocument
Dim Ed As Autodesk.AutoCAD.EditorInput.Editor = Doc.Editor
Ed.WriteMessage("Hello") End Sub
End Class
3、CAD项目生成类库后,可在 AutoCAD 的命令提示符中,输入 netload 命令,并选中生成的DLL,加载CAD项目,即可在CAD中使用CommandMethod指定的命令。
4、CAD调试(以CAD2010、VS2010为例):右键打开项目属性-->调试-->选择启动外部程序 \AutoCAD2010\acad.exe
断点不起作用如下
(解决方法摘自:http://www.cnblogs.com/junqilian/archive/2010/04/29/1724403.html)
断点不起作用的原因在于Visual Studio 2010在调试时启动了默认的debugger(v4.0),但是为了让我们的.net应用程序能在AutoCAD Map (或Revit)等上运行,我们需要.net 2.0 framework( 3.5也是运行在CLR 2.0之上的)。
解决办法有如下两个方案:
方案1
编辑宿主程序的config 文件(acad.exe.config, revit.exe.config等等),这个文件在AutoCAD的安装目录下。在</configuration>前面加上下面的代码(CAD2010该行代码已被注释):
<startup>
<supportedRuntime version="v2.0.50727" />
</startup>
方案2
把宿主exe文件作为一个已有的项目加到您的解决方案中,并把debugger设置为v2.0
右键单击Solution Explorer,选择Add->Existing Project,浏览到AutoCAD的启动文件Acad.exe

右键单击该项目,把它设置为启动项目 Set as StartUp Project

打开项目属性对话框 Properties

设置 Debugger Type 为 Managed v2.0

5、对于不同的AutoCAD版本,推荐使用的.NET Framework版本如下:
2007-2009 -> Framework 2.0
2010-2011 -> Framework 3.5
2012-2013 -> Framework 4.0
基于.NET的CAD二次开发学习笔记一:CAD开发入门的更多相关文章
- 基于【 MySql 】二 || mysql详细学习笔记
mysql重点学习笔记 /* Windows服务 */ -- 启动MySQL net start mysql -- 创建Windows服务 sc create mysql binPath= mysql ...
- Qlik Sense学习笔记之Mashup开发(二)
date: 2019-01-26 11:28:07 updated: 2019-01-26 11:28:07 Qlik Sense学习笔记之Mashup开发(二) 1.Mobile SPA UI Fr ...
- Kinect开发学习笔记之(一)Kinect介绍和应用
Kinect开发学习笔记之(一)Kinect介绍和应用 zouxy09@qq.com http://blog.csdn.net/zouxy09 一.Kinect简单介绍 Kinectfor Xbox ...
- 基于51单片机IIC通信的PCF8591学习笔记
引言 PCF8591 是单电源,低功耗8 位CMOS 数据采集器件,具有4 个模拟输入.一个输出和一个串行I2C 总线接口.3 个地址引脚A0.A1 和A2 用于编程硬件地址,允许将最多8 个器件连接 ...
- Hadoop学习笔记(4) ——搭建开发环境及编写Hello World
Hadoop学习笔记(4) ——搭建开发环境及编写Hello World 整个Hadoop是基于Java开发的,所以要开发Hadoop相应的程序就得用JAVA.在linux下开发JAVA还数eclip ...
- Qlik Sense学习笔记之Mashup开发(一)
date: 2018-12-21 12:33:29 updated: 2018-12-21 12:33:29 Qlik Sense学习笔记之Mashup开发(一) 1.基于Qlik Sense API ...
- 【前端】移动端Web开发学习笔记【2】 & flex布局
上一篇:移动端Web开发学习笔记[1] meta标签 width设置的是layout viewport 的宽度 initial-scale=1.0 自带 width=device-width 最佳实践 ...
- 【前端】移动端Web开发学习笔记【1】
下一篇:移动端Web开发学习笔记[2] Part 1: 两篇重要的博客 有两篇翻译过来的博客值得一看: 两个viewport的故事(第一部分) 两个viewport的故事(第二部分) 这两篇博客探讨了 ...
- Rest API 开发 学习笔记(转)
Rest API 开发 学习笔记 概述 REST 从资源的角度来观察整个网络,分布在各处的资源由URI确定,而客户端的应用通过URI来获取资源的表示方式.获得这些表徵致使这些应用程序转变了其状态.随着 ...
- 步步为营 SharePoint 开发学习笔记系列总结
转:http://www.cnblogs.com/springyangwc/archive/2011/08/03/2126763.html 概要 为时20多天的sharepoint开发学习笔记系列终于 ...
随机推荐
- JDBC/PreparedStatement
JDBC是Java数据库连接技术的简称,提供连接各种常用数据库的能力 JDBC AP 是Sun公司提供的I 内容:供程序员调用的接口,集成在Java.sql和javax.sql包中, 如 ...
- JS基本概念
1.一切(变量.函数名.操作符)都区分大小写 2.标识符:第一个字符必须为字母.下划线或者美元符号,其他字符可以是字母.下划线.美元符号或者数字 3.数据类型 1)undefined:用var声明的变 ...
- autoloader
自动加载 $loader = new Zend_Application_Module_Autoloader(array( 'namespace' => 'Blog', 'base ...
- ionic 通过PouchDB + SQLite来实现app的本地存储(Local Storage)
首先声明,本教程参考国外网站(http://gonehybrid.com/how-to-use-pouchdb-sqlite-for-local-storage-in-your-ionic-app/) ...
- discuz手机版模板开发
1.触屏版模板手机路径 discuz X3触屏版模板路径:/template/default/touch/forum/discuz.htm(主页面模板) discuz X3标准版模板路径:/templ ...
- 《Linux内核设计与实现》课本第三章自学笔记——20135203齐岳
<Linux内核设计与实现>课本第三章自学笔记 进程管理 By20135203齐岳 进程 进程:处于执行期的程序.包括代码段和打开的文件.挂起的信号.内核内部数据.处理器状态一个或多个具有 ...
- CentOS6.5 下安装 texlive2015 并设置 ctex 中文套装
0 卸载旧版本的 texlive 0.1 卸载 texlive2007 如果系统没有安装过texlive,则跳过第0步. 可以在终端中使用如下命令查询本机已经安装的tex和latex版本: [She@ ...
- Linux系统Vsftp 传文件出现 553 Could Not Create File错误的解决方法
解决方法: 登录出现了这个错误提示:553 Could not create file SELinux设置如下 查看SELinux设置 [root@localhost ~]# getsebool -a ...
- It matters, In the coming year ,i will stand here.
人在安逸中会迷失自己,直至看不到远处的光亮.在一个人迷茫的时候便需要寻找认同感,于是我来到了这里.比我更加优秀的人都在默默的努力,我怎么能允许自己在原地踏步.在这一刻我似乎又看了黑夜中的一束光. 初识 ...
- 怎么把jdk和jRE的Javadoc文档整合到MyEclipse
有时在写代码时,需要查看javadoc文档,便于编写程序.故如何把Javadoc文档整合到MyEclipse,以便于查看呢? 解决办法: 1.在MyEclipse中菜单栏的“Windows”---&g ...