探究基于VB.NET的Pro/E二次开发关键技术
2014-01-20李沁蓉
李沁蓉
(山西财贸职业技术学院,山西太原030031)
探究基于VB.NET的Pro/E二次开发关键技术
李沁蓉
(山西财贸职业技术学院,山西太原030031)
介绍了基于VB.NET的Pro/E二次开发关键技术,其中创建智能化三维模型库是其关键技术。以齿轮为例分析了其参数化关键技术,并使用VB.NET工具二次开发了Pro/E;编程建立的动态的链接库,不但适于有一定结构、基本参数确定的机械零件族,而且对其它工程数据模型库的设计同样有重要的参考价值。
VB.NET;Pro/E二次开发;关键技术
传统模式的Pro/E二次开发采用大都是VC,主要是由于以C语言基础,给其用户提供了大量的Pro/E资源。此外,其还调用的库函数以及其中的头文件。但是当前,这种技术已经无法适应新的应用的需求,在本文中,笔者重点介绍了基于VB.NET的Pro/E二次开发关键技术。
1 Pro/E二次开发的基本原理
参数化的设计程度,一般情况下是用来约束表达产品模型的形状特征,用一组参数来控制设计的结果,通过变换一组参数创建一系列形状较为相似的零件参数化设计技术具有强有力的尺寸驱动,具有修改图形的功能,从而能够为初始产品的产品设计、建模和产品修改等提供有效的手段,有效满足设计具有相同或者相近几何拓扑结构的工程系列产品,或者相应的工艺装备需求。
基于VB.NET Pro/E的二次开发技术,利用标准零件之间所具有的相似性,发挥 Pro/E所具有的建模功能,使用二次开发工具,比如族表工具、用户定义特征(UDF)Pro/Program、J-link、Pro/TOOLKIT等来实现建模。相关的理论研究给出了各二次开发工具的一些简单介绍。除此以外,Pro/E4.0提供的二次开发API工具包,还包含基于Pro/Web Link的二次开发过程。该方法使用的是javascript语言,以网页形式来访问Pro/E模型;和基于VB.API的二次开发过程特别相似。Pro/EWildfire 4.0开发能够采用VisualBasic API,通过 Visual Basic.NET应用程序和应用程序(如 Microsoft Word、Excel或 Access)中的Visual Basic宏来进行二次开发。通过查阅相关的文献资料,查阅相关刊物上发表的论文中,笔者看到,这些理论研究还系统介绍了基于Automation GATEWAY插件和VB.NET的二次开发关键技术。Automation GATEWAY便是RAND公司所研发的针对Pro/E软件的二次开发关键工具,与 Pro/E系统自带的二次开发工具Pro/TOOLKIT相比,两者相比较而言,该系统简单易用。应用 Automation GATEWAY能够自动实现Pro/E建模的任务,创建相关的用户界面,完成自动设计任务;而应用 Automation GATEWAY能够把所有支持 ActiveX的应用程序和Pro/E建立直接或者间接的联系。利用VB.NET技术,能够使MicrosoftOffice产品(如Word,Excel等)和Pro/E对象间交换数据。在这一过程档中,Automation GATEWAY在VB和Pro/E间起到的是桥梁和纽带的作用。通过 AutomationGATEWAY,VB也能够访问Pro/E的底层资源文件。
2 几何特征程序的自动建模方法
对于几何特征程序的自动建模而言,提供有下面3种方法:
①特征描述
每个特征都是由具有不同特征的元素树来定义的。在程序中,每个特征元素树每被赋值一次,就能够产生一个特征[1],多个特征叠加起来也就自动形成了产品的模型。特征元素树中的信息可分为三类:①特征的本身具有全部的选项和属性,也就是特征类型、名称等;②特征和已经存在的几何实体的优良密切的参考关系;③其用于构造特征平面图形的起始位置。
②族表
族表是自动建模的一种,该程序的步骤为:首先,手工构建产品的相关模型,然后把其当做族表的类属,紧接着在族表中定义各控制参数,以此控制模型大小和形状。通过这个步骤,就能够在程序中改变各参数值,从而得到所需的衍生件;衍生件的产生是独立的,无需定义参考基准。
③用户定义特征
与族表法相比,用户定义法与其有相同之处,就是都要预先手工构建相应的产品模型。模型创建完成以后,其定义所应包含的信息有:参考基准、几何数据,可变尺寸和可变尺寸的记号。模型建完后,需要在模型后添加文件后缀,通过这种方式,就可以通过改变文件的尺寸来产生所需的衍生件[2]。
用户定义法与族表法不同之处在于,该方法编程过程要比手工建模过程容易,主要表现在容易理解。
①按照上段中的说法,笔者首先手工构建一个任意尺寸的长方体,在其头部倒圆角,从而形成冲头模型,然后按照上述方法,改变其用户定义特征文件的文件名,将“punch”改为“gph”,也就形成了其建模。
②根据上面的步骤,我们为冲头模型的程序建立了相应的建模函数,该程序可根据所建模型的不同,输入相应的长、宽、高和圆角的值,然后程序会自动构造出冲头模型,而且会在Pro/E窗口显示。
3 基于VB.NET的Pro/E二次开发模式分析
与Pro/toolkit相比较而言,VB.NET的开发模式采用的只能是异步模式,也就是应用程序独立于Pro/E之外,然后再启动Pro/E或者是连接Pro/E到指定的进程当中。一般而言,该异步模式可分为两种,一种是简单异步模式,一种是完全异步模式。二者的区别在于,前者不处理来自于Pro/E的请求,应用程序当中也没用于处理Pro/E请求的listener;但完全异步模式有处理Pro/E请求的listener,存在于其应用程序中,这也就是说,完全异步模式能够用于在Pro/E中添加菜单的请求操作,而简单异步模式则无法完成该请求[3]。
4 基于VB.NET的Pro/E二次开发的关键问题分析
根据笔者的经验,笔者认为,在Pro/E二次开发中,核心问题就是基础模型的建立。正确的基础模型的建立,是Pro/E二次开发的基础和前提。建立基础模型时需要关注以下两个关键问题:
4.1 建立恰当的基础模型
这里所说的恰当的基础模式,指的是在基础模型的建立过程当中,各个特征之间应该具有合适的参照关系,不能出现因为某个特征的修改或者是删除而影响到其他特征的状况。
4.2 合理使用相关关系式和参数
模型关系式有重要的作用,其能够实现对模型中尺寸的控制,基础模型中的关系式应当可以正确反映各个尺寸之间的约束关系,并准确控制基础模型的变化与重生。而模型中的系列参数相当于为模型提供了一个VB.NET与Pro/E模型交互的接口。通过这个接口,VB.NET应用程序就可以采用改变参数的值的办法来实现改变模型的目的。
5 基于VB.NET的Pro/E二次开发的开发步骤分析
VB.NET完全采用面向开发对象的编程方式,没有固定的对象指针,因此,该系统可以为用户提供各种模型和方法,这些方法和模型可以访问Pro/E的绝大部分数据库和其内部的应用函数。
图1 基于VB.NET的Pro/E二次开发基本开发步骤示意图
各类之间具有明确的继承关系,也就使这些类和方法很容易理解,且比较容易掌握。基于 VB.NET的Pro/E二次开发的基本步骤和使用的主要类和方法如图1所示[4]。
6 基于VB.NET的参数化齿轮库的建立
6.1 建立各齿轮的基础模型分析
在建立各个齿轮的基础模型过程中,用到的参数包括M(模数,斜齿轮为MN)、Z(齿数)以及ALPHA(压力角)、B(齿宽),此外,还有X(变位系数)、HAX(齿顶高系数)和CX(顶隙系数)等。在齿轮基础模型中,要使用各种关系式对各尺寸进行相应的约束和控制。
6.2 程序界面和功能设计
程序界面的设计应遵循简单明了的设计原则。模型中的系统集应为二次开发提供快速、方便的界面。
程序界面的主要功能有:显示齿轮参数、修改齿轮参数,以及显示系统单位制、修改系统单位制。此外,程序界面还能够选择单位的转换方式,以便转换尺寸。
6.3 代码的编写
代码的编写是基于VB.NET的Pro/E二次开发的核心部分,当然,由于程序编写极为繁琐,同时它也是最容易出现错误的部分。
代码编写过程中,要最大程度上发挥VB.NET面向对象编程的优势和作用,对功能重复的代码,可以采用类进行处理,从而可以有效减少代码的编写量,同时也能够降低错误的发生率。此外,还可以提高代码的可维护性[5]。
该齿轮库中一共有14种模型,但每种模型的编写处理过程非常相似,不同之处在于要处理的参数数量。因此,我们就可以建立一个相应的类来统一来进行处理。类的建立也是代码编写的核心内容,该类主要的代码有:
Private parameterOwner As IpfcParameterOwner//
Public Sub New(ByVal fileName As String,ByVal paraArry As String,ByVal form As Object)//类的初
始化子程序
appPath=Application.StartupPath//
session=conn.Session//建立相应的连接
IpfcBaseSession对象
modelDescr=
NeCCpfcModelDescriptor().CreateFromFileName (appPath+fileName)//生成模型并说明类对象指示系统基础模型的名称以及位置
odel=session.RetrieveModel(modelDescr)//将基础模型读入内存
IpfcParameterOwner//用于处理参数的读取与重新赋值等
paras=paraArry//为参数数组赋相应的值
TextBox//取值并将该值赋给模型
For i=1 To UBound(paras)
If ctr.l GetType.Name="TextBox"And ctr.l Tag =IThen
paraValue=New CMpfcModelItem().CreateDoubleParamValue(ctr.l Text)
CType(parameterOwner.GetParam(paras(i)),Ipfc-BaseParameter).Value=paraValue
End If
Next
……
regInstr=New CCpfcRegenInstructions.Create (True,Nothing,Nothing)//生成或者是再生类,并用于指示系统模型重生的方式
……
End Sub
……
通过本文,我们可以得到:
①使用Pro/E二次开发工具VB.NET,能够容易地实现程序自动进行特征建模的功能,而且所建立的模型可以由程序自动加入非常丰富的非几何特征,并存入模型的数据库当中,以及特征库中,为CAD/CAM/CAE/CAPP系统集成打下坚实的基础[6]。
②用户定义特征的方法适用于几乎全部模型的程序建模,因此,本文的实例中所选用的方法和程序对于其它产品模型具有借鉴意义。
[1]孙丽.基于Pro/E二次开发的曲轴设计系统[D].哈尔滨:东北林业大学,2008.
[2]何艳丽,郭津津.基于Pro/E二次开发的参数化设计技术研究与应用[J].天津理工大学学报,2009(9).
[3]刘和荣,姚涵珍,陈建平.Pr o/E二次开发创建零件模型库关键技术的研究[J].天津科技大学学报,2008(7).
[4]赖朝安,李振南,孙延明,等.Pro/E二次开发关键技术[J].机械设计与制造工程,2010(2).
[5]贾海利,王仲民,刘静静.Pro/E二次开发关键技术的研究与应用[J].新技术新工艺,2010(9).
[6]高霄汉,张予川.基于参数化技术的Pro/E二次开发和应用[J].交通与计算机,2013(9).
Exp loration of Pro/E Secondary Development Key Technology Based on VB.NET
LIQin-rong
(Shanxi Vocational&Technical College of Finance&Trade,Taiyuan 030031,China)
This paper introduces the Pro/E secondary development key technology based on VB.NET,in which establishing intelligent three-dimensionalmodel library is its key technology.In this paper,taking the gear as example,the author analyzes the parameterization key technology and applies VB.NET tool tomake a secondary development of Pro/E;the dynamic link library established through programming not only is applicable to mechanical parts with certain structure and definite basic parameters,but also is of great reference value to the design of other engineering datamodel library.
VB.NET;Pro/E secondary development;key technology
TP391.72
B
1673-5382(2014)02-0076-04
(责任编辑 侯中岩)
2014-04-10
李沁蓉(1969-),女,山西沁水人,山西财贸职业技术学院讲师.