QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

查看: 2162|回复: 3
收起左侧

[已答复] CAD二次开发

[复制链接]
发表于 2008-7-28 16:20:59 | 显示全部楼层 |阅读模式 来自: 中国浙江杭州

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

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

x
现在AutoCAD二次开发用的是什么啊?
( s4 [# h" W3 C6 p. B  `* R# y! x' [5 y& N& _3 O8 w
多谢!!
$ }* Z+ R& v8 p8 H1 x2 ^* s6 r, F% D& g0 U. x# p
[ 本帖最后由 2005llnn 于 2008-7-28 16:38 编辑 ]
 楼主| 发表于 2008-7-28 16:22:23 | 显示全部楼层 来自: 中国浙江杭州
以前用过autolisp, VC等,想再检起来
发表于 2008-7-28 18:35:33 | 显示全部楼层 来自: 中国辽宁鞍山
2000版本以后有了Visual Lisp IDE开发环境,使LSP语言开发更为方便,特别是在格式方面功能比较强,在括号匹配、纠错等方面也很不错,我总觉得VLISP比VC什么的开发CAD程序要好
发表于 2008-7-29 15:55:39 | 显示全部楼层 来自: 中国浙江宁波
转载一篇文章给你看看:9 u* e2 W, m  M0 l5 k: l+ X
1)Visual LISP
' U0 U* e  g  V; d2 c9 c+ h* P适于描述人机交互操作的过程,善于编写模拟设计师思路的专业设计程序。对于各种用户输入的接收、错误识别与恢复等操作具有相当优秀的功能,尤其是善于充分发挥CAGD功能的巨大作用。 + d* J& M+ m' l! z1 z7 t# |
过去AutoLISP 最大的不足是不能编译,现在已经被 VLISP 圆满解决了,编译成VLX 的老的AutoLISP 程序,其效率比解释运行条件下提高了5~8倍。
( v6 G6 b- \3 p7 I9 T# l2)ADS + Z) m" P) G0 K0 ?; m0 q
曾经是在 AutoLISP 之后的一种用户程序,在 R14 之前的AutoLISP 程序虽然是解释运行,仍比 ADS 程序快一些,因为实际上ADS是用AutoLISP与AutoCAD交互。自AutoCAD R14已经不再支持和发展 ADS程序设计模式,同时却增加了Visual LISP,以进一步提高AutoLISP 的整体性能。
$ t' u( J, p8 t' _3)VBA
$ ~0 ^- ?! \# Y9 K1 @% r1 o自 R14开始嵌套在AutoCAD 之中的程序设计方法,VBA是根据微软公司的规则,在每一个 Windows 下的应用软件都必须具有的功能。
" S0 e) f* @" I: _' I! P: L其优点是可以很容易地使用 Windows 系统资源,使AutoCAD能容易地与其他Windows下的应用软件交互。VBA 对话框设计能力比 DCL 好得多,多图档环境下的应用程序也比也比VLISP提供了更多的支持。由于它是使用ActiveX与AutoCAD交互,程序设计比较复杂。会成为与VLISP并列的另一种专业用户程序设计语言,不太容易学会。* p5 [* Q4 ~8 K+ ?0 m' Y
在设计过程模拟类的程序设计中,VBA明显不如 AutoLISP那样顺利,毕竟 AutoLISP 脱胎于人工智能语言。另外,如果 VBA 作者因为“疏忽”,没有提供相应的方法和属性,老的AutoLISP能够访问的对象数据、能够激活的某些AutoCAD对话框,VBA却不能。VBA虽然不是编译运行,数据结构和程序写法却像ARX一样相当严格,这对于工程师来说,需要有一个适应过程,你只能按照VBA的可能去组织自己的数据,而不能像VLISP那样按照专业设计要求去创建数据结构。
3 {( w, k7 a% c: q比较明显的几个缺憾是:VBA中不能像VLISP那样几乎随心所欲地使用AutoCAD命令,只能象脚本文件的模式,以字串方式向AutoCAD命令行发送一串响应,这个字串的内容也只好在自己的程序中生成和进行数据转换。另外,由于VBA是以对象作为数据处理的基本单元,在VLISP中堪称特色的CAGD程序编法,VBA则很难实现。因此像Trim、Extend、Dim-Diameter之类的命令都不能真正实施,要想完成这样的操作,相关数据只能在程序中自己计算。这样,程序设计就不能充分利用AutoCAD的操作技巧,必然复杂和罗嗦。放着AutoCAD优秀的数据库,却不能充分发挥它的作用,本来能用AutoCAD完成的动作,却要自己编程实现。这就是VBA最大的缺憾。VBA 另外的问题是不能编译,源程序始终以相当容易接近的方式,暴露在最终用户面前。很容易由于用户的误操作,使曾经正常的应用程序出错甚至崩溃。这正好是老的 AutoLISP 的致命缺点,使用 VLISP 2000的程序包编译功能,目前还不能将 VBA 包装进去之后解决源代码加密的问题。VBA的源代码加密目前只有使用 PassWord。另外,VBA与Visual LISP 之间仅有比较简单的内部数据通道,例如处理简单的点位表。从这方面说,VBA的作者好像不太了解AutoCAD的特色功能和用户们将会怎样使用AutoCAD进行自己的设计。
, y8 ~0 Z6 N2 W. a# h# b5 U9 A扩充VBA的功能可以用 VC++ / ARX 程序,但是相当复杂,对于一般工程师来说,很难掌握。对VBA的完善和扩充,只能等待Autodesk的工作结果。$ i, I7 g0 t! X5 m7 Q
4)ObjectARX
' o0 d8 z8 L6 I( @$ f1 J) [一般是在Autodesk内部或增值软件开发商中使用。由于ARX是使用Visual C++作为基本程序设计语言,无论其效率、数据处理和软硬件的控制能力都是最好的,是唯一圆满地针对多图档环境的程序设计方法。是从根本上扩展 VLISP / VBA 的程序设计方法。
0 E5 y) w+ u7 _6 f, o* g6 I& p但是,与AutoCAD命令交互的功能,ARX与VBA并没有实质性的区别,就是说,同样很难借用AutoCAD强大的CAGD功能。另外,要想真正发挥这种开发模式的作用,对于程序设计者的要求(计算机专业知识、软件专业知识等等)也较高,而且程序运行风险较大。要求程序自己做好各种数据的测试,自己设计好各种条件下的出错处理和恢复,否则ARX 程序的崩溃常常会连带 AutoCAD、甚至Windows9x一起崩溃。因此,这种开发模式不适于在专业设计工程师中间普及。/ T0 K  q+ H; b! d' W/ T2 K
粗略地说:ARX/VBA的特点在于以对象为基本操作数据,适合于充当“编写”ACAD的工具,而VLISP则是灵活而充分地使用AutoCAD的现有功能,适合于充当“使用”ACAD的工具。) u$ t# J' x) R! F  i$ Y
作为 CAD 系统,通常由三个层次的软件组合而成:& v5 h9 a( n8 }# A
a)设计软件的底台:提供界面、环境、核心算法、数据库等基础设施。现在我们是在 AutoCAD 2000这个底台上进行工作。6 p, J* x3 z- i5 q
b)设计支持软件,提供与设计需要相关的,比较专业的支持软件:国标图库、通用设计工具、设计手册等等。这些软件多数是由增值软件开发商完成的。2 Q  Y" H4 J) c; N$ x" h8 p
c)专业设计软件,提供窄范围、大深度的专业设计自动化或者辅助系统:例如:发动机装配工具设计、胶印机控制凸轮设计、组合机主轴箱设计等等。
* Y. {" e* U( F( F* ]实际上,CAD系统能否真正体现出它的存在价值,最明显的标志就是上述专业设计软件。这些软件真正起到了“设计”的作用。实践证明,在某个专业性很强的设计上,它确实能够替代工程师!& {; O2 W. s: m# R- R! d* u
对于a)和b),可以由一些不必很了解设计,而软件知识较多的人来写。当然,应当由现场工程师进行测评,防止写成“学院派”的设计支持软件。而对于c),就只能由设计师自己来写,这样的题目范围较小,几乎是开发商永远的“盲区”。由于专业性太强,知识结构太偏,对于工科大学毕业,没有在这个行业里,做过几个真正的设计的人,很难听懂专业设计师的叙述,要求他完成这个程序,就太过分了。
- r  I- v* ]/ P$ z1 v" h# Z可见,必须有一个能够被专业设计师所掌握,又能够发挥他们的长处(熟悉设计),避开他们的短处(软件知识较少)的开发方法。这就是AutoLISP。0 Q" j' C1 p; B  S+ O  k$ \
可以在AutoLISP程序中引用AutoCAD的几乎所有的功能,进行图形处理的自动化,尤其是较深层的应用~对象数据库的操作。
" u9 I0 o# |2 A* C在Visual LISP的协助下,从对AutoCAD进行操作的功能上讨论,仅比ARX少几个功能:自定义AutoCAD对象、多图档的深入管理等。从目前的情况看,AutoLISP是AutoCAD中几乎所有的应用程序的“总管、大管家”,而且目前只有AutoLISP 表达式,才能以添加在脚本文件、对话框程序、菜单、甚至VBA程序的ThisDrawing.SendCommand …中,更可以直接用在AutoCAD的命令行中响应几乎所有的命令。
( Q; M- D" w# [. a5)其它性能4 w2 D. D( n7 O% ~2 v
AutoLISP是典型的结构化程序设计语言,AutoLISP是解释运行,源程序保密性差,巨量数据的复杂运算效率较低,文件管理功能简单,但可以在绝大多数源程序内容不变的条件下,用Visual LISP将其编译成VLX程序包或者FAS程序,这样处理之后的AutoLISP程序,将具有与ARX程序相同的高保密性能,也将具有比解释运行明显提高的运行效率。而且,AutoLISP程序设计的复杂程度和运行风险大大低与ARX,绝少在程序崩溃后连带AutoCAD崩溃。

评分

参与人数 1三维币 +10 收起 理由
woaishuijia + 10 应助

查看全部评分

发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


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

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

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