【VB开源代码栏目提醒】:网学会员为需要VB开源代码的朋友们搜集整理了基于PRO_E的二次开发方法概述 pdf - 技术总结相关资料,希望对各位网友有所帮助!
2007年第1期铸造设备研究2007年2月RESEARCHSTUDIESONFOUNDRYEQUIPMENTFeb.2007 №1收稿日期:2006-11-25作者简介:张举1972-男山西大同人硕士研究生主要研究方向为多媒体与仿真。
??研究生
论文??基于PRO/E的二次开发方法概述张 举靳玉春中北大学材料工程学院山西太原 030051 摘 要:简要介绍了PRO/ENGINEER的二次开发工具并以PRO/TOOLKIT为例详细介绍了两种开发PRO/ENGINEER的方法和步骤即自定义makefile文件和利用VC环境开发。
关键词:PRO/ENGINEER二次开发方法步骤 中图分类号: TP391 文献标识码:A 文章编号:1004-6178200701-0032-03SummarizeoftheMethodsofApplicationDevelopmentofPro/ENGINEERZHANGJuJINYu2chunCollegeofMaterialsScienceandTechnologyNorthUniversityofChinaShanxiTaiyuan030051China Abstract:ThispaperintroducesthenewdevelopingtoolsofPRO/ENGINEERbriefly.TakePro/TOOLKITforexampletwomethodsareintroducedindetailthatisuser-definingMAKEFILEfileanddevelopingbyutilizingVC. Keywords:PRO/ENGINEERapplicationdevelopmentmethodsandapproach PRO/ENGINEER软件系统是美国参数化技术公司PTCParametricTechnologyCorporation的优秀产品目前在我国的机械电子家电模具等行业取得了广泛的应用该软件在国内的应用数量大大超过同类型的其他国外产品。
然而由于国内外的行业标准有区别在很多领域PRO/ENGINEER的功能并没有得到充分的发挥。
有鉴于此国内有不少科研单位己经或正在进行利用PRO/ENGINEER进行二次开发的系统研究工作并取得了不少成绩。
但与PRO/ENGINEER的应用规模相比较PRO/ENGINEER的二次开发仍然明显滞后。
因此本文将对PRO/ENGINEER的二次开发的主要方法做一个概括和介绍以期抛砖引玉加快对PRO/ENGI2NEER二次开发的应用和普及。
1 PRO/E的二次开发工具简介一般来说大型的CAD/CAM软件都留有供用户进行二次开发的接口如I-DEAS的OpenArchi2tecture0AAUTOCAD的AutoCADdevelopmentSystemADS等用户可以利用这些接口来编写自己的应用程序从而扩展这些软件的功能提高使用效率。
同样PRO/ENGINEER也提供了强大的二次开发功能。
用户可以选择开发工具对其进行二次开发。
PRO/ENGINEER的二次开发工具主要有以下几种:基于C语言的Pro/TOOLKIT二次开发工具。
基于
VB和AtltornationGATEWAY的二次开发工具。
基于Javascript和HTML语言的Web.Link二次开发工具。
基于Java语言的J-Link二次开发工具。
这几种方法各有优点:AutomationGATEWAY是RAND公司开发的针对Pro/ENGINEER软件的二次开发工具与Pro/ENGINEER系统自带的二次开发工具Pro/TOOLKIT相比具有简单易用的优点。
应用AutomationGATEWAY可以自动实现Pro/ENGINEER任务创建用户界面完全实现自动设计任务应用Automa2tionGATEWAY可以把任何支持ActiveX的应用程序和Pro/ENGINEER建立直接联系。
利用
VB可以使MicrosoftOffice产品如WordExcel等和Pro/ENGINEER对象之间进行数据交换。
在这个过程中AutomationGATEWAY在
VB和Pro/ENGINEER之间起到桥梁和纽带的作用。
通过A就可以利用
VB访问PRO/ENGINEER的大部分底层资源文件。
基于Javascript的Web.Link开发工具的优势在于具有良好的适应性在不同的操作系统NT、Linux、Unix下使用时只需简单修改配置文件并且可以和PDM管理软件WindChill方便集成。
在我国对这种PRO/ENGINEER的开发工具鲜有论述使用这种开发工具对PRO/ENGINEER进行二次开发用户将不得不查阅大量的英文资料而实际上这也限制了它的发展。
Pro/TOOLKIT是Pro/E软件自带的二次开发模块可以直接访问Pro/E软件的最底层数据库资源这是进行PRO二次开发最根本的方法但要求开发人员具有相当C语言的编程能力它是PTC公司为Pro/E提供的用户化工具箱18以前的版本为Pro/DEVELOP该工具箱为用户程序、软件及第三方程序提供了与Pro/E的无缝联接。
用户程序和第三方程序是用C语言编写的Pro/TOOLKIT提供了大量的C语言的库函数能够使外部应用程序安全有效地访问Pro/E的数据库和应用程序。
通过C语言编程及应用程序与Pro/ENGINEER的无缝集成用户和第三方能够在Pro/E系统中增加所需的功能。
目前在对PRO/ENGINEER的二次开发中Pro/TOOLKIT的同步模式应用最为广泛。
因此本文仅以此为例并用两种方法来详细阐述开发过程的细节问题。
2 PRO/TOOLKIT二次开发的方法步骤及环境设置2.1 自定义Makefile工程文件这种开发方法简单实用而且速度较快易于掌握。
但由于Makefile文件是从unix系统中移植过来的其编写过程比较复杂很多规范和语法都遵循unix的习惯对大多数用户来说比较陌生但不必担心开发者只需对protoolkiti486_ntobj目录下的Makefile文件即以make开头的文件进行改写完成后将其命名为后缀为mak的文件3。
假如我们在d:test目录下做一个工程myob2ject工程中包含c1.c和c2.c两个C程序文件放置在d:testresource文件夹中生成的.exe或.dll应用程序名称为myapplication则首先应将…obj目录中的makefile文件复制一个例如make_exam2ples将其放置在d:test目录中将其改名为myob2ject并将其后缀改为mak现在改写make_exam2ples方法如下:FileName代表注释行这里指应用程序名称即与MAKEFILE文件同名。
MAKEFILENAMEmyobject就是上面的makefile文件名myobject。
MachineType机器类型制定域WindowsNT和Windows2000是i486_nt如果系统是Windows98则改为i486_win95。
PRO_MACHINE_TYPEi486_nt。
Executablenames定义所要生成的.exe和.dll文件名。
EXEmyapplication.exe。
EXE_DLLmyapplication.dll。
Pro/TOOLKITSourceMachineLoadpointEXTERNALUSE-DEFAULT指定PRO/E的安装根目录。
PROTOOL_SRC../../protoolkit将../..替换为PRO/E的安装目录。
PROTOOL_SYSPROTOOL_SRC/PRO_MACHINE_TYPE代表引用某个变量的值。
PRODEV_SRC../../prodevelop将../..替换为PRO/E的安装目录。
PRODEV_SYSPRODEV_SRC/PRO_MACHINE_TYPE。
IncludeFilePaths头文件包含目录指定域在这里指定工程所包含的文件路径。
……CompilerFlags//编译特征值定义域……Libraries库文件目录指定域根据具体情况指定……Objectfiles//目标文件定义域自己编写的每个C语言源程序文件都对应一个目标文件应在这里指明。
OBJSC1.objC2.objLinker//编译器定义域……objectdependencies目标文件依附关系定义域在这里指定目标文件的依赖关系并需指明C语言源文件所在的目录。
PROTK_APPLSD:testresource这里改为C源文件所在目录。
C1.obj:PROTK_APPLS/C1.c。
CCCFLAGSPROTK_APPLS/C1.c。
C2.obj:PROTK_APPLS/C2.c。
CCCFLAGSPROTK_APPLS/C2.c。
最后的clean部分是清除中间生成文件不必修改。
Makefile文件完成后需要进行编译和连接以生成应用程序主要有两种方法:一是在MS_DOS状态下键入d:testnmake-fmyobjectdll若想生成EXE文件则不需键入dll回车若编译正确则会在该目录下生成myapplication.dll程序。
二是332007年第1期 张举等:基于PRO/E的二次开发方法概述利用VC作为调试器打开Makefile文件接受默认选项生成一工程对其进行编译连接生成所需的应用程序文件。
这里推荐第二种方法因为在VC环境下调试要更方便一些而且打开Makefile文件后可以在VC里直接修改而不必像第一种方法那样借助其他工具。
2.2 利用VC开发环境在这种方法中将直接在VC中进行编程并可综合利用VC的强大功能及丰富的资源如对话框等。
PRO/ENGINEER的对话框设计比较繁琐要编写冗长的
代码而VC的对话框设计则简洁明快为大家所习惯。
因此一些学者研究出几种方法可以在PRO/ENGINEER里引入VC风格的对话框。
比较典型的是编写两个DLL程序其中一个DLL程序调用另一个DLL程序并以DLL方式集成到PRO/ENGINEER中。
这里将介绍另外一种方法只需编写一个DLL程序在程序里可直接调用MFC的对话框资源而其难度是设置合适的编译环境4。
具体设置如下:1打开新建菜单选MFCAppwizardDLL再选RegulardllusingsharedMFCdll生成一个动态连接库工程。
2打开project菜单选settings…在弹出的对话框中做以下设置:A.选C/C标签页在category中选Prepro2cessor然后在Preprocessordefinitions中改为如下内容:_DEBUG_WINDLL_WIN32_WINDOWS_MBCS_USRDLLPRO_USE_VAR_ARGS。
B.选C/C标签页在category中选CodeGen2eration在Userun_timelibrary中选Multithreaded。
C.选C/C标签页在category中选Precom2piledHeaders再选择Notusingprecompiledheaders选项。
D.选Link标签页在category中选General在Object/librarymodules:下的文本框中改为如下内容:Protk_dll.libprodev_dll.libwsock32.dllmpr.dllkernel32.libuser32.libgdi32.libwinspool.libcom2dlg32.libadvapi32.libshell32.libole32.liboleaut32.libuuid.libodbc32.libodbccp32.lib。
E.选Link标签页在category中选Customize勾选Forcefileoutput项。
经过上面的设置以后就可以在VC环境下充分利用MFC的资源开发PROTOOLKIT应用程序了。
2.3 注册应用程序利用上面两种开发方法生成应用程序后接下来需要对Pro/TOOLKIT应用程序进行注册。
首先编写注册文件5注册文件是一个很小的文本文件可用记事本或写字板编写将其存为后缀为dat的文件。
注册文件的编写比较简单下面是一个注册文件。
NAMEmyobject应用程序名称只用来区别其它在PRO/ENGINEER里面注册的辅助程序可以和生成的应用程序同名长度不超过31个字符。
EXEC_FILEd:testmyapplication.dll前面所生成的DLL程序路径和名称。
TEXT_DIRd:testtext程序中用到的文本路径不含名称。
STARTUPdll程序以DLL方式启动若以多进程模式启动该值为spawn。
ALLOW_STOPtrue允许中止应用程序运行若为false则不允许中止应用程序。
REVISION18版本号。
END结束。
注册时有两种注册方式:自动注册和手工注册。
自动注册必须将注册文件命名为protk.dat且必须将此注册文件放在PRO/ENGINEER的启动目录下。
这样在PRO/ENGINEER启动时将自动启动应用程序。
手工注册时打开PRO/ENGINEER选Tools菜单下的AuxiliaryApplications在弹出的对话框中点Register按钮然后选到你的注册文件确定后即完成注册。
然后选中注册的应用程序点start则应用程序启动。
手工注册时注册文件不必一定要命名为protk.dat但其后缀必须是dat。
在程序的开发阶段采用手工注册为好因为可以在不关闭PRO/ENGINEER的前提下反复调试程序。
而在打包阶段则应改为自动注册。
3 总结1应用程序尽量使用动态连接库模式DLL模式。
动态连接库模式是将PRO/ENGINEER/TOOLKIT应用程序集成到PRO/ENGINEER中的标准方法在这种模式下PRO/TOOLKIT应用程序与PRO/ENGINEER的信息交换是通过直接函数调用实现的。
而在开发阶段使用多进程模式调试更为方便它能够用源
代码调试器运行PRO/TOOLKIT程序而不必将整个PRO/ENGINEER执行程序加载到调试器中。
但在最后转换成DLL模式时有时会有麻烦。
对初级用户还是建议使用DLL模式进行开发。
下转第50页43 铸 造 设 备 研 究 2007年第1期如图2所示。
通常厂家都是下班时将其扫到沙堆上最后清理沙堆时用筛子将跑火金属和钢豆一并筛出。
但这样只能清理出直径较大的钢豆一些直径较小的钢豆都被扔掉了。
避免这部分金属浪费的方法是买一根磁力棒价格在200元左右将熔炼工序每个班次打扫的地面垃圾用磁力棒吸附这样无论大小的钢豆都能被收集起来不至于浪费。
图2 散落在地面上的金属豆3 残壳中的金属在浇铸的过程中由于型壳的强度不够造成的型壳破裂或者跑火3往往使一些金属存在于某部分残壳中如图3所示。
这部分残壳往往被忽视从而作为垃圾扔掉。
致使存在于其中的金属也被当作垃圾扔掉造成一定的浪费。
当遇到型壳破裂或跑火时应仔细敲打残壳看是否有金属存在。
图3 残壳中的金属4 小结以上三个细节在生产中往往被忽视从而造成一定的浪费增加了钢液的消耗和铸件的成本。
三个细节中的金属都是配制好成分的金属料其价格比回炉料要贵的多。
因此这部分浪费不容忽视。
严抓管理杜绝浪费从生产中的细节入手也可以有效降低生产成本增强企业竞争力同时也符合当前构建节约型社会的要求。
参考文献:1 崔旭龙姜不居罗宁.持续高速发展的中国熔模铸造J.机械工人热加工20021:222232 中国铸造协会.熔模铸造手册M.北京:机械工业出版社2000.上接第34页 2尽量使用同步模式进行开发。
尽管异步模式提供并行处理功能给应用程序以更为灵活的方式但与同步模式相比较它的执行速度慢而且
代码复杂很容易出错。
正如其二次开发的帮助文档《Pro/TOOLKITUser’sGuide》中所言除非不得已不要使用异步模式。
目前国内所研究的绝大部分参考实例都是针对同步模式而言对异步模式则鲜有论述。
因此建议用户特别是初级用户还是使用同步模式进行开发。
3善于总结。
在帮助文档和protoolkit的安装文件中提供了许多实例程序要研究这些程序找出其规律。
有时候往往我们编程的过程和用PRO/EN2GINEER制图过程的思路是一样的要善于领会PRO/ENGINEER的思路。
4在做程序之前要求对C语言有比较扎实的功底要能熟练使用PRO/ENGINEER。
参考文献:1 ParametricTechnologyCorporation.Pro/ENGINEER2001Pro/TOOLKITUser’sGuideM.USA:PTC2001.2 ParametricTechnologyCorporation.Pro/ENGINEERWildfirePro/TOOLKITUser’sGuideM.USA:PTC2003.3 田红.Pro/ENGINEER二次开发方法解析J.茂名学院学报2005151:30234.4 王恒宁汝新.利用MFC二次开发PRO/ENGINEERJ.计算机辅助设计与图形学学报2004164:8692872.5 张继春.Pro/ENGINEER二次开发实用教程M.北京:北京大学出版社2003.6 李世国.Pro/TOOLKIT程序设计M.北京:机械工业出版社2003.7 赖朝安.Pro/ENGINEER二次开发的关键技术J.机械设计与制造工程2001301:43245.05 铸 造 设 备 研 究 2007年第1期