【VB开源代码栏目提醒】:网学会员在VB开源代码频道为大家收集整理了“AutoCAD与高级程序语言间的联接和通讯技术 - 会议论文“提供大家参考,希望对大家有所帮助!
vd 19 N0.1 第19卷第1期 机械设计与研究 2003年2月 h蚴ne酗舭a11dRes“ch Feb.,2003文章编号:1006—2343(2003)0110042∞2 AutocAD与高级程序语言问的联接和通讯技术 冯仁余.刘茂武 (军事交通学院 装运机械系,天津300161) 摘要:对目前广泛应用的Aut0CAD图形软件系统所提供的各种接口方式进行了综合分析和讨论,解决了 (-蛐应用系统与ALltd二AD图形系统的联接和通讯技术问题。
关键词:AII佃cAD;高级程序语盲;联接接口;通讯技术 中图分类号:u652.72;删11—11 文献标识码:A A。
t。
cAD R2000是Auto D签k公司目前推出较为流行 sCR文件是一个过程文件,运行时边执行边编译,生成的优秀的交互式绘图软件.采用了当今
计算机先进的wow 图形速度慢,同时.9cR文件不是图形交换文件,只能生成图(winda啪/0b{ec侣/web)技术,功能更强,使用更方便,在我 形而不能直接读取图形信息.因此它作为接口的作用仅仅是 国cAD软件“本地化”二次开发中使用相当广泛。
但是在二 单向的。
但是.9cR文件简单易馓,能直接诵用Aut。
(∞的次开发中存在一个共同较为棘手的
问题;如何实现Aut0一全部实体命令、编辑命令及辅助绘图命令,充分发挥了Auto—cAD R2000与高级程序语言间的连接和通讯?因为软件开 cAD的绘图和图形编辑功能。
方便地使设计与绘图一体化,发是剐用最为流行的具有面向对象(0bje舟O—eTlted)技术的 实现参数化绘图。
竺竺琶::2苎!要璺警拳的,这萎王量!矍孳登发兰术如:数据库、多媒体处理、I“b口t咄等,适于在wbd删s 9x 一 一’…………¨…… 。
‘…’ 2基于.D)正图形交换文件的联接和通讯技术和windo岍NT环境中使用。
虽然AutocAD R2000图形支DxF(D阻wil】g既c}mge Fb啪at)图形交换文件,是一种 撑
软件的使用环境也是wind0岍9x和wm曲哪NT,但是它 具有专门格式的ASCII码顺序文件,它在给定的组码符号规 的开发语言体系和开发环境与现在的软件开发工具有所不 定下包含了实体命令和几何数据信息,由于它采用AscII码 同。
必须根据各自提供的联接和通讯技术进行集成开发,达 或二进制码格式储存数据,因此它便于用编辑软件进行阅 题研究中取得非常好的效果。
广————芒璺,~一卿r——一、 副最佳开发效果。
本文就是作者在完成学位
论文时,根据课 读、修改和打印处理,易于被高级语言程序读写,这是Aut0一 一一馥取~蹦Ⅲ一 题研究需要,对这方面技术进行了研究和探讨,并在实际课cAD有益联接和通讯方式.如图2所示。
i高级语言程序〔〕DxF图形空换文件亡一 一『AutocAD 1 基于ScR命令组文件的联接和通讯技术 ▲图2 DxF图形交换文件 scR(scRipt)是一种命令批处理文件,它把要执行的命 二进制形式的.DxF文件格式紧凑、节省空间、读取速 cAD内部.让Au倘连续不断地执行各命令,从而快速成 令及参数以批处理文件形式表现出来,并可以输入到Auto— 度快,除了开始标记为Al批cAD既r啦ry DxF(<cR)<LF) 图。
由于ScR文件包含有图中每一个实体的参数以及形成 (suB)(卜肌))以外其余与AscII码形式的。
DxF文件一 实体的命令,所以虽然可以用人工方法编写scR文件,但却 样。
Alltd二AD中定义的图形交换文件.DXF的文件格式专 比较繁琐,而且其中参数之间关系的运算也必须由人工方法 用于不同机器在使用Aut∞时进行图形交换,以及Auto— 进行,但这些问题可以通过高级语言来处理,如图1所示。
cAD与其它程序之间的图形交换。
用户可以用高级语言编 I高级语言程序l—L scR命令组文件卜IAu巡R2000I 写程序形成.DxF文件,再通过‰c:c aD的DXFIN命令转 ▲图1 sCR命令组文件接口方式 换成图形文件。
由高级语言程序进行计算得出的结果也可 用高级程序语言生成.躲命令组文件有两条途径:①由 以直接附在.DXF文件上,随.DXF文件选到Autd二AD内部 进行图形处理,因而这样的程序结合了高级语言计算分析能 高级程序设计语言直接生成;@通过专门的接口软件,生成, scR源程序,然后调用.gR源程序生成.s球文本文件。
其 力强和All“如绘图能力强的优点。
但是,DxF文件格式 内容都是AI】蜘的画图命令集。
在开发参数化
设计程序 要求严格,生成文件较大且冗余,而且非常复杂,不易于实现 时常采用前者,但是无论用那种方法生成.晒t文件,都必须 高级语言自动生成过程。
因此,它虽然能实现参数化绘图, 但不是最可取的途径。
熟悉Au幻cAD的命令、系统据示及响应方式;其次要注意空 格与回车在scR文件中的特
定作用,在^l衄o、D中,空格和 3基于Aut0CAD内嵌Anto LIsP语言的联 回车被视为命令或数据输入终止符,不可忽视或遗漏。
接和通讯技术 u趼(LIst Pl。
蚓l】g pro鲫r啪ing h、雪岫ge)语言是一 收稿日期:2002—08—07 种处理字符效据强有力的工具,遭常称为智能型语言,Auto 万 方数据————…————————一——————————————————————————————~————————~——————————一————一 第1期 冯仁余等:Aut舳与高级程序语言问的联接和通讯技术LI卵则是LIsP语言中的一个子集,是一种可以在Aut。
cAD Auto LIsP语言具有很多优点。
(1)vc十+语言程序编写、凋试、维护比mt。
LIsP 43环境中解释执行的语言,叉称为内嵌式LIsP语言c尽管Aut《AD
系统各功能很强,但不能包括所有的功能。
而Au— 要方便得多;t。
I。
ISP语言恰好可以弥补Aut。
cAD在其功能方面的不足。
(2)AutocAD调用vC++程序不象调用Auto LIsP与其它高级语言相类似,Au∞LISP提供了大量的预定义函 那样受内存的限制,可以编写大程序;数。
根据实际的需要,通过Aut。
LrsP可以增加如下功能: f3)vc十+程序可跳过Au々。
om的环境,直接管理 (1)可以进行各种算术、逻辑运算、字符串处理等; 诸如屏幕、硬件端口等,编写实用程序; (2) 可在AutocAD系统中增加新的命令项,以达到实 (4)Aut舳调用的是编译后的vc++程序(E)口),施编辑的目的; 而调用Auto uSP时是属于解释性的(调用的同时编译),因 (3) 自动生成.S(、R接口文件,以实现动画功能; 此调用vc++
程序的速度要快得多。
(4)可读写外部文件,实现与其它高级语言程序的数 同时,、℃十十语言给AL啦cAD带来了非常巨大的影响。
据交换; (1)AutocAD的ARx是很多用户不磐花时间去开发 (5)访问一般数据库文件,实现一般数据库与图形系 用户界面,而直接将它们的成果用Vc++接口与Aut。
cAD统的联系。
连在一起。
因此,Auto LIsP语言是一种很好的联接和通讯方式。
(2) 由于~ltocAD具有灵活方便的vc十+语育开发有很多与.DXF接口方式相同之处,有些则是D区F文件所 环境,使得Aut。
cAD由原来的作为底层图形软件的地位,变 不具备的。
但是启动Aut。
usP需要很大的缓冲区,即堆栈 成管理其它功能模块的上层管理程序,这些可以同菜单、窗 区,由于LISP本身功能的局限性,用A“to L嘲?语言缩写的 口等实现。
程序也有很大的局限性,主要表现在计算功能差,判断、转 5 基于面向对象技术的ActiveX Automation移、循环功能不完善等。
通讯方式4基于ADS、ARX及VisualC+十语言的联 最新的AutocAD R2000版本支持Acdvex Autonlatm 接和通讯技术 技术,所谓A【疽vd ALl咖tion是微软建立的标准,它允许 ADS(Autocad D即幽哪鼬t S择t∞1)是AutDCAD“.0以 一个诵舢应用程序通过暴璐的对象控制另一个win出ws 上版本提供的Aud二AD与c语言的联接和通讯技术,用户 应用程序;其中应用程序暴露出的对象称为自动化对象(Au—可以使用Metaware陆小c1 6版以上c语言编程。
ADs的 t∞“on幽“),把提供自动化对象的应用程序称服务器应 作用可以在源码~级移植在各种Au刊巴AD工具上,开发者 用程序,包含自动化对象的应用程序称客户程序。
Aud二AD 用适于具体环境的编译和联接工具生成ADs。
ADs库函数 R2000作为一种Activ区Aut∞【1atiorI服务器,大约显露20个 将开发者与各种底层硬件隔开,并提供与Auto LISP和Au. 对象给Ac右v试山l椭“∞客户程序,这些对象带有总共约 500多个方法和属性。
同其他客户应用程序一样,AutocAD 删的m衄啪斑n对象采用继承方式组织,最顶层对象为tocA王)通讯的各种必要机制。
AutoCADl2,O支持模式 Au脚舢衄∞五∞,其他子对象可通过Applican础对象依 ADs,即能在80386以上cPu的实模式下编译运行ADsa这样用户可以利用Mi∞幽c和B0如nd 1讹c编译器而 习;侨附加新的开发工具,实模式ADs和保持模式ADs完全 次获得,获得一个对象后就可使用它的方法和属性来完成某兼容,ADs实现了用户化界面,是通讯技术的发展方向。
种功能。
、,B(
vb捌BBsic)中提供了获得Apphca石0rI对象的 ARx是Au跳的开发扩展工具,其在Aut煳13.0 函数el∞to妨。
ct()和Geoobject()。
上还属于一种
演示版,但在AmocAD R2000版上,则真正实 利用A血v联Au雠埘i∞开发Aud二AD R2000一般过现r作为二次开发工具的动能。
ARx包吉了ADs开发工 程如下(如匿4所示)。
首先获得或构造一个应用程序对象,具的所有功能和函数集,并进行了大量的扩充。
Au“AD 再向应用程序对象获得
文档对象,接着通过
文档对象可获得R2000及ARX还提供了其与vj9,日l C++语言的通讯技术, M甜dspa峨PaperSpace、hye‰utility等对象,最后通过 即ARx的函数集能被v曲a1 C++程序所直接调用编译好 M。
ddSpace或Pa雕瞬砒e提供的各种绘图方法,如AddIjne、 的vbual c++可执行文件,可在AutocAD嗍的环境工 Addarde、AddD删谴r耐等,便可获得所需绘制的各种图形 具上直接运行。
由于经过编译后形成的文件是可执行程序 对象,如直线、圆、尺寸标注等,其中Lay∞对象可获得管理 … (目标程序),这样无疑增加了用户程序的保密性。
用ARx 图形中的层信息,UtⅡIty对象提供了各种用户输入的方法, 即Ⅵsual c++基于Au例cAD R2000开发应用程序的结构 并可在Au例cADR2000的“啪瑚and”下给出提示符。
一些 图,如图3所示: 经
常用到的图形对象,如Applicdtion、DocI蚴蚰t、M。
ddspace、 。
—————。
。
。
。
。
。
。
一 一————硼目r一——————薄详—~————————1 Ⅵ十十程宁卜f 卜C靛田程序(^Rx,f ARx函鼓 Pap螂ce、u曲母及各图层对象一般定义为窗体级或模块 级变量,然后在Fc蛳一Lc甜或‰n IJlitiali髓事件中获得这 l AI】t o CAD R2000 些对象并进行有关初始化工作,也可以设计一菜单项.来完 成与AutocAD R2000的联接、初始化
工作,这样在绘图过程 ▲田3基于ARx及V沽山C十+的通讯方式 中,就可趴直接引用这些对象.交互式完成绘图。
和I甩Vc+十语言开发A|lt。
cAD的应用程序,比使用 (下转第船页J万 方数据
机械设计与研究 第19卷 〔7〕BafldwR and HunlerL0似mtlorl&s口”h〔J〕,1960.8:90~成“过维修”.在工 100程中应避免此类现象发生。
作者俺介:韩帮军(1974一),现为上海交通大学cIM所博士研究生, 主要研究方向为直拟制造、生产系统诂真建棋、仿真分析和生产系统 尽管模型中的 埘 设鲁的预防性堆修。
蜂数据不是来自于生 旨产实际中的数据. 上接第43页但可“反映该模型的功能。
实际工程应用时,町以通过成本分析、故障历史数据的分析得出 ▲图l可靠度与PM次数的关系以上各参数的取值及c。
(口,,B,f,)的函数关系式,代人以上的数学模型,求解可以得出优化 ▲图4基于面向对象的Actvex Aut∞如0n的通讯方式PM策略。
综上所述,利用Activ。
【Autarnati∞技术,借助vB的强4结论 大功能,实现图形与数据库、图形与设计系统之间的联接和 (1) 给出了 通讯。
ActivⅨAutoⅡ】adon使Au“强D的二次开发有了突有限时间区间的预 破性进展,实现了面向对象的开发技术,可使人们摆脱令人防性维修策略的非 望而生畏的c、vc++语言,而利用当前最强大的可视化开 ▲图2成本与PM次数的关系线性优化模型,克 发工具Ⅶ进行开发,从而能极大地提高开发效率和程序的服了无限时间区间分析方法的不足.模蕉【可向生产作业计划 可维护性。
反馈预防性维修的策略,辅助生产
作业计划的制订,具有很 6结论强的可操作性。
(2)把优化任务分成两个阶段完成,大大简化了模型 在程序开发的过程中,Aud二AD R2000为用户提供了的复杂度和降低了求解的困难,适台工程应用。
一个良好的二次开发环境,众多的联接和通讯方式使得用户 (3)运用役龄回遇因子的概念对预防性维修的效果进 有较大的选择范围。
在实际开发选择方式时,一般的应用可行了表达,并建立了不完备维修情况下,设备残余役龄演变 选择.S(R文件和.DXF文件;想直接在Aut《AD R2000环的递推关系式,揭示了预防性维修活动与设备故障之间的动 境下实现参数化绘图的,可利用Auto LISP语言.更高级的态变化规律。
.