一种MBD模型加工特征识别及信息提取方法与流程

文档序号:19930525发布日期:2020-02-14 21:57阅读:729来源:国知局
一种MBD模型加工特征识别及信息提取方法与流程

本发明提供一种mbd模型加工特征识别及信息提取方法,它是一种基于模型定义(model-baseddefinition,mbd)模型的加工特征识别及信息提取方法。具体是指一种用于解析mbd模型的加工特征识别及信息提取方法,能够自动将输入的mbd模型分解成一系列的加工特征,并提取出加工特征的几何信息和工艺要求,从而为后续工艺决策提供数据支持,属于计算机辅助工艺设计(computeraidedprocessplanning,capp)领域。



背景技术:

计算机辅助工艺设计(capp)是连接设计和制造的桥梁与纽带,在产品数字化设计制造过程中起着承上启下的作用,是提高数字化制造技术整体水平的关键。capp是在一定目标(时间、成本、质量)的驱动下,在实际生产资源(机床设备、刀量夹具、人员配置)的约束下,辅助工艺设计人员规划和确定从毛坯到产品的加工路线和工艺参数的决策过程。

一个良好的capp系统,首先必须解决好零件信息的描述与输入问题。简明、准确地描述及获取零件信息是实现capp系统的前提条件和进行工艺决策分析的可靠保证,也是capp系统运行的基础和依据,同时对于capp系统的输出质量和运行效率也具有决定性的影响。零件的信息包括两方面的内容:零件的几何信息和工艺信息。零件的几何信息亦即零件的图形信息,包括零件的几何形状、尺寸等;零件的工艺信息则包括零件各表面的精度、粗糙度、热处理要求、材料和毛坯类型等多种信息。基于加工特征的零件信息描述法是目前最常用的方法,该方法将零件按照其结构划分为各种孔、面、槽、腔等一系列加工特征单元。由于加工特征单元与加工方法之间存在着一定的联系,因此这种描述方法为后续工艺设计提供了良好的数据基础。

在此背景下,加工特征识别及信息提取技术能够自动解析来自于计算机辅助设计(computeraideddesign,cad)系统的零件mbd模型,并将其自动拆解为一系列加工特征单元,对于提升capp的自动化水平具有重要的意义,因此得到了广泛的研究。但是已有的研究中,特征识别算法的运行效率较低,同时已有成果多针对于cad几何模型,对mbd模型的研究较少,本发明克服了以上研究的不足,基于组件应用架构(componentapplicationarchitecture,caa)对建模软件catia(computeraidedthree-dimensionalinteractiveapplication,即catia)进行二次开发,提出了一种针对mbd模型的加工特征识别及信息提取方法。



技术实现要素:

(一)本发明的目的在于提供一种用于机加工艺设计的mbd模型加工特征识别及信息提取方法,以改善现有技术存在的不足,一方面提高了加工特征的识别效率,另一方面不仅能够提取出加工特征的几何信息,还能够将依附在加工特征表面的三维标注信息及模型结构树上的工程注释信息提取出来,添加到模型的加工特征单元上。从而减少人工参与,提高了capp系统中零件信息读取与输入的效率。

(二)技术方案

本发明主要包括两个部分,第一部分是加工特征面集的识别,第二部分是加工特征几何信息与非几何信息的提取。其中在加工特征识别部分本发明采用了基于子图同构的特征识别算法,核心理论就是将零件的边界模型用“属性邻接图”这种数据结构来表示。属性邻接图对于不同的零件模型具有唯一性,其中,零件的每一个面对应图中的一个顶点,零件的边对应图中顶点之间的弧,根据边在零件中的凹凸性对图中弧的属性进行赋值。同理,也可以将预定义的加工特征根据此规则也用“属性邻接图”来表示。这样,加工特征的识别问题就转化为了在零件的“大图”中搜索加工特征的“小图”的过程。这个问题是经典的子图同构问题,可以通过图的搜索来解决。本发明基于回溯算法,通过对“大图”进行深度优先搜索,同时采用一系列剪枝操作缩小搜索空间,实现了加工特征的快速识别。

在第二部分中,加工特征的尺寸信息包括孔类特征的直径、深度,槽类特征的长度、宽度、高度、倒角半径等关键数据,本发明主要通过对加工特征面集的计算来获得;非几何信息包括尺寸公差、粗糙度等精度要求数据,本发明主要借助cad提供的api接口通过提取加工特征面上依附的三维标注以及零件结构信息树上的工程注释信息来获得。

本发明一种mbd模型的加工特征识别及信息提取方法,其步骤如下:

步骤一:解析mbd模型,获得其表面列表集合(listface)和边列表集合(listedge);

步骤二:遍历listface中的圆柱表面,通过判断是否构成封闭内圆识别孔特征;在listface中去除识别出的孔特征面,得到构成属性邻接图的面列表(listaagface);

步骤三:初始化属性邻接图的存储矩阵(aagmatrix),遍历listedge,计算其凹凸性并写到aagmatrix中,完成属性邻接图的构造;

步骤四:加载预定义加工特征及其特征子图,遍历每一个预定义加工特征,若遍历结束转步骤六,否则执行步骤五;

步骤五:调用子图同构方法,识别出零件上的所有该类型的加工特征的面列表,将识别结构存储到已识别特征容器(vectorrecognizedfeatures)中;

步骤六:遍历vectorrecognizedfeatures,获取每一个加工特征的面列表,根据加工特征类型及面列表计算该加工特征关键几何尺寸;

步骤七:获取mbd模型的标注集列表,读取每一条标注的类型和数据,获取到尺寸公差等级和表面粗糙度数据,找到其所依附的零件元素,并根据依附元素关联到对应的加工特征上;

步骤八:获取mbd模型的工程注释列表,提取出该零件的材料信息和所属的产品信息;

步骤九:用户自定义加工特征交互识别;预定义特征能够包含大多数的加工特征,但一些设计者有特殊用途或者较为少见的加工特征程序无法自动识别,这种程序无法自动识别的加工特征叫做用户自定义加工特征;用户自定义加工特征需要交互识别;

步骤十:加工特征识别结果可视化;为更直观的展示零件加工特征识别结果,程序对已识别出的加工特征进行涂色;

步骤十一:采用可扩展标记语言(extensiblemarkuplanguage,xml)格式结构化输出vectorrecognizedfeatures及零件的产品信息和材料信息。

其中,在步骤一中所述的“mbd模型”,是指在传统cad几何实体模型基础上,增加了丰富的制造语义信息的模型集,典型mbd模型实例及其信息结构见附图1。

其中,在步骤一中所述的“解析mbd模型”,其具体作法如下:获取编辑器中mbd模型指针pdoc,通过零件指针获取零件拓扑体body,并两次调用系统提供的获取拓扑元素函数getallcells()分别获取零件的拓扑面列表和边线列表分别存储于listfacelistedge;

其中,在步骤二中所述的“判断是否构成封闭内圆”,其具体作法如下:遍历listface中的圆柱表面,找到其圆柱面中心和外法矢(catia中圆柱面是两个半圆柱面拼接的),若存在两个半圆柱面的外法矢是相向的,则可判定为构成封闭内圆。

其中,在步骤三中所述的“初始化属性邻接图的存储矩阵(aagmatrix)”,其初始化的作法如下:属性邻接图矩阵是一个n×n方阵,初始化默认所有面不相邻,每个元素初始化为-1。

其中,在步骤三中所述的“凹凸性”,其含义是两个邻接面形成夹角的凹凸情况,当其邻接面形成的夹角(面向体外)小于180度时,称该边为凹边,反之当邻接面形成的面向体外的夹角大于180度时,称该边为凸边;

其中,在步骤三中所述的“计算其凹凸性并写到邻接矩阵aagmatrix中”,其边的凹凸性计算方法如下:

对于两个平面相交形成的直线边,如附图2所示,设边e的两个邻接面分别为f1和f2,分别求出两个邻接面的外法线矢量,记为n1、n2;选定某个邻接面(原则上可以任意选取,本发明以f1为例)为基面,求边e的切线矢量ne,保证ne与基面的外法线矢量n1满足右手关系;计算并得到中间转换矢量n=n1×n2,求n与基面的外法线矢量n1的夹角α,若α>90°,e为凹边,若α<90°,e为凸边;对于其他类型边的凹凸性,按附图3所示的类型赋予不同的属性值;

其中,步骤三中所述的“属性邻接图”,其构建是在边凹凸性判断的基础上完成的,本发明用邻接矩阵存储零件的属性邻接图;邻接矩阵是一个方阵,行列对应零件的表面,元素取值则反映了模型中两个面之间的邻接属性,如果两个面相交的边为凸边,则对应边的属性为1,如果两个面相交的边为凹边,则对应边的属性为0;属性图构造的一般流程如附图4所示。

其中,步骤四中所述的“预定义加工特征及其特征子图”,其预定义加工特征及其特征子图见图8所示;所述的“加载预定义加工特征及其特征子图,遍历每一个预定义加工特征”,其作法如下:从预定义加工特征库中获取预定义加工特征列表,每次获取一个类型特征子图,并利用步骤五所述的“子图同构方法”在步骤三构建的属性邻接图中识别该子图对应的所有同构子图,保存为该类型预定义特征识别出的加工特征。直至遍历所有预定义特征库中加工特征,结束该操作。

其中,步骤五中所述的“调用子图同构方法”,其具体作法如下:子图同构方法的实现是整个加工特征识别的关键和难点,本发明通过构建映射矩阵来记录大图与小图顶点之间的同构关系,将图匹配问题转化为对映射矩阵的深度优先搜索问题;具体流程如下:

设特征子图gα的邻接矩阵为mα,零件属性图gβ的邻接矩阵为mβ,其中小图gα顶点个数m,大图gβ顶点个数n;构建一个m×n的映射矩阵m,m的行对应小图顶点,列对应大图顶点,每个元素记录着两个顶点之间的同构关系,1代表匹配,0代表不匹配;当且仅当m满足每一行有且仅有一个元素为1,并且所有为1的元素不在同一列时,特征子图gα与属性图gβ子图同构;于是,在大图gβ中找到所有同构的小图gα,只需要找到所有满足同构关系的映射矩阵m即可;鉴于大图gβ中可能有多个同构的小图gα,本发明基于回溯法来递归实现对大图的全局搜索,整个方法步骤如下:

输入:mα,mβ,m,n,初始化完毕的映射矩阵m,行占位数组vh(表示当前矩阵m中每一行取值为1元素的列号,元素个数为m且0≤vh[i]≤n-1,初始化为-1),列占位数组vf(表示当前矩阵m中每一列是否有取值为1的元素,元素个数为n,vf[i]={false,true},初始化为false),存放gα、gβ上已匹配的顶点集合v1和v2,行号row,列号col(均初始化为0);

输出:零件属性图gβ中与特征子图gα满足子图同构关系的顶点集合以及顶点匹配对应关系;

step1.判断行号row是否大于等于特征子图gα顶点个数m,若满足则说明在零件中找到了该特征,输出识别出匹配顶点集合v1和v2,该方法结束;否则转step2;

step2.列号col是否小于n,若是则col++,转step3;否则该方法结束;

step3.判断vh[row]是否为-1,若是,说明该行是退回的一行,之前已经设置过占位了,此时需要将占位清空,v1和v2均弹出栈顶元素直到其中顶点个数等于当前行号row,vf[vh[row]置为false,vh[row]置为-1,转step4;否则直接转step4;

step4.判断vf[col]是否为false且m(row,col)是否为1,若是则在顶点集合v1加入row,在顶点集合v2加入col,转step5;否则该方法结束;

step5.判断已匹配的顶点集合v1和v2分别构成的子图是否同构,若同构则令vh[row]=col,vf[col]=true,令row++,转到step1,递归调用该方法;若不同构,则v1和v2均弹出栈顶元素,该方法结束;

子图同构问题属于图论中的图搜索问题,是np完全问题,该方法复杂度较高,为了提高该方法的执行效率,本发明采用了如下方法进行了快速剪枝操作,有效缩小了图的全局搜索空间;

(1)初始化映射矩阵m时,并不是将每个元素均置为1,而是先计算属性图gβ中与子图gα中每一个顶点的度,当子图顶点的度大于大图顶点的度时,对应映射矩阵m的元素初始化为0;

(2)通过实时判断已匹配的顶点集合v1和v2分别构成的子图是否同构[i],来快速确定当前的映射矩阵是否满足要求;判断v1和v2是否同构的时,只需要判断新加入的顶点与集合中已有顶点是否同构即可。

其中,步骤六中所述的“计算该加工特征关键几何尺寸”,其具体作法如下:加工特征关键几何尺寸计算包括特征面列表中各型面的关键几何参数提取和加工特征包围盒尺寸计算;其中特征面各种类型面的参数主要为:平面关键几何参数为:平面中心坐标、平面包围盒坐标;圆柱面关键几何参数为:轴心坐标、半径、圆柱面高度、圆柱面起始终止角度、圆柱面包围盒坐标;圆锥面关键几何参数为:轴心坐标、圆锥角、圆锥面包围盒坐标;圆环面关键几何参数为:轴心坐标、主副圆周半径参数、主副圆周起始角度、圆环面包围盒坐标;特征特有关键尺寸由面在特征中位置与面的关键几何参数确定,特征包围盒尺寸由加工特征面链表中各面的包围盒坐标运算得到;特征包围盒尺寸计算流程见附图5所示。

其中,步骤七中所述的“获取mbd模型的标注集列表”,其具体作法见附图6所示;其中标注集列表指的就是零件非几何信息,获取mbd模型标注集列表便可获得零件非几何信息。

其中,步骤八中所述的“获取mbd模型的工程注释列表,”,其具体作法如下:获取当前编辑器中的文件,并由此获得当前mbd模型指针pdoc,调用系统提供的函数接口即可获取零件注释列表及其注释内容。

其中,步骤九中所述的“用户自定义加工特征交互识别”,其具体作法如下:零件加工特征是一组面,程序每识别出一组面,就会在vectorrecognizedfeatures中新增一个元素;用户自定义零件特征采用屏幕选择代理,设置其选择对象为零件表面surface,由用户在屏幕上点击零件表面,获得表面路径;并通过获得的表面路径获得面对象;将所有屏幕选择的面对象存储于面列表,设为用户自定义特征,并将其存储于vectorrecognizedfeatures;修改自定义特征的名称,设置其rgb值;重复以上操作交互识别完所有自定义加工特征后调用步骤6中“计算该加工特征关键几何尺寸”函数计算自定义加工特征关键几何尺寸。

其中,步骤十中所述的“加工特征识别结果可视化”,其具体作法如下:启动特征涂色函数遍历vectorrecognizedfeatures,获取其每一个特征元素的面列表(listoffeatfaces),遍历listoffeatfaces,获取brep元素,并将其添加到待涂色brep列表中;调用系统提供的涂色函数,读取对应加工特征的rgb值对brep列表中各元素涂色。

其中,步骤十一中所述的“采用可扩展标记语言(extensiblemarkuplanguage,xml)格式结构化输出vectorrecognizedfeatures及零件的产品信息和材料信息”,其具体作法如下:调用xml文档创建函数,生成xml文档;生成两个一级子节点加工特征识别结果和零件注释;在第一个一级子节点下生成二级子节点,每个加工特征对应一个二级子节点,在二级子节点下存储该特征的关键尺寸信息;获取每个标注所依附的几何元素,并以此为依据添加到对应的加工特征下,成为该加工特征的子节点;将步骤八提取结果保存在第二个以及子节点下,每条注释一个二级子节点,并在该二级子节点下存储该注释的类型和内容;生成完毕后保存xml文档。

通过以上步骤,可以成功地将mbd模型中的加工特征面集有效地识别出来,在特征识别结束后,还能够自动计算每一个加工特征的几何信息,并将依附在该加工特征面上的三维标注信息提取出来,构造完整的加工特征信息单元,最终将加工特征识别及信息提取结果以xml形式自动输出出来,从而为后续工艺设计奠定了良好的数据基础。

(三)优点及有益效果

本发明提出了一种用于机加工艺设计的mbd模型加工特征识别及信息提取方法。与已有技术相比较,效果是积极且明显的。首先本发明在识别加工特征面集时,虽然采用了传统的子图同构方法,但是通过回溯法和一系列快速剪枝操作提高了该方法的实现效率,有效缩小了图的全局搜索空间。同时,该方法扩展性好,支持对加工特征的扩充。其次,本方法相较于传统只针对cad模型的特征识别方法,增加了对mbd模型三维标注信息和工程注释信息的识别和提取,实现了加工特征几何信息和非几何信息的完整提取,最终构造了完整的加工特征单元。最后,本方法的整个流程是程序自动化实现的,操作简便,能够很方便地实现特征识别及信息提取,节省操作时间。

附图说明

图1(a)是典型mbd模型实例。

图1(b)是mbd模型信息结构。

图2是边凹凸性判断示意图。

图3(a)是圆柱面和平面交线及其凹凸性值。

图3(b)是圆柱面和平面交线及其凹凸性值。

图3(c)是圆柱面和平面交线及其凹凸性值。

图4是属性邻接图构造的流程。

图5是加工特征包围盒计算的流程。

图6是非几何信息提取的流程。

图7是本发明所述方法流程图。

图8是加工特征及其子图信息。

图中序号、符号、代号说明如下:

其中图2中各符号含义如下:f1和f2是两个零件相邻表面;e是两个邻接面f1和f2的交线;n1、n2分别为两个邻接面f1和f2的外法线矢量;ne为e的切线矢量,且ne与基面f1的外法线矢量n1满足右手关系;n为中间转换矢量,n=n1×n2。

其中图5中各符号含义如下:cell是零件解析后获得的拓扑面元素;xmin是特征表面各面包围盒的x方向坐标最小值;xmax是特征表面各面包围盒的x方向坐标最大值;ymin是特征表面各面包围盒的y方向坐标最小值;ymax是特征表面各面包围盒的y方向坐标最大值;zmin是特征表面各面包围盒的z方向坐标最小值;zmax是特征表面各面包围盒的z方向坐标最大值;x为特征包围盒的长;y为特征包围盒的宽;z为特征包围盒的高。

其中图8中各符号含义如下:f1,f2,,……,fn指的是零件表面列表中的面,面与面连线上的数字为两面的凹凸性关系。

具体实施方式

下面结合实例对本发明作进一步说明,但不限定本发明。

本实施例为航空企业实际加工件,将其mbd模型的加工特征识别出来。本实施例基于catiacaa二次开发技术,以microsoftvisualstudio2005和radev5r18作为开发平台进行实施,以下为本发明实施例的具体步骤:

本发明一种mbd模型的加工特征识别及信息提取方法,见附图7所示,其具体实施步骤如下:

步骤一:解析mbd模型(模型示例见附图1(a),但不限定本发明)获取listface、listedge。其具体实施过程是:打开零件mbd模型,点击零件特征识别工具条,启动零件特征识别对话框。点击零件特征识别按键,程序将自动获取当前编辑器中的零件指针,并将该零件指针对应的mbd模型解析获得其表面列表集合(listface)和边列表集合(listedge)。mbd模型与传统cad几何实体模型相比增加了丰富的制造语义信息的模型集,典型mbd模型包含实体模型、设计参考、三维标注、其他信息和工程注释,见附图1(b)。mbd模型所包含的丰富的信息是后续所有步骤的信息来源。

步骤二:识别零件孔特征,获得listaagface。其具体实施过程是:遍历listface获取圆柱表面,找到各圆柱面中心和外法线矢量。catia中圆柱面是两个半圆柱面拼接的,且圆柱面外法线矢量是背向的,圆孔面的外法线矢量是相向的。通过判断圆柱面中心和外法线矢量可判断各圆柱面是否构成孔特征。在listface中去除识别出的孔特征面,得到构成属性邻接图的面列表listaagface。

步骤三:属性邻接图矩阵aagmatrix赋值。其具体实施过程是:初始化属性邻接图矩阵aagmatrix。aagmatrix是一个n×n的方阵,其初始化后每个原值值为-1。遍历listedge,计算其凹凸性并写到aagmatrix中,完成属性邻接图gβ的构造。listedge中每个元素的凹凸性是其相邻两个邻接面形成夹角的凹凸情况,当其形成的夹角小于180度时,称该边为凹边,反之称该边为凸边。边的凹凸性是通过其邻接面的外法线矢量计算得到的。边的凹凸性判断示意图见附图2。对于两个平面相交形成的直线边,分别求出两个邻接面的外法线矢量,记为n1、n2。选定在列表中靠前的邻接面为基面,求边e的切线矢量ne,保证ne与基面的外法线矢量n满足右手关系。中间转换矢量n=n1×n2,求n与基面的外法线矢量n1的夹角α,若α>90°,e为凹边,aagmatrix矩阵对应元素值为0,若α<90°,e为凸边,aagmatrix矩阵对应元素值为1。边的类型不仅与凹凸性有关,还与相交的两个曲面的类型有关。cad模型中常用的规则曲面有平面、圆柱面、圆环面三种。当圆柱面与平面相切,见附图3(a),其相切形成的线为凹时,aagmatrix矩阵对应元素值为-2,其相切形成的线为凸时,aagmatrix矩阵对应元素值为2。当平面与圆环面相切时只有一种情况,见附图3(b),若判定某边为平面与圆环面相切获得,其aagmatrix矩阵对应元素直接赋值为3。当圆柱面与圆环面相切只有一种情况,见附图3(c),其aagmatrix矩阵对应元素直接赋值为4。

属性邻接图的构建是在边凹凸性判断的基础上完成的,本发明用aagmatrix存储零件的属性邻接图。利用本发明阐述的凹凸性判定原则先形成零件属性邻接图,再存储为aagmatrix。属性图构造的一般流程如附图4所示。

步骤四:逐个加载预定义加工特征。其具体实施过程是:遍历每一个预定义加工特征,逐个加载预定义特征及其特征子图,若已遍历所有预定义特征则转步骤六,否则执行步骤五。

预定义特征库主要包含台阶槽、圆台阶槽、狭槽、圆狭槽、盲台阶槽、圆盲台阶槽、盲狭槽、圆盲狭槽、通槽、圆通槽、盲槽、圆盲槽等十二个特征及其特征子图。其对应关系见图8所示。

步骤五:调用子图同构方法识别当前预定义特征。其具体实施过程是:调用子图同构方法,识别出与当前预定义加工特征匹配的所有加工特征的面列表。读取预定义特征子图并赋值给gα,并进一步算出其邻接矩阵mα,令邻接矩阵为mβ=aagmatrix,小图gα顶点个数为m,大图gβ顶点个数为n。构建一个m×n的映射矩阵m。计算属性图gβ中与子图gα中每一个顶点的度,当子图顶点的度大于大图顶点的度时,对应映射矩阵m的元素初始化为0,其余元素初始化为1。初始化行占位数组vh、列占位数组vf、顶点集合v1和v2。初始化行号row和列号col(均初始化为0)。初始化完毕后执行以下步骤:

(1)判断行号row是否大于等于特征子图gα顶点个数m,若满足则说明在零件中找到了该特征,输出识别出匹配顶点集合v1和v2,该方法结束;否则转(2);

(2)列号col是否小于n,若是则col++,转(3);否则该方法结束;

(3)判断vh[row]是否为-1,若是,说明该行是退回的一行,之前已经设置过占位了,此时需要将占位清空,v1和v2均弹出栈顶元素直到其中顶点个数等于当前行号row,vf[vh[row]置为false,vh[row]置为-1,转(4);否则直接转(4);

(4)判断vf[col]是否为false且m(row,col)是否为1,若是则在顶点集合v1加入row,在顶点集合v2加入col,转(5);否则该方法结束;

(5)判断已匹配的顶点集合v1和v2分别构成的子图是否同构,若同构则令vh[row]=col,vf[col]=true,令row++,转到(1),递归调用该方法;若不同构,则v1和v2均弹出栈顶元素,该方法结束。

算法结束后输出零件属性图gβ中与特征子图gα满足子图同构关系的顶点集合以及顶点匹配对应关系。此时零件预定义加工特征识别完成,将识别结果存储到vectorrecognizedfeatures中。

步骤六:计算已识别特征的关键几何尺寸。其具体实施过程是:遍历零件已识别加工特征列表vectorrecognizedfeatures,读取其加工特征面列表,并根据加工特征类型计算该加工特征关键几何尺寸;平面关键几何参数为:平面中心坐标、平面包围盒坐标boundingbox;圆柱面关键几何参数为:轴心坐标、半径、圆柱面高度、圆柱面起始终止角度、圆柱面包围盒坐标boundingbox;圆锥面关键几何参数为:轴心坐标、圆锥角、圆锥面包围盒坐标boundingbox;圆环面关键几何参数为:轴心坐标、主副圆周半径参数、主副圆周起始角度、圆环面包围盒坐标boundingbox;特征特有关键尺寸由面在特征中位置与面的关键几何参数确定,特征包围盒尺寸由加工特征面链表中各面的包围盒坐标运算得到。特征最小包围盒尺寸计算方法见附图5.

步骤七:提取零件标注信息。其具体实施过程是:获取当前mbd模型的标注集列表,读取每一条标注的类型和数据,通过查询公差等级数据库获取到尺寸公差等级,用递归的方法标注信息所依附的零件元素,并根据依附元素关联到对应的加工特征上。零件标注信息提取流程图见附图6。

步骤八:提取零件工程注释。其具体实施过程是:获取mbd模型的工程注释列表,提取出该零件的材料信息和所属的产品信息。

步骤九:用户自定义加工特征交互识别。其具体实施过程是:利用选择代理拾取零件表面,计算表面关键几何参数,并以此为依据在listface中找到所有屏幕点击面指针,添加到自定义特征面链表中。程序设定四个按键,其功能分别为:设为特征按钮,将当前屏幕选择面链表找到其在listface中对应面指针并添加到自定义特征面列表;删除选择按键,将屏幕选择的面从已选中列表中删除;保存编辑按键,特征名称、特征颜色在多重表(multilist)中修改后存于自定义特征中;移除特征按键,将选中的自定义特征在vectorrecognizedfeatures中移除;确定按键,计算自定义特征关键尺寸参数。

步骤十:可视化加工特征识别结果。其具体实施过程是:依据特征库中特征面列表rgb值,遍历已识别出的加工特征vectorrecognizedfeatures,获取其每一个特征元素的面列表(listoffeatfaces),遍历listoffeatfaces,获取brep元素,并将其添加到待涂色brep列表中。调用系统提供的涂色函数,读取对应加工特征的rgb值对brep列表中各元素涂色。更新零件模型,即可在屏幕上显示识别出的零件加工特征。

步骤十一:保存特征识别结果于xml文档。设置存储路径,将零件加工特征识别结果、加工特征关键几何尺寸、各加工特征rgb值、非几何信息存储于xml文档。

通过以上步骤,可以成功地将mbd模型中的加工特征面集有效地识别出来,在特征识别结束后,还能够自动计算每一个加工特征的几何信息,并将依附在该加工特征面上的三维标注信息提取出来,构造完整的加工特征信息单元,最终将加工特征识别及信息提取结果以xml形式自动输出出来,从而为后续工艺设计奠定了良好的数据基础。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1