产品STL模型布尔运算方法技术

技术编号:3780481 阅读:315 留言:0更新日期:2012-04-11 18:40
本发明专利技术提供一种产品STL模型的布尔运算方法,其特征在于构建产品STL模型的动态空 间索引结构,基于该结构获取两STL模型相交三角面片,并根据空间三角面片的位置关系, 计算相交三角面片的交线段,通过建立离散交线段的动态空间索引结构实现交线段的邻近排 序,根据交线对相交三角面片进行细分,以交线为分界线将参与布尔运算的STL模型划分为 两个子STL模型,将分割后的子STL模型按照不同的方式组合,实现STL模型的交、并或 差布尔运算。实例证明该方法获取交线数据准确,能有效提高产品STL模型的布尔运算效率, 并可处理各种复杂型面产品的STL模型的布尔运算。

【技术实现步骤摘要】

本专利技术提供一种产品STL模型布尔运算方法,属于计算机辅助设计领域。
技术介绍
产品STL模型可实现基于产品外形采样数据点云的曲面模型快速精确重构,目前已在产 品逆向工程领域获得广泛应用。对逆向工程系统输出的产品STL模型进行布尔运算,可实现 产品STL模型的剪裁、拼接等操作,并可构造出具有复杂型面特征的产品STL模型。对现有的技术文献检索发现,张金义等在学术期刊《工程图学学报》2002, 12(1), P53-61 上发表的论文"统一于三角面片的可靠多面体布尔集合运算"中,采用多面体一致关系的判 断和推理方法,根据多面体位置关系实现产品STL模型的布尔运算,该算法保证了形状规则、 数据量少的产品STL模型布尔运算的可靠性,但对形状复杂、数据量大的产品STL模型其几 何推理过程效率低。郭开波等在学术期刊《华中科技大学学报》(自然科学版)2006, 34(7), P96-99上发表的 论文"STL模型布尔运算的实现"中,采用邻接表作为产品STL模型数据结构,建立曲面模 型中三角面片的包围盒,遍历包围盒获取相交的三角面片并计算其交线段,将所有交线段排 序获取两模型交线,根据交线剖分产品STL模型,实现产品STL模型的布尔运算,但三角面 片邻接表的建立及维护过程繁琐,需重复遍历邻接表计算交线段,算法运行效率低。唐敏等在学术期刊《软件学报》1999, 12(10), P1291-1297上发表的论文"非正则精确模 型的布尔操作"中,采用非正则精确模型作为几何对象数据结构,基于该模型进行数据对象 的层次求交,实现产品STL模型的布尔运算,该算法避免了由于计算误差引起的裂纹以及拓 扑生成的不一致,但非正则精确模型结构复杂,获取产品STL模型交线过程繁琐,求交速度 慢。综上所述,现有的针对产品STL模型的布尔运算方法存在三角面片求交速度慢,缺乏统 一的构建产品STL模型拓扑结构的有效数据结构,算法运行效率低等问题。
技术实现思路
本专利技术的目的在于提供一种产品STL模型布尔运算方法,以有效縮短复杂外形产品的开发周期,降低产品成本。其技术方案为产品STL模型布尔运算方法,其特征在于步骤依次为1)读产品STL模型数据到存储 器中,并为产品STL模型数据建立线性链表存储结构,改进R、树得到适合于存储产品STL 模型的动态空间索引结构R^-树,基于该结构建立产品STL模型的动态空间索引结构;2) 基于产品STL模型的动态空间索引结构获取交线数据;3)根据交线数据对相交三角面片进 行细分;4)将细分后三角面片添加到产品STL模型动态空间索引结构中,重新建立产品STL 模型动态空间索引结构,遍历该索引结构,自适应扩张查找位于交线两侧的三角面片,以交 线为分界线将产品STL模型分成两个子STL模型,实现产品STL模型的分割;5)根据布尔 运算类型,将分割后产品STL模型进行组合,实现产品STL模型的交、并或差布尔运算。为实现专利技术目的,所述的产品STL模型布尔运算方法,在步骤l)中,改进R^树动态空 间索引数据结构得到R"-树的方法具体是将三角面片及索引结点MBR即最小包围矩形统一表示为四维点对象(X乂z,/"),其中x, 乂 z为MBR中心坐标,r为MBR外接球半径值,通过三角面片集合的聚类分簇,构建产品STL模型动态空间索引结构。为实现专利技术目的,所述的产品STL模型布尔运算方法,在步骤2)中,设参与布尔运算 的两STL模型为&和根据STL模型&动态空间索引结构,判断STL模型&动态空间 索引结构中结点MBR与STL模型&的相交关系,若不相交,则STL模型&和STL模型& 无交线;若相交査找STL模型&与STL模型&动态空间索引结构中相交的数据结点,该数 据结点中存储的三角面片即为STL模型&和STL模型&相交的三角面片;提取相交数据结 点中存储的三角面片,求交获取交线段,采用R^S-树建立离散交线段动态空间索引结构,基 于该结构各层结点的空间邻近关系实现交线段的邻近排序。为实现专利技术目的,所述的产品STL模型布尔运算方法,在步骤2)中,采用11*8-树建立 离散交线段动态空间索引结构,基于该结构各层结点的空间邻近关系实现交线段邻近排序的 步骤具体是①以任一交线段为起始线段,查询离散交线段动态空间索引结构中到起始线段 某端点距离为零的数据结点;②获取该数据结点中存储的交线段,该交线段与起始线段相连 组成新的起始线段;③查询离散交线段动态空间索引结构中到新起始线段端点距离为零的数 据结点,若存在距离为零的数据结点执行步骤②;④输出两STL模型一条交线,如果两复杂 STL模型交线不止一条,执行步骤①。为实现专利技术目的,所述的产品STL模型布尔运算方法,在歩骤4)中,产品STL模型分 割具体步骤如下①以产品STL模型中位于交线上的任一三角面片为初始迭代面片;②查找 产品STL模型中包含初始迭代面片非交线边的三角面片;③判断査找到的三角面片是否以交 线为边界,若不存在交线边界则停止查找交线边方向上的三角面片,査找产品STL模型中包含其它边界的三角面片,执行③;④若两STL模型存在多条交线,提取下一条交线,执行①; ⑤将查找到的三角面片从产品STL模型中分割出来,沿交线将产品STL模型分成两个子STL模型。为实现专利技术目的,所述的产品STL模型布尔运算方法,在步骤5)中,产品STL模型布 尔运算方法具体是设两STL模型为&和&,交线将STL模型&分成两个子STL模型,即 位于STL模型&内部和外部的STL模型,交线同样将STL模型&分成两个子STL模型, STL模型&和STL模型&布尔运算公式如下<formula>formula see original document page 6</formula>以上公式中S"'"&和分别表示STL模型S!位于STL模型S2内部和外部的子STL模型,和分别表示STL模型&位于STL模型&内部和外部的子STL模型。STL模型的交运算是将3几模型&中的&/"&与STL模型&中的&z'"S,组合成一张曲面,并运算是将STL模型&中的&OM^2与STL模型&中的组合成一张曲面,差运算是将STL模型&中的>VWW2与STL模型&中的S2/"&组合成一张曲面或将STL模型&中的与STL模型&中的组合成一张曲面。 本专利技术与现有技术相比,具有以下优点1) 釆用R+S-树组织产品STL模型的动态空间索引结构,基于该结构实现邻近三角面片 的快速査询,可对各种复杂型面的产品STL模型进行布尔运算;2) 通过逐层査找动态空间索引结构各层结点,可准确定位两STL模型相交的三角面片, 快速求解产品STL模型交线,有效提高了产品STL模型的求交效率;3) 基于动态空间索引结构快速获取位于交线两侧的三角面片,实现产品STL模型的分 割,有效提高了产品STL模型的布尔运算效率。附图说明图l是本专利技术程序流程图2是本专利技术所建立的产品STL模本文档来自技高网
...

【技术保护点】
一种产品STL模型的布尔运算方法,其特征在于步骤依次为:1)读产品STL模型数据到存储器中,并为产品STL模型数据建立线性链表存储结构,改进R*-树得到适合于存储产品STL模型的动态空间索引结构R*S-树,基于该结构建立产品STL模型的动态空间索引结构;2)基于产品STL模型的动态空间索引结构获取交线数据;3)根据交线数据对相交三角面片进行细分;4)将细分后三角面片添加到产品STL模型动态空间索引结构中,重新建立产品STL模型动态空间索引结构,遍历该索引结构,自适应扩张查找位于交线两侧的三角面片,以交线为分界线将产品STL模型分成两个子STL模型,实现产品STL模型的分割;5)根据布尔运算类型,将分割后产品STL模型进行组合,实现产品STL模型的交、并或差布尔运算。

【技术特征摘要】

【专利技术属性】
技术研发人员:孙殿柱李心成李延瑞田中朝
申请(专利权)人:山东理工大学
类型:发明
国别省市:37

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1