问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

autocad二次开发的怎样对AutoCAD进行二次开发

发布网友 发布时间:2022-04-23 09:26

我来回答

1个回答

热心网友 时间:2022-04-11 02:30

从AutoCAD 2.18开始推出AutoLISP开始到现在,我们所能使用的开发工具主要有:AutoLISP、VisualLISP、VBA、COM外部接口、ObjectARX、ObjectARX.NET等开发方式供用户选择。下面开始对上述开发方式进行简要介绍: AutoLISP是进行对AutoCAD二次开发最早的API,它是人工智能语言LISP的一个分支.主要用来自动完成重复性任务,进行客户化开发和编制AutoCAD菜单以及通过简单机制为AutoCAD扩充命令,能够有机的和AutoCAD结合在一起,它语法简单容易上手,到目前仍有很多的活跃开发用户。但是由于它是解释型API而不是面向对象的编程语言,使它的效率低下,由于执行的是源代码文件所以导致保密性能不高很难用它开发大型的应用程序。
在AutoCAD R14.01中,Autodesk公司首次提供了一种新的LISP编程工具:Visual LISP,它是一种面向对象的开发环境,是AutoLISP的扩展和延伸。
在AutoCAD2000中,Visual LISP被集成到了AutoCAD环境之中。Visual LISP是一种半编译的API。由于可以被编译所以大大提高了运行效率和安全性。同时它又与AutoLISP完全兼容,又提供了AutoLISP的所有功能,同时它又能够访问AutoCAD的多文档环境,以及对COM/ActiveX技术的支持和反应器等。VisualLISP
IDE同时提供了完整的编辑环境使得用户可以对代码进行调试跟踪、源码语法检查、括号匹配、函数提示等工具,方便创建和调试LISP程序。由于VLISP集成于AutoCAD内部,而且随AutoCAD升级而升级所以兼容性比较好,这也是LISP深受广大编程爱好者使用的原因。
但在进行大数据的计算处理方面,Visual LISP不能很好的胜任这项任务,这使得开发大型数据运算的程序仍有一定困难。 ADS(AutoCAD Development System)是Autodesk公司最早在AutoCAD R11中提供的C语言编程环境。ADS除可使用标准C的函数外,又增加了一组专用于对AutoCAD进行操作的函数。由于ADS程序具有C语言的一切优点,因而它曾是开发AutoCAD R11、AutoCAD R12应用程序的主要工具。用C写就的ADS程序,可在所有支持AutoCAD平台上进行源代码移植。只需使用普通的C语言编译器就可以编译生成ADS模块,与ADS库和标准C库链接后生成可执行文件,装入AutoCAD后即可运行。但是ADS和AutoLISP一样,内在结构不是面向对象的,用AutoLISP解释器加载和调用,利用IPC与AutoCAD通讯。
ARX(AutoCAD Runtime eXtension)是在ADS基础上发展起来的一种面向对象的C语言编程环境。由ADS到ARX的变迁就像C到C++的转变。ARX与老式的ADS及AutoLISP的最大差异在于ARX应用程序是动态链接库,共享AutoCAD地址空间,可以对AutoCAD进行直接函数调用,避免了IPC的系统开销和由此引起的性
能下降。因此那些频繁与AutoCAD通讯的应用程序在ARX环境下的运行效率明显优于老式ADS或AutoLISP环境。
ARX最早是在AutoCAD R13中提供的,但在AutoCAD R14中,ARX就被ObjectARX所代替。同时原来的ADS库函数全部被包含在ObjectARX中,将ADS函数合为单一的库就形成了ADSRX。ADSRX库已纳入到AutoCAD的总体结构中,因此它与其他ObjectARX库一样,能共享AutoCAD地址空间。
到了新世纪,传统意义上的ADS开发环境的概念已经不复存在,且ADSRX已成为了ObjectARX的一个子集,因此,ObjectARX是包含了ADS、ARX和ADSRX的一种综合的C/C++开发环境。ObjectARX的最大特点是引入了面向对象的编程机制,用户可以根据规则定制实体也是ObjectARX的一大亮点。 自AutoCAD R14起,提供了ActiveX Automation形式的API。ActiveX技术可将各种二进制应用程序组件集成一体。它可采用多种编程方式例如:VBA构造一种或多种与应用程序独立的宏编程。提供Automation服务的软件组件通过标准接口能够对外开放它的特定功能。
正是由于AutoCAD拥有ActiveX接口,因此,用户可以容易的用各种AciveX编程语言来定制开发AutoCAD。
AutoCAD包含的VBA能在进程内访问AutoCAD的对象模型。亦可以通过独立
的VB进行编程,但是VB与ActiveX的接口需要通过IPC驱动AutoCAD,所以作为ActiveX控件的VBA比VB具有明显的性能优势。
特别要强调的是,ActiveX与AutoCAD交互操作很慢,若需要在外部程序中一边运算一边交互操作的重复迭代,将耗费大量时间,如同死机
值得注意的是,从AutoCAD 2010版本开始,VBA不在随AutoCAD一起安装。如果想要在机器中运行VBA程序必须登录下面的网址进行下载方可运行。 在AutoCAD 2005 版本中Autodesk公司推出了用.NET开发AutoCAD的编程接口。它的实质是通过Managed C++/CLR技术对VC++的ObjectARX进行封装。到目前的AutoCAD 2015十年来Autodesk公司已经完成对大部分ObjectARX编程接口的封装。这种编程方式难度适中,能够访问大部分的编程接口(除了自定义实体);但是,由于AutoCAD的.NET接口是在不断的完善过程中导致了在低版本上不能够使用新增的功能。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
PLC经典应用案例:PLC控制红绿灯信号 ios能用shadowjsocks么? ios可以使用shadow socks吗? 如何使用ios版shadowstocks 餐厅刷脸支付哪家比较好 ? 手机刷脸支付哪家好 ? 加入刷脸支付的哪个公司好 ? app刷脸支付哪家好 ? 刷脸支付设备上市公司哪家好? 刷脸支付哪个公司好 ? 抚顺棚户区改造的搬迁补偿规定 和拆迁文件 老是梦见十几年前的女友,而且每次梦中醒来都心如刀绞一般? 谁有带彤字的网名? lisp CAD二次开发 轴上倒角尺寸大小如何确定? 罗氏虾一斤一般多少只 找一个有意境的网名、里面最好带一个彤字,谐音也可以、、、 苹果电脑电源线L型连接器能够反接使用吗? CAD的二次开发主要用有那些地方 我老是梦见以前的女朋友,是怎么回事? 形容年轻男女的两个字的词? 谁能帮我起个带彤字QQ昵称??? 最后两个字是青字的成语有哪些 我有一个cad二次开发文件(不是软件),请问怎么加载使用 以前可以用,C... 一斤罗氏虾大概多少只 机械制图中,倒角怎么标注? 女生带彤字的微信名 求教autocad二次开发技术的选择 3月1日广州有什么博览会 为什么老有梦见与自己的女朋友发生亲密关系啊? 10mm厚的钢板(有大约对称的R2的倒圆角)焊接可以不用打坡口吗?哪条规范标准提到不用打坡口? 带彤字的 网名 CAD的二次开发用哪种语言比较好 用两个字表达青出于蓝而胜于蓝的意思 辽宁省抚顺市棚户区改造赔款条例 带“青”的词语有哪些? 做梦总能梦到以前的一个女友是怎么回事啊 用两个字形容青春 梦到自己前女友? CAD二次开发好的软件有哪些 单悬臂标志牌新规范是否倒圆角3m*1.5m 满分带彤的女孩名字有哪些? 电脑主板的SATA插口是L型的,光驱线的插头是和鼠标键盘的插头一样长方形的我怎么插SATA连接光驱 罗氏虾和对虾哪个好吃点? 为什么我经常会梦见我以前的女朋友 我是一个12岁的女孩,谁有带彤字的网名? PROE5.0中,不同平面的草绘直线如何进行倒圆角 电脑主板上有那些借口及作用? 搬迁补偿标准人口补偿 虾怎么做好吃,罗氏虾的家常做法