autocad二次开发的AutoCAD二次开发各编程接口的比较及选用

autocad二次开发的AutoCAD二次开发各编程接口的比较及选用,第1张

比较各种开发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。

学习编程不是很难,学会了,会发现是工作的好帮手。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12109069.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存