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命名空间提供。代码如下所示

  1. Imports Autodesk.AutoCAD.Runtime
  2. Imports Autodesk.AutoCAD.ApplicationServices
  3. Imports Autodesk.AutoCAD.DatabaseServices
  4.  
  5. Public Class MyHello
  6. <CommandMethod("Hello")> _
  7. Public Sub Hello()
  8. '获取当前活动文档的Editor对象,
  9. Dim Doc As Autodesk.AutoCAD.ApplicationServices.Document = Application.DocumentManager.MdiActiveDocument
  10. Dim Ed As Autodesk.AutoCAD.EditorInput.Editor = Doc.Editor
  11. Ed.WriteMessage("Hello")
  12.  
  13. End Sub
  14. 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开发入门的更多相关文章

  1. 基于【 MySql 】二 || mysql详细学习笔记

    mysql重点学习笔记 /* Windows服务 */ -- 启动MySQL net start mysql -- 创建Windows服务 sc create mysql binPath= mysql ...

  2. 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 ...

  3. Kinect开发学习笔记之(一)Kinect介绍和应用

    Kinect开发学习笔记之(一)Kinect介绍和应用 zouxy09@qq.com http://blog.csdn.net/zouxy09 一.Kinect简单介绍 Kinectfor Xbox ...

  4. 基于51单片机IIC通信的PCF8591学习笔记

    引言 PCF8591 是单电源,低功耗8 位CMOS 数据采集器件,具有4 个模拟输入.一个输出和一个串行I2C 总线接口.3 个地址引脚A0.A1 和A2 用于编程硬件地址,允许将最多8 个器件连接 ...

  5. Hadoop学习笔记(4) ——搭建开发环境及编写Hello World

    Hadoop学习笔记(4) ——搭建开发环境及编写Hello World 整个Hadoop是基于Java开发的,所以要开发Hadoop相应的程序就得用JAVA.在linux下开发JAVA还数eclip ...

  6. Qlik Sense学习笔记之Mashup开发(一)

    date: 2018-12-21 12:33:29 updated: 2018-12-21 12:33:29 Qlik Sense学习笔记之Mashup开发(一) 1.基于Qlik Sense API ...

  7. 【前端】移动端Web开发学习笔记【2】 & flex布局

    上一篇:移动端Web开发学习笔记[1] meta标签 width设置的是layout viewport 的宽度 initial-scale=1.0 自带 width=device-width 最佳实践 ...

  8. 【前端】移动端Web开发学习笔记【1】

    下一篇:移动端Web开发学习笔记[2] Part 1: 两篇重要的博客 有两篇翻译过来的博客值得一看: 两个viewport的故事(第一部分) 两个viewport的故事(第二部分) 这两篇博客探讨了 ...

  9. Rest API 开发 学习笔记(转)

    Rest API 开发 学习笔记 概述 REST 从资源的角度来观察整个网络,分布在各处的资源由URI确定,而客户端的应用通过URI来获取资源的表示方式.获得这些表徵致使这些应用程序转变了其状态.随着 ...

  10. 步步为营 SharePoint 开发学习笔记系列总结

    转:http://www.cnblogs.com/springyangwc/archive/2011/08/03/2126763.html 概要 为时20多天的sharepoint开发学习笔记系列终于 ...

随机推荐

  1. 游戏外挂四之利用CE和OD查找被选中怪物和怪物列表

    合肥程序员群:49313181.    合肥实名程序员群:128131462 (不愿透露姓名和信息者勿加入)Q  Q:408365330     E-Mail:egojit@qq.com 这一节我们利 ...

  2. 新春测 kinect motor

    大年30,祝所有开发伙伴新春快乐. 天天FQ, 叹国内学习成本太高 看到一篇台湾 kinect 电机控制, 赞 using Microsoft.Kinect; using System; using ...

  3. Oracle 11g default profile 默认启用密码过期180天 ORA-28001错误处理

    问题描述:客户反映客户端不能登录应用程序时不能连接.环境:AIX 5.3 + Oracle 11gR2解决:远程Telnet到数据库主机,sqlplus / as sysdba 连接后操作正常,表明数 ...

  4. Android 三级联动选择城市+后台服务加载数据库

    技术渣,大家将就着看 首先我们需要一个xml数据保存到数据库,这里我从QQ下面找到一个loclist.xml文件 <CountryRegion Name="中国" Code= ...

  5. PHP 常用函数的解释

    1.trim() 去掉字符序列左边和右边的空格 2.stripslashes() 去掉反斜线字符 3.htmlspecialchars() 把预定义的字符 "<" (小于)和 ...

  6. RP4412开发板烧写Ubuntu12.04失败原因分析解决

    Ubuntu烧写失败可能是卡的问题 问:用RP4412开发板,卡烧了光盘中的fastboot失败,现在如何补救呢? 答:INAND格式化,利用usb来升级啊. 也有文档,看升级文档. 问:这个是怎么回 ...

  7. nsmutableset

    // //  main.m //  nsmutableset // //  Created by 博博 on 16/1/11. //  Copyright (c) 2016年 com.bb. All ...

  8. 【 2013 Multi-University Training Contest 7 】

    HDU 4666 Hyperspace 曼哈顿距离:|x1-x2|+|y1-y2|. 最远曼哈顿距离,枚举x1与x2的关系以及y1与y2的关系,取最大值就是答案. #include<cstdio ...

  9. SQL数据库,使用事务执行增删改操作,给自己一个后悔的机会

    内容并不复杂,使用起来也比较简单. 主要使用以下3条SQL语句: 开始事物:BEGIN TRAN(全拼 TRANSACTION 亦可)提交事物:COMMIT TRAN回滚事务:ROLLBACK TRA ...

  10. spring通过静态方法获得properties文件的值

    获得spring bean方法 @Component public class BeanUtils implements ApplicationContextAware { private stati ...