基于Pro/E二次开发的辅助布线技术
2014-12-23吉红伟王彦伟邱浩波
文 明,吉红伟,王彦伟,邱浩波
(1.华中科技大学 国家CAD 支撑软件工程技术研究中心,湖北 武汉430074;2.北京无线电测量研究所,北京100000)
0 引 言
大型的三维CAD 软件如Pro/E、UG、CATIA 等都具备专门的布线模块,但在布线运用中存在布线操作繁琐、并行程度不高、信息组织输出不合理等诸多问题,这些问题可从2个层面去解决。一是从理论层面提出新的布线理论,如学者提供了布线并发控制、沉浸式虚拟现实[1,2]、启发示路由布线[3]等方案、提供基础的布线算法等。二是从软件层面进行解决,如开发基于知识存储的智能布线系统[4]、运用二次开发技术[5]等。
本文运用二次开发作为弥补现有布线系统缺陷,定制特殊布线环境来解决以上问题。基于Pro/E 平台,结合系统提供的API函数和MFC,对线缆的干涉检查,信息存贮和输出,参数化建模等关键技术进行了研究。对现有系统的注重布线设计、未实现的布线质量检验、信息输出等特点进行了弥补。从软件层面完善了布线环境,从理论上丰富了线缆干涉检查的手段。文章最后,开发了一个具有上述功能的辅助布线系统,验证了相关技术的可行性。
1 关键技术研究
1.1 基于路径控制点的简单布线技术
目前在Pro/E 中主要的布线模式有2种,即简单布线与网络布线。简单布线是在指定始末端口后通过系统自动生成走线路径,生成后改变线缆走线路径操作复杂,且一般所布线缆呈悬空状态,布线效果不佳,在实际工程中运用较少。网络布线需要先进行布线网络的创建,并在创建好的网络中设置优先级,使线缆经过优先级高的网络,不经过不允许经过的网络,网络创建后在所建网络上进行布线,布线完成后可通过调整网络节点来调整整个网络走向。两类布线方式都需要先指定入口端后方能进行布线,布线操作繁琐,在重复的进行大量的相同的工作时带来巨大的工作量,影响施工进度。
基于路径控制点 (routing cable points)的简单布线不需要通过指定端口,再选布线位置,而是在布线过程中通过手工连续点击位置完成简单走线,完成简易化的布线功能[5]。路径控制点是线缆布线环境中的过渡点,是布线路径的最小单元,由空间位置决定。路径控制点主要分为三类:平面路径控制点,空间路径控制点,曲面路径控制点。在三维布线软件中,路径控制点创建的逻辑流程图如图1所示。
图1 路径控制点创建流程
复杂的布线路径创建可通过三维软件的草图辅助进行,首先在该草图平面上进行路径绘制工作,此时能够采用所有的草图操作命令,在完成草图路径绘制后,采取草图引用的形式形成复杂布线路径。
对于简单路径创建,直接在布线模型的表面上建立相应的布线控制点 (RCP 点),然后基于这些RCP 点在软件内部分段建立线段或样条曲线,最终完成布线路径的创建。
在Pro/E中,路径控制点 (RCP 点)有多种形式,网络布线中的线缆位置也是路径控制点的一种形式,正是基于这些控制点,网络布线才得以实施,表1所示为在Pro/E中是简单布线中最常用的几种RCP点。
创建完成这些控制点后,使用API接口函数ProCableRoutingStart进行布线准备,对选择的RCP 点进行加工,通过ProCableThruLocationRoute等相关函数进行布线,实现布线操作与路径控制同步实时同步的简单布线。
表1 Pro/E内部可用的RCP点
1.2 线缆的干涉检查与调整
数字化三维电气布线系统默认路径常选择连接器之间最短路径,因此容易产生干涉现象,不仅影响整个布线的美观,而且导致线缆长度与实际情况不符,从而导致预算错误。线缆的干涉检查通过ProCableClearanceCompute等函数实现。若线缆检查后存在干涉,则需要进行干涉调整。在Pro/E中,线缆的布置大多采用布线路径的贴壁形式,相关文章采用贴壁干涉自动调整的算法,在多次迭代的情况下进行调整[6]。本文着眼于线缆位置点,提出一种新的调整方案,方案原理如下。
在复杂线缆工程中的布设工程中,大多布线方式采用的网络布线,故本文在此只考虑线缆路径由沿布线网络行走或使用本文上述所介绍的布线方式布置线缆所引起的干涉情况,此2种布线方式都有一个共同点,即每段线缆的走向都是由线缆位置控制点或RCP点所决定。
若线缆存在干涉,都可以分为2 种情况,线面干涉和线线干涉。以下分别对2种情况分别进行解决。
(1)线面干涉
对于三维空间中的线面干涉,由于线缆是由RCP点或线缆位置控制其走向,所以可直接通过调整RCP点或线缆位置进行干涉调整。如图2所示。
图2 线面干涉
线缆由a、b、c、d这4 个线缆位置作为路径控制点,其中cd段与平面有干涉,最大干涉距离为h,设线缆直径为D,则通过沿与平面垂直的法向移动线缆控制点a、b、c、d,便可调整干涉。移动距离L 为
(2)线线干涉
对于三维空间的线线干涉,考虑到干涉点之间的两段线缆分别由2个路径控制点控制路径生存,故由其中3个控制点所形成的平面如图3所示。
图3 线面干涉
设图中平面α是经过控制点a、b、c所形成的平面,线缆ac和bd相交于F点,平面β平行于平面α,且平面β经过点F,向量n 为β的法向量。设线缆直径分别为D1和D2,则在干涉调整中,如果以线缆ac为标准,则线缆bd所在F点处新建RCP点,并沿向量n 移动。若干涉时线缆两中心线相交,则移动距离L 为
综上两种情况可知,线缆的干涉调整主要步骤如下:
(1)检查线缆干涉情况,若线缆出现干涉,则根据干涉类型选择不同的修改方式进行线缆的修改,若选择更改线缆直径,修改后立即进行干涉检查。
(2)若选择调整路径控制点,首先判断干涉类型,若为线面干涉,则根据实时工程信息获取线缆直径,并按上述中线面干涉调整方案进行调整。若为线线干涉,获取线缆直径后按上述线线干涉调整方案进行调整。
(3)判断线缆或线束中心线升高的结果。如果干涉仍然存在,则继续进行调整。
线缆调整过程的主要流程如图4所示。
图4 线缆的干涉检查和调整流程
1.3 模型参数存储与输出
参数化建模是Pro/E 模型建立的最主要特性之一,模型的参数是定义和描述一个模型必不可少的概念,在大部分的三维模型中,参数是通过尺寸、公差、材料特性等形式来体现的,参数化设计可通过修改相关参数实现模型的修改,如通过修改三维模型中的材料参数实现不同材料的模型设计。如果用户想在原模型的基础上修改模型的某些参数从而进一步符合设计需求要求,当这些参数修改如果在软件中无接口实现的时候,则可通过算法将某些参数显化进行修改,并进行模型再生,从而派生出新的实体,实现零件的动态修改,即参数化建模。
下线表的输出是线缆模块二次开发的一个重点,通过下线表,可减少线缆因无法估计下线长度而引起的组装不便或线缆浪费。线缆长度是以线缆参数形式Pro/E 中保存的,而线缆参数在Pro/E 中以结构体形式的存贮的,其结构形式如下:
对于每一个特征或模型的具体参数在Pro/E 中的存取,都需要模型句柄才能够取得,所谓模型句柄是指具体的模型对象,而要获得所需的特征句柄或模型句柄,则需通过遍历的方式来取得相应的句柄。在线缆参数读取时,所需的模型句柄多为某段线缆,其在模型中的组织形式如图5所示。
所以需要得到线缆特征则需要进行两次遍历,具体实现代码如下:组件,返回的特征存入数组中
图5 线缆装配体内部特征组织
值得注意的是,在使用相关函数时如ProSolidFeatVisit需要编写访问函数,函数编写方法可参考相关资料[7]。
在对需要的进行参数建模的线缆零件进行参数修改后,便可通过程序将实际布线过程中所需的数据提取出来,这便是信息输出。对于线缆零件而言,在进行实物布线时,根据虚拟样机可绘制出基本的布线路径和顺序,但对于复杂的大型系统而言,布线路径则无法简单的从模型中获得,必须经过信息处理,获得下线表,使表中记录每条线缆对应的起始端口和终止端口以及下线长度。
在Pro/E 中提供了线缆长度的估算函数ProCable-LengthGet可获取线缆长度,通过线缆参数可获取线缆的线缆名、线轴、和连接端口等。这些参数是以文件的方式在Pro/E中的存贮的,表2所示为线缆连接端口参数在Pro/E内部的贮存形式。
表2 Pro/E线缆连接端口参数的贮存
这些线缆参数可通过ProOutputFileWrite将文件读出后获取参数,也可通过ProCableParametersCollect进行收集,再对使用相关算法进行输出。但是模型中相同的连接器在同一个模型中的逻辑名是同名的,所以在输出时必须先对相同的连接器进行编号或改名,才能将端口输出到下线表中。
1.4 参数化建模
在Pro/E中,线缆零件表现为统一的通用的数学模型,不同的线缆的种类通过设置该线缆的各种参数来进行设置。面向装配过程的线缆应该一般包含多个方面的信息,信息的分类定义详见参考文献 [8]。本节主要以3类对象的建模来对进行说明,即线缆,线轴,护线套的建模。
线轴的创建分为两大类,一类是基线缆线轴,另一类是护线套线轴。基线缆线轴的创建可分为3类:单根线缆线轴,多芯线缆线轴,扁平线缆线轴。护线套线轴在创建后也可进行类型和参数的设置。
Pro/E中常用的线缆可分为3 类,单根线缆,多芯线缆,扁平线缆。这3类线缆都是基线缆,根据3 类线缆的划分,模块中对应的连接器类型也分为对应的3类:wire、round和flat这3 种类型。在Pro/E 中,线缆的创建包括Spool的创建和线缆特征创建两个步骤,在Spool中定义包括线缆的直径,颜色,最小折弯半径等,特征的创建是在Spool创建的基础上,定义具体的线缆。
护线套主要分为3 类,热缩管 (shrink),胶带缠管(tape),不用胶带的护线管 (tube),三类套管也是基于Spool创建的线缆零件,具有直径、宽度、颜色、直径、最小折弯半径等参数,护线套正是基于这些参数成为一个对象模型。图6为3种具有不同属性的护线管。(图中绿色为热缩管,红色为胶带缠管,蓝色为护线管。)
图6 Pro/E内部3种不同属性的护线管
2 VS环境下的Pro/E的二次开发
二次开发是在软件原有功能的基础上实现新功能拓展和定制的重要方式[9,10]。市场现有的大型软件基本上都提供二次开发功能,如CATIA、UG、Pro/E等都提供了强大的二次开发接口和丰富的二次开发函数。就Pro/E 二次开发来说,开发方法也有不同种类,使用较普遍的如J-link和Pro/Toolkit软件工具包[11]。也可使用其它方式如族表(family table)、用户定义特征 (UDF)等进行开发。
Pro/Toolkit是Pro/E 软件系统自带的二次开发模块,可以直接访问Pro/E的最底层数据库资源,用户通过程序代码扩充系统功能,开发基于Pro/E 系统底层数据库资源的应用程序模块,从而实现用户的特殊要求。Pro/Toolkit中包含丰富的库函数,通过这些库函数文件和头文件可实现应用程序模块与Pro/E系统的无缝集成。
在Visual Studio环境下,基于MFC编制原代码实现模块功能后生成动态链接库 (dynamic link library),链接库中包含可供Pro/E 程序使用的代码和数据,再经过Pro/E注册和便可在软件中正常运行而不影响其它模块的正常运行。
3 线缆辅助布线系统开发及验证
本文根据工程需要,以普遍使用的Pro/E 为平台,以VS2005和Pro/TOOLKIT 为编译环境及接口,采用与ProeWildfire 5.0紧密集成的开发方式进行构建,以Pro/Cabling模块为基础,结合Cabling的原有布线流程进行功能增强和功能扩充,综合运用Pro/TOOLKIT、Pro/Develop开发技术和MFC 编程技术开发了一个面对复杂天线布线工程的辅助布线系统原型,其系统架构如图7所示。
图7 辅助布线系统架构
整个系统可分为复杂线缆模型管理,线缆工艺布局和组装,复杂线缆工艺校核和优化3大模块。
复杂线缆模型管理包涵模型轻量化管理,线缆库管理以及刚性和半刚性线缆库管理等,通过该模块可实现布线使用的线缆库管理,包括线缆的创建和线缆参数的修改等,将线缆管理工作统一集成在一个页面内,在布线中减少线缆建模的重复性工作。线缆工艺布局包括便捷化简单布线,布线网络创建和网络布线导航,该模块辅助布线模块中常规的简单布线和网络布线,通过路径控制点进行布线,克服了简单布线中不能调整路径以及网络布线中需要事先规划网络的缺点。复杂线缆工艺校核和优化主要包括布线规则干涉检查,接线表下线表输出,元件端子指定等,干涉检查可对已有模型的线缆布局进行干涉检查,并提出调整方案,减少线缆模型中的干涉。根据特定的下线规则,则可进一步进行下线表的输出。
布线成功后,可运用干涉检查进行线缆的干涉检查,若线缆有干涉,进行干涉调整后再次进行检查,图8为简单布线效果,布线时只需拾取路径控制点即可控制路径,实现布线与路径的同步控制。
图8 在Pro/E内部实现的简单布线菜单和功能
线缆布设成功后,对线缆进行干涉检查,若线缆存在干涉,使用调整方案对线缆进行干涉调整,调整后若无干涉,便可进行下线表输出制作实物样机,图9为处理后输出的下线表信息。
图9 数据处理及下线表输出
线缆布设成功以后,需要对某些线缆进行包扎,这便需要护线套的建模过程,护线套的建模是参数化建模过程的典型体现,通过参数设置实现了护线套各种特性的设置。图10为运用MFC和Pro/E二次开发接口实现的护线套建模的界面。
图10 护线套参数化建模及实现
4 结束语
文章在三维软件布线系统的现有功能的基础上,通过对基于路径控制点的简单布线、干涉检查与调整、信息整合与输出及参数化建模等技术的研究,在Visual Studio环境下,结合Pro/E提供的软件开发工具包,通过函数实现模型数据库底层数据操作,成功开发了一个面向快速布线的辅助布线系统,新开发的系统实现了线缆的快速布置,线缆参数的快速设置以及线缆干涉检查,并实现下线表的输出,提升了工程中布线的设计水平,具有现实的工程意义和使用价值。
系统中的干涉调整技术由于软件本身的接口限制问题,在提出理论基础的情况下,后续的实现方法还有待进一步研究。
运用Pro/E二次开发进行特定模块的功能拓展是工程实践中的重要手段。当软件提供的功能已不能满足工程要求时,通过Pro/E提供的二次开发接口,在VC++强大的平台支持下,加上现有编程语言的强大的编程效率,可在较短时间实现原有功能模块的功能扩充,因此三维软件的二次开发是解决特定领域建模问题的重要手段,也是从软件层面弥补现有系统不足的重要方式。
[1]Robinson G,Ritchie J M,Day P N,et al.System design and user evaluation of Co-Star:An immersive stereoscopic system for cable harness design [J].Computer-Aided Design,2007,39 (4):245-257.
[2]Ritchie J M,Robinson G,Day P N,et al.Cable harness design,assembly and installation planning using immersive virtual reality [J].Virtual Reality,2007,11 (4):261-273.
[3]Thantulage GI.Ant colony optimization based simulation of 3Dautomatic hose/pipe routing[D].UK:Brunel University,2009.
[4]Van der Velden C,Bil C,Yu X,et al.An intelligent system for automatic layout routing in aerospace design [J].Innovations in Systems and Software Engineering,2007,3 (2):117-128.
[5]WANG Jinfang,YAN Jing,WU Kai,et al.Key technologies on the cable harness assembly planning system based on Pro/E[J].China Mechanical Engineering,2008 (13):1565-1569(in Chinese).[王金芳,闫静,武凯,等.基于Pro/E 的线缆装配工艺规划系统关键技术研究 [J].中国机械工程,2008(13):1565-1569.]
[6]CAI Yi,WANG Yanwei,HUANG Zhengdong.Research on 3D automatic electrical routing in UG system [J].Computer Engineering and Applications,2012,48 (8):68-72 (in Chinese). [蔡毅,王彦伟,黄正东.基于UG 的三维电气自动布线技术研究[J].计算机工程与应用,2012,48 (8):68-72.]
[7]WANG Wenbo.The secondary development of Pro/E wildfire instance analysis [M].Beijing:Tsinghua University Press,2010 (in Chinese).[王文波.Pro/E Wildfire 4.0二次开发实例解析 [M].北京:清华大学出版社,2010.]
[8]DU Wenjie.Research and application of virtual assembly information management technology [D].Changsha:Hunan University,2012:10-20(in Chinese).[杜文杰.虚拟装配信息管理技术的研究与应用[D].长沙:湖南大学,2012:10-20.]
[9]GU Cui,ZHANG Liqiang,XIANG Qinzhi.Research of satellite assembling based on advanced developing of Pro/E [J].Computer Engineering and Design,2011,32 (4):1169-1173(in Chinese).[顾翠,张利强,项钦之.基于Pro/E 二次开发的卫星装配设计研究 [J].计算机工程与设计,2011,32(4):1169-1173.]
[10]ZHENG Zhanguang,PAN Shuqi,XIA Wei,et al.Research of second development based on UG and MFC [J].Computer Engineering and Design,2007,28 (23):5787-5788 (in Chinese).[郑战光,潘淑琴,夏薇,等.利用MFC进行UG 二次开发的研究[J].计算机工程与设计,2007,28 (23):5787-57881.]
[11]WANG Xuan,GUAN Tianmin,LEI Lei.Development of automated assembly system for individualized wheelchair[J].Machinery Design & Manufacture,2011 (8):96-98 (in Chinese).[王璇,关天民,雷蕾.个性化轮椅自动装配系统的开发 [J].机械设计与制造,2011 (8):96-98.]