APP下载

基于NX/Open的三维模型特征识别方法研究

2021-05-28唐硕

内燃机与配件 2021年8期
关键词:二次开发

唐硕

摘要:为了解决在工程实践中非参数化三维零件模型的信息提取效率不高的问题,研究了一种基于边界表示法的孔类零件的特征识别方法。首先根据孔类特征的属性参数建立特征知识库,然后论述了NX/Open在特征识别和信息提取的推理过程中的应用,最后通过实例详细介绍了特征识别的实现过程,完成了典型孔类特征的识别以及特征信息的提取。

关键词:特征识别;边界表示法;NX/Open;二次开发

中图分类号:TP391.41                                   文献标识码:A                                  文章编号:1674-957X(2021)08-0194-02

0  引言

随着CAD技术的发展,逐渐出现了很多种三维实体模型表示方法,如边界表示法、体素构造表示法、参数表示法等,目前最普遍、无歧义的特征识别方法是边界表示法[1-3]。边界表示法是通过几何信息和几何信息间的拓扑关系来定义和描写一个三维实体模型的方法,它能够为设计人员提供一个完整边界表示模式[4]。

在工程实践中非参数化三维实体模型是很常见的,虽然这种三维模型的特征信息数据丢失了,但是在建模时所产生的特征的几何信息和拓扑信息仍然保存在模型中,包括以及它们之间的特定位置关系[5]。技术人员可以基于边界表示法的原理,建立三维实体模型,按照由高层次到低层次的顺序,与特征识别知识库中的信息进行对比,即通过实体找到符合要求的面,通过面找到符合要求的环,通过环找到环上的边,继而找到边的两个端点的信息,就可完成特征的识别。

1  建立特征识别知识库

根据边界表示法进行特征识别的算法要求,首先应该收集典型特征几何信息和其拓扑关系,建立特征的知识库,为特征识别提供信息匹配数据。

本文以对典型孔特征的识别为例,来阐述构建特征知识库的方法。在UG NX中,典型的孔特征有四种形式:简单孔、沉头孔、埋头孔、锥孔。孔特征的安置面和穿透面可能是平面、圆柱面、球面等表面类型,按照表面类型不同,可以进一步对孔特征分类。本文选择安置面和穿透面均为平面的情况进行讨论。每种孔还可以进一步分为通孔与盲孔。由于锥孔是否为通孔不会对特征的属性参数有影响,故不作进一步分类。因此,共有7种相关的孔特征模式,分别是:通的简单孔和非通的简单孔;通的沉头孔和非通的沉头孔;通的埋头孔和非通的埋头孔以及锥孔。图1为7种孔特征的结构示例图。

每个特征都是由几何信息和几何信息的拓扑关系构成,几何信息是指特征中所有几何元素的尺寸和位置关系;拓扑信息是指特征中各个表面、环、边、点之间的层次结构。这些信息让每个特征都具有与其他特征相区别的特定属性,特征识别就是要充分利用这种属性的特殊性。对于不同的孔特征都对应着不同的特征属性参数,见表1。

2  用NX/Open来实现推理过程

为了满足用户的个性化需要,UG NX平台上为使用者提供了二次开发编程语言NX/Open[6]。NX/Open中常用的高级编程语言有VB、C、C++、C#、KF、.NET、Java等。NX/Open为UG NX的二次开发提供了多种二次开发工具包,如MenuScript、Block UI Styler、NX/Open API等,通过使用这些二次开发工具,使用者能够根据自身需求开发出具有UG NX风格的特定功能模块。

一个完整的特征识别UG NX二次开发的总体流程包括:设置系统环境变量、搭建开发环境;编写菜单脚本文件和工具条文件;创建特征识别对话框;在Visual Studio中建立工程,编译、调试、运行程序代码,生成可用于执行的动态链接库文件;将动态链接库文件和对话框文件与UG NX系统集成,供用户调用;应用程序开发完成。

特征识别分为两个部分:一是找到与特征知识库中相匹配的特征;二是得到所匹配特征相应的参数,都可以利用NX/Open提供的二次开发函数来实现[7]。调用二次开发函数,可以实现三维模型的遍历,得到模型上所有的face、loop、edge、vertex的信息及它们之间的结构关系,将这些结构关系与预定义特征知识库中的信息进行比对,找出符合要求的几何特征,从而完成第一个部分。通过二次开发函数可以测量已匹配特征上几何元素的数据,如距离、直径、角度等,然后将这些数据匹配到相应的特征参数上,从而完成第二个部分。

下面列出几个在特征识别种会用到的二次开发函数及其释义:

int UF_MODL_ask_face_body;//查询面上的体

int UF_ MODL_ask_edge_body;//查询边上的体

int UF_MODL_ask_body_faces;//查询体上的面

int UF_MODL_ask_face_type;//查询面的类型

int UF_MODL_ask_face_data;//查询面的信息

int UF_MODL_ask_edge_type;//查询边的类型

int UF_MODL_ask_face_edge;//查询面上的边

int UF_MODL_ask_face_loops;//查詢面上的环

int UF_MODL_ask_loop_list_item;//查询环列表迭代对象

int UF_MODL_ask_loop_list_count;//查询环列表中成员的数量

……

3  特征识别的实现流程

特征是由几何元素特定的位置关系与一定数量的面与边组成。如非通的沉头孔,其特征是构成如图2所示。

沉头孔的安置平面与沉头的圆柱面之间通过一条封闭的环边相连,沉头平面与沉头的圆柱面之间通过另一条封闭的环边相连,孔的圆柱面与沉头平面之间通过一条封闭的环边相连,孔的圆柱面与孔的顶锥面之间通过一条封闭的环边相连,同时,沉头圆柱面、孔的圆柱面与孔的顶锥面三者为同轴关系,与沉头平面为垂直关系。

在确定了特征所具有的几何位置信息后,就可以来确定遍历的顺序。对于非通的沉头孔特征来说,遍历的顺序是:①指定一个面作为孔安置面P1,搜索面上所有的封闭环,将只拥有一条边的环加入到环面集中,从中取出一条环L_1。②沿着P1搜索,是否有一个圆柱面C1,且两个面的交线是L_1,记录下C1的直径D1。③C1的另一端是否有另一个环L_2,且L_1、L_2两环同轴、同直径,记录下两环之间的距离H1。④L_2所在的平面P2内是否存在一个环L_3,且L_3的直径小于L_2的直径。⑤沿着P2搜索,是否有一个圆柱面C2,且两个面的交线是L_4,记录下C2的直径D2。⑥C2的另一端是否有另一个环L_4,且L_3、L_4两环同轴、同直径,记录下两环之间的距离H2。⑦如果与L_4相连的另一个面是圆锥面,则可以确定这些面、边构成了一个非通的沉头孔。记录下该沉头孔数据参数:H1是沉头深度,H2是孔深度,D1是沉头直径,D2是孔直径。

根据上面描述特征识别的遍历顺序,作出非通沉头孔的特征识别流程图,如图3。

以上的算法是针对非通沉头孔的识别过程,遵循同样的原则也可以确定其它几种孔的特征识别算法。

4  结语

本文以UG NX作为平台,介绍了一种对孔类典型特征识别方法。通过分析UG NX中的孔类特征的属性预先制定孔特征知识库,运用NX/Open API封装的二次开发函数对特征的信息进行提取,分析三维模型的几何元素信息和其拓扑关系,并用一个实例验证了算法的可行性。

这种特征识别方法不僅仅局限于孔类特征的非参数化信息提取问题,也可以扩展到凹槽类、凸台类等零件的特征识别,使三维模型的非参数化问题得到很有效的解决,既减少了人工操作效率低、准确率低等问题,也为产品后续的工艺规划、自动编程等工作提供数据基础。也正因为如此,采用这种特征识别方法在汽车以及汽车发动机故障诊断以及模块化设计提供提供有力的支持,也能为汽车零部件加工提供支持,用途相当广泛。

参考文献:

[1]易晗.基于图和规则的钣金件特征识别方法研究[D].华中科技大学,2019.

[2]陈文旭.基于NX的汽车覆盖件模具数控自动编程系统研究[D].华中科技大学,2019.

[3]于嘉鹏,路永辉,姜博宏,等.基于UG NX的航空发动机离心叶轮数控加工自动编程系统的研究[J].航空制造技术,2020,63(4):88-95.

[4]白茜.基于MBD的特征识别方法研究[D].西安建筑科技大学,2016.

[5]刘红军,伞雷,纪俐,等.基于UG特征识别的典型孔槽类零件数控加工技术[J].航空制造技术,2014(Z2):100-102.

[6]周临震,李青祝,秦珂.基于UG NX系统的二次开发[M].江苏大学出版社,2012.

[7]花锋.基于NX二次开发的特征识别技术研究[J].机械制造与自动化,2010,39(6):99-100,135.

猜你喜欢

二次开发
初中生物教材插图的分类及二次开发
例谈对高中数学教材中习题的二次开发
浅谈CAD软件二次开发的方法及工具
例谈课本习题的“二次开发”
二次开发教材 拓展学生思维
浅谈AM系统铁舾建模的实用二次开发
高中物理教材导入的“二次开发”
单机游戏的二次开发