APP下载

基于NX 二次开发的异形四棱锥车灯花纹快速建模

2023-12-08司海伯张西祁

科技创新与应用 2023年35期
关键词:棱锥车灯异形

司海伯,苗 盈,张西祁,吴 凡,杨 燕

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

汽车车灯由反射镜、透镜、光源等组件构成。其中透镜和反射镜上大量分布的花纹可以对光线进行合理的分配,从而满足照明功能和信号功能。车灯花纹的种类很多,不同的车灯花纹对光线的调整也起到不同的作用。

汽车车灯花纹具有单元尺寸小、单元结构类似、单元数量多和造型精度要求高等特点。每一个配光纹单元虽然结构类似,但因无法使用阵列等快速批量建模的方法,逐一创建花纹单元是非常烦琐而耗时的,通常占据车灯建模过程中20%以上的工作量[1]。因此,提高车灯配光纹的创建效率,将大大缩短车灯开发的周期,进而降低生产成本。

NX 是一个交互式CAD/CAE/CAM 系统[2],可以轻松实现各种复杂实体及造型的建构。NX 在面对不同应用领域时,如汽车车灯花纹造型,若采用软件提供的常规性功能可以完成开发任务,但重复性高,自动化程度低,降低了车灯设计开发的效率[3]。NX 为用户提供良好的二次开发环境弥补了这一缺陷,使用户可以进行更加贴合需求的专用定制,使设计开发过程更加的便捷高效。王皓宇等[4]基于NX Open C++实现大批量非参数圆孔的参数化转变,能提高大约50%的工作效率。何寥等[5]利用NX OpenC++/NX Open API 技术和MFC窗体开发工具,开发出能自动对装配文件迁移和管理的插件。

1 异形四棱锥花纹建模原理

不同车灯花纹的建模方法存在差异,但大致都分为2 个步骤:划分网格和花纹形状建模。异形四棱锥花纹单元建模原理如下。

第一,求2 组曲线形成的曲线网格中所有的交点,如图1 所示。

图1 创建交点

第二,取出其中的4 个相邻交点作为一个花纹单元,利用4 个交点的坐标创建中点,并将中点投影到曲面上。

第三,将投影点先按照创建方向偏移一个花纹高度的距离,再按照花纹顶线正向和反向分别偏移半个顶线长度的距离,创建2 个顶线端点,如图2 所示。

图2 花纹创建示意图

第四,所有点创建完成后,生成1 条顶线、4 条侧棱、4 条底边。如图3 所示。

图3 花纹框架点位标注

第五,生成4 个侧面和1 个底面,并将其缝合在一起,形成一个完整的异形四棱锥花纹单元。

第六,不断重复该过程,完成所有的车灯花纹单元的建模,如图4 所示。

图4 异形四棱锥车灯花纹

2 曲线分组及排序

2.1 曲线分组

为了方便交点创建,需要将曲线进行分组。通过曲线与曲线之间的相交关系来进行分组,同一组内曲线不相交。该步骤为曲线分组模块,对应的流程图如图5所示。

图5 曲线分组流程

任意取出1 条曲线,存入曲线组一中。求曲线组一中第一条曲线和原曲线组中剩余曲线之间的距离,将距离在建模公差范围内的曲线存入曲线组二中。交替选择用2 个曲线组中的曲线,判断其与原曲线组中剩余曲线之间的距离,将符合条件的曲线存入与选用曲线相反的曲线组。直到原曲线组中所有曲线被取出,即完成分组。

2.2 曲线交点的创建及排序

创建花纹单元需要曲线网格的所有交点,所以在创建花纹单元之前,应创建所有交点,根据交点的实际位置排序并储存。在创建交点的过程中,2 条曲线实际没有相交,但系统根据2 条曲线的走向自动拟合出延长线并求出交点,所以要在创建交点的过程中同时判断点的真假性,方便创建花纹过程中对点的选用。该步骤为交点创建排序模块。

利用横向曲线和纵向曲线求交点,将求出的交点与形成这个交点的2 条曲线分别比较距离,比较出的2 个距离都在建模公差范围之内则为真点,若其中有一个距离不在公差范围之内则该点为假点。将交点以矩阵的形式进行存储,在同一条横向曲线上的交点对应矩阵的同一行。选出任意一个点求该点和所有点之间的距离,选出相距最远的点。将最远的点通过矩阵变换将其换到第一行第一列,再按照距离将第一行的点进行重新排序,同时将第一行中的所有交点所属的列进行列变化;同理,将第一列中的点及其所属行进行排序,最后得到一个和实际位置相同的交点矩阵。

3 建模程序开发

3.1 对话框设计

定制UI 对话框使用的是集成在NX 中具有可视化功能的人机交互界面定制模块Block UI Styler[6],操作简便高效,并且定制出的UI 对话框符合用户的使用习惯,从而实现友好的人机交互[7]。设计好的异形四棱锥花纹对话框如图6 所示。该对话框共有4 个组和7个控件。

图6 异形四棱锥花纹对话框

3.2 程序开发流程

3.2.1 获取用户输入

将选择的所有对象,记为List<object>。选择的与顶线走向相同的一条曲线,记为Curνe。花纹相对于曲面的创建方向和指定方向时选取的曲面上点,记为Vec和Pν。设定的花纹高度和顶线长度,记为H和L。选择的花纹类型是实体或是片体,记为bodyType。设定的建模公差,记为tolerance。

3.2.2 异形四棱锥花纹建模

1)利用UF_OBJ_ask_type_and_subtype 对List <object>中的对象进行判别,将其分为List<curνe>(曲线组)和List<surface>(曲面组)。并将曲面组中的曲面利用UF_MODL_create_sew 缝合成一个曲面,记为Surface。

2)通过曲线分组模块将曲线组List<curνe>中的曲线分成List<curνe1>和List<curνe2>。判断Curνe在List<curνe1>中还是在List<curνe2>中,将曲线Curνe所在的集合记为横向曲线组,另一个集合记为纵向曲线组。再通过交点创建排序模块,利用横向曲线组和纵向曲线组创建出一个交点矩阵Aij。

3)首先利用UF_MODL_ask_face_parm_2 获得点Pν 在Surface上的uv坐标,再使用UF_MODL_ask_fac e_props 求出该uv坐标处的曲面法向量D1。将D1 和Vec作比对,若方向一致,创建花纹单元时获得的曲面法向量直接使用;若方向相反,则反向后再使用。

4)取交点矩阵Aij中相邻的4 个交点记为如图3所示的点1、点2、点3 和点4,且点1、点2 在Aij中的同一行;若4 个交点同为真,继续向下执行,否则重新选取。

5)利用点1、点2、点3 和点4 创建中点,记为点5;利用函数UF_CURVE_create_proj_curves 将点5 沿所在位置的曲面法向量投影到曲面Surface上,得到投影曲面特征的tag值,利用函数UF_CURVE_ask_proj_curves 获取曲面特征中生成的投影点的tag值,将投影点记为点6,利用函数UF_CURVE_ask_point_data 根据点6 的tag值找到对应坐标,求出点6 在Surface上的曲面法向量,记为SurfaceVec,并根据步骤3)判断是否需要反向。

6)将点1 和点2 中点指向点3 和点4 中点的方向定为顶线创建方向,记为topVec。

7)根据异形四棱锥花纹建模原理,先创建出2 个顶点,记为点7 和点8。利用函数UF_CURVE_create_line 创建出需要9 条边线。最后利用函数UF_MODL_create_curve_mesh 创建平面。

8)利用函数UF_MODL_create_sew 将创建的平面缝合起来,根据bodyType,生成片体或实体,完成一个花纹单元的创建。

以同样的方式完成所有花纹单元的创建。

4 应用验证与结果分析

基于上述方法,完成异形四棱锥花纹的快速建模功能。调用该功能,弹出如图6 所示的对话框。首先选择创建花纹所需要的曲线曲面,所有曲线和曲面一次框选。在网格曲线中选择一条与顶线走向相同的曲线确定顶线方向;在曲面上选择一个点,在该点处生成的箭头即为花纹相对于曲面创建的方向,箭头的方向可以通过反向改变。在参数栏中,设定好花纹的高度和顶线的长度。设置生成花纹的体类型和建模公差。最后单击对话框中的“确定”按钮,生成如图4 所示的异形四棱锥车灯花纹。

经过实际的对比发现,一个熟练的造型工程师手工创建100 个花纹单元所需要的时间大约在200 min。采用异形四棱锥车灯花纹快速建模程序,只需框选所有元素,并按照需求设定参数,即可完成所有花纹的创建,总耗时大约5 min。由此可见,该程序对异形四棱锥车灯花纹的建模效率有着显著的提高。

5 结束语

为了缩短车灯的设计开发周期,针对车灯造型过程中重复性高、耗时长、效率不高的车灯花纹手工建模步骤,利用NX10 提供的开发工具,完成了异形四棱锥车灯花纹快速建模的功能实现。使用NX 中集成的可视化人机交互界面定制模块(Block UI Styler),定制出风格统一的UI 对话框。首先开发了2 个对曲线网格的处理模块;再利用应用程序接口(NX Open API)函数,结合异形四棱锥车灯花纹的手工建模思路,实现了异形四棱锥车灯花纹的快速建模。实践证明,异形四棱锥车灯花纹快速建模系统可以提高建模效率,能有效缩短车灯的设计开发周期。

猜你喜欢

棱锥车灯异形
棱锥的体积计算话思想
南非的车灯会说话
例说无交点线面角的求法
一种异形平衡梁设计与应用
借助长方体巧解棱锥的三视图问题
水晶异形卡可以定制的交通卡
水晶异形卡可以定制的交通卡
车灯
水晶异形卡 可以定制的交通卡
盘点以棱锥为背景的空间几何题