摘要:现基于NX10.0平台,通过NX/Open二次开发技术,利用C/C++语言开发斜导柱侧抽芯机构辅助设计系统,实现了成型零件侧向特征智能化识别和抽芯机构参数化驱动设计的功能,并通过UG的CAE运动仿真验证了系统开发的可靠性和合理性。通过系统设计斜导柱侧抽芯机构,
现基于NX10.0平台,通过NX/Open二次开发技术,利用C/C++语言开发斜导柱侧抽芯机构辅助设计系统,实现了成型零件侧向特征智能化识别和抽芯机构参数化驱动设计的功能,并通过UG的CAE运动仿真验证了系统开发的可靠性和合理性。通过系统设计斜导柱侧抽芯机构,不仅简化了设计过程,还缩短了模具设计周期,系统开发流程如图1所示。
图1 系统开发流程
1NX二次开发技术
NX在UG软件的基础上进一步更新和升级,NX/Open是该软件二次开发的重要工具,为其提供应用程序编程接口(API),可让开发者编写程序来自定义或扩展NX软件,以实现NX相关模块的功能。NX/Open C/C++包含的API函数较完整,性能较完善,种类也较丰富。NX开放API的扩展,可简化零件的开发和分析。通过NX/Open C/C++,用户可以编辑开发功能的程序,创建自定义的菜单,建立完整的用户操作界面,最终实现人机交互界面和相关功能的开发。
在NX二次开发目录的路径中,需要创建startup、application、code等文件夹,这些文件夹存放系统开发所需的文件。startup文件夹存放菜单文件 (.men)、工具条(.rtb),这些文件生成系统的下拉菜单和工具条。application文件夹存放位图(.bmp)、对话框文件(.dlx)、动态链接库文件(.dll)等,位图文件是指在NX操作对话框中显示的图标、图示等,对话框文件是指开发人员设计UI界面所生成的文件,动态链接库文件是指通过程序代码调试运行之后生成的能直接实现代码功能的文件。code文件夹是存放二次开发源代码解决方案(.sln)、C++程序代码(.cpp)等文件。开发路径的文件各自执行相关功能,共同组建NX的人机交互界面,完成产品实例的开发,如图2所示。
图2 NX二次开发流程
2零件智能特征识别子系统
特征识别是智能化CAD技术的一项热门研究课题,根据过去的研究,特征识别方法可分为两类:一类是YE X G等研究的基于边界的特征识别思想,如基于图、基于规则、基于痕迹等特征识别方法;另一类是FU M W等研究的基于表面特征识别思想,如面的正负性和面的可见性2种特征识别方法。
2.1 基于图的特征识别
2.1.1 基于图的特征识别算法
图的识别方法由SHI S J等首次提出,近年来图的特征识别和提取技术在各个领域都得到广泛应用,如M GHAHREMANI等将其应用到三维植物体中,提出了用于直接分析点云数据植物的稳健方法;R SEKARAN等将其推广到医学领域,提出了在三维脑切片图像中提取肿瘤特征并进行分类的新技术。
在机械领域中,利用图的识别方法识别三维模型的特征,通常采用面属性邻接图(face attributed adjacency graph,FAAG)的识别方法,其原理是通过零件相邻表面相交所形成边的凹凸性判断来实现。若两相邻表面相交所形成的实体部分夹角α∈(0,π),则对应的边为凸边,反之,若α∈(π,2π),则对应的边为凹边,如图3所示。
图3 凹凸边定义
面属性邻接图的几何拓扑信息可定义:G=,A,T>,其中,N表示几何图形中的面,A表示边,T表示边的属性。对边属性进行定义,可将凸边定义为T=1,凹边定义为T=0。图4所示为对一个方形的凹槽特征进行面属性邻接图的特征识别,将侧凹特征的6个面分别标记为1~6,通过对6个面相邻边的凹凸性进行判断,可得到该特征对应的FAAG表示方法。
图4 基于FAAG的侧凹特征识别表示方法
基于图的特征识别过程(见图5):首先输入成型零件的三维实体模型,对三维模型进行几何解析,然后遍历成型零件的实体特征,将识别的实体特征与系统特征库进行匹配,匹配结束后从得到的实体特征中提取侧凹特征。
图5 基于图的特征识别算法流程
2.1.2 基于图的特征识别实现
该方法是将特征的面属性邻接图与自定义的特征子图进行搜索匹配,即将识别的特征与系统特征库的特征进行匹配,提取识别的实体特征,其核心数据结构是图。
基于图的特征识别人机交互界面和功能实现如图6所示,选择需要进行特征识别的成型零件,点击【识别特征】,识别特征结果显示在组“识别结果”的树列表中。【添加特征】和【删除特征】的功能分别是添加人工识别的特征和删除不需要进行侧抽芯的特征。设计人员通过选择特征列表数据文件的保存路径,点击【开始导出】,特征数据以Excel表格文件的形式保存到所选的路径中,以便设计人员进行调用和分析。点击树列表中的特征,相关的特征信息(特征序号、特征TAG值、特征类型、特征名、表达式、表达式值)将逐一显示在“特征数据”组中的各项信息中。点击【预览特征】,识别的特征即可在成型零件中高亮显示,最终完成零件的特征识别,提取的实体特征数据如表1所示。
图6 基于图的特征识别UI界面及功能实现
表1 提取的特征数据
2.2 基于面的特征识别
2.2.1 基于面的特征识别算法
基于面的特征识别方法主要分为面的正负性和面的可见性,由面的正负性可将特征表面分为正面、负面、垂直面和跨越面,由面的可见性可将特征表面分为完全可见面、完全不可见面和部分可见面。
(1)面的正负性。如图7所示,定义脱模方向为矢量D方向,成型零件表面的法线方向n与脱模方向D所成的夹角定义为θ。当θ∈[0, 1/2π)时,该表面称为脱模方向的正面;当θ∈(1/2π, π]时,该表面称为脱模方向的负面;当θ=1/2π时,该表面称为脱模方向的垂直面。若零件表面同时存在正面、负面和垂直面的3种面属性中的任意2种及以上的情况,则该表面称为跨越面,一般为多向特征曲面。
图7 面的正负性判断示意图
设ni是表面fi上任意一点的法向量,D为某一方向,表面的正负性根据以下公式进行判断:
若ni,nk和D满足条件:
(1)
或&(2)
该表面为正面(positive),其中,nk表示表面上至少存在一个法向量,使nkD=0。
若ni,nk和D满足条件:
(3)
或&(4)
该表面为负面(negative),其中,nk表示表面上至少存在一个法向量,使nkD=0。
若ni,nk和D满足条件:
(5)
该表面为垂直面(vertical)。
若ni,nk和D满足条件:
&(6)
该表面为跨越面(crossover),其中,nk表示表面上至少存在一个法向量,使nkD
(2)面的可见性。面的可见性判断是根据表面的法线方向发出的射线与零件是否存在交点所确定。定义fi为成型零件A的表面,Pi和Pj分别表示面fi上除边以外的任意一点,Pi+λD(λ∈(0,+∞))表示从Pi点(不包括Pi点)发出,指向D方向的射线,面的可见性根据以下公式进行判断,如图8所示。
图8 面的可见性判断示意图
若Pi+λD满足:
(Pi+λD)∩A=∅(7)
则表明面fi上存在一点Pi,使从该点发出的射线与零件A无相交情况,fi在D方向为完全可见面。
若Pi+λD满足:
(Pi+λD)∩A≠∅(8)
则表明面fi上存在一点Pi,使从该点发出的射线与零件A有相交情况,fi在D方向为完全不可见面。
若Pi+λD与Pj+λD满足
(Pi+λD)∩A=∅&(Pi+λD)∩A≠∅(9)
则表明面fi上既存在一点Pi,使从该点发出的射线与零件A无相交情况,也存在一点Pj,使得从该点发出的射线与零件A有相交情况,fi在D方向为部分可见面。
由于零件表面有曲面存在,曲面上任意区域的法向量不一致,面的正负性判断的算法是将每个表面分解为m(m≥2)个离散面(FACET),根据每个离散面的法向量nm与脱模方向D所形成夹角θ的余弦值,可将离散面进行分类。法向量与脱模方向的夹角余弦值大于0的离散面数量记为i,余弦值小于0的离散面数量记为j,余弦值等于0的离散面数量记为k,根据i、j、k的数值即可判断零件表面的正负性。
零件表面可见性判断是根据在垂直于该面的方向(即法线方向)是否可见,确定其算法是将每个表面分解为m(m≥2)个离散面(FACET),每个离散面上均有一个离散点,以离散点作为起点,向法线方向发出射线,若射线与零件有交点,说明该离散面在其法线方向不可见;相反,若射线与零件没有交点,说明该离散面在其法线方向可见。零件的每个表面上与零件相交的射线数目记为p(p≤m),若 p=0,说明该表面是可见面;若p=m,该表面是不可见面;否则,若0pm,该面是部分可见面。基于面的特征自动识别算法流程如图9所示。
图9 基于面的特征识别算法流程
2.2.2 基于面的特征识别实现
表面特征识别运用的是基于面的特征识别方法,适用于零件结构复杂、特征错综复杂、零碎面较多的成型零件。表面特征的识别,无论是表面的正负性还是可见性,都先是使用函数UF_MODL_ask_body_face识别成型零件的所有表面,然后使用API函数UF_FACET_cycle_facets逐一将每个表面划分为多个离散面,最后利用API函数UF_FACET_ask_normals_of_facet提取这些离散面的法线方向的矢量以及使用API函数UF_FACET_ask_max_facet_verts提取离散面的最大顶点坐标。对于表面的正负性特征识别,是判断每个离散面法线方向的矢量与脱模方向的矢量夹角来提取正面、负面、垂直面和跨越面4种类型的表面,而对于表面可见性的特征识别,是以顶点坐标作为起点,向法线的矢量方向发出射线,统计射线与零件的交点情况来识别可见面、不可见面和部分可见面。
图10所示为表面正负性识别的人机交互界面及其识别过程,首先选择需要识别的成型零件三维模型,指定脱模方向,然后点击【表面正负性判断】,识别结果将会显示在树列表中,树列表将会记录正面、负面、垂直面和跨越面的数量、TAG值、法向量以及与脱模方向形成的夹角,与图的特征识别类似,面的特征数据也可导出到Excel文件中,最后点击【开始预览】,面的正负性将会可视化地显示在成型零件中。图11所示为表面可见性的人机交互界面及其识别过程,与表面的正负性判断相似,选取需要识别的成型零件,指定脱模方向,点击【表面可见性判断】,树列表将会记录特征面的相关信息,包含可见面、不可见面和部分可见面的数目及TAG值,每个表面的离散面的ID、顶点坐标系信息及其射线与成型零件的相交情况等,特征数据与特征可视化也可相应输出。
图10 基于面的正负性特征识别实现
图11 基于面的可见性特征识别实现
通过基于面的特征识别方法,可得出以下结论:①相邻的不可见面所组成的表面是侧凹特征面;②既是垂直面,又是可见面,且相邻面都是侧凹特征面的表面是侧凹特征面;③相邻的面都是侧凹特征面的部分可见面是侧凹特征面。复杂零件表面特征的识别结果如图12所示。
图12 复杂零件表面特征识别可视化结果
3斜导柱侧抽芯机构设计模块
斜导柱侧抽芯机构是压铸模或注射模中常用的抽芯机构类型之一,该机构适用于侧向特征离分型面较近或处于分型面上下的场合,其使用要求为抽芯力不宜过大,侧抽芯方向应与分型面保持平行,这样能够较好地实现型芯平稳抽出,保证抽芯过程的安全。现以斜导柱抽芯机构作为系统开发对象,实现侧向特征的分析、抽芯力和抽芯距离的计算、机构各部件自动化设计和参数化建模。
3.1 设计参数计算界面开发
侧抽芯机构在设计过程中的主要设计参数包含抽芯力F和抽芯距离S。
待浇注的液体冷却后,成型零件会对型芯产生包紧力F包,且抽芯机构在抽出瞬间也会受到零件的抽芯阻力F阻,二者的合力即为抽芯开始的瞬间抽芯机构所受到的抽芯力F,其数值的公式按下式计算。
(10)
其中,C为型芯被包紧部分的截面周长,cm;l为型芯被包紧部分的断面长度,cm;p为在压铸中表示金属材料的挤压应力,在注射中表示塑料的收缩应力,MPa;μ表示摩擦系数;α表示脱模斜度,(°)。
抽芯距离是指侧抽芯机构在平行于分型面的方向,型芯由成型位置完全抽离成型零件所在区域经过的行程,其作用是保证型芯不阻碍零件从型腔中推出。按照成型零件外形以及结构的复杂程度,抽芯距离的计算分为单侧抽芯、二等分滑块抽芯和多等分滑块抽芯3种类型,其计算公式分别根据式(11)~(13)确定。
(11)
(12)
(13)
其中,h为侧向特征形状的深度或长度,mm;R为成型零件最大外形半径,mm;r为阻碍推出成型零件外形的最小内圆半径,mm;B为瓣合滑块前两尖角弦长的1/2,mm;β为多等分侧滑块合模夹角,(°);K表示抽芯的安全距离,mm。
根据抽芯力和抽芯距离的概念与计算公式,系统开发的自动化设计参数计算模块如图13所示。图13(a)的人机交互界面为抽芯力的计算操作界面,设计人员只需选取侧向特征的轮廓曲线,点击【计算断面周长A】,即可计算型芯被包紧部分的断面周长,然后结合输入的材料参数与其他参数,点击【开始计算】即可计算抽芯力。同理在图13(b)的界面中,选取侧向特征轮廓上的相关表面及其相应的点,点击【计算侧凹深度h】,即可计算表示侧向特征形状的深度或长度,再选择抽芯类型和形式,即可计算抽芯距离。
图13 设计参数计算
3.2 斜导柱设计界面开发
斜导柱在抽芯机构中是动力元件,其作用是带动运动元件完成抽芯动作,斜导柱的结构尺寸如图14所示。斜导柱与模具零件之间的连接存在一个倾斜角α,倾斜角的大小取决于抽芯力和抽芯距离。角度α越大,表示斜导柱所承受的弯曲力越大,相应地所需的开模力也更大,会造成斜导柱扭矩过大,引起其变形;角度α越小,会造成斜导柱的长度变长,最终导致斜导柱过度磨损,甚至被烧坏。因此为保证抽芯机构的工作效率,倾斜角α一般取10°~25°,最常用的斜导柱倾斜角为18°和20°。
图14 斜导柱结构尺寸
斜导柱受到的力主要是抽芯时的弯曲力,为了保证斜导柱不会因承受的弯曲力过大而变形,斜导柱工作直径d的取值应满足公式(14)。
或(14)
其中,Fw为最大弯曲力,N;F为抽芯力,N;h为滑块端面至受力点的垂直距离,cm;[σ]w为抗弯强度,MPa;α为斜导柱倾斜角,(°)。
斜导柱的总长度由固定段长度、工作段长度和引导段长度组成,各段的长度取决于不同的模具结构参数。斜导柱总长度的值可根据公式(15)进行计算。
(15)
其中,D为斜导柱固定段直径,mm;d为斜导柱工作段直径,mm;H为固定段套板厚度,mm;S为抽芯距离,mm;α为斜导柱工作倾斜角,(°)。
斜导柱的参数化驱动建模通过NX/Open C/C++完成,首先根据参数计算模块中的抽芯力和抽芯距离的数值,通过获取数据库中斜导柱倾斜角和抽芯力的标准值以及滑块端面至受力点的距离,即可从数据库中获取标准的斜导柱工作直径,再结合用户输入的其他参数值,完成斜导柱的参数化建模。斜导柱的参数化驱动遵循点、线、面、体的方式,利用NX/Open中的API函数UF_MODL_create_revolution1旋转得到斜导柱的整体结构,再通过与三棱柱进行布尔运算得到斜导柱的最终模型。
根据斜导柱的结构尺寸和参数化驱动的原理,该设计系统开发了图15所示的斜导柱部件设计的人机交互设计模块。模块根据用户选择的倾斜角α以及参数计算模块所计算的抽芯力F,在斜导柱设计的抽芯力数据库中检索斜导柱所受的最大弯曲力F弯,在斜导柱直径数据库中检索斜导柱的直径d,设计人员点击【获取斜导柱直径d】即可获取斜导柱的工作直径并显示在相应的数据框中。完成数据库的检索后,用户结合上一模块计算的抽芯距离S,输入模架的相关参数以及套板厚度、固定段长度等参数,即可根据参数化驱动设计构建斜导柱的三维模型,点击【显示结果】查看斜导柱部件的设计结果。“斜导柱参数列表”统计了斜导柱在设计过程中涉及的各参数,以便后续检查设计结果时进行查验。该界面还提供了模型外观选取功能,设计人员可根据个人喜好选择斜导柱显示的外观颜色。
图15 斜导柱设计UI界面及其参数化建模过程
3.3 滑块机构设计界面开发
抽芯机构的滑块机构主要包括侧滑块、导滑装置、楔紧块、限位块等。滑块机构与斜导柱和型芯配合是抽芯机构完成抽芯工作的重要保障。设计人员根据系统选择不同的组件连接方式,完成相应结构的设计。
3.3.1 侧滑块与导滑装置
侧滑块属于运动元件,其作用是连接并带动型芯在模板的导滑装置内运动,以完成抽芯过程。系统能够根据滑块尺寸的不同确定结构形式并进行设计,如图16所示,选择滑块的尺寸确定类型,并输入斜导柱尺寸、抽芯距离、滑块部分尺寸等即可计算滑块的外形轮廓尺寸以及参数化构建侧滑块的三维模型。由于导滑装置的各部分尺寸需要与侧滑块配合,导滑装置的参数化驱动建模只需在侧滑块参数的基础上,输入导滑装置的结构尺寸参数,其中长L'≥2/3L+S(L为侧滑块的长,S为抽芯距离),即可实现其参数化驱动建模。
图16 侧滑块与导滑装置人机交互设计界面
(a)侧滑块人机交互设计界面 (b)导滑装置人机交互设计界面
侧滑块的参数化驱动建模包含两部分:一部分是侧滑块的整体建模;另一部分是利用布尔运算构建与斜导柱接触的斜导柱孔,其人机交互设计界面如图16(a)所示。侧滑块的三维建模利用API函数为UF_MODL_create_extruded1,构建斜导柱孔使用的函数为UF_MODL_create_cyl1。
导滑装置参数化建模用到的API函数仍为UF_MODL_create_extruded1,也存在与斜导柱配合的斜导柱孔,因此也要用到API函数UF_MODL_create_cyl1并进行布尔运算。导滑装置的结构设计与侧滑块相关,因而其参数化驱动建模只需在侧滑块参数的基础上,输入导滑装置的结构尺寸参数,即可实现其参数化驱动建模,其人机交互设计界面如图16(b)所示。保持“参数”与“侧滑块尺寸计算”中的参数不变,在组“导滑装置各部件”中选择导滑装置的部件,从左至右分别为压块、耐磨板和导滑槽。选择导滑装置的部件后,输入相应的参数,如导滑装置的厚度、宽度和高度,点击【导滑装置参数化驱动设计结果】建立导滑装置的三维模型。
3.3.2 楔紧块与限位块
楔紧块的结构类型主要有与模板设计为整体、整体嵌入模板中、外装式拼接、拼装式锁紧机构等4种形式。该设计系统也开发了不同的结构类型供设计人员选择,楔紧块的结构尺寸同样也需要与斜导柱和侧滑块相契合,因此楔紧块的尺寸大多需要用到侧滑块参数化驱动的参数,如图17所示,在现有的参数基础上,设计人员只需选择楔紧块的结构类型、输入固定端模板厚度、延伸部分长度、限位块尺寸等参数,即可完成楔紧块和限位块的参数化驱动建模。
图17 楔紧块与限位块人机交互设计界面
(a)楔紧块人机交互设计界面 (b)限位块人机交互设计界面
4侧向抽芯机构运动仿真
根据开发的辅助设计系统,可设计适合成型零件侧向特征抽芯的斜导柱抽芯机构,根据辅助设计系统的设计流程,铸件的侧向特征数据与计算的理论参数如表2所示。
表2 铸件侧向特征数据与计算的设计参数
斜导柱侧抽芯机构的三维建模可按照各部件的人机交互设计界面进行参数化驱动设计,各部件设计完成后,得到的设计结果如图18所示。将抽芯机构各部件与型芯和铸件进行装配,得到的斜导柱侧抽芯机构的装配体如图19所示。
图18 抽芯机构各部件设计结果
图19 斜导柱侧抽芯机构装配体
运动仿真是UG/NX软件CAE模块中的重要组成部分,可以对任意二维或三维机构进行运动学、动力学分析及设计仿真。通过对该机构的运动仿真模型进行运动学或动力学分析,并能通过图形的形式输出各零部件的位移、速度、加速度、力和力矩随着时间的变化情况,可对整个运动机构进行优化分析。
利用装配体的拓扑关系,在不改变零部件实体的情况下进行零部件的运动仿真。在装配体中,以铸件和导滑槽作为固定连杆L001、其余部件作为移动连杆L002和L003、楔紧块和斜导柱作为驱动体Drv001,滑块与导滑槽、型芯与铸件为2对移动副J001与J002,分析步为1 000,运动时间为20 s,提交运动仿真解算方案。
运动仿真的解算方案求解结束后,对仿真结果进行干涉检查,如图20所示。由图20可知,利用系统设计的斜导柱抽芯机构在抽芯运动过程中未产生干涉,证明该辅助设计系统可靠、合理。
图20 抽芯机构运动过程中的干涉检查
来源:小萱科技观