一、引言:

现代社会人都向往美好,然而容颜没有十全十美的,这也是为什么众多女性朋友选择“美容化妆”出街;又或者通过手机美颜、视频滤镜等效果出镜。可见化妆术、美颜术的重要性。
同样的在三维建模CAD领域,针对几何模型,也有这样的“化妆术、美颜术”,也就是今天我们要讨论的话题“容差建模”。因为几何模型在计算机表达中,也存在缺陷(误差),而且这种误差客观普遍真实存在,现在所有三维建模内核的表达都存在几何拓扑表达上的“误差”。
至于几何误差产生的原因很多,在一个建模平台中,主要由于大部分的几何物体在计算机中都只能以浮点数来近似表示。浮点数表示的几何物体是不精确的,这个不精确的表示就导致了几何实体的几何与拓扑之间的不一致性[1],也就是误差的产生。
其它导致误差产生的原因还很多,不在此赘述,有兴趣的读者可以参考《几何容差产生的原因分析》
目前主流的两大三维建模内核ACIS和Parasolid都有处理这个误差的技术,这也是建模内核相关的关键技术。本文通过深入浅出的方式,介绍“容差建模”的技术要点,并且对中望3D自有Overdrive内核在“容差建模”的技术实现方式进行介绍。

二、基本概念及数学原理

1.几何拓扑
几何信息是物体在欧氏几何空间中的形状、位置和大小,最基本的几何元素是点、线/边、面。
由于几何信息难以准确描述物体,存在有物体表达上的二义性问题,要完整的描述物体,还必须同时给出其拓扑信息。

拓扑信息是指拓扑元素(点、线、面)的数量及其相互间的连接关系。

2.几何模型

几何元素通过一定的拓扑关系组合后的模型。

3.几何建模

在计算机中构造几何模型的过程


4.B-Rep (边界表示法)

B-Rep(Boundary Representation)是当前被主流建模系统普遍使用的几何实体模型的表示方法,通过描述实体的边界来表示实体。实体的边界将该实体分为实体内点集和实体外点集,是实体与环境之间的分界面。定义了实体的边界,实体就被唯一定义,如图4所示。


5.几何容差

B-Rep模型中几何、拓扑关系分析,理论上要求在三维建模系统中要完整的描述一个几何模型的需要保证几何元素的完整性、拓扑关系的正确性,也就是图5 a)中的“精确模型”
但真实的情况,在计算机机进行几何建模(建立数学模型)的过程中,对一个完整复杂的几何模型通过最基本的几何构造和拓扑关系描述的时候,首先在单一平台会因为计算误差、几何的迭代产生几何容差,其次跨平台的核心算法差异,也会在数据交换后产生几何容差。如图5 b)中的存在几何容差的容差模型。


a)精确模型 b)存在几何容差的模型

6.几何容差的三种存在形式

对于边界表示法的B-Rep模型来说,其主要构成就是一张张的面,因此无论是建模还是模型修复,都必须以面作为基础[2]。
在图5 b)的四面体中,提取三个相连面进行分析。如图6,描述面与面之间连接关系的边(Edge)以及描述边与边之间连接关系的顶点(Vertex)因为几何容差产生间隙,原本精确模型中的,3条共边缘分裂成6条,1个共顶点也分裂成3个。因此在存在几何容差在B-Rep模型中的存在形式主要是依赖于顶点、边缘和面,也就是几何容差主要以容差顶点、容差边、容差面存在。


7.容差建模(Tolerant Modeling)

我们在三维建模CAD软件中,听的最多的是曲面建模、实体建模,这是基于对象类型(曲面还是实体)来定义建模手段的概念名词

我们也经常说零件建模、装配建模,这是基于模型的状态(零件、装配)来定义建模方法的概念名词。

那么容差建模顾名思义,就是在三维CAD建模软件中处理几何容差问题的建模手段和方法,我们统称这种技术叫做“容差建模”。

三、容差建模在三维建模CAD软件的技术体现

1.建立一套完整合理的几何容差体系,定义几何模型的容差规则。

几何容差体系,主要是完成对容差顶点,容差边,容差面的规则定义。简单理解就是一个度量的标准和方法,什么样的误差应该合理存在并被软件接纳,就好像文章开头提到的“化妆术”,怎么衡量化妆的美与丑。允许缺陷存在,需定义一套清晰的标准和合理的方法。


2.在功能应用层,对容差模型进行适配性的算法处理,让建模工作顺利进行。

容差一旦被定义并合理存在,其它相应使用到的建模功能,就需要考虑处理这种容差模型。主要涉及容差处理的建模功能,包括数据交互、布尔运算操作。

1)数据交互(导入、导出)要考虑跨平台不同数据精度之间的兼容。由于不同平台的建模精度不一致,如果没有容差建模技术的实施,转换数据很容易因为容差的原因,出现几何数据的问题。如图7,跨平台交互数据后,狭长面由于容差的由于引起了丢失。

2)由于容差的原因,布尔运算无法执行。前述已经说明,容差不可避免,而在布尔运算中,需要对两个几何对象进行求解,涉及到两个几何对象的容差兼容的问题,如无完善的容差建模的算法处理,布尔运算会频繁失败。

四、传统容差建模的技术实现方法

1.基于全局单一容差的容差体系

传统的边界表示(B-Rep)实体建模使用固定统一的全局容差来执行计算[3],但其优点和缺点均是明显的。优点是所有计算都只执行一个容差数值来进行判断和计算,存储的信息量小,计算速度快。缺点是始终固定的容差值,数值过大会导致精度损失,模型质量下降,过小的数值反而会增加计算时间,而且会把导入的来自其它平台的数据识别成开放的间隙。

另外一个更严重的问题是会导致建模不稳定。如图3-1中使用固定公差的一个建模例子,蓝色曲线分割一个面,如果上部短边缘的长短小于4倍的容差值,分割后的两条短边会由于两个顶点的容差重合,此条短边在系统中会被认为是重合的顶点而不能正确生成。


2.基于自适应容差的容差体系

如图3-2中,基于自适应的容差方法是在涉及几何拓扑变化的过程中,当涉及容差的计算的时候,通过特定的算法计算拓扑结构中的顶点、边缘位置,在几何模型不同位置使用最适合的容差值,这种方法能够保证拓扑结构使用最优的容差值,不会出现固定统一容差方法的建模稳定问题[4]。


理论上自适应的容差方法是最优的,但实践证明这种方法在应用上不可行,主要原因是这种方法的计算过程复杂、计算速度慢。特别对于参数化过程的几何建模平台,由于有特征树驱动模型,只要重生成建模过程,就要重新进行计算,效率低下的问题严重。

五、中望3D的容差建模技术

1.局部容差的容差体系

上述提到的全局单一容差、自适应容差,在三维CAD建模软件的真实应用都存在问题,中望3D使用的是一种基于局部容差的容差体系,这种容差体系吸收了两者的优点,更符合真实的应用场景。

如图12表示的是基于局部容差的容差建模方法,吸收了自适应容差方法中使用局部容差的优点,但容差值的计算方式不是自适应判断的,而是经过对实际几何容差情况的分析,设计一种定义规则,来计算和获取容差顶点和容差边缘的数据,而且对几何容差范围做一些限制,超过合理范围的大容差的几何拓扑不进行处理,维持其几何容差。


2.算法的概要

1)中望3D的局部容差体系的建立,在算法里主要体现为容差边缘和容差顶点的规则定义、计算法则。

2)局部容差在数据交互中的算法应用

3)局部容差在布尔运算中的算法应用

4)局部容差在工程图投影中的算法应用

注:算法描述可以参考论文《局部容差技术在中望3D平台的应用研究》

六、容差建模技术的应用

在中望3D平台基于局部容差方法的优化,分别完成了对容差边缘和容差顶点的计算函数VxVtxGetTol和VxEdgGetTol并集成到中望3D 平台中进行体现,以下是新版本中的成果体现及同平台新老版本的对比,及与其它主流平台的结果对比。

1.全局和命令功能支持局部容差设定

如图13,界面已经支持对全局默认建模公差设定:


如图14中的组合和分割命令的对话框截图,所有涉及容差计算的建模命令均实现支持局部容差的设定:

实际案例的结果验证:

使用实际的模型例子来验证局部容差的方法是否正确运行,首先如图15中,在中望3D的平台基于默认的0.01mm的容差来创建一个封闭的六面体,然后将几何体以偏移0.05mm的解散为6个单独的几何面。这时候边缘的间隙在0.06mm。


验证一:重新以0.01mm的默认容差缝合,执行结果如图16,因为0.01mm<0.05mm,所以失败的结果符合预期。


验证二:调整容差为大于间隙0.05mm的0.07mm。如图3-22,执行结果成功,几何模型重新缝合为封闭的一个几何实体。此处可判断局部容差的调整是有效的,得以保证使用到容差计算的建模操作可以调用局部容差的数值。
由于中望3D平台优化了着色模式的显示,如图18切换到线框模式下观察,可以看到虽然模型的分叉的容差顶点和容差边,也就是说局部容差成功应用到几何容差的顶点和边缘上,让不准确的模型成为容差模型,同时0.05mm< TolPointLoose(),所以这里对容差值的判断和容差顶点和边缘生成均是准确的。

七、中望3D容差建模与其它主流平台的测试对比

通过与其它主流CAD软件平台NX、Solidworks 进行对比,进一步验证中望3D实施的基于局部容差建立的容差体系在建模中的效果。实验思路将使用同一几何模型、使用一样的容差参数设定执行涉及容差计算的建模操作,分别比较三者的成功率、时间和精度。

图19的测试模型素材:两两相交,进行布尔运算,多处几何拓扑的重组均涉及容差的计算。


1)分别在中望3D、NX、Solidworks 的软件平台,执行布尔并集、差集、交集,理论的正确结果如图20所示。


2)使用局部容差0.01mm执行计算:三个平台的布尔运算操作均失败。

3)调整局部容差为0.05mm重新执行计算:中望3D 、NX能够得到正确结果,Solidworks失败。

4)调整局部容差为0.07mm重新执行计算:中望3D 、NX和Solidworks中均能得到正确结果。

具体的测试结果如下:


通过测试结果分析,默认容差无法均无法处理操作得到结果,判断为容差模型,分别调整容差值到0.05mm、0.07mm后执行。

更小的容差值能得到正确的结果表示模型的精度会更高。所以成功率方面:

中望3D=NX>Solidworks

在计算效率(时间)上:

中望3D>NX>Solidworks

由于在精度的判断上,通过容差值的成功率判断,只能得出中望3D和NX比Solidworks更高,但两者均在容差值为0.05mm的时候运行成功。所以两者还需要通过更进一步的验证比较。

如图21中分别在中望3D和NX中在同样0.05mm的容差值执行相交线,对比生成的相交线的曲线质量来判断其精度高低:
图22是中望3D中的相交线的控制点为6个,而右图中在NX中生成的相交线的控制点为10个。根据Nurbs样条曲线的几何逼近原理,控制点越多,越逼近精确结果,因此可以判断同样的容差值,布尔运算的结果:NX>中望3D


综合判断,在和其它主流平台的结果对比上,中望3D上实施的局部容差的容差建模技术在效率和成功率上都要优于其它平台,在模型精度上比中端的Solidworks表现要好,但略逊高端的NX平台。

八、总结

“容差建模”的名词的概念在CAD学界,最早在1995年由EDS公司(UG/NX的前身)的D.Jackson在《第三届ACM实体建模与应用的研讨会》提出并发表在《计算机科学》杂志上[5].一直以来所有的建模内核都将健壮“容差建模”技术作为CAD软件的重点研究开发对象,并持续投入,迭代完善。
尽管容差建模不是直接构建几何模型的方法,但是建模过程必不可少的处理容差问题的技术,容差建模的决定了一个三维建模软件的鲁棒性,是毫无疑问的三维建模软件内核技术之一。

作为使用独立自主Overdrive内核的中望3D,也基于“容差建模”进行重点开发研究,建立了一套局部容差体系,相较于全局单一容差和自适应容差方法,“局部容差”的方法对容差模型的容差边缘、容差顶点的判断和计算更为准确和高效,更符合软件实际应用的需要。同时中望3D也基于这套局部容差的体系方法,在功能应用层,完善了数据交互、布尔运算、工程图投影等功能的算法,从而让建模能在容差的环境下,顺畅执行。当然,容差建模的技术涉及一定的复杂性、系统性,还需要不断开发研究、迭代更新,进一步加强软件建模的健壮性。

参考文献:

[1]杨武.几何计算中误差控制与分析的几个问题[D].合肥:中国科学技术大学,2005

[2]陈立亮.材料加工CAD/CAE/CAM技术基础[M].北京:机械工业出版社, 2006:26-34

[3]M.Benouamer,O. Michelucci.Error free boundary evaluation based on a lazy rational arithmetic [J].Computer-Aided Design, 1994, 26(6)

[4]S.Fang,B.Bruderlin. Robustness in solid modelling-a tolerance based intuitionistic approach[J].Computer-Aided Design,1993,25(19):122-127

[5]D.Jackson.Boundary Representation Modelling with Local Toler- ances[J].Proceedings of the Symposium on Solid Modeling and Applications,1995,(03):247-253

中望3D Overdrive内核技术之“容差建模”相关推荐

  1. 无人驾驶中的 3D 目标检测技术

    2020 年 2 月 12 日 14:33 随着全球科技的飞速发展,无论是汽车行业还是其他的各行各业,紧跟时代脚步的重要性都是不容置疑的.近年来,自动驾驶汽车得到了很高的关注,但是理想和现实的差距却犹 ...

  2. sap 采购订单中收货容差的取值顺序

    1.主数据的中的容差设置是在没有息信记录的情况下才有效. 2.当信息记录中删除时,采购订单的容差会带物料主数据采购试图中的容差 3.信息记录的中的容差设置优先级别高. 当主数据中的容差与信息记录的容差 ...

  3. SAP中采购计划协议中交货容差测试

    采购计划协议在采购频率高的物料上应用较广.频繁的收货过程中,供应商送货数量不可能总是完全等于交货计划中规定的数量.所以,在实际处理中,根据业务需求,允许一定范围的容差是合理的. 采购计划协议交货容差可 ...

  4. open source 3d map_3D视觉技术在机器人抓取作业中的应用实例

    原标题:3D视觉技术在机器人抓取作业中的应用实例 关键词:3D视觉:工业机器人:抓取 1 引言 3D视觉技术作为新兴的技术领域还存在很多亟待解决的问题,但2D视觉已不能满足空间抓取的应用要求.与2D视 ...

  5. 《Android 3D游戏开发技术宝典——OpenGL ES 2.0》——2.1节游戏中的音效

    本节书摘来自异步社区<Android 3D游戏开发技术宝典--OpenGL ES 2.0>一书中的第2章,第2.1节游戏中的音效,作者 吴亚峰,更多章节内容可以访问云栖社区"异步 ...

  6. linux内核技术文章

    Linux 引导过程内幕 从主引导记录到第一个用户空间应用程序的指导 引导 Linux® 系统的过程包括很多阶段.不管您是引导一个标准的 x86 桌面系统,还是引导一台嵌入式 的 PowerPC® 机 ...

  7. 《Android 3D游戏开发技术宝典——OpenGL ES 2.0》——1.1节智能手机市场现状

    本节书摘来自异步社区<Android 3D游戏开发技术宝典--OpenGL ES 2.0>一书中的第1章,第1.1节智能手机市场现状,作者 吴亚峰,更多章节内容可以访问云栖社区" ...

  8. Android+3D游戏开发技术详解与典型案例

    内容导读 本书共分两篇,第一篇介绍了Android 3D游戏开发的基础知识,主要对OpenGL ES的相关内容进行了介绍. 章 名主 要 内 容 第1章 英雄还看今朝-Android简介本章介绍了市场 ...

  9. 转:3D游戏引擎技术剖析

     转自 http://blog.csdn.net/jbjwpzyl3611421/article/details/12681047 3D游戏引擎技术剖析 分类: Unity3D2013-10-13 1 ...

最新文章

  1. iOS 之 IQKeyboardManager 解决使用UITableView 界面上移问题
  2. 怎么用代码制作WordPress的归档页面
  3. python getattr函数_Python中的getattr()函数详解
  4. java程序打包成jar
  5. Docker教程(一) Docker入门教程
  6. Android开发之TextView排版问题
  7. html5 乱码解决方案
  8. 微软删除最大的公开人脸识别数据集,只因员工离职?!
  9. 程序员操作系统推荐_程序员的这些问题,竟然在工作后才发现!
  10. 树莓派4B安装OPENCV遇到ffmpeg库版本太高的问题
  11. realmex7pro能用鸿蒙系统吗,realmex7pro有nfc吗-realmex7pro支持红外遥控功能吗
  12. MTK Android 配置pmic电源
  13. android 代码设置休眠,几行让Android进入休眠的C代码
  14. 通达信指标大全_选股指标:通达信指标大全,筹码起爆最佳的信号抄底位置
  15. 【趣味实践】Stable Diffusion绘制中秋美景
  16. 第三方登录 人人php,php 使用curl模拟登录人人(校内)网的简单实例
  17. 强化学习实战(九) Linux下配置星际争霸Ⅱ环境
  18. 学生用计算机的按键名称,哪个键是空格?详细说明各种计算机按键[图形]的名称和功能...
  19. AcWing 1022 宠物小精灵之收服
  20. jy-12-SPRINGMYBATIS02——云笔记10-刘苍松

热门文章

  1. 2021高级消防设施操作员模拟真题集及答案解析
  2. 2022江苏最新中级消防设施操作员模拟考试试题及答案
  3. bzoj4774 修路
  4. WA4320H fit转fat后,flash无法被正确识别 2020-10-17
  5. C语言论坛系统[2023-01-03]
  6. 【Windows】Windows下通过图形界面安装MySQL数据库
  7. Ubuntu服务器远程桌面分辨率低的解决办法
  8. Django Linux环境安装
  9. 【深度学习】大牛的《深度学习》笔记,Deep Learning速成教程
  10. iPhone测试软件偷开照相机,APP偷偷调用摄像头?你有权知道是谁在做