QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

全站
7天前
查看: 2172|回复: 1
收起左侧

[讨论] AUTOCAD 二次开发简介

[复制链接]
发表于 2009-8-21 23:58:32 | 显示全部楼层 |阅读模式 来自: 加拿大

马上注册,结识高手,享用更多资源,轻松玩转三维网社区。

您需要 登录 才可以下载或查看,没有帐号?注册

x
AutoCAD的二次开发主要涉及以下内容:(1)编写各种用户自定义函数并形成若干LISP、ARX、VLX或ADS文件,以及一些DCL文件。(2)建立符合自己要求的菜单文件,一般可在AutoCAD原菜单文件内添加自己的内容,然后经交互方式加入到系统中去。(3)在系统的ACAD.LSP或类似文件中加入某些内容以便进行各种初始化操作,如在启动时立即装入一些文件等。(4)通过系统对话框设置某些路径。这些操作在程序开发成功后向其它AutoCAD系统上安装应用,特别是需要大批安装时,需要进行很多文件检索、内容增删、子目录创建、文件拷贝、系统设置等繁琐工作,如能令上述工作全部自动进行,使整个二次开发程序在无人干预的情况下嵌入系统,将大大提高工作效率。, q' F: \; |6 z1 i# j5 I1 z
4 {! B+ e  f2 d4 _6 {" u
AutoCAD荣登全球绘图软件的龙头宝座,主要是因为它具有开放的体系结构。它允许用户和开发者采用高级编程语言对其进行扩充和修改,即二次开发,能最大限度地满足用户的特殊要求。AutoCAD第一版于1982年11月由AutoDESK公司推出,其二次开发语言及工具也在不断地涌现9 }7 B6 f$ T* w: \& p2 E5 I

" U4 m( |3 X) P. o1 AutoLISP
: Q9 M! I6 j2 [9 S7 h# y% u# G4 B
/ J9 B  m  d) \AutoLISP的全名是LIST Processing Language,她出现于1985年推出的AutoCAD R2.18中,是一种嵌入在AutoCAD内部的编程语言,是LISP原版的一个子集,她一直是低版本AutoCAD的首选编程语言。它是一种表处理语言,是被解释执行的,任何一个语句键入后就能马上执行,它对于交互式的程序开发非常方便。其缺点是继承了LISP语言的编程规则而导致繁多的括号。
  S5 c( f" E& {# K* |" N2 s
# b: A2 `! x6 Q. x) b3 ADS/ U0 d& t' v9 B% g  E

) |1 I! j6 ]4 t3 E+ h6 tADS的全名是AutoCAD Development System,它是AutoCAD的C语言开发系统,ADS本质上是一组可以用C语言编写AutoCAD应用程序的头文件和目标库,它直接利用用户熟悉的各种流行的C语言编译器,将应用程序编译成可执行的文件在AutoCAD环境下运行,这种可以在AutoCAD环境中直接运行的可执行文件叫做ADS应用程序。ADS由于其速度快,又采用结构化的编程体系,因而很适合于高强度的数据处理,如二次开发的机械设计CAD、工程分析CAD、建筑结构CAD、土木工程CAD、化学工程CAD、电气工程CAD等。2 F. ~1 D0 s5 {  O& N! @: B1 ^6 w
, {) ~  X/ l3 a/ b/ k6 {/ w/ ?5 E7 d
4 ObjectARX! o4 u. p. b2 M# i9 T* `0 [
7 r+ ~- h- B' f5 E& C
ObjectARX是一种崭新的开发AutoCAD应用程序的工具,她以C++为编程语言,采用先进的面向对象的编程原理,提供可与AutoCAD直接交互的开发环境,能使用户方便快捷地开发出高效简洁的Auto CAD应用程序。ObjectARX并没有包含在AutoCAD中,可在AutoDESK公司网站中去下载,其最新版本是ObjectARX for AutoCAD 2000,它能够对AutoCAD的所有事务进行完整的、先进的、面向对象的设计与开发,并且开发的应用程序速度更快、集成度更高、稳定性更强。ObjectARX从本质上讲,是一种特定的C++编程环境,她包括一组动态链接库(DLL),这些库与AutoCAD在同一地址空间运行并能直接利用AutoCAD核心数据结构和代码,库中包含一组通用工具,使得二次开发者可以充分利用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应用程序实现交互操作。& Q) Q) r3 D0 @8 k3 R6 e
7 ]' D! y$ s6 X& i$ h: B3 r9 Y" E
5 VisualLISP1 U* F, s% n' a& h" W" R$ i
% a3 B! N! ]3 e8 l7 O9 L  @; e' y
VisualLISP已经被完整地集成到AutoCAD 2000中,她为开发者提供了崭新的、增强的集成开发环境,一改过去在AutoCAD中内嵌AtuoLISP运行引擎的机制,这样开发者可以直接使用AutoCAD中的对象和反应器,进行更底层的开发。用它开发AutoLISP程序的时间被大大地缩短,原始代码能被保密,以防盗版和被更改;能帮助大家使用ActiveX对象及其事件;使用了流行的有色代码编辑器和完善的调试工具,使大家很容易创建和分析LISP程序的运行情况。在VisualLISP中新增了一些函数:如基于AutoLISP的ActiveX/COM自动化操作接口;用于执行基于Auto CAD内部事件的LISP程序的对象反应器;新增了能够对操作系统文件进行操作的函数。9 w+ @4 k5 r% V- e  o# S* V

' f) D8 f; u$ M3 R6 VBA
, d, X' Y+ v2 o9 c8 I' _2 l; M' Y( g% d
VBA 即Mcrosoft office中的Visual Basic for Applications。VBA为开发者提供了一种新的选择,也为用户访问AutoCAD 2000中丰富的技术框架打开一条新的通道。VBA和AutoCAD中强大的ActiveX自动化对象模型的结合,代表了一种新型的定制AutoCAD的模式构架。通过VBA,我们可以操作AutoCAD,控制ActiveX和其它一些应用程序,使之相互之间发生互易活动。
发表于 2009-8-30 21:50:58 | 显示全部楼层 来自: 中国河南郑州
我一直使用AutoLISP、VisualLISP进行AutoCAD二次开发。
/ J, a( [0 M8 g+ A    Visual LISP作为一个完整的集成开发环境(IDE),具有自己的窗口和菜单,但它并不能独立于AutoCAD运行。当用户从Visual LISP IDE中运行AutoLISP程序时,经常需要与AutoCAD图形交互或在命令窗口响应程序提示。如果Visual LISP 把控制传给AutoCAD时AutoCAD已被最小化,用户必须手动恢复并激活AutoCAD才可继续,Visual LISP不会自动恢复AutoCAD 窗口。相反,Visual LISP窗口中会出现并保持一个 Visual LISP符号,直到激活AutoCAD并响应了在AutoCAD命令提示处的提示。
/ b1 j5 w: ^& j0 ?7 `* L1 o+ g2 C5 i    Visual LISP IDE的主要组成部分和功能为:
+ Z+ @$ y- h5 c0 ?: a" Y) {% Y7 P; ]    (1) 语法检查器:可识别AutoLISP语法错误和调用内置函数时的参数错误。
. C1 `' [5 q6 w( y8 r2 A% \( U! T    (2) 文件编译器:改善了程序的执行速度,并提供了安全高效的程序发布平台。
4 d/ T9 \& ?6 |# h' V    (3) 源代码调试器:专为AutoLISP设计,利用它可以在窗口中单步调试AutoLISP源代码,同时还在AutoCAD图形窗口显示代码运行结果。, Q$ Y- t/ @/ o
    (4) 文字编辑器:可采用AutoLISP和DCL语法着色,并提供其他AutoLISP语法支持功能。
7 H' c6 Y4 K) k* Z    (5) AutoLISP格式编排程序:用于调整程序格式,改善其可读性。
/ K0 J& u2 q0 B3 @    (6) 全面的检验和监视功能:用户可以方便地访问变量和表达式的值,以便浏览和修改数据结构。这些功能还可用来浏览AutoLISP数据和AutoCAD图形的图元。
8 u' E/ o# M1 x2 V& C8 @    (7) 上下文相关帮助:提供AutoLISP函数的信息。强大的自动匹配功能方便了符号名查找等操作。
/ l: M6 i7 I5 k$ b; X( s    (8) 工程管理系统:维护多文件应用程序更加容易。
/ s8 H/ V0 x% s- C- S1 I6 \. M3 ~    (9) 打包功能:可将编译后的AutoLISP文件打包成单个模块。8 C1 P( c5 _+ z  W
    (10) 桌面保存和恢复能力:可保存和重用任意VLISP任务的窗口环境。( [& A2 ^  g- [: c; B% X( ^
    (11) 智能化控制台窗口:它给AutoLISP用户提供了极大的方便,从而大大提高了用户的工作效率。控制台的基本功能与AutoCAD文本屏幕类似,还提供了许多交互功能,例如历史记录功能和完整的行编辑功能等。
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


Licensed Copyright © 2016-2020 http://www.3dportal.cn/ All Rights Reserved 京 ICP备13008828号

小黑屋|手机版|Archiver|三维网 ( 京ICP备2023026364号-1 )

快速回复 返回顶部 返回列表