第1讲 AutoCAD二次开发概述
- 格式:ppt
- 大小:3.37 MB
- 文档页数:54
第 1章 Hello World: 工程的创建在这一章中,我们将不使用ObjectARX向导来创建一个新的工程。
我们将使用Visual Studio .NET来创建一个新的类库工程。
通过这个工程,你可以创建一个能被AutoCAD装载的.NET dll文件。
这个dll文件会向AutoCAD加入一个名为“HelloWorld”的新命令。
当用户运行这个命令后,在AutoCAD 命令行上将显示“Hello World”文本。
1) 启动Visual ,选择”文件>新建>工程”(File> New> Project)。
在新建工程对话框中选择工程类型为”Visual Basic 工程”,然后选择”类库”模板,在工程名字框中输入”Lab1”,然后选择工程存放的位置。
点击确定按钮来创建工程。
2) 在工程的Class1.vb文件中,一个公有类“Class1”已经被系统自动创建了。
接下来向这个类加入命令。
要加入命令,你必须使用AutoCAD .NET托管封装类。
这些托管封装类包含在两个托管模块中。
要加入对这两个托管模块的引用,请用鼠标右键单击”引用”然后选择”添加引用”。
在弹出的”添加引用”对话框中选择”浏览”。
在”选择组件”对话框中,选择AutoCAD 2006的安装目录(这里假定为C:\Program Files\AutoCAD 2006\),在这个目录下找到“acdbmgd.dll”然后选择并打开它。
再一次选择”浏览”,在AutoCAD 2006的安装目录下找到“acmgd.dll”并打开它。
当这两个组件被加入后,请单击”添加引用” 对话框中的”确定”按钮。
正如它们的名字所表示的,acdbmgd.dll包含ObjectDBX 托管类,而acmgd.dll包含AutoCAD托管类。
3) 使用对象浏览器(Visual 的”查看>其它窗口>对象浏览器”菜单项)来浏览加入的两个托管模块所提供的类。
浅谈AutoCAD的二次开发林学与园林学院 06园林傅欣蕾摘要:通过对AutoCAD软件发展史的概述,从中归纳出CAD的总体发展趋势。
从当今各行业所需的CAD专业化功能,提出对其进行二次开发的意义及具体实施步骤。
关键词:AutoCAD 发展史二次开发专业化功能1.AutoCAD的发展简史:1.1、第一次CAD技术革命—曲面造型系统60年代出现的三维CAD系统只是极为简单的线框式系统。
这种初期的线框造型系统不能有效表达几体数据间的拓扑关系。
进入70年代,随着贝赛尔算法促使人们用计算机处理由线及曲面问题变得可行。
1.2、第二次CAD技术革命—实体造型技术1979年世界上第一个完全基于实体造型技术的大型CAD软件发布。
由于实体造型技术能够精确表达零件的全部属性,在理论上有助于统一CAD、CAE、CAM的模型表达,给设计带来了惊人的方便性。
1.3、第三次CAD技术革命—参数化技术1.4、第四次CAD技术革命—变量化技术成功运用参数化技术之后,开发人员发现了参数化技术尚有许多不足之外。
首先,“全尺寸约束”这一硬性规定就干忧和制约着设计者创造力及想象力的发挥。
再者,如在设计中关键形体的拓扑关系发生改变,失去了某些约束特征也会造成系统数据混乱。
1993年全新体系结构的I-DEAS Master Series软件问世,它第一次将变量化付诸实践。
变量化技术既保持了参数化技术的原有优点,同时又克服了它的不足之处。
无疑,变量化技术成就了SDRC,也驱动了CAD发展的第四次技术革命。
1.5、CAD的发展方向任何一种软件都是有缺陷而非完美无瑕的。
AutoCAD这一软件也是一样,只有在不断的发展中,找到自己的不足力求弥补,才能趋向臻化,达到一种完美。
纵观CAD的发展史,我们可以大略地看出该软件是朝着“人工智能化”、“专业应用化”等方向发展的。
而实现这样的发展方向的最佳手段就是通过对CAD的二次开发。
将各类专业设计技术研制成CAD系统的各类设计工具和知识,从而使使用者能按照专业设计的方向进行,可以大大提高CAD的设计效率。
AutoCAD二次开发工具综述AutoCAD是目前微机上应用最为广泛的通用交互式计算机辅助绘图与设计软件包。
AutoCAD的强大生命力在于它的通用性、多种工业标准和开放的体系结构。
其通用性使得它在机械、电子、航空、船舶、建筑、服装等领域得到了极为广泛的应用。
但是,不同的行业标准使得各领域在使用AutoCAD的过程中均需根据自身特点进行定制或开发。
Autodesk公司为满足广大用户的需求,自AutoCAD v2.18版至AutoCAD2000的短短十几年间,就相继推出了三代二次开发工具,如图1所示。
可以说,AutoCAD的通用性为其二次开发提供了必要条件,而AutoCAD开放的体系结构则使其二次开发成为可能。
图1AutoCAD二次开发工具的演变下面对AutoCAD的三代开发工具进行浅析。
一、第一代开发工具——AutoLISPAutoLISP是1986年随AutoCAD v2.18提供的二次开发工具。
它是一种人工智能语言,是嵌入AutoCAD内部的COMMON LISP的一个子集。
在AutoCAD的二次开发工具中,它是唯一的一种解释型语言。
使用AutoLISP可直接调用几乎所有的AutoCAD命令。
AutoLISP语言最典型的应用之一是实现参数化绘图程序设计,包括尺寸驱动程序和鼠标拖动程序等。
另一个典型应用就是驱动AutoCAD 提供PDB模块构成DCL(Dialog Control Language)文件,创建自己的对话框。
AutoLISP具有以下优点:(1)语言规则十分简单,易学易用;(2)直接针对AutoCAD,易于交互;(3)解释执行,立竿见影。
AutoLISP的缺点是:(1)功能单一,综合处理能力差;(2)解释执行,程序运行速度慢;(3)缺乏很好的保护机制,源程序保密性差;(4)LISP用表来描述一切,并不能很好地反映现实世界和过程,跟人的思维方式也不一致;(5)不能直接访问硬件设备、进行二进制文件的读写。
第4章AutoCAD二次开发技术4.1 AutoCAD开发系统概述AutoCAD的二次开发途径主要有两个,即文件开发和程序开发。
文件开发是指根据用户的具体开发需要,按照AutoCAD提供的方法和文件格式,通过编辑AutoCAD系统所支持的文本文件(如ACAD.MNU和ACAD.LIN等)或建立同种类型新的文本文件,来开发AutoCAD,使其满足用户特定需要的方法。
程序开发是指利用AutoCAD提供的编程环境和开发工具(称为AutoCAD应用程序接口,缩写为API),通过编写程序来实现对AutoCAD开发的方法。
借助于程序开发,可为AutoCAD扩充新的命令或定义,以满足用户具体需要。
表4-1 文件开发可实现的开发内容和文件类型文件类型开发内容ACAD.PGP AutoCAD命令的用户化(定义外部命令和命令别名等)ACAD.LIN, *.LIN 修改标准线型,建立用户自定义线型及线型库ACAD.PAT, *.PAT 修改标准填充图案,建立用户自定义图案及图案库*.SCR 建立用户的命令脚本文件,自动执行一系列AutoCAD命令*.SLD, *.SLB 建立用户的幻灯片及幻灯片库ACAD.SHP, *.SHP 建立用户的自定义符号库和自定义字体文件*.MNU, *.MNS 开发用户的自定义菜单(包括下拉菜单、工具栏菜单、图像菜单、屏幕菜单、定点设备菜单和数字化仪菜单等)*.DXF 实现AutoCAD与其它CAD系统之间数据交换的中间文件,也是AutoCAD与其它用户应用程序之间图形数据的中间文件*.DCL 建立用户的自定义对话框表4-2 程序开发可实现的开发内容和文件类型程序文件类型AutoCAD简称语言环境可执行文件类型*.LSPAutoCAD*.LSP AutoLISP*.CPP, *.C ARX Visual C++ *.EXEBasic*.EXEVisualX*.BAS ActiveAutomation下图反映了AutoCAD 二次开发工具的演变:1986198719881989199019911992199319941995199619971998199920002001AutoLISPADS DCL ADS-RX Object ARX Active XAutomationVBA Visual LISP 图4-1 AutoCAD 二次开发工具的演变4.2 命令的用户化4.2.1 程序参数文件(ACAD.PGP)的结构与功能AutoCAD 程序参数文件(ACAD.PGP)是一个文本文件,用于存放AutoCAD 定义的命令。
autocad 二次开发提取表格内容-范文模板及概述示例1:AutoCAD是一款广泛应用于建筑设计、工程图纸制作等领域的软件。
它具有强大的功能和灵活性,可以满足不同领域的需求。
而AutoCAD的二次开发则是指利用AutoCAD的开发接口(API)来扩展和定制AutoCAD 的功能,使之更适应特定应用场景的需求。
在AutoCAD中,表格是我们常见的元素之一。
它可以用来呈现和组织大量的数据,比如楼层平面图中的设备列表或者材料清单等。
而二次开发提取表格内容则是指通过编程的方式从AutoCAD图纸中自动提取出表格中的数据,以便快速、准确地分析和处理这些数据。
要实现二次开发提取表格内容,我们可以利用AutoCAD的开发接口。
首先,我们需要了解AutoCAD的对象模型,包括图纸、图层、块定义、实体等的层次关系和属性。
然后,我们可以通过编程的方式遍历图纸中的所有对象,找到我们需要的表格对象。
一种常用的方法是通过遍历实体对象,判断其属性来确定是否为表格。
AutoCAD中的表格是由网格、行和单元格组成的,我们可以通过判断实体类型以及相关属性,比如图层、颜色、线型等来定位表格对象。
一旦找到了表格对象,我们就可以进一步遍历其子对象,即行和单元格,从中提取出具体的数据。
在提取表格内容的过程中,我们还可以利用AutoCAD的属性和方法来处理数据。
比如,我们可以通过AutoCAD提供的计算属性来进行数据统计和分析。
另外,我们还可以使用AutoCAD的绘图功能,将提取出的数据在图纸上进行可视化展示,以便更直观地理解和分析数据。
需要注意的是,二次开发提取表格内容需要具备一定的编程知识和AutoCAD开发经验。
对于不熟悉编程的用户来说,建议参考AutoCAD 官方文档和相关的教程,或者寻求专业的开发人员的帮助和指导。
总之,利用AutoCAD的二次开发功能可以轻松地提取出表格内容,实现快速、准确的数据分析和处理。
这为建筑设计师、工程师等提供了更高效、便捷的工作方式,并推动了AutoCAD在各个领域的广泛应用和发展。
AutoCAD二次开发技术概述AutoCAD 是一款非常强大的计算机辅助设计软件,但并不能满足所有用户的特殊需求。
因此提供了以下四种方式来对其进行二次开发,以扩展其功能。
AutoLispAutoLisp 是一种嵌入在 AutoCAD 内部的二次开发语言,它来源于人工智能语言LISP,是被解释执行的,任何一个语句键入后就能马上执行。
在早期的 AutoCAD 版本中就提供了 AuotLisp 语言进行二次开发。
AutoLISP 的优点:•语言规则十分简单,易学易用。
•直接针对AutoCAD,易于交互。
•解释执行,立竿见影。
AutoLisp的缺点:•功能单一,综合处理能力差。
•解释执行,程序运行速度慢。
•缺乏很好的保护机制,源程序保密性差。
•LISP用表来描述一切,并不能很好地反映现实世界和过程,跟人的思维方式也不一致。
•不能直接访问硬件设备、进行二进制文件的读写。
VBAAutodesk公司自 AutoCADR14.01 版开始,内置了VBA开发工具。
VBA(Visual Basic for Application)是一种嵌入AutoCAD内部基于对象的集成编程环境,已经被集成到AutoCAD2000以后所有的版本中。
ObjectARXObjectARX 以C++为编程语言,采用先进的面向对象的编程原理,提供可与AutoCAD 直接交互的开发环境,使用户能开发出强大的功能程序。
ObjectARX 的学习难度最大,但功能也最强大。
.Net.Net 是基于 架构直接进行AutoCAD二次开发的一种新技术。
从 AutoCAD 2006 版本开始支持 .net 进行二次开发。
相较于ObjectARX,学习成本与难度明显降低,并且功能也很强大,是专业进行 AuotCAD 二次开发的首选语言。
总结AutoCAD 提供了强大的二次开发功能。
如果你是一名设计人员,想通过二次开发增强工作效率,推荐学习AutoLisp。