家电维修班,手机维修班,电脑维修班,电工班,焊工班,液晶电视维修班,电动工具维修班、电动车摩托车维修班、网络营销培训、网站设计培训、淘宝培训---全国招生 家电维修班,手机维修班,电脑维修班,电工班,焊工班,液晶电视维修班,电动工具维修班、电动车摩托车维修班、网络营销培训、网站设计培训、淘宝培训---全国招生
您现在的位置:首页 >> 技术园地 >> 模具设计园地 >> 信息正文

基于Pro/Toolkit的Pro/ENGINEER与PDM系统集成接口技术研究

2009-1-31 14:16:14 来源: 不详 作者:佚名 访问:61次 字号:【

一、 引言

  PDM系统作为从CAD技术发展起来的管理软件,其作用就是要把企业产品设计制造过程中各个“信息孤岛”中的数据组织起来,集中管理,维护其完整性,安全性,可靠性。Pro/ENGINEER作为一款比较普及的3D CAD/CAM系统,将其中的数据通过PDM系统加以管理和控制,成为PDM系统的一项关键技术。

  Pro/Toolkit是Pro/ENGINEER自带的基于C语言的二次开发工具,能够实现与Pro/ENGINEER的无缝集成。它封装了许多针对Pro/ENGINEER底层资源调用的库函数与头文件,借助第三方编译环境进行调试。Pro/Toolkit使用面向对象的风格,在Pro/ENGINEER与应用程序之间通过函数调用来实现数据信息的传输,为Pro/ENGINEER与PDM系统集成接口的开发提供了便利的工具和手段。

  本文主要介绍了基于Pro/Toolkit二次开发的Pro/ENGINEER与PDM系统的接口及其实现过程。

    二、 Pro/ENGINEER的二次开发工具——Pro/Toolkit

    1.Pro/TOOLKIT的开发环境

  Pro/Toolkit支持在Windows 2000/NT/XP操作系统中使用C和C++语言设计程序,采用Microsoft Visual C++6.0作为编译器和连接器,并可以在Microsoft Visual C++6.0的集成环境下完成程序的设计、调试和编译。

    2.模型、实体与特征

  模型(Model)是Pro/ENGINEER的顶层对象的简称,所谓的模型实际是Pro/ENGINEER环境的模型文档。按其类型可分为零件(Part)、组件(Assembly)、制造(Manufacturing)、绘图(Drawing)等模型。

  Pro/ENGINEER的实体(Solid)是指1个零件(Part)模型对象或组件(Assembly)模型对象,该对象在Pro/Toolkit中声明为一个非透明句柄,称之为“ProSolid”。

  实体特征是实体的下级对象。

    3.Pro/TOOLKIT二次开发的实现步骤

  使用Pro/Toolkit开发应用程序包含三个步骤:编写源文件、生成可执行文件及Pro/Toolkit应用程序在Pro/ENGINEER中的注册。

  (1)编写源文件

  源文件包括三种类型:菜单文件(resource)、窗口信息文件(Message.txt)和C程序。

    (2)生成可执行文件

  利用VC的应用程序设计向导(AppWizard)和类向导(Class Wizard)来进行Pro/Toolkit应用程序的设计、创建和调试。并将源文件生成动态链接库(dll)

    (3)可执行文件在Pro/ENGINEER中注册并运行

  要使Pro/Toolkit应用程序在Pro/ENGINEER中运行,首先要制作一个名为protk.dat 的注册文件。它的形式如下:

  NAME         <应用程序名称>
  EXEC_FILE    <生成的可执行文件或动态链接库的位置>
  TEXT_DIR     <菜单文件和窗口信息文件位置>
  STARTUP      <工作模式Spawn 或dll>
  ALLOW_STOP   <是否允许停止应用程序>
  DELAY_START  <是否直接启动应用程序>
  REVISION     <所使用的Pro/ENGINEER版本号>
  END

  应用程序有两种注册方式:自动注册和手工注册。自动注册是指将注册文件放在指定的目录下(Pro/ENGINEER安装目录的\text目录或者是Pro/ENGINEER的起始位置设定的目录),运行Pro/ENGINEER ,此时注册文件中的所有Pro/Toolkit应用程序将被自动注册。手工注册是指注册文件不在指定目录时,启动Pro/ENGINEER之后在Utilities菜单下选择Auxiliary Applications菜单项,然后在对话框中选取“注册”按钮进行注册。

  Pro/Toolkit应用程序在Pro/ENGINEER中注册成功后,选择“启动”按钮就可以运行了。此时,你所编制的新菜单或新菜单按钮就会出现在菜单中,选中它就能完成你所定义的动作。

  需要说明的是,如果只加载一个应用程序,可以选择自动注册并将“DELAY_START”的值设为“FALSE”即可实现在运行Pro/ENGINEER时自动启动应用程序。

    三、 Pro/ENGINEER与PDM系统集成接口技术

    1.数据集成模型

    该接口系统主要实现以下三类数据的集成。如图1所示。


图 1  Pro/E与PDM接口系统数据集成模型

    (1)物料数据的集成

  Pro/ENGINEER中的实体(Solid)导出到PDM中成为一条物料记录,实体的特征导出到PDM中成为物料记录中的相应属性。

    (2)BOM的集成

  Pro/ENGINEER中的组件(Assembly)模型的结构导出到PDM中成为装配体的BOM结构。

    (3)图档文件的集成

  Pro/ENGINEER中的图档能够提交到PDM中成为一条三维图档记录,PDM中的Pro/ENGINEER图档记录能够导出或者检出到Pro/ENGINEER中。

    2.系统结构与功能

    该接口系统主要分以下几个子系统。如图2所示。


图 2  Pro/E与PDM接口系统总体结构

    (1)接口主菜单系统在Pro/ENGINEER中生成了符合Pro/ENGINEER风格的窗口菜单条。包括以上几个功能菜单的触发按钮。

    (2)登陆PDM系统:提供了用户登陆PDM的对话框界面,实现在Pro/ENGINEER中登录PDM系统,验证用户的身份。

    (3)提交BOM系统:实现了把当前Pro/ENGINEER中的实体(Solid)提交成为PDM中的物料记录,并将组件(Assembly)模型按层次结构在PDM中建立相应的BOM结构。

    (4)提交图文档系统:实现了把当前Pro/ENGINEER中的模型文件提交到PDM中,成为相应物料的一条图档记录。

    (5)检出/导出图文档系统:实现了在Pro/ENGINEER中获取PDM中的图文档,主要是组件(Assembly)模型文件,并且在Pro/ENGINEER环境下打开。

    以上按实现的功能把Pro/ENGINEER和PDM接口系统分成了五个子系统。接口主菜单系统是其他四个系统的触发点。登陆PDM系统是实现后面几项功能的前提条件。用户在Pro/ENGINEER中登录PDM后所作的一切操作,都会进行相应权限验证,保证了在Pro/ENGINEER中对数据所作的操作的安全性。

    四、 软件实现及程序示例

    1. 在Visual C ++ 语言环境里建立一个基于常规MFC的动态链接库的工程

    2. 在项目文件主程序里完成如下工作

    (1)编写user-initialize()函数,这是程序的入口点,基本菜单及其动作执行函数都是在这里添加的。

    (2)编写user-terminate()函数,它是函数的结束点,应在此完成必要的清除工作。

    (3)添加必要的头文件,在程序里调用了大量Pro/Toolkit函数,这些头文件是必不可少的。

    3.系统环境定制

    (1)在工程里设置库文件的环境。方法是: Project→Settings →Link , 在Object/ Library Modules里添加mpr.lib、pro2tk-dll.lib、prodev-dll.lib 等库文件名。

    (2)设置头文件、库文件的路径。方法是: Tools→Options→Directories ,给出必要的文件路径, 如: D:\PTC\PROE2000I2\PROTOOLKIT\INCLUDES。

    4.菜单设计

  在Pro/ENGINEER主界面中添加设计菜单按钮及菜单按钮调用的动作(如显示登陆对话框) 等。这一步比较复杂,需要通过Pro/Toolkit的函数和一个相应消息文件(message file)共同完成。一个完整的菜单应至少包括两个Pro/Toolkit函数,一个是菜单按钮调用的动作,另一个是真正添加菜单并将它显示出来。以下是本程序的菜单添加过程。

    (1)ProMenubarMenuAdd("PDMMainMenu","SIPM/PDM","Utilities",PRO_B_TRUE,MsgFile); 其功能是设置主菜单,并列于Pro/ENGINEER原有菜单中。其中, PDMMainMenu为菜单名称,可任取; SIPM/PDM为菜单标签,在消息文件里应有对应的字符标识; Utilities为相邻的菜单名;PRO-B-TRUE可设定新菜单是否位于相邻菜单的后面; MsgFile为消息文件名。

    (2)ProMenubarmenuMenuAdd("PDMMainMenu","PDMCheckoutFiles","CheckoutFiles","PDMSubmitFiles",PRO_B_TRUE,MsgFile);其功能是设置带子按钮的菜单子项。其中,PDMMainMenu为父菜单名称,可任取; PDMCheckoutFiles为子菜单的名称。

    (3)ProMenubarmenuPushbuttonAdd("PDMMainMenu","PDMLogin","Login","Login Help",NULL,PRO_B_TRUE,ProLoginPDM_cmd_id,MsgFile);其功能是设置子按钮,用于调用主对话框。其中PartDesign 为子菜单的名称; Shaft 为子按钮的名称。

    (4)ProCmdActionAdd("LoginPDMAct",(uiCmdCmdActFn)ProLoginPDM,uiCmdPrioDefault,AccessDefault,PRO_B_TRUE,PRO_B_TRUE,&ProLoginPDM_cmd_id);其功能是添加执行的动作,获得其句柄。其中,SHAFTDL G指动作名称,可任意命名,但必须保证唯一;cmd - id 指分配的动作标识,即唯一的输出变量。图3所示是接口程序加载到Pro/ENGINEER中的主菜单。


图 3 Pro/E与PDM接口主菜单

    5. 用户界面对话框

    用户界面对话框(简称UI对话框)是Pro/Toolkit提供的一种交互界面。利用UI对话框技术,在Pro/ToolKit应用程序中设计出风格与Pro/ENGINEER系统本身具有的对话框相似的人机交互界面。实现用C或C++语言编写,用来在Pro/ENGINEER环境装入对话框资源、显示对话框、设置动作和退出对话框等。UI对话框的设计主要涉及两个方面:

(1)按界面的布局编写资源文件;

(Dialog LoginPDMDlg

 (Components  !对话框元件声明
  (PushButton       OK)
  ……
 )
 (Resources    !对话框资源(属性定义)
  !确定按钮属性定义
  (OK.Label                       "确定")
       ……   
       (.Label                     "登陆到PDM") !对话框标题
       (.Layout   !对话框元件的布局
             (Grid (Rows 1 1 1) (Cols 1)      
                 InputLayout    
                 Separator1           
     (Grid (Rows 1) (Cols 1 1)
     OK                              
     Cancel
  )
  )
)

    图4所示即Pro/ENGINEER中登录PDM的UI对话框。


图 4  Pro/E中登录PDM对话框

    (2)针对UI对话框的功能编写相应的控制程序。

    以下是提交BOM部分控制程序的示例:

    //获取当前进程中的模型及其类型

ProMdlCurrentGet(&model);
ProMdlTypeGet (model, &mdl_type);
……
//提交进程中的部件 
if (mdl_type == PRO_MDL_ASSEMBLY)
{
 ProMdlNameGet(model,Pro_model_name);
  //提交顶层装配体到选择的节点成为部件
 SpInsertLPAPITEM(model_name,"部件");
     ……
 SpInsertOneLBOMRecord(BOMid,itemid,number);
     ……
     //获得下级模型,并提交
     ProMdlDependenciesList (model, &p_array, &arr_size);
     ……
}

    五、 结论

  PDM系统作为企业信息集成的平台,实现与类似Pro/ENGINEER这种3D CAD/CAM系统的集成,已经成为PDM系统的关键技术之一。本文详细阐述了基于Pro/Toolkit二次开发的Pro/ENGINEER与PDM系统的集成接口技术。并且,开发完成了Pro/ENGINEER与SIPM/PDM的数据集成接口,在黄山汽车电器有限公司的“技术管理系统解决方案”中得到实际应用。实现了Pro/ENGINEER与SIPM/PDM系统之间,物料,BOM和图档的集成,提高了企业的工作效率,保证了设计数据的完整性,安全性,可靠性。

打印本文   加入收藏   返回顶部   关闭窗口Tags:基于|于P|Pr|r  

网站: http://www.hnygpx.net 报名电话:0731-5579057   13807313137 报名信箱: yp5579@263.net 咨询QQ: 361928696,873219118 

校址:湖南省长沙市雨花区红花坡路176号(正圆厂内)。 来校路线:长沙火车站售票处后坪乘135路至"鼓风站"下车,回走100米即到 湘ICP备08002401

电工培训学校 电动车维修学校 摩托车维修学校 摩托车维修培训 手机维修培训 家电维修培训 电脑维修培训 电动工具维修培训 液晶电视维修培训 安防监控培训 空调维修培训 网络营销培训 网站设计培训 淘宝网店培训 电器维修培训 家电维修学校 电工培训 焊工培训 电工学校
中山市,固原市,银川市,玉树,海东,陇南市,酒泉市,张掖市,天水市,金昌市,兰州市,榆林市,延安市,渭南市,铜川市,阿里,山南,拉萨市,怒江,文山州,楚雄州,普洱市,昭通市,玉溪市,昆明市,毕节,铜仁,遵义市,贵阳市,甘孜州,资阳市,达州市,宜宾市,南充市,遂宁市,绵阳市,泸州市,自贡市,三亚市,崇左市,河池市,玉林市,钦州市,梧州市,柳州市,梅州市,肇庆市,湛江市,佛山市,珠海市,韶关市,湘西州,怀化市,郴州市,张家界市,邵阳市,株洲市,仙桃市,随州市,荆州市,荆门市,襄樊市,黄石市,驻马店市,信阳市,南阳市,漯河市,中卫市,石嘴山市,海西,海南藏州,黄南州,海北,甘南,庆阳市,平凉市,武威市,白银市,嘉峪关市,安康市,汉中市,咸阳市,宝鸡市,林芝,日喀则,昌都,迪庆,德宏,大理,西双版纳,红河州,临沧市,丽江市,保山市,曲靖市,黔东州,黔西州,安顺市,六盘水市,凉山州,阿坝州,雅安市,广安市,眉山市,内江市,广元市,德阳市,攀枝花市,成都市,海口市,来宾市,百色市,贵港市,北海市,桂林市,南宁市,云浮市,揭阳市,潮州市,清远市,阳江市,汕尾市,惠州市,茂名市,江门市,汕头市,深圳市,广州市,娄底市,永州市,益阳市,岳阳市,湘潭市,长沙市,恩施州,黄冈市,孝感市,鄂州市,十堰市,武汉市,周口市,商丘市,三门峡市,许昌市,焦作市,安阳市,鹤壁市,平顶山市,开封市,郑州市,聊城市,滨州市,德州市,莱芜市,日照市,泰安市,烟台市,潍坊市,东营市,淄博市,上饶市,济南市,抚州市,宜春市,赣州市,新余市,九江市,景德镇市,宁德市,南平市,泉州市,莆田市,厦门市,宣城市,亳州市,六安市,宿州市,黄山市,滁州市,安庆市,淮北市,马鞍山市,蚌埠市,芜湖市,合肥市,丽水市,舟山市,衢州市,金华市,湖州市,嘉兴市,宁波市,宿迁市,镇江市,盐城市,连云港市,苏州市,徐州市,南京市,绥化市,牡丹江市,佳木斯市,大庆市,鹤岗市,哈尔滨市,白城市,白山市,辽源市,吉林市,葫芦岛市,铁岭市,盘锦市,阜新市,锦州市,本溪市,鞍山市,沈阳市,锡林郭勒盟,通辽市,乌海市,吕梁市,忻州市,晋中市,晋城市,阳泉市,太原市,廊坊市,承德市,保定市,邯郸市,唐山市,宁夏,甘肃省,西藏,贵州省,重庆市,广西,湖南省,河南省,江西省,安徽省,江苏省,黑龙江省,辽宁省,山西省,天津市,四平市,内蒙古,吴忠市,果洛,西宁市,定西市,商洛市,西安市,那曲,黔南州,巴中市,乐山市,贺州市,防城港市,东莞市,河源市,常德市,衡阳市,咸宁市,宜昌市,濮阳市,新乡市,洛阳市,菏泽市,临沂市,威海市,济宁市,枣庄市,青岛市,吉安市,鹰潭市,萍乡市,南昌市,龙岩市,漳州市,三明市,福州市,池州市,巢湖市,阜阳市,铜陵市,淮南市,台州市,绍兴市,温州市,杭州市,泰州市,扬州市,淮安市,南通市,常州市,无锡市,大兴安岭,黑河市,七台河市,伊春市,双鸭山市,鸡西市,齐齐哈尔市,延边,松原市,通化市,长春市,朝阳市,辽阳市,营口市,丹东市,抚顺市,大连市,阿拉善盟,兴安盟,乌兰察布市,巴彦淖尔市,呼伦贝尔市,鄂尔多斯市,赤峰市,包头市,呼和浩特市,临汾市,运城市,朔州市,长治市,大同市,衡水市,沧州市,张家口市,邢台市,秦皇岛市,石家庄市,青海省,陕西省,云南省,四川省,海南省,广东省,湖北省,山东省,福建省,浙江省,上海市,吉林省,河北省,北京市