AUTO CAD二次开发
- 格式:pdf
- 大小:131.54 KB
- 文档页数:5
实验一 ObjectARX .NET托管开发包的使用一、主要内容1、下载安装ObjectARX .NET托管开发包2、创建AutoCAD命令3、创建自定义用户菜单4、创建自定义用户工具条5、创建用户自定义窗体二、学时安排三、预习内容及要求回顾ObjectARX API和其托管API之间的对应关系;掌握不同API版本对应的开发版本;熟悉创建用户需求所要引用命名空间。
开发语言使用C#,AutoCAD版本2010,objectARX2010。
四、下载安装ObjectARX4.1下载ObjectARX不同的ACAD版本用不同的开发包及开发环境ACAD2000~ACAD2002 : VC++ 6.0ACAD2004~ACAD2006 : 2002ACAD2007~ACAD2009 : 2005ACAD2010~ACAD2011 : 2008ACAD2012~ : 2010下载ObjectARX在打开打开默认网页浏览器并浏览网站.的网页上,点击License & Download(许可&下载).填写必填字段并选择ObjectARX for AutoCAD 2010. 点击Submit(提交)按扭.在下载页, 点击Download Now(现在下载)使用下载管理器或点击Standard Download Method(标准下载方法)使用你的网页浏览器的默认下载方法下载.点击Save(保存)或用于保存文件到你的本地驱动器的选项。
指定下载ObjectARX SDK安装包文件存放的位置。
一旦安装包文件下载完成,就浏览你保存在本地的安装并双击它,安装向导将显示在ObjectARX <释放>对话框中, 指定一个新的安装位置或接受默认的安装位置。
点击Install(安装)按扭. 如果没有遇到问题,安装向导完成后关闭它安装ObjectARX向导和托管项目模板一旦ObjectARX SDK被安装,请使用默认目录c:\ObjectARX <Release>浏览它的安装文件夹。
基于C#的AutoCAD二次开发在建筑工程中的应用凌咏红,黄小微武汉理工大学计算机学院 (430070)E-mail:attachment@摘要:本文以C#为开发平台,介绍了AutoCAD二次开发技术AutoCAD ActiveX Automation,结合C#开发实例说明了运用AutoCAD ActiveX Automation进行开发的过程和方法。
关键词:ActiveX Automation; AutoCAD; C#; 二次开发1. 引言随着计算机技术的发展,计算机辅助设计已经广泛应用于各个专业的设计和研究领域。
在工程设计逐步实现自动化的今天, 通过AutoCAD二次开发技术,可以自动生成复杂的图形,从而减少了设计人员的手工操作,快速创建出符合用户要求的程序,提高设计人员的工作效率[1]。
在.NET平台中,通过在C#使用AutoCAD ActiveX技术进行AutoCAD二次开发,不但能有效地利用.NET平台的优点,也能节省开发人员的时间,以便他们能把更多的时间投入到工程设计中去。
2. AutoCAD ActiveX2.1 AutoCAD ActiveX 简介AutoCAD 通过 Automation 显示 AutoCAD 对象模型描述的可编程对象。
这些可编程对象可由其他应用程序创建、编辑和操作。
可以访问 AutoCAD 对象模型的应用程序是Automation 控制程序,任何类型的应用程序都可以访问 AutoCAD 中显示的 Automation 对象。
这些应用程序可以是独立的可执行文件、动态链接库 (DLL) 文件或某个应用程序[2]。
C#是微软公司在21世纪发展的新型编程语言,因其完全的面向对象、强大的类库支持等特性而深受广大程序员的喜爱[3]。
通过使用C#进行AutoCAD二次开发,不但能充分利用.NET平台的强大功能,进行良好的数据封装,以更好的方式进行面向对象的程序设计,同时也能更好的和其他应用程序进行数据交换。
AutoCAD 二次开发线型的定义与开发线型的定义格式在一个线型文件(.Lin)中科定义多种线型,每种线型的定义在线型文件中占两行,其格式为:* 线型名 [,线型描述]A ,定义线型的一组数据例:ACD.LIN 中的名为CENTER(中心线)的线型,其定义格式(如图)为:* CENTER ,Center ____ _ ____ _ ____ _ ____ _ ____ _ ____A , 1.25 , -.25 , .25 , -.25注:A 表示两端对齐方式1.25 表示绘制1.25个绘图单位-0.25 表示空白0.25个绘图单位0.25 表示绘制0.25个绘图单位-0.25 表示空白0.25个绘图单位0 表示绘制一个点第一行是线型名及注释,注意,线型名前“ * ”不能省略,方括号中的内容是可选项。
第二行中A表示对齐方式代码,是AutoCAD所支持的唯一线型对准方式,这种对齐方式能确保线型由长划开始,也由长划结束,定义线型的数据表示每段的长度,其中正值表示实线长度,负值表示空白长度,0表示一个点,每行总长不超过80字符。
图例中,CENTER 是该线型的名字,后面为 LATER、LTYPE 命令所显示的线型描述。
描述可以省略,但此时线型后不能再有逗号。
描述内容可以是点、空格和短线所组成的序列,也可以是对线型所实现的功能的说明,如“Use the linetype for center lines”(此线型表示中心线),用户对线型的描述(方括号中的内容),即“线型描述”,字段不能超过47个字符。
标准线型文件AutoCAD的标准线型文件在\AutoCAD\SUPPORT 目录下有两个:ACAD.LIN 和ACADISO.LIN。
(AutoCAD2008该目录为\AutoCAD 2008\UserDataCache\Support)这两个线型文件的内容完全相同,分三个部分:(1) AutoCAD 的线型定义文件(2) ISO 128 (ISO/DIS 12011)线型(3) 复合线型但两个文件中的AutoCAD线型文件和复合线型的单位不同,ACAD.以英寸为单位,而ACADISO.LIN以毫米为单位。
CAD二次开发教程汇总选择AutoLISP还是VBA?我听到许多关于这样的问题。
AutoLISP与VBA有什么不同呢?我要学习怎样二次开发AutoCAD,但我不能确定先学哪一个工具。
哪一个工具更好呢?简洁的回答是他们都好,你应当两者都学。
分析我的回答,你可以知道这不是最快的解决办法,但在你做出一个完整的决定前,一个完整的回答需要时间和更多的问题。
举个例子:你懂BASIC吗?如果你懂,那么VBA学起来会更快一些;如不懂BASIC,那么你学过其它的编程语言吗?如果你学的正好是FORTRAN或PASCAL的话,那也很好。
因为如果你已掌握了这两种语言,则VBA的学习将十分简单。
如果你一点儿也不懂程序设计语言,那么AutoLISP将会是适合你学习的语言。
如果你正好没有程序设计的知识和经验,那么在AutoCAD里你应当学习什么语言?这个问题很难回答。
这取决于你希望完成什么样的工作?每种语言都有其优点和缺点,AutoLISP擅长建立新命令和产生已有命令的连接。
VBA擅长执行包括在其他应用程序中的组件,如Microsoft的Excel和Access。
AutoLISP是基于表处理的编程体系,它允许程序员随意地存储和操作传送信息,然而VBA部件包括数据和对复杂情况的各种有效操作,这就是问题变得复杂的地方,除非你已真正懂得这些工具的好处,否则,很难回答你应该选择哪一个,但你应当知道你想完成什么和允许完成什么,因为它将引导你向正确的解决方法前进。
稍后,你会发现这一简洁的回答是恰当的,你将会学习两种语言,你要做的一些事,可以在AutoLISP中用十分简单的几行代码来解决。
另一方面,你会发现VBA提供了一些最简捷的应用程序解决方案。
例如,建立一个复杂的包括许多对话框的应用,AutoLISP支持对话框,但是不如VBA支持的程度强,同时,在AutoCAD中一个任务的情况下,VBA提供在对象级别上访问AutoCAD系统,但它对AutoCAD的一些基本命令的支持性并不是很好,而AutoLISP在这一点上却做的很好。
常用的CAD二次开发语言:1 AutoLISP 全名是LIST Processing Language,LISP是List Processor(表处理程序)的缩写,cad系统的第一代开发工具,是一种嵌入在AutoCAD内部的编程语言,是低版本AutoCAD的首选编程语言。
它是一种表处理语言,是被解释执行的,任何一个语句键入后就能马上执行。
其缺点是继承了LISP语言的编程规则而导致繁多的括号。
2 ADS 全名是AutoCAD Development System,它是AutoCAD的C语言开发系统,丰富和保留了autolisp语言的功能,是一组可以用C语言编写AutoCAD应用程序的头文件和目标库,不包含于cad内部,包含c语言的全部功能。
ADS速度快,又采用结构化的编程体系,因而很适合于高强度的数据处理。
3 ObjectARX 崭新面向对象的开发AutoCAD应用程序的工具,以为编程语言,提供可与AutoCAD直接交互的开发环境。
可以与autolisp和ADS应用程序协同工作。
ObjectARX也没有包含在AutoCAD中,可在AutoDESK公司网站中去下载。
二次开发者可以充分利用AutoCAD的开放结构,直接访问AutoCAD数据库结构、图形系统以及CAD几何造型核心,以便能在运行期间实时扩展AutoCAD的功能,创建能全面享受AutoCAD固有命令的新命令。
ObjectARX的核心是两组关键的API,即AcDb(Auto CAD数据库)和AcEd(Auto CAD编译器),另外还有一些重要组件,如AcRX(Auto CAD实时扩展)、AcGi(Auto CAD图形接口)、AcGe(Auto CAD几何库)、ADSRX(Auto CAD开发系统实时扩展。
ObjectARX还可以按需要加载应用程序;使用ObjectARX进行应用开发还可以在同一水平上与Windows系统集成,并与其它Windows应用程序实现交互操作。
基于C#的AutoCad⼆次开发--第⼀章--环境搭建及⼏种⼆开模式Autocad的开发形式包括visual lisp、objectarx、vba、.Net等等,其中基于.Net平台的C#语⾔学习曲线较为平缓,使⽤该语⾔进⾏AutoCad 的⼆次开发效率较⾼。
本⽂主要记录了使⽤C#进⾏AutoCad⼆次开发的环境搭建和⼏种⼆次开发的模式。
学习资料:1. Autocad .Net开发指南(中⽂版),此为欧特克公司提供的官⽅⽂档;2. AutoCad官⽹,在开发⼈员板块可以查阅官⽅提供的各种类库;3. b站的AutoCad_C#⼆开视屏,链接如下:4. 百度,google......软件配置:Autocad2014 + objectarx2014 + AutoCAD_2014_dotnet_wizards + vs2013;注:此配置不是唯⼀的,因为.NET框架可向下兼容;第⼀节:搭建环境1.1 创建项⽬在vs中创建⼀个类库项⽬,适⽤于.dll和对话框应⽤程序的开发。
1.2 引⽤类库从objectarx2014中引⼊下图所⽰类库,并且对于所有类库,右击->属性->复制到本地->false;1.3 框架及⽬标平台做完上述操作,建议先不要动项⽬的框架及⽬标平台(右击->项⽬->应⽤程序or⽣成),如果编译出问题,再调整这两项,即注意:平台要与Autocad相匹配:是x64 or x32;框架也要相匹配,看是否和当前Autocad版本相兼容。
第⼆节:代码编写在正式写代码之前,需要了解你想做哪种形式的Cad⼆次开发,如:.dll; Ribbon;对话框应⽤程序等等。
不同形式的开发,其代码编写也有所不同。
2.1 载⼊动态链接库(.dll)这应该是较为常⽤的,且⽐较简单快捷的⼀种开发形式。
可以⽤其来编写⼀些⼩的功能,类似于在Cad下⽅的编辑框中输⼊⼀些命令(Command)。
具体开发如下:在public class xxx下⽅编写:[Command("xxx")] //可以理解为:当写完代码并加载⾄cad后,在编译框键⼊命令xxx,从⽽执⾏操作。
第二讲AUTOCAD及其二次开发第一节AutoCAD二次开发特性2.1.1 AutoCAD开发系统概述AutoCAD系统是美国Auto desk公司研制开发的通用绘图系统,自1982年问世以来,到目前为止已经发展到第15版(后更名为AutoCAD2000版)。
该系统不仅具有丰富的图形编辑功能和良好的用户界面,而且性能价格比合理,深受广大工程技术人员的普遍欢迎,目前已经在全世界广泛使用。
AutoCAD系统之所以受到广泛的欢迎,不仅是因为它功能强大、支持平台多、用户界面良好,更主要的是它具有开放的体系结构和完善的开发系统,能够提供各种编程工具和接口,满足不同层次用户的需要。
用户利用AutoCAD的开发系统,结合应用实际进行二次开发,就可以开发用户自己的专用软件。
Auto desk公司一开始就十分注重AutoCAD开发工具的开发研究,早在AutoCAD 2.17版中就开始引入LISP语言,形成具有AutoCAD系统特色的Auto LISP语言,这就是AutoCAD 系统的第一代开发工具。
Auto LISP是一个嵌人AutoCAD内部的LISP编程语言,具有人工智能性,是LISP语言和AutoCAD有机结合的产物,是一种适合于进行CAD项目开发的非结构化设计语言。
Auto LISP针对AutoCAD增加了许多功能,例如将Auto LISP程序和AutoCAD的命令透明地结合起来,使程序和绘图完全融为一体,直接访问AutoCAD的图形数据库,为实时修改图形、实现交互式绘图提供了极大的方便。
Auto LISP是开发AutoCAD 图形软件的强有力工具。
在随后的几个版本中,Auto LISP语言不断进行扩充和完善。
由于Auto LISP语言是一种解释性语言.在装入运行的过程中不能进行编译和连接,降低程序的运行速度,所以在一定程度上制约了AutoCAD系统开发性能的提高。
20世纪80年代末期,AutoCAD系统在R11版中,除丰富和保留Auto LISP语言的功能外,又引入了C语言开发工具ADS。
名称注释与操作方法图层管理孤立物体所在层AS 输入命令按空格选择要显示的图层,未选择的图层将会关闭关闭非当前层FA 先选择好所要显示的图层,输入命令按空格冻结物体所在层FV 选择需要关闭的图层,输入命令按空格解冻物体所在层TA 解开所有已经关闭的图层,输入命令按空格&清理无用图层图块EA 没有被使用过的图层会被清理出图层管理器,输入命令按空格&恢复所有层RS 恢复被清理出图层管理器的图层,输入命令按空格绘图命令画直线 A 输入命令按空格画圆 C 输入命令按空格椭圆EL 输入命令按空格矩形REC 输入命令按空格多线ML 输入命令按空格,输入S可以修改线之间的距离填充H 输入命令按空格文本MT 输入命令按空格偏移R 输入命令按空格射线RA 输入命令按空格构造线XF 输入命令按空格,输入V或H画竖直线或水平线画剖视符号SS 输入命令按空格,输入字母(A,B,C……)再按空格选择剖视面技术要求注解ZT 输入命令按空格,选择合适位置点击鼠标左键DXF输出DXF 将图元层选择为0层,关闭非当前图层,输入DXF命令选择要转换的图层按空格,输入零件名称保存修改命令移动FD 输入命令按空格或先选择图形再输入命令空格复制CC 输入命令按空格或先选择图形再输入命令空格镜像FG 输入命令按空格或先选择图形再输入命令空格修剪TR阵列AR旋转RT删除 E分解X延伸EX拉伸S缩放SC修改文本ED填写图框AD格式刷G复制成块CV原地造块XV参考式旋转RR单点剪断BF多重复制AA快速倒圆角FR删除式偏移ES批量修改孔径BD删除式镜像ER拷贝式旋转CR修改多义线宽度EW断线连接WW检查标注尺寸是否修改DMC 输入命令按空格后框选图形后按空格,括号内显示的值为实际值尺寸标注角度标注DA直线标注DF斜线标注DG直径标注DD圆弧标注DR测量命令LI圆孔自动标注CF 输入命令按空格两次框选图形后按空格,在图框上选择放置点圆孔自动直径尺寸标注QC标识相同孔径的图孔BT带箭头引出线LE功能命令插入A3图框A3插入A4图框A4插入明细栏TT计算器CM设定捕捉模式DS/SE自动填写图框WF恢复上一个视图V后退U(打印文件)CTRL+P攻芽孔TAP自动标注CAD剖视图标注SCT写块W常用图层的命令线形颜色代号1.零件图元放在Q层;颜色白色02.折弯线放在BE层;颜色洋红色bend3.标注线放在DI层;颜色青色dim4.文本层放在TE层;颜色绿色text5.中心线CE 颜色红色center6.工艺孔/螺柱孔NC 颜色青色NCT。
一、什么是AutoCAD二次开发:针对自己使用要求,优化,改善
软件使用功能、方式,用编程语言在CAD基础上写的程序二、应用背景:设计中一般都采用AutoCAD等设计软件,在复
杂CAD问题或特殊用途的设计设计中,依据原有软件的功能往往难以解决问题,在此情况下,只是会适用软件的基本功能是不够的,根据客户的特殊用途进行软件的客户化定制和二次开发,往往能够大大提高企业的生产效率和技术水平。
VBA即Mcrosoft office中的Visual Basic for Applications,它被集成到AutoCAD2000中。
VBA为开发者提供了一种新的选择,也为用户访问AutoCAD2000中丰富的技术框架打开一条新的通道。
VBA和AutoCAD2000中强大的ActiveX自动化对象模型的结合,代表了一种新型的定制AutoCAD的模式构架。
通过VBA,我们可以操作AutoCAD,控制ActiveX和其它一些应用程序,使之相互之间发生互易活动。
(4)通过系统对话框设置某些路径。
这些操作在程序开发成功后向其它AutoCAD系统上安装应用,特别是需要大批安装时,需要进行很多文件检索、内容增删、子目录创建、文件拷贝、系统设置等繁琐工作,如能令上述工作全部自动进行,使整个二次开发程序在无人干预的情况下嵌入系统,将大大提高工作效率
(5)面向对象,让用户能够根据自己的需要编写相关程序,进行二次开发。
五、AUTOCAD的历史:
六、AUTOCAD二次开发技术的应用领域:AUTOCAD二次开发技术广泛应用于机械、电子、建筑等领域、为标准件、常用件的参数化设计提供了强有力的支持。