基于 NX 二次开发的汽车车灯圆点配光纹快速建模论文

2023-01-28 14:34:04 来源: 作者:lvyifei
摘要:摘要:汽车车灯配光纹具有调节车灯光线的作用, 直接关系到汽车的使用性能和安全性能。汽车车灯配光纹具有单元尺寸小、单 元结构类似、单元数量多和造型精度要求高等特点, 手工建模存在重复性工作量较大、建模效率不高的问题。为解决上述问题, 基于 NX10 二次开发平台, 开发了汽车车灯圆点配光纹快速建模功能模块。首先, 使用菜单脚本工具 (MenuScript), 制作用户自定 义菜单和 Robbin 工具条, 将开发的圆点配光纹功能模块与NX 系统无缝集成; 接着, 通过用户界面编辑器 (B
摘要:汽车车灯配光纹具有调节车灯光线的作用,直接关系到汽车的使用性能和安全性能。汽车车灯配光纹具有单元尺寸小、单元结构类似、单元数量多和造型精度要求高等特点,手工建模存在重复性工作量较大、建模效率不高的问题。为解决上述问题,基于NX10二次开发平台,开发了汽车车灯圆点配光纹快速建模功能模块。首先,使用菜单脚本工具(MenuScript),制作用户自定义菜单和Robbin工具条,将开发的圆点配光纹功能模块与NX系统无缝集成;接着,通过用户界面编辑器(Block UI Styler)制作具备NX统一风格的圆点配光纹人机交互界面对话框;最后,基于圆点配光纹手工建模的原理和思路,利用应用程序接口(NX Open API)函数实现了圆点配光纹的自动建模。实践证明,设计的程序能够极大地提高圆点配光纹的建模效率,加快相关车灯产品的开发进程。
关键词:汽车车灯;配光纹;NX二次开发;快速建模
0引言
汽车车灯通常由灯泡、反射镜和配光镜3部分组成,其中反射镜和配光镜上分布着大量的配光纹,其作用是散射光线,使灯光亮度均匀[1]。配光纹种类很多,不同配光纹的配光效果不同。一般情况下一个车灯同时配置多种配光纹,常见的有金字塔配光纹、鱼眼配光纹、柱状配光纹等,如图1所示。
汽车车灯配光纹具有单元尺寸小、单元结构类似、单元数量多和造型精度要求高等特点。配光纹单元一般分布在车灯曲面上,虽然各个配光纹单元结构类似,但仍然需要逐个单元手工绘制,不能采用阵列方式来快速地完成,重复性工作量较大,通常占据整个车灯造型工作量的20%以上[2]。因此,如果能提高车灯配光纹的建模效率,将直接缩短汽车车灯新产品开发周期并降低开发成本。NX软件是功能强大的CAD/CAM/CAE集成软件,广泛应用于各种工业产品的设计和制造。面向车灯配光纹建模等具体应用时,NX为用户提供了二次开发接口,方便用户进行专用工具集的定制,使用户能够自行开发适合特殊需求的、效率更高的CAD功能[4]。廖敦明等[5]基于NX 9.0平台利用NX Open C++/NX Open API技术,开发了汽车管路自动化胎具设计系统,能够实现胎具标准件的自动装配,缩短了胎具设计周期,提高了胎具设计效率。钱柳刚等[6]通过深沟球轴承以及圆锥滚子轴承两个实例,阐述了NX二次开发方法在轴承参数化快速设计中的应用。葛成荣[7]基于KF(Knowledge Fusion)技术,通过NX二次开发手段设计开发出拨叉零件的智能设计建模模块,有利于提高拨叉零件设计和建模的工作效率。黄晓明等[8]基于NX Open API开发了一个自动化、集成化、高效率的电极设计系统,不仅提高了电极设计的速度,而且使企业的电极管理更趋标准化。曹澍等[9]基于NX软件二次开发功能,开发了一款适用于弧面分度凸轮机构快速建模的参数化设计系统,缩短了弧面凸轮机构的设计周期并减少了重复性工作量。黄阳等[10]将NX二次开发技术应用于减速器设计,通过参数化设计简化了减速器的设计流程,减少了重复性设计工作。
本文针对汽车车灯圆点配光纹手工建模重复性工作量大、建模效率低的问题,基于NX二次开发技术实现了圆点配光纹的自动化快速建模,提高了车灯配光纹的建模效率,缩短了汽车车灯新产品的开发周期并降低了开发成本。
1圆点配光纹建模原理
车灯配光纹种类不同,其建模方法也各不相同,一般来说,可以分为两步:网格划分和配光纹建模。网格划分是指在车灯曲面上生成曲线,用来确定配光纹的位置和边界。
已知一组原始曲面、组成网格的两组曲线、圆点配光纹的直径和高度、生成圆点配光纹的矢量方向,圆点配光单元的建模原理如下。
(1)求组成网格的两组曲线的交点,如图2所示。
(2)将原始曲面偏置距离hf=rad-ht得到偏置曲面,曲面偏置方向与给定的生成圆点配光纹的矢量方向相反,如图3所示,其中rad表示圆点配光纹的半径,ht表示圆点配光纹的高度,如图4所示。
(3)将交点投影到偏置曲面上得到投影点,以投影点为圆心创建球面。
(4)以原始曲面为边界,对球面进行裁剪,最终得到圆点配光纹单元,如图5所示。
2圆点灯花快速建模程序开发
以NX 10为开发平台,利用NX二次开发模块开发了汽车车灯圆点配光纹快速建模功能模块,具体包括使用MenuScript编写菜单文件,使用Block UI Styler制作人机交互对话框,使用NX OPEN API函数实现圆点配光纹的快速建模功能。
2.1菜单文件和Robbin工具条制作
MenuScript是一种NX定义的具有一定语法规则的脚本语言,允许用户对原有的菜单和工具条进行编辑,也可以生成自定义的菜单和工具条[11]。
2.1.1菜单文件制作
在用户自定义的二次开发路径下新建startup文件夹,在该文件夹中新建扩展名为.men的脚本文件,输入相应的脚本代码完成系统菜单的制作,启动NX后自动加载的菜单界面如图6所示。车灯配光纹快速建模系统的菜单放置于“帮助”菜单之后,包含灯花、电铸纹、条纹面和辅助功能4个二级菜单,每个二级菜单又分别包含若干具体的功能命令,本文开发的圆点配光纹位于灯花这个二级菜单下。菜单脚本文件的制作思路如下。
(1)首先声明版本号VERSION 170,并添加编辑菜单的语句EDIT UG_GATEWAY_MAIN_MENUBAR。
(2)一级菜单的脚本代码以语句AFTER UG_HELP开始,以语句END_OF_AFTER结束,表示将车灯配光纹快速建模系统菜单放置在“帮助”菜单之后,其中UG_HELP为“帮助”菜单的标识符。使用关键词CASCADE_BUTTON和LABEL分别指定一级菜单的标识符和标签。一级菜单的脚本代码为:
AFTER UG_HELP
CASCADE_BUTTON chedeng
LABEL车灯配光纹快速建模系统
END_OF_AFTER
(3)二级菜单的脚本代码以语句MENU chedeng开始,以语句END_OF_MENU结束,其中chedeng是一级菜单的标识符。同样使用关键词CASCADE_BUTTON和LABEL分别指定二级菜单的标识符和标签。二级菜单的脚本代码为:
MENU chedeng
CASCADE_BUTTON denghua
LABEL灯花
CASCADE_BUTTON dianzhuwen
LABEL电铸纹
CASCADE_BUTTON tiaowen
LABEL条纹面
CASCADE_BUTTON fuzhu
LABEL辅助功能
END_OF_MENU
(4)三级菜单的脚本代码同样以关键词MENU开始,以关键词END_OF_MENU结束。不同的是,三级菜单的标识符使用关键词BUTTON来指定,并且需要使用关键词BITMAP指定图标,这是因为三级菜单是具有特定功能的命令,不再包含任何子菜单。以本文开发的圆点配光纹为例,相关的三级菜单的脚本代码为:
MENU denghua
BUTTON fengchao
LABEL蜂巢配光纹
BITMAP chedeng/dianzhuwen/6dianzhuwen2.bmp
BUTTON yuyan
LABEL鱼眼配光纹
BITMAP chedeng/denghua/yuyandenghua.bmp
BUTTON jinzita
LABEL金字塔配光纹
BITMAP chedeng/denghua/jinzita.bmp
BUTTON meihua
LABEL梅花配光纹
BITMAP chedeng/denghua/meihua.bmp
BUTTON yuandian
LABEL圆点配光纹
BITMAP chedeng/denghua/yuandian.bmp
END_OF_MENU
2.1.2 Robbin工具条制作
在startup文件夹下新建扩展名为.rbn的脚本文件,输入相应的脚本代码完成Robbin工具条的制作,启动NX后自动加载的Ribbon工具条如图7所示。
在Robbin脚本中缺省了用于指定标签的关键词LABEL和指定位图的关键词BITMAP,但是这不影响标签和图标的正常显示,因为在菜单脚本文件中已经指定了,所以Robbin脚本文件代码较为简洁清晰。以灯花这一组为例,Robbin脚本文件的部分代码如下所示。
TITLE车灯配光纹快速建模系统
VERSION 170
BEGIN_GROUP灯花
BUTTON fengchao
BUTTON yuyan
BUTTON jinzita
BUTTON meihua
BUTTON yuandian
END_GROUP
2.2对话框设计
Block UI Styler是NX中制作人机交互界面对话框的可视化模块[12],具有可视化功能,可以方便地制作具有NX风格的交互界面,该界面能与NX集成,操作方便高效,有效降低二次开发难度[13]。使用Block UI Styler设计的圆点配光纹对话框如图8所示,该对话框共有4个组和6个控件。第1个组为“曲面”,包含“选择对象”控件,用于选择曲面;第2个组为“曲线”,包含2个“曲线收集器”控件,分别用于选择两组曲线;第3个组为“参数”,包含两个“双精度”控件,分别用于输入圆点半径参数和圆点高度参数;第4个组为“配光纹生成方向”,包含一个“反向”控件,用于指定圆点配光纹的生成方向。
在用户自定义的二次开发路径下新建application文件夹,将对话框命名为yuandiandenghua并保存到application文件夹中,会产生yuandiandenghua.dlx、yuandiandenghua.hpp、yuan⁃diandenghua.cpp三个文件,分别是对话框图形界面文件、对话框C++语言头文件和对话框C++语言模板文件。
2.3圆点配光纹程序开发流程
基于圆点配光纹手工建模的原理和思路,利用应用程序接口(NX Open API)函数开发圆点配光纹功能模块的具体流程如下。
2.3.1搭建应用程序框架
打开Visual Studio 2012,选择NX10 NXOpen C++Wizard模板,新建名为yuandiandenghua的应用程序框架,并删除项目自动生成的.cpp文件和.hpp文件,将创建对话框时保存在ap⁃plication文件夹中的yuandiandenghua.hpp和yuandiandenghua.cpp文件添加到应用程序框架中。
2.3.2获取用户输入
(1)使用选择对象(SelectObject)控件,获取用户选择的原始曲面,记为selectedFaces。需要注意的是,需要在initial⁃ize_cb()函数中使用Selection::MaskTriple(UF_solid_type,UF_sol⁃id_body_subtype,UF_UI_SEL_FEATURE_ANY_FACE)设置过滤,使用户不能选择除曲面之外的其他实体。
(2)使用2个曲线收集器(CurveCollector)控件,分别获取用户选择的第一组曲线和第二组曲线,分别记为firstCurves和secondCurves。
(3)使用2个双精度(DoubleBlock)控件,分别获取用户输入的圆点半径rad和圆点高度ht,并计算出偏置距离hf。
(4)使用反向(ReverseDirection)控件,获取用户选择的圆点配光纹生成方向selectedVector。
2.3.3圆点配光纹建模
(1)使用创建曲线交点函数UF_POINT_create_at_intersec⁃tion_of_two_curves,获得用户选择的两组曲线的交点inter⁃Points(i,j)。
(2)使用创建偏置曲面函数UF_MODL_create_face_offset,将用户选择的曲面selectedFaces沿指定矢量方向的反方向偏置距离hf,得到偏置曲面offsetFaces。
(3)使用创建投影曲线函数UF_CURVE_create_proj_ curves1,将交点interPoints(i,j)沿曲面的法向投影到偏置曲面offsetFaces,得到投影点projPoints(i,j)。
(4)使用创建球函数UF_MODL_create_sphere1,以投影点projPoints(i,j)为球心,以圆点半径rad为半径,创建球体spheres。
(5)使用修剪体函数UF_MODL_trim_body,以用户选择的原始曲面selectedFaces为边界,以selectedVector为矢量方向,对生成的球体spheres进行修剪,所保留的部分即为圆点配光纹。
3应用实例
基于上述方法,完成汽车车灯配光纹快速建模系统中的圆点配光纹功能模块,通过如图6所示的菜单命令或如图7所示的Robbin工具条,调用圆点配光纹功能,弹出如图8所示的对话框界面。首先选择如图9所示的曲面,接下来选择第一组曲线和第二组曲线,然后输入圆点半径和圆点高度,指定配光纹的生成方向后单击对话框中的“确定”按钮,生成如图10所示的圆点配光纹。实验发现,完成100个圆点配光纹的建模,一个熟练的造型工程师手工建模需要时间为100 min左右。采用圆点配光纹自动建模程序,用户只需选择原始曲面和两组曲线、输入圆点直径和圆点高度、指定矢量方向,就能实现圆点配光纹的一次性成形,总耗时大约只需3 min。由此可见,该程序对圆点配光纹建模效率的提高非常显著。
4结束语
为了解决汽车车灯圆点配光纹手工建模重复性工作量较大、建模效率不高的问题,利用NX 10软件平台提供的二次开发工具,开发了圆点配光纹快速建模功能模块。首先,使用菜单脚本工具(MenuScript)制作了用户自定义菜单和Robbin工具条,以方便功能模块的调用。然后,通过用户界面编辑器(Block UI Styler)制作了人机交互对话框,使圆点配光纹功能模块的交互界面具有NX统一风格。最后,基于圆点配光纹手工建模的原理和思路,利用应用程序接口(NX Open API)函数实现了圆点配光纹的自动建模。实践证明该程序能够极大地提高圆点配光纹的建模效率,加快相关车灯产品的开发进程。
[1]吴立军,夏天.基于UG/open-grid二次开发技术实现车灯灯花的自动化建模[J].现代制造工程,2006(9):64-66.
[2]平芳,苗盈,单岩.汽车车灯配光纹快速建模系统[J].现代机械,2009(1):12-14.
[3]柳偲.基于CATIA平台特征识别的六角配光纹圆角稳健建模方法[D].武汉:华中科技大学,2017.
[4]项辉宇,周哲人,马丽萍,等.UG NX二次开发在CAD模型离散中的应用[J].机床与液压,2020,48(5):146-149.
[5]廖敦明,张广臣,章志兵,等.基于NX9.0的汽车管路自动化胎具设计系统开发与应用[J].模具工业,2019,45(10):12-16.
[6]钱柳刚,仲梁维.UG轴承参数化快速设计[J].中国水运(下半月),2020,20(3):107-108.
[7]葛成荣.基于知识熔接技术的UG拨叉设计模块开发[J].金属加工(冷加工),2020(7):74-76.
[8]黄晓明,杨豪虎.基于NX的电极设计系统的开发[J].机电工程技术,2012,41(8):72-74.
[9]曹澍,罗康,何雪明.弧面分度凸轮机构参数化设计及NX二次开发[J].机械科学与技术,2021,40(7):1031-1036.
[10]黄阳,仲梁维,姚朋伟.基于UG二次开发的减速器快速设计系统[J].农业装备与车辆工程,2019,57(11):80-82.
[11]姚朋伟,仲梁维,黄阳.基于UG的齿轮油泵智能设计系统[J].农业装备与车辆工程,2019,57(12):90-92.
[12]杨富伟,郑智贞,李浩,等.基于UG二次开发的RV减速器参数化设计[J].煤矿机械,2018,39(10):168-171.
[13]赵橄培.基于NX的铁路道岔轨件参数化设计系统研发[J].机械工程师,2021(4):76-78.
