cad应用程序从的升级开发
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第!"卷第#期水利电力机械
$%&’!"(%’#
!))#年*月
+,-./01(2./$,(034.5.0-/6071+./8,096(./3
!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!,:;’!))#
应用程序从,<2向1=>?@A,/B 的升级开发
,CC&D@EAD%F :C;GEH?IG%J ,<2A%1=>?@A,/B
王春,马麟,肖豫
(水利部黄河水利委员会勘测规划设计研究院,河南郑州
#K)))#)
摘
要:根据,:A%0,<二次开发工具,<2与1=>?@A,/B 的不同,
详细介绍了0,<二次开发应用程序从,<2向1=>?@A,/B 升级的技术路线和方法。关键词:,<2;1=>?@A,/B ;应用程序;开发中图分类号:-7LMM’K!
文献标识码:N
文章编号:M))"O "##"(!))#))#O ))#P O )L
收稿日期:!))L O MM O !Q
作者简介:王春(MPQM O ),男,河南驻马店人,水利部黄河水利委员会勘测规划设计研究院工程师,从事水工金属结构的设计和软件开发工作。
!引言
随着电子计算机飞速发展,计算机辅助设计
(0%JC:A?G ,DH?H
简称0,<)技术在全世界范围内兴起和蓬勃发展,0,<技术是设计人员在0,<
系统的辅助下,根据生产的设计程序进行设计的一项新技术,是人的智慧和创造力与计算机系统功能的组合。在!)世纪P)年代,我国许多高等院校、科研单位及一些大企业都为0,<系统的科研开发作出了不懈的努力,开发出了一些0,<软件。软件的图形支撑系统为当时流行的,:A%H?RS 推出的,:A%T 0, ,:A%0,
的软件接口程序、开发语言和开发工具不同,在早期版本开发的基于,:A%0, "平面钢闸门计算机辅助设计系统 (7U0,<)水利部黄河水利委员会勘测规划设计研究院于 !)))年完成的平面钢闸门计算机辅助设计系统 (7U0,<) 的开发应用了计算机图形学、工程数据库、数值分析、有限元计算、软件工程等学科的成熟理 论,汲取了多年闸门设计的经验与成果,并将它们有机地结合在一起,提供了一个完整的闸门计算机辅助软件。该系统是一个适用面宽、可移植性好、易于完善提高交互式应用软件,可以完成常用型式平面钢闸门的技施设计。该软件!))M 年先后获得水利 部优秀工程勘测设计银质奖、全国工程设计优秀计算机软件铜质奖,已经在昆明市水利水电勘测设计院、天津市水利水电勘测设计院、四川省水利水电勘测设计院等全国十几家水电设计院使用。利用该软件进行平面钢闸门的设计,具有计算准确,缩短设计周期,可对多种方案进行比较,实现方案优化,使设计结果更合理等优点。 但7U0,<图形支撑软件采用当时流行的,:T A%H?RS 公司的,:A%0,
其开发工具是,:A%0,<0语言开发系统———,<2(,:A%0,<
。,<2使外部可执行文件与,:A%0,<核心紧密地联系在一起,为在,:A%0,<上进行二次开发提供了一个强有力的编程手段。,<2除可使用标准0的函数外,又增加了一组专用于对,:A%0,<进行操作的函数,包括可以用来用0语言编写,:A%0,<应用程序的头文件和目标库。由于,<2程序具有0的一切优点,因而,它是开发,:A%0,
译器就可编译生成,<2模块,
与,<2库和标注0库连接后生成可执行文件(.B.),装入,:A%0,<后即可
万方数据
・!"・水利电力机械#""$年%月
运行,它和&’()*&+建立通讯连接,向&’()*&+发出命令,并获得命令执行的结果。
从&’()*&+,-.开始,&’()*&+公司逐步推出新的面向对象的软件接口/0123(&,4(&’()*&+,’56 (78224(25(7)5),用/0123(&,4生成的应用程序后缀为&,4。/0123(&,4应用程序本质上就是975:);<+==程序,/0123(&,4应用程序与&’()*&+、975:);<之间均采用975:);<消息传递机制直接通信。/0123(&,4通过调用>3?@A5(?BC)75(()函数监理与&’()*&+消息传递的入口,在>3?@A5(?BC)75(()函数中用<;7(3D语句处理来自&’()*&+的各种消息。如今&’()*&+,-#已退出使用,而CE*&+程序中基于&’()*&+-#的执行文件(后缀为A4A)无法在新版本的&’()*&+中工作,必须进行升级才能正常运行。
!从&+F向&,4升级的技术路线
CE*&+软件绘图部分的源程序有近#"万行,如果用/0123(&,4重新编程,工作量巨大,时间上也不允许。鉴于在/0123(&,4开发环境中,提供了与&+F兼容的全局函数,决定升级的技术路线采用&+F向/0123(&,4进行移植,仅修改相关的部分,对原&+F的函数不作改动。使用/0123(&,4开发&’G ()*&+#"""的*H*I I应用程序时,使用的软件环境为:975:);J4H KL H#""",&’()*&+#"""以上版本,开发语言采用M73?)<)N(O7<’>P*I I QR"版本,*&+开发工具为/0123(&,4#"""版本。
基本过程如下:
(-)按照/0123(&,4的要求设置O7<’>P*I I的工作环境;
(#)进行&+F向/0123(&,4的移植工作;
(.)在O7<’>P*I I的集成开发环境中编辑应用程序;
($)编译链接生成以&,4为后缀的+==文件;
(!)进入&’()*&+,用装载命令将生成的应用程序装入内存;
(Q)运行在源程序中为&’()*&+定义的外部命令。
"&+F向/0123(&,4的移植
在应用程序由&+F向/0123(&,4升级的过程中,源程序由&+F向/0123(&,4移植的过程是最重要的过程。由于/0123(&,4环境中包含有与&+F相兼容的函数库,移植工作主要涉及的改动如下所述。"R#程序入口和控制循环的改变
&+F应用程序的8>75()入口和控制循环为应替
换为/0123(&,4的接口函数>3?@A5(?BC)75(()。需注意的是,因为/0123(&,4应用程序是动态链接库+==,所以没有8>75()函数,>3?@A5(?BC)75(()函数就相当于普通*I I程序中的8>75()函数,是任何一个/0123(&,4应用程序都要有的函数,它是&’()*&+与/0123(&,4应用程序通讯的入口点,同时,/0123G (&,4内核通过它相应用程序传递消息和向&’()G *&+返回应用程序的状态码。
接口函数的移植可以通过以下方法实现:在O7G <’>P*I I的集成开发环境中建立一个新的/0123G (&,4应用程序,就可生成以上接口函数,然后再把源文件拷入该/0123(&,4应用程序中。
"R!头文件的改变
将以下头文件写入应用程序的开头“>:2
在进行由&+F向/0123(&,4转换时,最好将原来老式的&+F类型的函数名替换为/0123(&,4中所提供的新的函数名。当然,因为/0123(&,4已经定义了“>:<”类函数,指向新的与&+F兼容的函数,不作替换也可正常运行。
"R$&’()*&+特有的命令选项的修改
由于不同版本的&’()*&+部分命令选项有所不同,因此从&+F升级至/0123(&,4时,涉及到的有关命令选项不同时,需要对原来的程序进行修改。这部分内容的修改取决于程序使用了哪些&’()*&+特有的命令选项,还取决于对&’()*&+所进行的环境的设置。由于本部分的修改没有经验可循,只能是在发现错误时进行调试解决的过程中不断总结。在CE*&+程序升级所涉及到的相关命令及其修改列举如下:
(-)在&’()*&+#"""中,尺寸标注中发生了某些变化
如在&’()*&+,-#中,+UML&+尺寸标注变量的值用/K或/VV来相应,在&’()*&+#"""中只允许用-或"来相应。
(#)在,-#中,设置文本样式使用的语句为
>:<3)88>5:(,LFL,,“FLW=A”,,LFL,,“XY”,
万方数据