比较各种开发AutoCAD的编程接口,需要从以下几个方面进行考虑:
1. 速度:直接与AutoCAD通讯的API比利用IPC进行通讯的API在速度方面要快。编译型的API比解释型的API速度要快。因此,ObjectARX的速度最快,Com接口开发的外部程序速度最慢。
2. 稳定性:运行稳定性反映出因程序可能出现的严重错误所导致的危险。采用LISP开发的程序一旦失败或崩溃,并不危害AutoCAD自身进程;而由于ObjectARX应用程序共享AutoCAD的地址空间,所以其一旦运行失败,AutoCAD进程随之崩溃。
3. 性能:ObjectARX的应用程序能在运行期间实时扩展AutoCAD,共享AutoCAD地址空间,甚至为所欲为,因此性能无比强大,以至于AutoCAD自身的许多功能模块都是由ObjectARX进行制作。相反,解释型API如AutoLISP仅被限用于使用静态的AutoCAD命令集提供结构化函数库
4. 技术难度:AutoLISP和VBA均是解释型语言,方便易学,开发周期短。许多程序员或一些技术人员都在使用它们。相比之下ObjectARX依赖于C++语言,它必须经过严格控制的编译、链接才能生成应用程序。这就需要编程人员需要积累经验,这样才能去发现问题从而解决问题。
5. 保密性:编译型程序要比解释型保密性要好,保护了开发人员的著作权,解释型语言往往保密性能不高。导致用户误 *** 作源码造成不应有的错误。
另外:虽然.NET开发出来的DLL文件是编译后的程序,但是由于其程序可以反编译回源码造成了代码的保密性差,也是不容忽视的问题。
相比之下,如果以前已熟悉使用LISP语言的朋友,则可选用VisualLISP。
如果用户只想利用开发一些简单的周期性短的应用程序,则可以依个人爱好和经验选择Visual Basic和VisualLISP。若用户有较好的C++基础和AutoLISP函数基础,同时又要开发速度和性能要求都很高的应用程序或大型CAD应用软件,则要使用ObjectARX。
据我所知,大致有两种方式,可以用SCR:1、第一种就是DOS命令行方式,高级语言都应该能调用EXE文件,那么ACAD.EXE文件也就是一个DOS命令,后边加一个参数,比如你的SCR文件名是 AAAA.scr,,那么调用方法就是,,,,,CADPATH\acad AAAA.scr----------相当于执行这个DOS命令行,在启动CAD后它会自动加载这个SCR
2、用ActiveX ,也就是以前所谓的COM方式,你的高级语言应该能支持这个方式的,GetActiveObject(参数)或者CreateObject(参数),前者是你已手工启动了CAD,后者是你尚未启动CAD,它会自动去启动CAD,里边的参数,与你的CAD版本有关,建议你查有关资料
,以上应该程序得到了CAD的类,然后就可以向CAD发送命令了,一般是用sendcommand这个,把SCR发送过去,但中间还有几步,比如说DOC的获取之类的,建议你查看CAD帮助 中有关ActiveX 的资料,,
-----------------------第一种方法,每运行一个SCR,就要启动一次CAD,第二种方法,可以用增加ACADDOC的方法,或者不增加,直接在同一个DOC中运行SCR,
------------------以上说了一大堆,希望你不要烦燥,祝你玩CAD愉快
AutoCAD可以编程,它提供了autolisp接口,可以加载autolisp程序。为二次开发提供条件。
Autodesk公司提供的autolisp代码很容易学习,基本上学习一个月就会自己编程。
但是autolisp也有不足的地方,主要在计算方面。【如:一个圆弧的坐标计算比较复杂,没有数学基础的就很难解决。】
不过,程序VBA解决了这个问题,VBA程序计算很简单,它把所有对象都看成点,计算对象就不考虑图元问题了。
所以学习AutoCAD编程的话,先学习autolisp,然后要学习VBA。
学习编程不是很难,学会了,会发现是工作的好帮手。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)