二次开发实现异形零件的展开

时间:2022-06-27 03:19:23

二次开发实现异形零件的展开

本文运用Pro/ENGINEER软件的二次开发对异形零件进行展开,突破了只有钣金类零件才能展开的局限性。该程序使用三角形法原理进行展开,可以直接绘制出展开曲线。使用该程序后,无论是使用混合建立的零件,还是拉伸、旋转建立的零件,都可以一次展开完毕。

在专用车的设计中,有很多形状复杂的板类零件,设计完成后需要对其进行展开,以便在数控切割机上按展开图进行切割。Pro/ENGINEER的展开功能仅限于使用钣金件建模的零件,使用其他建模方式的零件无法使用展开功能。但如果零件的形状比较复杂,即使用钣金件建模也很难展开。

图1是一节粉罐半挂车的罐体,由图2的截面1和截面2混合而成,该罐体目前无法展开。以前需将无法展开的零件分成几个小零件设计,分别展开,再在AutoCAD中拼接在一起,非常麻烦,严重影响设计效率和设计质量。

本文所述的异形零件展开程序使用三角形法原理,通过使用Pro/TOOLKIT对Pro/ENGINEER进行二次开发来实现。无论是使用钣金件建模的零件,还是使用实体建模的零件,都可以使用本程序进行展开,解决了异形零件展开的难题,使设计人员的建模方法有了更多的选择。

一、异形零件的展开程序

图3为程序框图。

该程序首先在零件的上、下两条边链上按比例建立各自的一系列基准点,计算出各基准点之间的相互距离,然后进行坐标换算,求出展开后相应各基准点的平面坐标。调用Pro/ENGINEER的绘制曲线功能,根据各基准点的平面坐标,建立展开曲线。

如图4 所示, 零件是一个1 / 4 的锥体, 上边链包含有3 条边, 每条边均建立3 个基准点, 第一条边的基准点是PNT0_0、PNT0_1、PNT0_2;第二条边的基准点是PNT0_3、PNT0_4、PNT0_5;第三条边的基准点是PNT0_6、PNT0_7、PNT0_8;其中,PNT0_0是上边链的起点。下边链包含有3条边,每条边均建立3个基准点,第一条边的基准点是PNT1_0、PNT1_1、PNT1_2;第二条边的基准点是PNT1_3、PNT1_4、PNT1_5;第三条边的基准点是PNT1_6、PNT1_7、PNT1_8;其中,PNT1_0是下边链的起点。通过这些点,把零件分成若干小的三角形区域,如图4中所示的①、②、③等。然后按三角形区域的顺序,依次计算出零件展开后各基准点的平面坐标。依据各基准点的平面坐标绘制出展开曲线,如图5所示。

该程序设计时有以下注意事项。

(1)使用ProSelect()函数选择边链。由于每条边链都包含有多条边,多条边的首尾必须依次连接。可以使用ProEdgeXyzdataEval()函数获取每条边的首尾坐标值,通过检查一条边的尾点坐标值和下一条边的起点坐标值是否相等进行判断。如图4,上边链的第一条边和第二条边是否连接,要判断PNT0_2和PNT0_3的坐标值是否相同。特别注意的是,Pro/ENGINEER零件的默认精度是0.0001mm,在比较两个坐标值时,要考虑零件精度导致的误差。

(2)上、下两条边链中包含的边的数量要相等。如图4,上、下两条边链中均包含3条边。

(3)由于每条边链都有一个起点,一个尾点,要确定使用哪一个点作为展开时的起点。如图4,用户就选择使用PNT0_0和PNT1_0作为各自边链的起点。

(4)每条边链包含有多条边,每条边上至少要创建3个基准点。基准点之间的距离越小,展开曲线的精度就越高,但同时创建的点数就越多。往往创建点数太多时会影响软件的运行效率。经过比较,基准点之间的距离在50~200m m左右就能满足精度要求。每条边上的基准点数要为奇数,这样能保证展开图形的对称性。相互对应的上、下两条边,其基准点的数量要相同。确定每条边的点数时,应以上、下两条边的短者为准,以减少点的数量。每条边链的所有基准点均建在一个点组内。使用ProFeatureCreate()函数在每条边上按比例建立基准点,点的参照类型要设置为PRO_DTMPNT_CONSTR_TYPE_RATIO()(按比例在边上建立基准点),然后使用ProElemtreeElementAdd()函数在模型树上增加2个点组特征。

(5)使用ProSectionEntityAdd()函数创建展开曲线时,要使用SPLINE型曲线,即样条曲线,才能保证展开曲线符合实际。然后使用ProElemtreeElementAdd()函数在零件的模型树上增加1个曲线特征。

(6)展开曲线不会随着零件的变化而自动更新,需要设计一个“更新展开曲线”的功能。更新展开曲线时,是先删掉现有的展开曲线,重新获取两个边链上的点组坐标,计算展开后各基准点的平面坐标,再绘制展开曲线。

二、展开顺序和坐标的选择

每条边链都包含有多条边,在计算展开后的曲线各点的平面坐标时,每个点会有两组坐标值。根据程序确定的展开方向,只能选择使用其中的一组。如何保证曲线只向一侧展开?选择哪一组坐标值?是本程序的难点。

笔者使用以下方法来解决这些问题,图6为示意图。

(1)首先设定上曲线的0点坐标,如(0,0),再根据两条边链起始点的距离,确定下曲线的0′坐标,保证两点在竖直方向。

(2)然后根据0点坐标、0′坐标、1点和0点的距离,1点和0′点的距离,使用“求下一点的平面坐标公式”计算出1点的坐标。由于1点相对于0-0′线有两组对称的坐标,需要选择x 值为正的那一组。

(3)按图示箭头方向计算下曲线的1′点坐标,由于1′点相对于1-0′线有两组对称的坐标,需要选择y 值较小的那一组。

(4)以后各点就按箭头方向依次计算,比较第n 点两组坐标距各自曲线上第n -2点的距离,选择距离大的那一组坐标。

如此,可确保曲线只向一侧顺序展开。

三、求展开曲线下一点的平面坐标公式

图7为公式中变量示意图,已知b 点坐标(x b,y b),c点坐标(x c,y c),a 、b 两点间的距离L ab,a 、c 两点间的距离L ac,求a 点坐标(x a,y a)和a ’点坐标(x a’,y a’)。

其方程组为:

该方程组有2个解,一组解是a 点的坐标:

另一组解是a ′点的坐标:

其中:

四、程序应用示例

程序编译后,可以生成DLL文件,使用protk文件自动加载该程序。启动Pro/ENGINEER后,在菜单下增加“异形零件展开”和“更新展开曲线”两个按纽,如图8。

使用本程序对图1的零件进行展开,展开曲线如图9。

五、结语

本文通过对Pro/ENGINEER软件进行二次开发,利用三角形法原理实现异形零件的展开,展开过程比较简单,展开曲线的精度高,无论是实体零件还是钣金件,都可以使用该办法进行展开。解决了三维设计中零件展开的难题,已成功应用于公司粉罐车、液罐车等产品的设计中。随着专用车的结构越来越复杂,产品设计周期越来越短,这种新型的零件展开方法也会有更加广泛的用途。

上一篇:MasterCAM X中C―Hooks自带Rast2vec模块的应用... 下一篇:渤海国社会性质刍议