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

2022-10-09 08:37郭欣宇司海伯
机电工程技术 2022年9期
关键词:圆点偏置车灯

郭欣宇,司海伯,苗 盈,邝 乐

(无锡职业技术学院机械技术学院,江苏无锡 214121)

0 引言

汽车车灯通常由灯泡、反射镜和配光镜3 部分组成,其中反射镜和配光镜上分布着大量的配光纹,其作用是散射光线,使灯光亮度均匀[1]。配光纹种类很多,不同配光纹的配光效果不同。一般情况下一个车灯同时配置多种配光纹,常见的有金字塔配光纹、鱼眼配光纹、柱状配光纹等,如图1所示。

图1 车灯配光纹[3]

汽车车灯配光纹具有单元尺寸小、单元结构类似、单元数量多和造型精度要求高等特点。配光纹单元一般分布在车灯曲面上,虽然各个配光纹单元结构类似,但仍然需要逐个单元手工绘制,不能采用阵列方式来快速地完成,重复性工作量较大,通常占据整个车灯造型工作量的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 创建交点

(2)将原始曲面偏置距离hf=rad-ht得到偏置曲面,曲面偏置方向与给定的生成圆点配光纹的矢量方向相反,如图3所示,其中rad表示圆点配光纹的半径,ht表示圆点配光纹的高度,如图4所示。

图3 偏置曲面

图4 圆点花纹的半径和高度

(3)将交点投影到偏置曲面上得到投影点,以投影点为圆心创建球面。

(4)以原始曲面为边界,对球面进行裁剪,最终得到圆点配光纹单元,如图5所示。

图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所示。

图6 自定义菜单

车灯配光纹快速建模系统的菜单放置于“帮助”菜单之后,包含灯花、电铸纹、条纹面和辅助功能4 个二级菜单,每个二级菜单又分别包含若干具体的功能命令,本文开发的圆点配光纹位于灯花这个二级菜单下。菜单脚本文件的制作思路如下。

(1)首先声明版本号VERSION 170,并添加编辑菜单的语句EDIT UG_GATEWAY_MAIN_MENUBAR。

(2)一级菜单的脚本代码以语句AFTER UG_HELP 开始,以语句END_OF_AFTER 结束,表示将车灯配光纹快速建模系统菜单放置在“帮助”菜单之后,其中UG_HELP 为“帮助”菜单的标识符。使用关键词CASCADE_BUTTON 和LABEL分别指定一级菜单的标识符和标签。一级菜单的脚本代码为:

(3)二级菜单的脚本代码以语句MENU chedeng 开始,以语句END_OF_MENU 结束,其中chedeng 是一级菜单的标识符。同样使用关键词CASCADE_BUTTON 和LABEL分别指定二级菜单的标识符和标签。二级菜单的脚本代码为:

(4)三级菜单的脚本代码同样以关键词MENU 开始,以关键词END_OF_MENU 结束。不同的是,三级菜单的标识符使用关键词BUTTON 来指定,并且需要使用关键词BITMAP 指定图标,这是因为三级菜单是具有特定功能的命令,不再包含任何子菜单。以本文开发的圆点配光纹为例,相关的三级菜单的脚本代码为:

2.1.2 Robbin工具条制作

在startup 文件夹下新建扩展名为.rbn 的脚本文件,输入相应的脚本代码完成Robbin 工具条的制作,启动NX 后自动加载的Ribbon工具条如图7所示。

图7 自定义Ribbon工具条

在Robbin 脚本中缺省了用于指定标签的关键词LABEL 和指定位图的关键词BITMAP,但是这不影响标签和图标的正常显示,因为在菜单脚本文件中已经指定了,所以Robbin 脚本文件代码较为简洁清晰。以灯花这一组为例,Robbin脚本文件的部分代码如下所示。

2.2 对话框设计

Block UI Styler 是NX 中制作人机交互界面对话框的可视化模块[12],具有可视化功能,可以方便地制作具有NX 风格的交互界面,该界面能与NX 集成,操作方便高效,有效降低二次开发难度[13]。使用Block UI Styler 设计的圆点配光纹对话框如图8 所示,该对话框共有4 个组和6 个控件。第1 个组为“曲面”,包含“选择对象”控件,用于选择曲面;第2 个组为“曲线”,包含2 个“曲线收集器”控件,分别用于选择两组曲线;第3 个组为“参数”,包含两个“双精度”控件,分别用于输入圆点半径参数和圆点高度参数;第4 个组为“配光纹生成方向”,包含一个“反向”控件,用于指定圆点配光纹的生成方向。

图8 圆点配光纹对话框

在用户自定义的二次开发路径下新建application 文件夹,将对话框命名为yuandiandenghua 并保存到application 文件夹中,会产生yuandiandenghua.dlx、yuandiandenghua.hpp、yuandiandenghua.cpp 三个文件,分别是对话框图形界面文件、对话框C++语言头文件和对话框C++语言模板文件。

2.3 圆点配光纹程序开发流程

基于圆点配光纹手工建模的原理和思路,利用应用程序接口(NX Open API)函数开发圆点配光纹功能模块的具体流程如下。

2.3.1 搭建应用程序框架

打开Visual Studio 2012,选择NX10 NXOpen C++Wizard 模板,新建名为yuandiandenghua 的应用程序框架,并删除项目自动生成的.cpp 文件和.hpp 文件,将创建对话框时保存在application文件夹中的yuandiandenghua.hpp 和yuandiandenghua.cpp文件添加到应用程序框架中。

2.3.2 获取用户输入

(1)使用选择对象(SelectObject)控件,获取用户选择的原始曲面,记为selectedFaces。需要注意的是,需要在initialize_cb()函数中使用Selection::MaskTriple (UF_solid_type,UF_solid_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_intersection_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 所示的圆点配光纹。

图9 选择曲面

图10 生成的圆点配光纹

实验发现,完成100 个圆点配光纹的建模,一个熟练的造型工程师手工建模需要时间为100 min 左右。采用圆点配光纹自动建模程序,用户只需选择原始曲面和两组曲线、输入圆点直径和圆点高度、指定矢量方向,就能实现圆点配光纹的一次性成形,总耗时大约只需3 min。由此可见,该程序对圆点配光纹建模效率的提高非常显著。

4 结束语

为了解决汽车车灯圆点配光纹手工建模重复性工作量较大、建模效率不高的问题,利用NX 10软件平台提供的二次开发工具,开发了圆点配光纹快速建模功能模块。首先,使用菜单脚本工具(MenuScript)制作了用户自定义菜单和Robbin 工具条,以方便功能模块的调用。然后,通过用户界面编辑器(Block UI Styler)制作了人机交互对话框,使圆点配光纹功能模块的交互界面具有NX 统一风格。最后,基于圆点配光纹手工建模的原理和思路,利用应用程序接口(NX Open API)函数实现了圆点配光纹的自动建模。实践证明该程序能够极大地提高圆点配光纹的建模效率,加快相关车灯产品的开发进程。

猜你喜欢
圆点偏置车灯
喷锡钢网曲线偏置方法研究
基于40%正面偏置碰撞的某车型仿真及结构优化
基于双向线性插值的车道辅助系统障碍避让研究
某越野车小偏置碰撞结构优化
南非的车灯会说话
洛斯警长的终极挑战⑩
洛斯警长的终极挑战
洛斯警长的终极挑战
一汽-大众迈腾B8L车灯开关简介
连一连