CN117786867A - 圆角检测方法、系统、程序和存储介质 - Google Patents
圆角检测方法、系统、程序和存储介质 Download PDFInfo
- Publication number
- CN117786867A CN117786867A CN202311288450.0A CN202311288450A CN117786867A CN 117786867 A CN117786867 A CN 117786867A CN 202311288450 A CN202311288450 A CN 202311288450A CN 117786867 A CN117786867 A CN 117786867A
- Authority
- CN
- China
- Prior art keywords
- grid
- curvature
- curve
- cad
- maximum curvature
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000003860 storage Methods 0.000 title claims abstract description 11
- 238000001514 detection method Methods 0.000 title claims description 45
- 238000000034 method Methods 0.000 claims abstract description 229
- 238000007689 inspection Methods 0.000 claims abstract description 11
- 238000009826 distribution Methods 0.000 claims description 48
- 239000013598 vector Substances 0.000 claims description 27
- 238000004364 calculation method Methods 0.000 claims description 26
- 238000013461 design Methods 0.000 claims description 26
- 238000004590 computer program Methods 0.000 claims description 13
- 230000010354 integration Effects 0.000 claims description 9
- 238000000354 decomposition reaction Methods 0.000 claims description 5
- 238000007616 round robin method Methods 0.000 claims 1
- 239000000523 sample Substances 0.000 claims 1
- 238000004519 manufacturing process Methods 0.000 description 99
- 239000000243 solution Substances 0.000 description 44
- 230000008569 process Effects 0.000 description 42
- 239000000463 material Substances 0.000 description 29
- 238000003754 machining Methods 0.000 description 21
- 238000012986 modification Methods 0.000 description 21
- 230000004048 modification Effects 0.000 description 21
- 238000012545 processing Methods 0.000 description 16
- 238000012935 Averaging Methods 0.000 description 12
- 238000003801 milling Methods 0.000 description 12
- 238000012937 correction Methods 0.000 description 10
- 238000006243 chemical reaction Methods 0.000 description 9
- 238000005520 cutting process Methods 0.000 description 9
- 238000004088 simulation Methods 0.000 description 9
- 238000000465 moulding Methods 0.000 description 8
- 238000005457 optimization Methods 0.000 description 7
- 210000003491 skin Anatomy 0.000 description 7
- 238000004458 analytical method Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 230000005484 gravity Effects 0.000 description 6
- 230000009471 action Effects 0.000 description 5
- 238000013459 approach Methods 0.000 description 5
- 238000009499 grossing Methods 0.000 description 5
- 238000012938 design process Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 239000011159 matrix material Substances 0.000 description 4
- 238000005192 partition Methods 0.000 description 4
- 238000000053 physical method Methods 0.000 description 4
- 230000011218 segmentation Effects 0.000 description 4
- 238000007493 shaping process Methods 0.000 description 4
- 238000007619 statistical method Methods 0.000 description 4
- 230000006399 behavior Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 238000001125 extrusion Methods 0.000 description 3
- 208000018910 keratinopathic ichthyosis Diseases 0.000 description 3
- 239000011344 liquid material Substances 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 230000002085 persistent effect Effects 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 238000010146 3D printing Methods 0.000 description 2
- 239000000654 additive Substances 0.000 description 2
- 230000000996 additive effect Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000011960 computer-aided design Methods 0.000 description 2
- 238000013523 data management Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 238000004806 packaging method and process Methods 0.000 description 2
- 238000004080 punching Methods 0.000 description 2
- 230000008521 reorganization Effects 0.000 description 2
- 238000005096 rolling process Methods 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 241000208125 Nicotiana Species 0.000 description 1
- 235000002637 Nicotiana tabacum Nutrition 0.000 description 1
- 125000002015 acyclic group Chemical group 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 230000004931 aggregating effect Effects 0.000 description 1
- 230000003796 beauty Effects 0.000 description 1
- 238000005452 bending Methods 0.000 description 1
- 235000013361 beverage Nutrition 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 230000007123 defense Effects 0.000 description 1
- 230000009699 differential effect Effects 0.000 description 1
- 238000011143 downstream manufacturing Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 210000002615 epidermis Anatomy 0.000 description 1
- 238000013401 experimental design Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 239000000945 filler Substances 0.000 description 1
- 238000011049 filling Methods 0.000 description 1
- 235000013305 food Nutrition 0.000 description 1
- 238000005242 forging Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000007274 generation of a signal involved in cell-cell signaling Effects 0.000 description 1
- 238000001746 injection moulding Methods 0.000 description 1
- 238000003698 laser cutting Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 238000002156 mixing Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000000704 physical effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000007639 printing Methods 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- 230000000153 supplemental effect Effects 0.000 description 1
- 238000010408 sweeping Methods 0.000 description 1
- 238000004514 thermodynamic simulation Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000009827 uniform distribution Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/60—Type of objects
- G06V20/64—Three-dimensional objects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/10—Geometric CAD
- G06F30/17—Mechanical parametric or variational design
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
- G06F30/23—Design optimisation, verification or simulation using finite element methods [FEM] or finite difference methods [FDM]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/50—Depth or shape recovery
- G06T7/543—Depth or shape recovery from line drawings
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2111/00—Details relating to CAD techniques
- G06F2111/04—Constraint-based CAD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2113/00—Details relating to the application field
- G06F2113/10—Additive manufacturing, e.g. 3D printing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2119/00—Details relating to the type or aim of the analysis or the optimisation
- G06F2119/08—Thermal analysis or thermal optimisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2119/00—Details relating to the type or aim of the analysis or the optimisation
- G06F2119/14—Force analysis or force optimisation, e.g. static or dynamic forces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20076—Probabilistic image processing
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Geometry (AREA)
- Evolutionary Computation (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Multimedia (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Processing Or Creating Images (AREA)
Abstract
本公开特别涉及一种计算机实现的圆角检测方法、系统、程序和存储介质,包括提供表示机械部件的一部分的外表面的一段的网格。该方法还包括:确定网格上的多条曲线,每条曲线都遵循网格的最大曲率方向;将每条曲线与相应的圆拟合,从而获得一组圆;以及计算该组圆的一个或多个统计量的值。然后,该方法根据所述一个或多个统计量的值来检测所述网格是否为圆角。
Description
技术领域
本公开涉及计算机程序和系统领域,更具体地,涉及用于检测所提供网格中的圆角的方法、系统、程序和存储介质。
背景技术
市场上提供了许多用于对象的设计、工程和制造的硬件和软件解决方案。CAD是Computer-Aided Design(计算机辅助设计)的缩写,例如,它涉及用于设计对象的软件解决方案。CAE是Computer-Aided Engineering(计算机辅助工程)的缩写,例如,它涉及用于分析和模拟未来产品物理性能的软件解决方案。CAM是Computer-Aided Manufacturing(计算机辅助制造)的缩写,例如,它涉及用于定义产品制造过程和资源的软件解决方案。在这种计算机辅助设计解决方案中,图形用户界面在技术的效率方面发挥着重要作用。这些技术可以嵌入产品生命周期管理(Product Lifecycle Management,PLM)解决方案中。从概念到生命周期结束,跨越扩展企业的概念,PLM指的是一种工程战略,它帮助企业共享产品数据,应用通用流程,并利用企业知识开发产品。达索系统(Dassault Systèmes)提供的PLM解决方案(商标为CATIA、SIMULIA、DELMIA和ENOVIA)提供了一个组织产品工程知识的工程中心、一个管理制造工程知识的制造中心和一个使企业能够集成并连接到工程和制造中心的企业中心。所有这些解决方案提供了连接产品、流程和资源的通用模型,以实现动态的、基于知识的产品创建和决策支持,从而推动优化的产品定义、制造准备、生产和服务。
这些系统和程序中的一些提供了用于处理机械产品的CAD模型的功能。具体地,一些所提供的功能针对CAD特征(例如所提供的网格中的圆角特征)的(自动)检测。
文献,Di Angelo等,《Fillets,rounds,grooves and sharp edges segmentationfrom 3D scanned surfaces》,Computer-Aided Design 110(2019):78-91,公开了一种分割细分几何模型的次特征(secondary feature)的方法。该方法基于对几何微分性质的分析,并提供了在不影响其选择性的情况下降低其对不确定因素的敏感性的具体策略。
在此背景下,仍需要一种改进的解决方案来处理机械产品的CAD模型和检测圆角。
发明内容
因此,提供了一种计算机实现的方法,包括提供表示机械部件的一部分的外表面的一段的网格。该方法还包括确定网格上的多条曲线,每条所述曲线都遵循网格的最大曲率方向,将每条所述曲线与相应的圆拟合,从而获得一组圆,以及计算该组圆的一个或多个统计量的值。该方法还包括根据一个或多个统计量的值来检测所述网格是否为圆角。
该方法可以包括以下中的一个或多个:
确定所述曲线包括计算网格上最大曲率方向的分布,并从属于所述网格的多个种子点开始,跟踪所述最大曲率方向分布的积分曲线;
计算所述最大曲率方向的分布包括计算分布在网格上的曲率张量场,将计算的张量场分解为至少两个子张量,对应于最大曲率的第一子张量和对应于最小曲率的第二子张量,以及基于所述分解的张量场来计算所述最大曲率方向的分布;
所述曲率张量场的计算是根据法向量循环方法、二次拟合方法或圆拟合方法执行的;
所述网格具有多个面和多个边,所述最大曲率方向的分布包括对于每个面的一个或多个相应的最大曲率方向,跟踪每个积分曲线包括:从相应的种子点开始,逐面迭代,即针对每个所述面,基于该面的所述一个或多个相应的最大曲率方向对该面上的平面曲线进行积分,每次所述迭代停止于所述积分到达相应的所述面的边;
每个所述面的所述一个或多个相应的最大曲率方向,由相对于该面是恒定的单个最大曲率方向组成,对每个所述面上的平面曲线进行积分是基于所述恒定的最大曲率方向的,从而该平面曲线是一条直线;
所述一个或多个统计量包括以下中的一个或两个:平均拟合误差,当且仅当所述平均拟合误差低于第一阈值时,所述网格被检测为圆角,以及半径方差,当且仅当所述半径方差低于第二阈值时,所述网格被检测为圆角;
将每条所述曲线与相应的圆拟合包括:确定从最小二乘距离方面而言最接近所述曲线的平面;将所述曲线投影到所述平面上;确定从预定距离最方面而言接近所述投影的曲线的圆;
所述方法还包括:计算该组圆的平均半径;当检测到圆角时,创建由所述平均半径参数化的圆角CAD特征;
所述方法还包括:提供表示机械部件的外表面的第一网格;将所述第一网格分割成一组第二网格;对于一个或多个所述第二网格,确定所述第二网格上的多条曲线,其中,每条所述曲线都遵循所述第二网格的最大曲率方向;将每条所述曲线与相应的圆拟合,以获得一组圆;计算该组圆的一个或多个统计量的值;根据所述一个或多个统计量的值来检测所述第二网格是否为圆角;
当检测到一个所述第二网格是圆角时,识别所述圆角的相邻面输入;和/或
提供所述第一网格包括:从所述机械部件的扫描获得所述第一网格;或从CAD设计中获得所述第一网格。
还提供了一种圆角检测的计算机程序,包括用于执行该方法的指令。
还提供了一种圆角检测的计算机可读存储介质,其上记录有所述计算机程序。
还提供了一种圆角检测系统,该系统包括耦合到存储器的处理器,该存储器上记录有所述计算机程序。
附图说明
参考附图来描述非限制性示例,其中:
图1示出了该方法的示例的流程图;
图2示出了该系统的图形用户界面的示例;
图3示出了该系统的示例;
图4至7B示出了该方法。
具体实施方式
提出了一种计算机实现的方法,包括提供表示机械部件的一部分的外表面的一段的网格,并确定网格上的曲线。每条确定的曲线遵循网格的最大曲率方向。该方法还包括用相应的圆拟合每条曲线,从而获得一组圆。该方法还包括计算该组圆的一个或多个统计量的值,并根据该一个或多个统计量的值来检测该网格是否为圆角。
该方法构成了用于处理由网格表示的机械部件的一部分的CAD模型的改进解决方案。通过在所提供的机械部件的一部分的外表面的一段的网格中检测圆角特征,可以从制造的角度准备机械部件,例如通过使检测到的圆角CAD特征适应制造。这种适应在制造CAD领域非常有价值,如下文所述。在制造CAD中,检测圆角CAD特征允许简单操作和/或可编辑性和/或机械部件在存储器中的有效存储。值得注意的是,该方法检测网格是否为圆角。这种计算机实现的圆角检测可以形成用于这种目的的自动的计算机实现的方法或者是该方法的一部分,并且没有或减少了人工干预(例如,用户或者更具体地说是技术人员)。
三维CAD模型上的圆角(CAD)运算,正如其本身所知,包括对两个伴随面之间的边(即边由两个伴随面共享)进行圆角处理。这样的圆角处理可以通过取沿着所述边滚动的球的包络来获得,所述两个面上都具有切线支撑。因此,圆角运算生成的曲面显示出一个恒定的主曲率值,例如,具有最大(绝对值)曲率。
具体地,该方法通过确定网格上的曲线来执行圆角检测,使得每条曲线遵循网格的最大曲率方向。因此,这样的曲线是基于所述机械部件的所述部分的外表面的主曲率方向。然后,该方法基于这些曲线检测圆角。这种检测优于依赖曲率分布进行圆角检测的现有技术,特别是当所提供的(输入的)网格有噪声时(例如,当网格是在下文描述的三维扫描过程中获得时)。这些优势至少有两方面。
首先,如现有技术中的,曲率计算可能在精度方面受到有噪声网格上的噪声水平的显著影响,因为这样的曲率计算对噪声不鲁棒。依赖曲率值分布进行圆角检测及其参数化的已知方法可以包括对主曲率值的统计分析,以发现该分布是否在特定值附近达到峰值。如果分布达到峰值,这些方法估计该表面构成圆角状表面,其圆角半径与所述特定值成反比。这种方法,特别是在有噪声的网格上,不是很准确。相反,本公开的方法考虑了最大曲率方向,与网格中存在噪声的情况下的曲率值相比,最大曲率方向的计算更鲁棒。这种鲁棒性使得在有噪声网格的情况下更精确地获得圆角的检测(以及检测到的圆角的参数化)。
其次,为了获得网格上的曲率值,已知的现有技术方法依赖于曲率的值(例如,网格上曲率值的分布),而本公开的方法基于根据(最大)曲率定义的方向来检测圆角,而不是曲率各自的值。由于机械部件的外表面的不平滑和/或所提供的表示所述外表面的网格的不平滑,曲率值可能不够精确。事实上,这种不平滑使得曲率计算不那么准确。相反,如在本公开的方法中那样计算曲率方向明显比计算曲率值更鲁棒。在实践中,为了计算每个点处的曲率值,已知的现有技术方法使用平均技术来计算每个点的曲率值。这种平均技术是由一些参数定义的,这些参数设置起来并不简单,并且对获得的曲率值有显著影响,因此获得的曲率受到不清楚如何设置的所述平均参数的高度影响。另一方面,这样的平均参数不影响曲率方向。
这里讨论所提供网格的来源。
所提供的网格可以源于对机械部件的物理测量,例如对机械部件的一部分的外表面的物理测量。这样的测量可以在如下所述的重建过程中执行,例如,真实对象的三维扫描。在这种情况下,提供网格可以包括重建过程,该重建过程从物理测量中获得表示机械部件的一部分的外表面的一段的网格。可选地,在测量结果上应用曲面细分。
利用通过重建过程获得的这种网格具有一些实际挑战。特别地,这样的网格可能包括大量的噪声(例如,由于用于对真实对象执行物理测量的传感器的有限精度)、不完整(例如,由于无法接近真实对象的某些部分来执行物理测量)和/或没有相应的CAD特征树。所述挑战中的每一个都可能阻碍在逆向工程应用中使用所提供的网格,因为它降低了最终制造对象的精度和/或限制了用户在最终确定要制造的机械部件之前进行修改的能力。
可替换地,所提供的网格可以来源于由另一CAD系统设计的CAD或CAE模型,并且对于该模型,CAD特征树是未知的或不可访问的。在这种情况下,提供网格可以包括输入(例如,通过从本地存储器或远程数据库读取)网格(例如,根据现有CAD/CAE模型的转换),并基于输入的网格生成相应的CAD特征树。
这里讨论该方法的应用。
如前所述,检测(提供的)网格是否为圆角在制造CAD领域特别有价值,也就是说,对于辅助设计过程和制造过程的软件解决方案来说,其目的是生产与设计的CAD模型(例如,CAD三维模型)相对应的物理产品。在这种情况下,CAD模型表示制造产品,该制造产品可以在其设计的下游进行制造。因此,该方法可以是机械产品的这种设计和/或制造过程的一部分。该方法可以是设计过程的一部分或可以形成设计过程,其中该方法允许或参与从机械产品的表示获得特征树(例如,该方法是从机械产品的表示获得特征树这个过程的一部分)。获得特征树的这一步骤可以形成CAE到CAD转换的步骤。“设计机械部件”是指任何动作或一系列动作,这些动作或一系列动作至少是机械部件的建模对象的设计过程的一部分。该方法可以形成这样的过程或者可以形成该过程的至少一部分。
因此,该方法通常操纵建模对象,例如网格,并可选地在检测时输出参数化圆角。建模对象是由例如存储在数据库中的数据定义的任何对象。通过扩展,“建模对象”一词指的是数据本身。根据系统的类型,建模对象可以由不同类型的数据定义。该系统实际上可以是CAD系统、CAE系统、CAM系统、PDM系统和/或PLM系统的任何组合。在这些不同的系统中,建模对象由相应的数据定义。可以相应地说CAD对象、PLM对象、PDM对象、CAE对象、CAM对象、CAD数据、PLM数据、PDM数据、CAM数据、CAE数据。然而,这些系统并不排斥另一个系统,因为建模对象可以由与这些系统的任何组合相对应的数据来定义。因此,系统可以是CAD、CAE、PLM和/或CAM系统,根据下面提供的这些系统的定义是易于理解的。
通过CAD解决方案(例如,CAD系统或CAD软件),它还意味着任何系统、软件或硬件,这些系统、软件或硬件至少适于基于建模对象的图形表示和/或其结构化表示(例如,特征树)来设计建模对象,例如CATIA。在这种情况下,定义建模对象的数据包括允许对建模对象进行表示的数据。CAD系统可以例如使用边或线(在某些情况下具有面或表面)来提供CAD建模对象的表示。线、边或曲面可以以各种方式表示,例如,非均匀有理B样条(non-uniformrational B-splines,NURBS)。具体地,CAD文件包含技术参数,可以根据技术参数生成几何图形,这反过来又允许生成表示。建模对象的技术参数可以存储在单个CAD文件中,也可以存储在多个CAD文件中。在CAD系统中,表示建模对象的文件的一般大小在每个部件1兆字节的范围内。建模对象通常可能是由数千个部件组成的组件。
在CAD的环境中,建模对象通常可以是三维建模对象,例如,表示一个产品,例如部件或多个部件的组件,或者可能是产品的组件。二维或三维建模对象可以是制造产品,即,要制造的产品。所谓“三维建模对象”,是指通过允许其三维表示的数据来建模的任何对象。三维表示允许从所有角度查看部件。例如,当三维表示时,三维建模对象可以被操作并围绕其任何轴,或者围绕显示该表示的屏幕中的任何轴旋转。这明显排除了不是三维建模的二维图标。三维表示的显示有助于设计(即,提高设计者在统计上完成任务的速度)。这加快了行业的制造过程,因为产品的设计是制造过程的一部分。
三维建模对象可以表示在利用例如CAD/CAE软件解决方案或CAD/CAE系统完成其虚拟设计之后将在现实世界中制造的产品的几何形状,例如(机械)部件或多个部件的组件(或者等效地,多个部件的组件,因为从该方法的角度来看,部件的组件可以被视为部件本身,或者该方法可以独立地应用于组件的每个部件),或者更一般地,任何刚体组件(例如,移动机构)。CAD/CAE软件解决方案允许在各种和无限定的工业领域设计产品,包括:航空航天、建筑、建筑、消费品、高科技设备、工业设备、运输、海洋和/或海上石油/天然气生产或运输。通过该方法设计的三维建模对象因此可以表示工业产品,其可以是任何机械部件,例如陆地交通工具(包括例如汽车和轻型卡车设备、赛车、摩托车、卡车和电动机设备、卡车和公共汽车、火车)的部件,航空交通工具(包括机身设备、航空航天设备、推进设备、国防产品、航空企业设备、太空设备)的部件、航海交通工具(包括例如海军设备、商船、近海设备、游艇和工作船、海洋设备)的部件,一般机械部件(包括例如工业制造机械、重型移动机械或设备、安装设备、工业设备产品、金属制品、轮胎制造产品),机电或电子部件(包括例如消费电子产品、安全和/或控制和/或仪器产品、计算和通信设备、半导体、医疗设备和设备)、消费品(包括例如家具、家居和花园产品、休闲用品、时尚产品、耐用品零售商的产品、非耐用品零售商的产品),包装(包括食品、饮料和烟草、美容和个人护理、家用产品包装)。
CAD系统可以是基于历史记录的。在这种情况下,建模对象由包括几何特征的历史记录的数据进一步定义。建模对象实际上可以由物理人(即设计者/用户)使用标准建模特征(例如,挤出、旋转、切割和/或倒角)和/或标准表面特征(例如扫掠、混合、放样、填充、变形和/或平滑)来设计。许多支持这种建模功能的CAD系统都是基于历史记录的系统。这意味着设计特征的创建历史记录通常通过非循环数据流来保存,该非循环数据流通过输入链接和输出链接将所述几何特征链接在一起。自80年代初以来,基于历史记录的建模范式就广为人知。建模对象由两种持久数据表示来描述:历史记录和边界表示(boundaryrepresentation,B-rep)。B-rep是历史记录中定义的计算结果。当表示建模对象时,显示在计算机屏幕上的部件的形状是B-rep(例如,B-rep的细分)。部件的历史记录就是设计意图。基本上,历史记录收集了建模对象所经历的操作的信息。B-rep可以与历史记录一起保存,以便更容易地显示复杂的部件。历史记录可以与B-rep一起保存,以便根据设计意图对部件进行设计更改。
PLM解决方案是指适用于管理建模对象的任何解决方案,该建模对象表示要制造的物理产品。因此,在PLM解决方案中,建模对象由适合于制造物理对象的数据来定义。这些通常可以是尺寸值和/或公差值。对于一个对象的正确制造来说,拥有这样的值确实更好。例如,PLM解决方案可以管理制造公差,例如,在关于CAD模型中提供的挤出特征的机加工或成型中。
CAE解决方案是指适用于分析建模对象的物理行为的任何解决方案和硬件的软件。众所周知且广泛使用的CAE技术是有限元模型(Finite Element Model,FEM),其在下文中等同地称为CAE模型。FEM通常涉及将建模对象划分为多个元素,即有限元网格,可以通过方程来计算和模拟这些物理行为。此类CAE解决方案由达索系统以商标提供。另一种不断发展的CAE技术涉及复杂系统的建模和分析,该系统由来自不同物理领域的多个组件组成,而无需CAD几何数据。CAE解决方案允许对要制造的产品进行模拟,从而进行优化、改进和验证。此类CAE解决方案由达索系统以/>商标提供。CAE可用于确保通过新的CAD模型实现各种结构要求(例如但不限于质量(mass)、刚度、强度、耐久性)。其中一些要求可以称为关键绩效指标(Key Performance Indicato,KPI)。对于许多工业产品(例如汽车、飞机、消费包装商品、高科技),这些KPI是冲突的,例如,较低的质量(mass)通常会导致较低的刚度。因此,通常应用优化方法来寻找KPI之间的最佳折衷。
CAM解决方案是指适用于管理产品制造数据的任何解决方案和硬件的软件。制造数据通常包括与要制造的产品、制造过程和所需资源相关的数据。CAM解决方案用于规划和优化产品的整个制造过程。例如,它可以向CAM用户提供关于制造过程的可行性、持续时间或资源数量的信息,例如可以在制造过程的特定步骤中使用的特定机器人;从而允许对管理或所需投资做出决定。CAM是继CAD过程和潜在的CAE过程之后的后续过程。例如,CAM解决方案可以提供关于加工参数的信息,或者与CAD模型中提供的挤出特征一致的成型参数的信息。此类CAM解决方案由达索系统以CATIA、Solidworks或商标提供。
因此,CAD和CAM解决方案紧密相关。事实上,CAD解决方案专注于产品或部件的设计,而CAM解决方案则专注于如何制造。设计CAD模型是迈向计算机辅助制造的第一步。事实上,CAD解决方案提供了关键功能,如基于特征的建模和边界表示(B-Rep),以降低在使用CAM解决方案处理的制造过程中出现错误和精度损失的风险。实际上,CAD模型旨在制造。因此,它是一个虚拟双胞胎,也被称为数字双胞胎,有两个目标:
-检查待制造对象在特定环境中的正确行为;和
-确保待制造对象的可制造性。
PDM代表产品数据管理(Product Data Management)。PDM解决方案是指适用于管理与特定产品相关的所有类型数据的任何解决方案,硬件的软件。PDM解决方案可供产品生命周期中的所有参与者使用:主要是工程师,但也包括项目经理、财务人员、销售人员和买家。PDM解决方案通常基于面向产品的数据库。它允许参与者共享其产品的一致数据,从而防止参与者使用不同的数据。此类PDM解决方案由达索系统以商标提供。
作为该方法的输入/提供给该方法的建模对象是网格,因此是制造产品/机械产品/机械部件的三维离散几何表示。离散几何表示是包括离散数据集的数据结构。每条数据可以指定产品/机械部件的一个元素,并被称为离散元素。离散几何表示可以是三维的。在示例中,离散几何表示可以包括高于100、1000或10000条这样的数据。网格本身是已知的,具有面和边,并根据所述面和所述边之间的连接性来定义。
在三维网格的情况下,三维离散几何表示可以是产品/机械部件的实体/体积三维离散几何表达,例如实体三维有限元模型(FEM)或三维体积网格(例如,三维四面体或三维多面体网格)。在这种情况下,每条数据可以表示位于三维空间中的相应几何图元,使得这些数据形成机械部件/产品的实体表示(即“实体三维离散几何表示”)。每个几何图元可以表示三维对象的相应位置(即,材料点)(换句话说,由三维对象表示的实体的材料组成的相应部分)。几何图元的集合(即并集或并置)总共表示三维对象整体为实体/体积。可替换地,三维离散几何表示可以是表示产品/机械部件的表皮的表皮三维离散几何表达,例如三维表面网格(例如,三角形表面网格)或细分曲面。在这种情况下,每条数据可以表示位于三维空间中的相应几何图元,使得这些数据形成机械产品表皮的表示(即“表皮三维离散几何表示”)。在这种情况下,每个几何图元表示三维对象的外表面上的相应位置(即,材料点)(换句话说,由对象表示的实体的材料占据的体积的外表面的相应部分)。几何图元的集合(即并集或并置)总共表示对象外表面的至少一部分。
该方法由网格或等效地如上所述的离散几何表示提供,检测所提供的网格是否为圆角。在该方法确定检测到圆角的情况下,该方法允许(或可以进一步)基于所提供的网格将检测到的圆角添加到已经存在的CAD对象。可替换的,该方法可以从检测到的圆角实例化新的CAD对象。
离散几何表示可以是,或者可以进一步转换为CAE模型,也被称为“有限元模型(FEM)”。CAE模型可以源于表示机械部件/产品的CAD模型,例如,该方法包括在初始阶段从CAD模型获得CAE模型,例如使用网格(例如,三角形划分)过程。相反地,CAE模型可以被转换为CAD模型。该方法可以设计/输出CAE模型,该CAE模型然后可以被转换为对应的CAD模型。该方法可以包括,或者可以包含在更广泛的过程中,该过程包括或可以形成,通过使用将CAE模型转换成CAD模型的任何已知(例如,自动的)CAE到CAD转换过程,将由该方法设计/输出的CAE模型(例如,自动地)转换为CAD模型的解决方案。
可替换的,由该方法输出的建模对象可以是CAD模型,例如包括或由特征树和/或B-rep组成。这种模型可以源于CAE模型,并且可以是CAE到CAD的转换过程的结果,该方法例如可以在初始阶段包括该转换过程。
CAD模型可以是基于特征的(例如,它可以包括特征树,以及可选地通过执行特征树获得的对应B-rep)。基于特征的三维模型允许(例如,在下文所述的制造文件或CAM文件的确定期间)检测和自动解决CAD模型中的几何误差,例如将影响制造过程的碰撞。碰撞是三维模型的两个部分之间的相互渗透,例如由于它们的相对运动。此外,这种碰撞有时只能通过基于CAD特征模型的有限元分析来检测。因此,通过迭代地修改特征的参数并进行有限元分析,可以使用CAD解决方案或由CAD解决方案自动执行冲突的解决。
作为另一个例子,基于特征的三维模型允许(例如,在下文所述的制造文件或CAM文件的确定期间)通过计算机数控(computer numerical control,CNC)自动创建机器的刀具路径。通过CNC,每个要制造的对象都会得到一个自定义的计算机程序,存储在机器控制单元中并由机器控制单元执行,机器控制单元是连接在机器上的微型计算机。该程序包含机床将遵循的指令和参数。铣刀、车床、刨槽机、研磨机和激光机是常见机床的例子,它们的操作可以通过CNC实现自动化。
CAD模型的一个关键特征是,它可以通过链接少量高级参数化设计操作(包括但不限于草图、拉伸、倒角)来精确而明确地进行设计,并通过修改其高级参数进行编辑。这是与多面体表示(例如三角形表面网格)的关键区别,多面体表示可以表示任何三维形状,但不提供工业设计环境中所需的修改或参数化能力。
CAD模型是(例如机械)部件/产品的参数化模型,它在内存占用方面比CAE模型等其他模型更轻量。事实上,CAD模型允许存储特征和参数的列表,而不是存储诸如有限元之类的离散几何元素的集合,这在存储和内存占用方面更轻量。因此,与例如CAE模型相比,对CAD模型的处理降低了对底层系统的内存需求,此外还促进了模型的可编辑性。这相当于,除了将CAE模型转换为更容易编辑的CAD模型之外,CAE到CAD的转换过程实际上还将CAE模型压缩为在存储器需求(例如,占用空间)方面更轻量的CAD模型。
从CAD文件生成自定义计算机程序可以是自动化的。因此,这种生成可能不容易出错,并且可以确保将CAD模型完美地复制到制造的产品中。CNC被认为比手动加工提供了更高的精度、复杂性和可重复性。其他好处包括更高的精度、速度和灵活性,以及轮廓加工等功能,允许铣削轮廓形状,包括三维设计中产生的形状。
B-rep是机械部件的三维表示。具体而言,B-rep是描述表示机械部件的三维建模对象的持久数据表示。B-rep可以是在表示机械部件的三维建模对象的设计阶段期间执行的计算和/或一系列操作的结果。当表示建模对象时,显示在计算机屏幕上的机械部件的形状是B-rep(例如,B-rep的细分)。在示例中,B-rep表示模型对象的一部分。
B-Rep包括拓扑图元和几何图元。拓扑图元包括:面、边和顶点。几何图元是三维对象:曲面、平面、曲线、直线、点。根据定义,面是曲面的形成边界的部分,称为支撑曲面。边是曲线的形成边界的部分,称为支撑曲线。顶点是三维空间中的一个点。它们之间的关系如下。曲线的形成边界的部分由位于曲线上的两个点(顶点)限定。曲面的形成边界的部分由其边界限定,该边界是位于曲面上的一组边。面的边的边界通过共享顶点连接。面通过共享边连接。如果两个面共享一条边,则它们是相邻的。类似地,如果两条边共享一个顶点,则它们是相邻的。在CAD系统中,B-Rep在适当的数据结构中收集“形成边界”关系、拓扑图元和支撑几何图形之间的关系以及支撑几何图形的数学描述。B-Rep的内部边是由两个面共享的边。根据定义,边界边不是共享的,它只界定一个面。根据定义,边界面由至少一条边界边限定边界。如果B-Rep的所有边都是内边,则称其为闭合的。如果B-Rep包括至少一个边界边,则称其为开放的。闭合B-Rep用于对厚三维体积进行建模,因为它定义了空间(实际上)包围材料的内部。开放B-Rep用于对三维表皮进行建模,该表皮表示厚度足够小到可以忽略的三维对象。
与CAD建模中使用的任何其他表示类型相比,B-Rep的一个关键优势是它能够准确地表示任意形状。使用的所有其他表示,如点云、距离场和网格,都会对要通过离散化表示的形状执行近似。另一方面,B-Rep包含表示精确设计的曲面方程,因此构成了为后续制造的真正“主模型”,无论是为CNC生成刀具路径,还是离散化为给定三维打印机技术的正确样本密度。换句话说,通过使用B-Rep,三维模型可以是制造对象的精确表示。B-Rep对于模拟三维模型的行为也是有利的。在应力、热、电磁或其他分析方面,它支持模拟网格的局部细化以捕捉物理现象,而在运动学方面,它则支持曲面之间的真实接触建模。最后,B-Rep允许占用较小的内存和/或文件空间。首先,因为表示包含仅基于参数的曲面。在网格等其他表示中,等效曲面包含多达数千个三角形。其次,因为B-Rep不包含任何基于历史记录的信息。
该方法可以包括在生产过程中,该生产过程可以包括在执行该方法之后,生产与该方法设计/处理/输出的建模对象相对应的物理产品。生产过程可以包括以下步骤:
(例如,自动地)应用该方法,从而获得由该方法输出的CAD模型(其可以包括圆角CAD特征);
可选地,使用(例如,自动的)CAE到CAD的转换过程,将所获得的CAE模型转换成如前所述的CAD模型;
使用所获得的CAD模型来制造部件/产品。
将CAE模型转换为CAD模型可包括执行以下(例如,全自动)转换过程,该转换过程将CAE作为输入并将其转换为包括表示产品/部件的特征树的CAD模型。转换过程包括以下步骤(其中存在已知的全自动算法来实现这些步骤中的每一个):
分割CAE模型或其外表面/表皮,从而获得将CAE模型分割成多个段,例如每个段形成模型的表面部分;
通过对段进行处理来检测CAD特征的几何形状,例如,包括检测每个都形成给定CAD特征几何形状(例如圆角、挤压、旋转或任何规范基元)的段或段的组,以及可选地其几何特征(例如圆角半径和/或中心、挤压轴、旋转轴或轮廓);
参数化检测到的几何形状,例如,基于几何形状和/或其几何特征;
基于CAE模型的相应部分的几何形状,将每个CAD运算拟合到所述相应部分,例如通过聚集被检测为相同特征几何形状的一部分的相邻段;
将所述几何图形和相应的CAD运算编码到特征树中;
可选地,执行所述特征树,从而获得所述产品的B-rep表示;
输出所述特征树,和可选地输出B-rep,所述特征树和可选的B-rep形成所述CAD模型。
使用CAD模型进行制造指定涉及/参与由CAD模型表示的产品/部件的制造的任何真实世界的动作或一系列动作。使用CAD模型进行制造可例如包括以下步骤:
编辑所获得的CAD模型,例如圆角的参数;
基于所述CAD模型或对应的CAE模型(例如,在CAE到CAD转换过程之后,CAD模型源自的CAE模型)执行仿真,例如用于验证机械、使用和/或制造特性和/或约束的仿真(例如,结构仿真、热力学仿真、空气动力学仿真);
基于模拟的结果编辑CAD模型,例如,修改圆角的参数,或将圆角CAD运算添加到CAD模型以获得具有更好的机械的使用和/或制造特性和/或约束的(例如,表面上的空气动力学阻力较小,根据CAD模型模制的产品更易脱模)的CAD模型;
(即,根据所使用的制造工艺,机械产品的生产可以包括也可以不包括该步骤)(例如,自动地)基于(例如,编辑的)CAD模型来确定制造文件/CAM文件,用于制造产品的生产/制造;
将所述CAD文件和/或所述制造文件/CAM文件发送到工厂;和/或
基于所确定的制造文件/CAM文件或基于CAD模型(例如,自动地)生产/制造最初由该方法输出的模型表示的机械产品。这可以包括将制造文件/CAM文件和/或CAD文件馈送(例如,自动地)到执行制造过程的机器。
生产/制造的最后一步可以称为制造步骤或生产步骤。该步骤基于CAD模型和/或CAM文件来制造/制造部件/产品,例如,基于CAD模型或CAD文件被馈送到一个或多个制造机器或控制机器的计算机系统。制造步骤可以包括执行任何已知的制造工艺或一系列制造工艺,例如一个或多个增材制造步骤、一个或多个切割步骤(例如激光切割或等离子体切割步骤)、一个或者多个冲压步骤、一个或多个锻造一个或多个弯曲步骤、一个或多个深拉步骤、一个或多个模制步骤、一个或多个机加工步骤(例如铣削步骤)和/或一个或多个冲孔步骤。由于设计方法改进了表示部件/产品的模型(CAE或CAD)的设计,因此制造及其生产率也得到了改进。
编辑CAD模型可以包括由用户(即,设计者)例如通过使用CAD解决方案来执行一个或多个CAD模型。CAD模型的修改可以包括CAD模型的每一个几何结构和/或参数的一个或多个修改。修改可以包括对模型的特征树执行的任何修改或一系列修改(例如,特征参数和/或规格的修改)和/或对CAD模型的显示表示(例如,B-rep)执行的修改。修改是指保持部件/产品技术功能的修改,即用户进行的修改可能会影响模型的几何形状和/或参数,但目的只是使CAD模型在技术上更符合部件/产品的下游使用和/或制造。这种修改可以包括任何修改或一系列修改,以使得CAD模型在技术上符合下游制造过程中使用的机器的规格。附加地或可替换地,这样的修改可以包括任何修改或一系列修改,以使得CAD模型在技术上符合产品/部件被制造出来后的进一步使用,这样的修改或一系列修改是例如基于模拟的结果。
CAM文件可以包括从CAD模型获得的制造推进模型。制造推进可以包括制造机械产品所需的所有数据,以使其具有与CAD模型所记录的材料的几何形状和/或分布相对应的材料的几何形状和/或分布,可能达到制造公差误差。确定生产文件可以包括应用任何CAM(计算机辅助制造)或CAD到CAM解决方案用于(例如,自动地)从CAD模型确定生产文件(例如,任何自动的CAD到CAM转换算法)。这样的CAM或CAD到CAM解决方案可以包括以下软件解决方案中的一个或多个,其使得能够基于要制造的产品的CAD模型自动生成用于给定制造过程的制造指令和工具路径:
Fusion 360,
FreeCAD,
CATIA,
SOLIDWORKS,
达索系统的NC Shop Floor Programmer,参见https://my.3dexperience.3ds.com/welcome/fr/compass-world/rootroles/nc-shop-floor-programmer,
达索系统的NC Mill-Turn Machine Programmer,参见https://my.3dexperience.3ds.com/welcome/fr/compass-world/rootroles/nc-mill-turn-machine-programmer,和/或
达索系统的Powder Bed Machine Programmer,参见https://cloud.academy.3ds.com/explorer/r2019x/role_apw.html.
产品/部件可以是可增材制造的部件,即,将通过增材制造(即,三维打印)制造的部件。在这种情况下,生产过程不包括确定CAM文件的步骤,而是通过直接(例如,自动地)向三维打印机提供CAD模型,直接进行到生产/制造步骤。三维打印机被配置为,在被馈送代表机械产品的CAD模型时(例如,在三维打印机操作员启动三维打印时),根据CAD模型直接且自动地三维打印机械产品。换言之,三维打印机接收被(例如,自动地)馈送到三维打印机的CAD模型,读取(例如,自动地)CAD模型,并且通过将材料(例如,逐层地)添加在一起来打印(例如,自动地)部件,以再现由CAD模型记录的材料的几何形状和/或分布。三维打印机添加材料,从而在现实中精确地再现CAD模型记录的材料的几何形状和/或分布,直至三维打印机的分辨率,并且可具有或不具有公差误差和/或制造校正。制造可以包括,例如,由用户(例如,三维打印机的操作员)或自动(由三维打印机或控制它的计算机系统),(例如通过修改CAD文件以匹配三维打印机的规格)确定这样的制造校正和/或公差误差。附加地或可替换地,生产过程可以包括(例如通过三维打印机或控制它的计算机系统自动地)根据CAD模型确定打印方向,例如以最小化悬垂体积(如欧洲专利3327593中所述,其通过引用并入本文),层切片(即,确定每个层的厚度),以及三维打印头的逐层路径/轨迹和其他特性(例如,对于激光束,例如路径、速度、强度/温度和其他参数)。
可替换地,产品/部件可以是机械加工部件(即,通过机械加工制造的部件),例如铣削的部件(即通过铣削制造的部件)。在这种情况下,生产过程可以包括确定CAM文件的步骤。该步骤可以通过任何合适的CAM解决方案自动执行,以从机械加工部件的CAD模型自动获得CAM文件。CAM文件的确定可以包括(例如,自动地)检查CAD模型是否具有可能影响生产过程的任何几何特性(例如,误差或伪影),以及(例如,自动化地)校正这种特性。例如,如果CAD模型仍然包括锋利的边缘(因为加工或铣削工具不能产生锋利的边缘),则可以不执行基于CAD模型的加工或铣削,并且在这种情况下,CAM文件的确定可以包括(例如,自动地)对这样的锋利边缘进行倒圆(round)或倒圆角(fillet)(例如,具有相应的圆形或倒圆角半径,例如基本上等于(最大为公差误差)加工工具的切削头的半径),以使可以基于CAD模型进行加工或铣削。更一般地,CAM文件的确定可以自动包括在CAD模型内对与加工或铣削工具的半径不兼容的几何形状进行倒圆或倒圆角,以实现加工/铣削。这种检查和可能的校正(例如,几何形状的倒圆或倒圆角)可以如前所述自动执行,但也可以由用户(例如,机械加工工程师)手动在CAD和/或CAM解决方案上执行校正,例如约束用户执行校正的解决方案,该校正使得CAD模型符合在加工过程中使用的工具的规格。
除了检查之外,CAM文件的确定可以包括(例如,自动地)确定机加工或铣削路径,即,机加工工具加工产品所采用的路径。该路径可以包括一组坐标和/或参数化轨迹,加工工具将遵循该组坐标和/或参数化轨迹进行加工,并且确定路径可以包括(例如,自动地)基于CAD模型计算这些坐标和/或者轨迹。该计算可以基于通过加工工具的CAD模型表示对CAD模型的Minkowski减法的边界的计算,例如在达索系统于2021年12月13日提交的欧洲专利申请EP21306754.9中所讨论的,该申请通过引用并入本文。应当理解,该路径可以是单个路径,例如,工具持续遵循该路径而不中断与待切割材料的接触。可替换地,该路径可以是由工具按特定顺序遵循的序列子路径的串联,例如,工具持续遵循每个子路径而不中断与待切割材料的接触。可选地,CAM文件的确定然后可以包括(例如,自动地)设置机器参数,包括切割速度、切割/穿孔高度和/或模具打开行程,例如基于所确定的路径和机器的规格。可选地,CAM文件的确定然后可以包括(例如,自动地)配置嵌套,其中CAM解决方案决定部件的最佳方向以最大化加工效率。
在这种加工或铣削部件的情况下,CAM文件的确定因此产生并输出CAM文件,该CAM文件包括加工路径,以及可选地设置的机器参数和/或配置的嵌套的规格。该输出的CAM文件然后可以(例如直接地和自动地)被馈送到加工工具,和/或加工工具然后可以通过读取文件(例如直接的和自动的)被编程,由此生产过程包括生产/制造步骤,其中机器根据生产文件对产品进行加工,例如通过直接自动执行生产文件。加工过程包括加工工具切割真实世界的材料块,以再现CAD模型记录的材料的几何形状和/或分布,例如,满足公差误差(例如,用于铣削的几十微米)。
可替换地,产品/部件可以是模制部件,即通过模制(例如,注塑)制造的部件。在这种情况下,生产过程可以包括确定CAM文件的步骤。该步骤可以通过任何合适的CAM解决方案自动执行,以从模制部件的CAD模型自动获得CAM文件。CAM文件的确定可以包括(例如,自动地)基于CAD模型执行一系列成型检查,以检查由CAD模型记录的材料的几何形状和/或分布是否适于成型,以及(例如,如果CAD模型不适于成型,则自动地)执行适当的校正。执行检查和适当的校正(如果有的话)可以自动执行,或者可替换地,由用户(例如,成型工程师)执行,例如使用CAD和/或CAM解决方案,该解决方案允许用户对CAD模型执行适当的校正,但约束他/她的校正,以使CAD模型符合(一个或多个)成型工具的规范。检查可以包括验证由CAD模型表示的虚拟产品与模具的尺寸一致和/或验证CAD模型包括脱模产品所需的所有拔模角,如从成型本身已知的。CAM文件的确定然后可以进一步包括基于CAD模型确定用于成型的液体材料的量,和/或使液体材料在模具内硬化/凝固的时间,并且输出包括这些参数的CAM文件。生产过程然后包括(例如自动地)基于输出的文件执行成型,其中模具在确定的硬化时间内将液体材料成形为与CAD模型记录的材料的几何形状和/或分布相对应的形状,例如满足公差误差(例如,为了脱模,满足拔模角的引入或满足拔模角的修改)。
产品/部件也可以是冲压的部件,也可能被称为“冲压部件”,即在冲压过程中制造的部件。在这种情况下,生产过程可以包括(例如,自动地)基于CAD模型确定CAM文件。CAD模型表示冲压部件,例如,如果部件要包括一些凸缘,则可能具有一个或多个凸缘,并且在后一种情况下可能具有要去除的额外材料,以便形成部件的一个或多个凸缘的展开状态,这本身是从冲压中已知的。因此,CAD模型包括表示没有凸缘的部件的部分(在某些情况下是整个部件);以及可能包括表示凸缘(如果有)的外部额外补片部分,可能包括额外材料(如果有)。该额外的补片部分可以在某一长度上呈现g2连续,然后在某个长度上呈现g1连续。
在这种冲压情况下,CAM文件的确定可以包括(例如,自动地)基于由CAD模型记录的虚拟产品的材料的几何形状和/或分布来确定冲压机的参数,例如冲压模具或冲头的尺寸和/或冲压力。如果CAD模型还包括要去除的额外材料的表示,以便形成部件的一个或多个凸缘的展开状态,则要去除的多余材料可以例如通过机械加工来切割,并且确定CAM文件还可以包括确定相应的机械加工CAM文件,例如,如前所述。如果存在一个或多个凸缘,则确定CAM文件可以包括确定g2连续的部分和g1连续的部分的几何规格,该几何规格允许在冲压本身并且去除额外材料之后,在折叠过程中朝向冲压部件的内表面并沿着g2连续长度折叠凸缘。由此,确定的CAM文件因此可以包括:冲压工具的参数,可选地用于折叠凸缘(如果有)的技术参数,以及可选地用于去除额外材料(如果有)的机加工生产文件。
冲压生产过程然后可以例如直接和自动地输出CAM文件,并基于该文件(例如自动地)执行冲压过程。冲压过程可以包括冲压(例如,冲孔)一部分材料以形成由CAD文件表示的产品,该产品可能具有展开的凸缘和额外的材料(如果有)。在适当的情况下,冲压过程可以包括基于加工生产文件切割额外材料,并基于折叠凸缘的技术参数对凸缘进行折叠,从而将凸缘折叠在其g2连续长度上,并使部件的外部边界光滑。在后一种情况下,制造出来的部件的形状与CAD模型所表示的虚拟对应物的不同之处在于去除了额外材料并折叠了凸缘,而CAD模型表示具有额外材料且凸缘处于展开状态的部件。
现在讨论该方法提供的圆角检测。
如上所述,并且参考图1,该方法包括:提供表示机械部件的一部分的外表面的一段的网格。通过“提供”输入(例如网格),意味着通过该方法获得所述输入。这种获取可以意味着或包括下载所述输入(例如,从在线数据库或在线云),或者从存储器(例如,持久存储器)检索所述输入。所提供的网格可以是如上所述的(表皮/体积)三维网格。
然后,在步骤120中,该方法确定网格上的曲线,使得每个(曲线)遵循网格的最大曲率方向。如微分几何领域所知,表面(或等效地,如果所述表面由网格表示,则为网格)的“最大曲率方向”是指由所述表面上对应于曲率最大值的每个点处的主方向集合定义的方向。换言之,在步骤120确定的每条曲线是位于网格上(更准确地说,位于由网格表示的表面上)的曲线,并且对于曲线的每个点,该点处的曲率值是最大的,即,高于或等于位于网格上并通过所述点的任何其他曲线在同一点处的曲率值。
步骤120的曲线的这种确定可以包括根据步骤110计算网格上的最大曲率方向的分布。网格上最大曲率方向的这种分布可以由网格的每个面里(即内部)的一个或多个点处的最大曲率方向(的值)组成。附加地或可替换地,所述分布可以由网格的每个面的一个或多个边上(即,在每个实例的边界的至少一部分上)的最大曲率方向(的值)组成。所述曲线的确定可以进一步包括从属于网格的多个种子点开始,并跟踪最大曲率方向的(计算的)分布的积分曲线。正如“跟踪最大曲率方向的分布的积分曲线”本身所知,这意味着求解一个微分方程组,其中由最大曲率方向定义的向量场是所述微分方程组的斜率场,使得积分曲线在每个点与斜率场相切。
在示例中,该方法可以在确定曲线之前计算整个提供的网格上的最大曲率方向的分布。可替换地,该方法可以根据积分曲线的跟踪来动态地计算分布。在这种情况下,该方法计算分布的所需部分,例如,在网格上的点的附近(即,邻域),以确定与分布的所述所需部分相对应的区域中的曲线(的一部分)。
示例中,计算最大曲率方向的分布包括计算分布在网格上的曲率张量场。众所周知,“曲率张量”是空间(例如)中或流形(如下所述的TpM)的切线空间上的对称双线性形式,而“曲面上的曲率张量场”表示所述曲面上每个点的曲率张量。
众所周知,像网格一样的非光滑表面的曲率张量场的直接计算(即,计算所述表面的所有点的曲率张量)是不明确的;从而该方法可以使用一些近似来计算分布在网格上的曲率张量场。在这种近似的示例中,曲率张量场的计算可以将曲率张量分配给网格的每个面和/或每个顶点和/或每个面的重心,并且该方法然后可以通过在整个网格上(即,对于网格的表面的每个点)插值这种分配的曲率张量来计算(即,近似)曲率张量场。这种插值在网格的每个面上可以是线性的(例如,连续线性的)或恒定的。该方法可以通过计算在网格上的所述面和/或顶点和/或每个面的重心的邻域中的一个或多个曲率张量的平均值,将所述曲率分配给每个面的和/或每个顶点。所述顶点可以是所述邻域的重心。在下文中,关于计算曲率张量测度,进一步描述这样的示例。可替换的,该方法可以通过直接计算(例如,近似)所述多个选择点上的曲率张量,将所述曲率分配给多个选择的点(例如,网格的一个或多个顶点和/或一个或多个面的重心)。
在示例中,曲率张量场的计算是根据法向量循环方法(normal cyclesapproach)、二次拟合方法(quadric fitting approach)或圆拟合方法(circle fittingapproach)执行的。根据法向量循环方法计算曲率张量场是如上所述通过平均进行分配的示例。根据法向量循环方法计算曲率张量场可以如Cohen Steiner和Morvan的文章中所述,《Restricted Delaunay triangulations and normal cycle》,《Proceedings of thenineteenth annual symposium on Computational geometry》,第312-321页,2003,和/或Lachaud、Romon、Thibert和Coeurjolly,《Interpolated corrected curvature measuresfor polygonal surfaces》,《Computer Graphics Forum》,第39卷,第5期,第41-54页,2020,其通过引用并入本文。根据二次拟合方法计算曲率张量场可以如Petitjean,Sylvain的文章中所述,《A survey of methods for recovering quadrics in trianglemeshes》,《ACM Computing Surveys(CSUR)34》,第2期,2002,211-262,其通过引用结合于此。根据圆拟合方法计算曲率张量场可以如Taubin,Gabriel的文章中所述,《Estimatingthe tensor of curvature of a surface from a polyhedral approximation》,《Proceedings of IEEE International Conference on Computer Vision》,第902-907页,IEEE,1995,其通过引用并入本文。根据二次拟合方法或圆拟合方法计算曲率张量场是如上所述通过直接计算进行赋值的例子。
如上所述,计算最大曲率方向的分布包括基于曲率张量测度来计算分布在网格上的曲率张量场。所谓“曲率张量测度”,是指在该部分(或其部分/区域)外表面的每个区域上给出曲率张量的测度。换句话说,曲率张量测度定义了表面上的测度,该测度又为所述表面的每个部分/区域/分区提供了多个曲率张量。曲面的部分/区域/分区被定义为曲面的Borel σ代数的元素(即,由所有开子集生成的σ代数)
所述外表面可以是一般的(即,光滑或连续但不光滑)表面。通过“基于曲率张量测度”计算曲率张量场,意味着该方法通过计算网格上的曲率张量测度来计算所述曲率张量场。如上所述,非光滑表面的曲率张量场的直接计算没有明确限定,因此该方法通过使用曲率张量测度来计算不一定光滑的一般表面(如网格)上的曲率张量场,从而构成了一种改进的解决方案。除了对非光滑表面的这种一般化之外,基于曲率张量测度计算曲率张量场提供了计算的曲率张量场,这更可靠,尤其是在场的方向上。
在示例中,曲率张量测度的计算可以将曲率张量分配给网格的每个面和/或每个顶点和/或每个面的重心,如上所述。具体地,该方法可以通过首先设置表面的区域Sp,其形式为/>其中r>0(对于同质网格上的r值在面平均大小的3到5倍之间),然后设置Kp=K(Sp),将近似张量Kp与来自曲率张量测度/>的表面的点p相关联。这B(p,r)是圆心为p和半径为r的球。
该方法可以根据该领域中的任何已知方法来计算曲率张量测度。在示例中,该方法可以通过法向量循环方法计算曲率张量测度,如上文引用的文章中所述:Cohen Steiner和Morvan,《Restricted Delaunay triangulations and normal cycle》,《Proceedingsof the nineteenth annual symposium on Computational geometry》,第312-321页,2003,和/或Lachaud、Romon、Thibert和Coeurjolly,《Interpolated corrected curvaturemeasures for polygonal surfaces》,《Computer Graphics Forum》,第39卷,第5期,第41-54页,2020,其通过引用并入本文。
在示例中,计算最大曲率方向的分布可以进一步包括将计算的张量场分解为至少两个子张量场,该至少两个子张量场由第一子张量和第二子张量的分布定义。第一子张量可以对应于最大曲率,第二子张量可以对应于最小曲率。将张量场分解为至少两个子张量可以将曲率张量场分解为由第一子张量、第二子张量和第三子张量的分布定义的三个子张量场。第一子张量可以对应于最大曲率,第二子张量可以对应于最小曲率,并且第三子张量可以对应于扰动项。在通过如上所述的平均和/或插值来计算张量场的示例中,扰动项可以由这种平均和/或者插值产生。在所提供的外表面是光滑的示例中,第三子张量可以是零,其中表面上的曲率张量场的直接计算是明确定义的。
在示例中,该方法可以基于分解的张量场来计算最大曲率方向的分布。该方法可以特别地基于如上所述的第一子张量来计算最大曲率方向的分布。通过“基于第一个子张量”,意味着该方法可以基于外表面切线空间中的分解张量来计算最大曲率方向的分布。
通过计算网格上曲率张量测度的分布并分解由该分布形成的张量场来计算最大曲率方向的分布,提高了主方向的精度(即准确度)和可靠性(即鲁棒性)。与在计算最大曲率方向时利用主曲率方向的方法相比,这种改进尤其显著。
现在讨论图1的步骤110和120的具体示例。
所提供的外表面的段可以由表示,其中/>其中M是平滑流形,并且其中φ:/>是不一定是平滑的连续嵌入。在示例中,/>是所提供的网格(例如,表皮三维网格)的多面体表示。如上所述,该方法可以基于曲率张量测度来计算曲率张量场。对于/>的任何区域S,曲率张量测度/>S→KS输出对称张量KS为:
KS:
其中U和V表示中的两个三维方向,KS(U,V)是对称张量。KS(U,V)提出了一种正确定义曲率张量的方法。在示例中,/>给出了与方向U关联的曲率值。所述曲率值可以不是与方向U相关联的主曲率值。然后,该方法可以对角化(即,分解)对称张量KS。如本身已知的,对于作为KS的对称张量,存在以下形式的分解:
其中,和e1,e2,e3是/>中的三个正交向量。这种分解通常被称为“对角化”。该方法可以根据文献中的任何已知方法对张量进行对角化。在示例中,该方法可以对KS进行对角化如下:
其中,ηS是与最对齐的余向量,σS是与ηS相关的特征值。在这种对角化中,/>是最大曲率对应的第一个子张量,/>是最小曲率对应的第二个子张量,/>是对应于张量测度计算平均所产生的扰动项的子张量。值和/>分别是绝对值意义上的最小和最大曲率值(即/>)。此外,是与主曲率方向相关的余向量。在示例中,最大曲率方向的分布的计算可以基于分解的张量/>作为计算的最大曲率方向。这样的计算可以包括将计算出的最大曲率方向/>投影在由网格的每个面定义的切平面上。
在示例中,最大曲率方向的分布可以包括每个面的一个或多个相应的最大曲率方向。跟踪每个积分曲线可以包括,从(属于网格的多个种子点中的)相应的种子点开始,逐面迭代,基于一个或多个相应的最大曲率方向在每个相应的面上积分平面曲线。众所周知,“积分曲线”是指代表常微分方程或方程组特定解的参数曲线。对于这样的积分曲线,如果微分方程表示为向量场或斜率场(例如,(曲率张量)场的最大方向),则相应的积分曲线在每个点与场相切。在这样的示例中,积分曲线可以包括以由所述场定义的方向为根据的方向。更具体地说,向量场的积分曲线是一条参数曲线,其速度等于曲线每个点处的向量场。当积分到达相应面的边,每次迭代(即,逐个面的迭代)可以停止。换言之,该方法可以针对相应的面,从位于所述相应面的内部(即,在所述相应的面上)的相应种子点开始计算积分曲线,直到所述积分曲线到达由所述面的边限定的所述面的边界。
在示例中,每个相应面的一个或多个最大曲率方向可以由单个最大曲率方向组成,该最大曲率方向对于网格的该面是恒定的。在这样的例子中,每个平面曲线在相应面上的积分是基于所述恒定的最大曲率方向,因此平面曲线是直线。在这样的示例中,网格上确定的曲线(每条曲线都遵循网格的最大曲率方向)可以是由各个面上的多条直线组成的多段线的形式。在这样的示例中,每条多段线可以由中的多个点来定义。
回到图1,并且如上所述,在步骤130中,该方法可以用相应的圆来拟合每条曲线。所谓“用圆拟合曲线”,就是指找到一个最接近曲线的圆。相应的拟合圆可以在所述圆和所述曲线之间限定的某个距离上最接近所述曲线。这样的距离可以是在所述曲线上且所述曲线的多个点之间定义的累积距离。因此,用圆拟合每条曲线可以包括解决倾向于最小化所述距离的优化问题。拟合圆和曲线之间的最小距离(即,在解决优化问题时)形成拟合圆的拟合误差。在示例中,这种拟合可以包括确定相对于最小二乘距离最接近曲线的平面,并将曲线投影在该平面上。换句话说,该方法可以将每个确定的三维曲线投影到二维平面中。该方法可以通过优化(例如,最小化)曲线和候选平面之间的距离(例如,在最小二乘意义上)来确定这样的二维平面。在曲线是多段线的示例中,这种优化可以最小化候选平面与定义多段线的多个点中的每个点之间的距离之和。这样的平面可以等效地称为平均平面。优化可以包括形成表示每条曲线在二维/三维空间中的扩展的协方差矩阵,以及计算所述矩阵的特征值/特征向量。拟合可以进一步包括确定相对于预定距离最接近投影曲线的圆。换句话说,该方法将每条曲线与相应的圆拟合,并获得一组圆。
在图1的步骤140中,该方法将每条曲线(即,确定的每条曲线)与相应的圆拟合。在示例中,该方法通过确定所述圆的相应半径和相应中心来将每条曲线与相应圆拟合。该方法可以用本领域中的任何已知方法,例如,任何曲线拟合方法,用圆拟合每条曲线(例如,通过确定所讨论的相应的半径和中心)。
然后,在步骤150,该方法可以计算该组圆的一个或多个统计量的值。所谓“该组圆的一个或多个统计量”,是指该组圆上的多个统计的(即数字的)测度,以汇总改组中包含的各个数据。所述测度可以特别是本领域已知的任何定量测度。该方法还可以通过对改组中的圆进行统计分析来获得这样的测度,例如使用直方图、曲线拟合和/或任何其他已知的统计分析。在示例中,一个或多个统计量包括平均拟合误差和半径方差中的一个或两个。平均拟合误差表示在该组圆上的拟合误差的均值(即平均值)。改组中每个圆的拟合误差表示拟合圆与相应曲线之间的距离,如上所述。半径方差表示拟合圆组中的各种半径。半径方差可以表示所述半径如何分布,例如围绕所述半径的平均值或中值。当圆角特征形成具有恒定最大曲率(即半径)的表面时,这种方差表示如下所述的圆角的所获得半径的误差。
在一个或多个统计值包括平均拟合误差的示例中,当并且仅当平均拟合误差低于第一阈值,则可以将网格检测为圆角。第一阈值可以具有接近所提供网格的预期噪声水平(例如,预期不准确度)的值。这样的阈值使得该方法能够考虑源自网格的离散性质的近似。在示例中,第一阈值的值可以在对于具有低噪声水平的网格的[0.0001B,0.002B]的范围内到对于具有高噪声水平的网格的[0.002B,0.01B]的范围内,其中B是网格边界球体的半径。在这样的示例中,该方法可以计算所确定的曲线和相应的拟合圆的均值拟合误差,即,所确定曲线和相应拟合圆的平均拟合误差。这样的均值拟合误差可以表示根据误差测度所确定的曲线与相应的拟合曲线相距多远。当曲线是多段线时,对于每条曲线,误差测度可以是如上所述定义多段线的多个点中的每个点的投影与拟合曲线上的相应点之间的距离的总和。例如,该方法可以使用以下类型的距离测度:
其中,∈i是确定的曲线(即多段线)i的距离测度,并且是定义折线i的多个点的投影,即/>换句话说,pj=Pxi,其中P是所述投影。此外,ri和ci是圆的相应半径和相应中心。在这样的例子中,平均拟合误差可以是以下类型:
其中,K是确定的曲线的数量(即,相应拟合圆的数量),并且该方法可以使用如上所述的距离测度来计算每个∈i。
在一个或多个统计量包括半径方差的示例中,当并且仅当半径方差低于第二阈值时,网格可以被检测为圆角。在示例中,如上所述,该方法可以基于所确定的拟合圆的半径的平均值来确定第二阈值的值。第二阈值可以是所述系数乘以平均值的平方,优选地在[0.01,0.25]范围内。该方法可以将半径方差计算为在所确定的拟合圆的半径的统计量中本身已知的数学方差。特别地,半径方差可以是以下类型:
其中,(δr)2是半径方差,K是确定的曲线的数量(即各个拟合圆的数量),是确定的半径的平均值。在这样的示例中,第二阈值可以是/>类型,其中η2是如上所述的系数。
在示例中,如图1的步骤160中,该方法可以进一步包括在所提供的网格中对所确定的圆角进行参数化。“特征的参数化”是指获得一个或多个能够完全定义该特征的参数。例如,三维中的圆角可以是圆柱形圆角,并且完全由圆角的轴(对应于圆柱体的轴)和圆角的圆柱形曲率半径定义。或者,三维中的圆角可以是球形圆角,并且完全由圆角的中心(对应于球体的中心)和圆角的球面曲率半径定义。这种参数化是二维简化为圆角的中心和圆半径。在这样的示例中,该方法可以进一步计算该组圆的平均半径,并且当检测到圆角时,创建由平均半径参数化的圆角CAD特征。
如上所述的圆角检测方法可以是将圆角检测方法应用于第一网格的分区的检测过程的一部分。这样的第一网格可以包括所提供的网格。这种检测过程可以包括提供(即,获得)表示机械部件的外表面的第一网格。这样的第一网格可以根据本领域中的任何已知方法获得,并且特别是以与如上所述将网格提供给圆角检测方法相同的方式获得。检测过程然后将第一网格分割成一组第二网格。检测过程可以根据本领域已知的任何分割方法来分割第一网格。然后,该过程将如上所述的圆角检测方法应用于由分割得到的该组的至少一些第二网格。通过“将圆角检测方法应用于该组的一个或多个第二网格”,意味着检测过程可以向圆角检测方法提供(即,输入)该组中的一个或多个第二网格。检测过程可以通过依次调用第二网格中的一个网格的圆角检测方法,将圆角检测方法应用于该组的至少一些第二网格。可替换地,圆角检测方法可以并行地并且同时地将圆角检测方法应用于所有所述一些第二网格。如上所述的圆角检测过程构成了一种用于在大型复杂几何形状中的圆角检测的改进方法,因为在检测过程中,圆角检测方法仅应用于分割获得的大型网格的一段。这提高了圆角检测方法的精度和计算成本。此外,这使得能够仅将圆角检测方法应用于第一网格的一部分(即,第二网格),该第一网格可能是特定应用感兴趣的一部分。
提供第一网格可以包括如上所述从机械部件的扫描获得第一网格。扫描可以是机械部件的真实世界版本的扫描,例如已经根据任何合适的制造方法制造的版本。机械部件的扫描可以是通过如上所述的三维扫描过程获得的扫描。或者提供第一网格可以包括从CAD设计获得第一网格,例如,具有不可访问的特征历史记录的CAD设计(例如,由于CAD软件的不同版本,由不同的CAD软件提供的CAD设计,或者不提供对特征历史记录的公共访问的CAD设计)的没有特征历史记录的CAD设计。
换句话说,圆角检测过程可以包括提供表示机械部件的外表面的第一网格,并将第一网格分割成一组第二网格。检测过程还可以包括,对于一个或多个第二网格,确定第二网格上的曲线,其中每条曲线都遵循第二网格的最大曲率方向,并将每条曲线与相应的圆拟合,从而获得一组圆。检测过程然后可以计算该组圆的一个或多个统计量的值,并且根据该一个或多个统计量的值来检测第二网格是否是圆角。
在示例中,检测过程还可以包括,当检测到第二网格是圆角时,识别所述圆角的相邻面输入。这种邻接识别使得该方法能够区分圆角与具有恒定最大曲率的其他表面。在这样的示例中,该方法可以确定候选段(即,第二网格)与至少两个相邻的其他段相切。为了检查两个相邻的段是否相切,该方法可以检查它们共同的边集,并计算相应的二面角。如果最大二面角(绝对值)大于邻接阈值,则该方法可以确定所述候选段与至少两个相邻的其他段相切。相邻阈值可以在]0,π/4]的范围内。通过该方法设置的邻接阈值选择得越高,相切条件就越允许。
该方法是计算机实现的。这意味着该方法的步骤(或基本上所有步骤)由至少一台计算机或任何类似系统执行。因此,该方法的步骤由计算机执行,可能是完全自动的,或者半自动的。在示例中,该方法的至少一些步骤的触发可以通过用户-计算机交互来执行。所需的用户-计算机交互的水平可能取决于所预见的自动化水平,并与实现用户期望的需要相平衡。在示例中,该级别可以是用户定义的和/或预定义的。例如,如上所述的圆角检测方法可以在用户提供网格或提供对网格或相应CAD模型的访问(例如,通过提供到服务器或数据库的链接)时,自动执行该方法的步骤,输出圆角检测的结果、关于检测到的圆角的一些获得的参数,和/或将检测到的和参数化的圆角添加到特征树中。类似地,根据用户的动作,圆角检测过程可以仅接收作为圆角检测方法的第一网格,并自动分割网格,并将圆角检测方法应用于所获得的一组段。
一种方法的计算机实现的典型示例是利用适用于该目的的系统来执行该方法。该系统可以包括耦合到存储器和图形用户界面(graphical user interface,GUI)的处理器,该存储器上记录有包括用于执行该方法的指令的计算机程序。存储器还可以存储数据库。存储器是适用于这种存储的任何硬件,可能包括几个物理上不同的部分(例如,一个用于程序,可能一个用于数据库)。
图2示出了该系统的GUI的示例,其中该系统是CAD系统。GUI 2100可以是典型的类似CAD的界面,具有标准菜单栏2110、2120以及底部和侧面工具栏2140、2150。这样的菜单和工具栏包含一组用户可选择的图标,每个图标与一个或多个操作或功能相关联,如本领域已知的。这些图标中的一些图标与软件工具相关联,软件工具适于编辑和/或处理GUI 2100中显示的三维建模对象2000。软件工具可以分组到工作台中。每个工作台都包含一个子集的软件工具。特别地,其中一个工作台是编辑工作台,适合于编辑建模产品2000的几何特征。在操作中,设计者可以例如预先选择对象2000的一部分,然后通过选择适当的图标来启动操作(例如,改变尺寸、颜色等)或编辑几何约束。例如,典型的CAD操作是冲孔的建模,或者显示在屏幕上的三维建模对象的折叠。GUI可以例如显示与所显示的产品2000相关的数据2500。在该图的示例中,显示为“特征树”的数据2500及其三维表示2000与包括制动卡钳和制动盘的制动组件有关。GUI可以进一步示出各种类型的图形工具2130、2070、2080,例如用于促进对象的三维定向、用于触发对编辑的产品的操作的模拟或者呈现显示的产品2000的各种属性。光标2060可以由触觉设备控制,以允许用户与图形工具交互。
图3示出了该系统的示例,该系统是客户端计算机系统,例如用户的工作站。
该示例的客户端计算机包括连接到内部通信总线1000的中央处理单元(centralprocessing unit,CPU)1010、连接到总线的随机存取存储器(random-access memory,RAM)1070。客户端计算机还被提供有图形处理单元(graphical processing unit,GPU)1110,其与连接到总线的视频随机存取存储器1100相关联。视频RAM1100在本领域中也被称为帧缓冲器。大容量存储设备控制器1020管理对诸如硬盘驱动器1030之类的大容量存储器设备的访问。适用于有形地体现计算机程序指令和数据的大容量存储器设备包括所有形式的非易失性存储器,例如包括半导体存储器设备,例如EPROM、EEPROM和闪存设备;诸如内部硬盘和可移动磁盘的磁盘;磁光盘。上述任何一项都可以由专门设计的专用集成电路(application-specific integrated circuits,ASIC)来补充或合并。网络适配器1050管理对网络1060的访问。客户端计算机还可以包括诸如光标控制设备、键盘等的触觉设备1090。在客户端计算机中使用光标控制设备以允许用户选择性地将光标定位在显示器1080上的任何期望位置。此外,光标控制设备允许用户选择各种命令,并输入控制信号。光标控制设备包括用于向系统输入控制信号的多个信号生成设备。通常,光标控制设备可以是鼠标,鼠标的按钮用于生成信号。可替换地或附加地,客户端计算机系统可以包括感应垫和/或感应屏幕。
该计算机程序可以包括可由计算机执行的指令,该指令包括用于使上述系统执行该方法的过程。程序可以记录在任何数据存储介质上,包括系统的存储器。该程序可以例如在数字电子电路中实现,或者在计算机硬件、固件、软件中实现,或在它们的组合中实现。该程序可以被实现为装置,例如有形地包含在机器可读存储设备中以供可编程处理器执行的产品。方法步骤可以由可编程处理器来执行,该可编程处理器执行指令程序以通过对输入数据进行操作并生成输出来执行该方法的功能。处理器因此可以是可编程的,并且被耦合以从数据存储系统、至少一个输入设备和至少一个输出设备接收数据和指令,以及向数据存储系统和至少一种输出设备发送数据和指令。应用程序可以用高级过程或面向对象的编程语言来实现,或者如果需要,可以用汇编或机器语言来实现。在任何情况下,该语言都可以是编译语言或解释语言。该程序可以是完整安装程序或更新程序。程序在系统上的应用在任何情况下都会产生用于执行该方法的指令。可替换地,计算机程序可以在云计算环境的服务器上存储和执行,该服务器通过网络与一个或多个客户端通信。在这种情况下,处理单元执行程序所包括的指令,从而使该方法在云计算环境上执行。
现在讨论该方法(圆角检测部分)的实施方式。
该实施方式属于几何处理领域,并应用于三维CAD分析、建模与编辑、三维重建与识别、仿真与实验设计等领域。
在给定三维表面作为网格的情况下,实施方式识别所述给定三维表面是否可以由圆角运算产生,并且在这种情况下计算圆角运算的半径。实施方式可以获得给定的三维表面作为分段网格的子部分,例如作为表示机械部件的一部分的外表面的一段的网格。
图4给出了圆角运算的示例。三维CAD模型上的圆角运算包括对两个伴随面之间的边进行圆角处理,这是通过取球沿这条边滚动的包络线获得的,两个面上都有切线支撑。在图4中,两个相邻的面是4010和4020,而圆角边是4030。
然后,实施方式计算给定表面上的曲率张量,并提取与最大主曲率值(即绝对值)相关联的主曲率方向。实施方式使用这个提取的方向场在网格上绘制多条测量的曲线,多条测量的曲线穿过曲面上的随机点。实施方式将曲线投影为二维,并在其上拟合圆。如果拟合误差足够低,并且圆的不同半径足够接近,则实施方式将给定表面识别为潜在圆角,并获得等于计算半径的平均值的(圆角的)相关半径。
该实施方式比现有技术中用于圆角检测的已知方法更鲁棒。那些现有技术的方法依赖于曲率值,这些曲率值有时不够精确。相反,本实施方式是基于主曲率方向的,而主曲率方向往往要精确得多。此外,根据实施方式计算的圆角表面的半径比以前的方法更精确。实施方式只需要两个简单的超参数,而不是直接对曲率分布进行复杂的统计分析,从而更容易进行微调。
现在讨论实施方式的细节。
如果M是光滑流形,并且p是光滑流形上的点,则TpM是M在p处的切空间,TpM*是M在p处的余切空间。该符号Γ(TM)表示M上的平滑切向量场的空间。
此外,如果g(.,.)是M上的度量张量场,并且Xp∈TpM,则是关于g的相关切线协向量,即:
反之,如果ωp∈TpM*,则是相对于g的相关切向量,即:
考虑流形M是一个光滑的2-流形,并且φ:是一个连续嵌入(不一定是光滑的),流形M可以被看作一个抽象表面,而/>是实施方式可以访问的对象(即提供给实施方式的表面)。
曲率方向
当φ光滑时,它在M上导出一个度量张量场g:即:
然后,实施方式能够从φ构建高斯映射N:如下所示:
对于p∈M,选择两个不共线的切向量Xp,Yp∈TpM,则:
这样的高斯映射不依赖于Xp和Yp的选择。然后,实施方式将M上点p处的曲率张量定义为:
Kp:
实施方式可以将曲率张量Kp分解为以下内容:
其中,是绝对值意义上的最小和最大曲率值(对),即|κm|≤|κM|,并且/>是与主曲率方向相关的协向量,满足:
是“最大曲率方向”。请注意,如果|κm|<|κM|,则它被唯一定义到一个符号。
一般来说,嵌入φ不一定是平滑的,例如,可以是网格给出的表面的多面体表示。在这种情况下,实施方式定义了高斯映射N(在三角形网格的情况下几乎无处不在)。在这种情况下,该实施方式不是如上所述的曲率张量及其最大曲率方向,而是计算曲率张量测度/>S→KS,对于/>的任何区域S输出对称张量KS为:/>
KS:
这些实施方式可以定义这样的曲率张量测度,并根据任何已知的方法在网格上计算它们,例如,如Cohen Steiner、David和Jean-Marie Morvan的文章中所述《RestrictedDelaunay triangulations and normal cycle》,《Proceedings of the nineteenthannual symposium on Computational geometry》,第312-321页,2003,其通过引用结合于此。
在平滑情况下(即,当嵌入平滑时),实施方式可以通过区域S上的(有代表性的)曲率张量Kp的某种平均值来将对称张量KS解释为:
其中,和表达式θp(V)被类似地定义。实施方式可以对角化KS为:
其中,ηS是与最对齐的协向量,σS是与ηS相关的KS的计算特征值。“最对齐”是指在通过上述方法对KS进行对角化时,该方法将协向量ηS设置为与通过积分获得的指定向量最对齐的协向量(三个协向量中)。该方法可以计算每个协向量的对齐误差并且将具有最小误差的协向量设置为最对齐的协向量。
在三角形网格的情况下,为了简化计算,实施方式假设网格的每个面τ上的最大曲率方向是恒定的,因此每个面τ只计算一个曲率张量KS,其中p是面的重心,r>0(r的值在网格面平均尺寸的3到5倍之间)。然后,该实施方式将计算出的最大曲率方向/>投影到由τ定义的切平面上。这种计算曲率张量的方法使主方向即使在有噪声的网格上也非常可靠和精确。
图5A-5C呈现了曲率评估的噪声结果,其显著影响了基于这些评估的本领域中已知的圆角检测方法。圆环面的网格上计算的曲率张量的最小曲率值由图5A-5C上的网格表面上的颜色表示,用于三个平均水平:图5A显示轻度平均的结果,图5B为中度平均,图5C为重度平均。平均水平可以基于根据面的一些相邻面的平均区域来定义,所述相邻面的平均区域用于计算表示所述面的平均值的平均。可替换的,可以基于球的半径及其与表面网格的对应相交区域来定义平均水平。平均水平越高,在平均中使用的面的相邻面越多(和越远)(或者所述球的半径越大)。图5A-5C中给出的结果显示了根据上述引用的文章计算的最小曲率值,Cohen Steiner和Morvan,《Restricted Delaunay triangulations and normalcycle》,它提供了由面的恒定的曲率张量场。结果表明,最小曲率值在很大程度上取决于平均水平。如图5B所示的中度平均水平,在该示例中产生了最准确的结果。当平均值太轻时,如图5A所计算的曲率值倾向于显示具有极值的噪声结果,并且当平均值太重时,如图5C中,计算出的曲率值在一些区域中是无效的均匀和/或在一些其他区域中获得超出有效范围的值。所提供的结果表明,曲率值的计算不是用于平均的参数的鲁棒的选择。选择正确平均水平并不是一项简单的任务,因为它取决于网格,并且对于同一网格上的不同位置可能会有所不同。此外,这种平均技术之后需要进行后处理,以平衡倾向于使曲率分布变平的平均效果。此外,所获得的曲率值通常与理论预期相去甚远(即,由网格近似的光滑表面的精确值)。
图5A-5C进一步示出了由黑色箭头表示的最小曲率方向。与计算的曲率相比,最小曲率方向在平均水平上显著一致,并且对于这三种情况都非常准确。在现有技术中,不存在能够以与曲率方向相当的精度和鲁棒性来计算曲率值的现有方法。
种子点
这些实施方式将种子点分布在表面上,即以同质的方式。对于这样的分布,实施方式可以对具有均匀分布的表面上的随机点进行过采样,然后使用迭代最远采样(IterativeFarthest Sampling,是本领域已知的技术)来获得均匀分布的子集(q1,…,qK)。
曲线跟踪
这些实施方式构建的曲线αi:Ii→M定义如下:
其中Ii是该方程的最大解(最大的一个)的区间,并且将它们在中的嵌入视为此外,由实施方式设置ζi(t)∈{-1,1},以使/>平滑并避免曲线的U形转弯。根据最大曲率方向计算得到的矢量场XM不一定恒定定向,并且对于表面上的任何点p,p处的最大曲率方向可以用/>或/>表示。通过乘以ζi,这些实现可确保矢量场/>(的方向)的校正,使得方向沿每条曲线保持一致。
该实施方式可以将上述方程与经典的数值方法相结合。具体来说,在每个面的XM恒定的三角形网格上,曲线γi由某些面上的直线段定义。在此方法中,对于网格的每个面τ,该实施方式可以通过在每一步将面τ的边缘与由向量定义的射线相交来计算网格边缘上的点的有限序列。然后,曲线γi采取由Mi个点/>定义的多段线形式。
图6A和6B示出了计算曲线6010和6020的示例。图6A中提供的网格6030是三角形网格。
投影
对于每条曲线γi,实施方式计算以下协方差矩阵:
其中:
然后,实施方式将Ci的特征值和特征向量/>计算为:/>
然后,实施方式使用计算出的特征向量来定义矩阵:
然后,实施方式可以将γi的2D近似(“投影曲线”)计算为并且P表示拟合曲线γi的平均平面。
在表面是三角形网格的情况下,是2D折线,并且由/>定义,其中pj=Pxi。
圆形拟合
对于每个投影曲线实施方式寻求找到最适合该曲线的圆弧的中心/>和半径ri>0。这些实施方式在投影曲线上取规则间隔的点,然后在二维点云上使用圆拟合方法(根据任何已知的拟合方法)。实施方式可以使用Coope,Ian D.的文章中描述的圆拟合方法,《Circle fitting by linear and nonlinear least squares》,《Journal ofOptimization theory and applications 76》,第2期(1993),381-388,其通过引用结合于此。
然后,实施方式根据拟合方法来计算拟合误差∈i。例如,拟合误差可以计算为
对于多段线来说,它是一条带点/>的多段线。附加的或替代的,该方法可以使用其他拟合误差。
决定
实施方式可以通过考虑以下指标来做出圆角检测的决定:
定义为的平均拟合误差,以及
定义为的半径方差。
在一些变体中,实施方式可以使用与上面定义的相同的方差,但是通过在上面的公式中将ri 替换为/>实施方式的这些变体对模型的规模是不变的,因为它们使用比率而不是差来比较半径。
最后,如果and/>实施方式识别M是圆角表面,
其中,半径为(或/>)。
考虑到来自网格的离散性质的近似,阈值η1可以具有接近网格的预期噪声水平的值。一般来说,实施方式可以在[0.0001B,0.002B]范围内设置η1的值,其中B是为相当规则的网格提供的网格边界球体的半径,并且对于噪声的网格,在[0.002B,0.01B]范围内。网格中的噪声越高,实施方式可以为阈值η1设置越大的值。阈值η2可以具有在[0.01,0.25]范围内的值。
相邻条件
在提供分段网格的情况下,实施方式可以考虑补充条件,来通过确定候选段与至少2个相邻的其他段相切来区分圆角和具有恒定最大曲率的其他表面。
为了检查两个相邻段是否相切,实施方式可以检查这两个段具有共同的边(ej)j∈J的集合,并计算相应的二面角(θj)j∈J。然后,实施方式可以将条件设置为:
例如θth(即邻接阈值)取值于]0,π/4]。实施方式将θth设置得越高,这种相切条件就越允许,并且实施方式将一些与其相邻面不完全相切的曲面检测为圆角。这种错误检测可能是可接受的,特别是在网格有噪声或非常近似的情况下。
图7A-7B分别显示了在所提供的机械部件7010和7020的网格上应用该方法的结果。此外,较暗的面7030和7040示出了检测到的圆角。
Claims (15)
1.一种计算机实现的圆角检测方法,其特征在于,包括:
提供表示机械部件的一部分的外表面的一段的网格;
确定所述网格上的多条曲线,每条所述曲线都遵循所述网格的最大曲率方向;
将每条所述曲线与相应的圆拟合,以获得一组圆;
计算该组圆的一个或多个统计量的值;
根据所述一个或多个统计量的值来检测所述网格是否为圆角。
2.根据权利要求1所述的方法,其特征在于,确定所述曲线包括:
计算所述网格上的最大曲率方向的分布;
从属于所述网格的多个种子点开始,跟踪所述最大曲率方向的分布的积分曲线。
3.根据权利要求2所述的方法,其特征在于,计算所述最大曲率方向的分布包括:
计算分布在所述网格上的曲率张量场(Ls);
将所述计算的张量场(KS)分解为至少两个子张量,对应于最大曲率的第一子张量和对应于最小曲率的第二子张量/>
基于所述分解的张量场计算所述最大曲率方向的分布。
4.根据权利要求3所述的方法,其特征在于,所述曲率张量场的计算是根据法向量循环方法、二次拟合方法或圆拟合方法执行的。
5.根据权利要求2至4中任一项所述的方法,其特征在于,
所述网格具有多个面和多个边,
所述最大曲率方向的分布包括针对每个所述面的一个或多个相应的最大曲率方向,
跟踪每个所述积分曲线包括:从相应的种子点开始,逐面迭代,即针对每个所述面,基于该面的所述一个或多个相应的最大曲率方向对该面上的平面曲线进行积分,每次所述迭代停止于所述积分到达相应的所述面的边。
6.根据权利要求5所述的方法,其特征在于,
每个所述面的所述一个或多个相应的最大曲率方向,由相对于该面是恒定的单个最大曲率方向组成,
对每个所述面上的平面曲线进行积分是基于所述恒定的最大曲率方向的,从而该平面曲线是一条直线。
7.根据权利要求1至6中任一项所述的方法,其特征在于,所述一个或多个统计量包括以下中的一个或两个:
平均拟合误差,当且仅当所述平均拟合误差低于第一阈值时,所述网格被检测为圆角,以及
半径方差,当且仅当所述半径方差低于第二阈值时,所述网格被检测为圆角。
8.根据权利要求1至7中任一项所述的方法,其特征在于,将每条所述曲线与相应的圆拟合包括:
确定从最小二乘距离方面而言最接近所述曲线的平面;
将所述曲线投影到所述平面上;
确定从预定距离方面而言最接近所述投影的曲线的圆。
9.根据权利要求1至8中任一项所述的方法,其特征在于,所述方法还包括:
计算该组圆的平均半径;
当检测到圆角时,创建由所述平均半径参数化的圆角CAD特征。
10.根据权利要求1至9中任一项所述的方法,其特征在于,所述方法包括:
提供表示机械部件的外表面的第一网格;
将所述第一网格分割成一组第二网格;
对于一个或多个所述第二网格,
确定所述第二网格上的多条曲线,其中,每条所述曲线都遵循所述第二网格的最大曲率方向;
将每条所述曲线与相应的圆拟合,以获得一组圆;
计算该组圆的一个或多个统计量的值;
根据所述一个或多个统计量的值来检测所述第二网格是否为圆角。
11.根据权利要求10所述的方法,其特征在于,所述方法还包括,
当检测到一个所述第二网格是圆角时,识别所述圆角的相邻面输入。
12.根据权利要求10或11中任一项所述的方法,其特征在于,提供所述第一网格包括:
从所述机械部件的扫描获得所述第一网格;或
从CAD设计中获得所述第一网格。
13.一种圆角检测的计算机程序,包括:用于执行根据权利要求1至12中任一项所述的方法的指令。
14.一种圆角检测的计算机可读存储介质,其上记录有权利要求13所述的计算机程序。
15.一种圆角检测系统,包括耦合到存储器的处理器,该存储器上记录有权利要求13所述的计算机程序。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP22306451.0 | 2022-09-29 | ||
EP22306451.0A EP4345673A1 (en) | 2022-09-29 | 2022-09-29 | Fillet detection method |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117786867A true CN117786867A (zh) | 2024-03-29 |
Family
ID=83691193
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311288450.0A Pending CN117786867A (zh) | 2022-09-29 | 2023-09-29 | 圆角检测方法、系统、程序和存储介质 |
Country Status (3)
Country | Link |
---|---|
EP (1) | EP4345673A1 (zh) |
JP (1) | JP2024050514A (zh) |
CN (1) | CN117786867A (zh) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8004517B1 (en) * | 2005-06-24 | 2011-08-23 | Geomagic, Inc. | Methods, apparatus and computer program products that model three-dimensional surface structures |
JP4179355B2 (ja) * | 2006-07-26 | 2008-11-12 | トヨタ自動車株式会社 | フィレット作成装置 |
EP3327593B1 (en) | 2016-11-25 | 2022-02-09 | Dassault Systèmes | Orientation of a real object for 3d printing |
WO2019203877A1 (en) * | 2018-04-18 | 2019-10-24 | Siemens Aktiengesellschaft | Method for reconstructing an object |
-
2022
- 2022-09-29 EP EP22306451.0A patent/EP4345673A1/en active Pending
-
2023
- 2023-09-29 JP JP2023168997A patent/JP2024050514A/ja active Pending
- 2023-09-29 CN CN202311288450.0A patent/CN117786867A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
JP2024050514A (ja) | 2024-04-10 |
EP4345673A1 (en) | 2024-04-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11100710B2 (en) | Extracting a feature tree from a mesh | |
EP4092558A1 (en) | Parameterization of cad model | |
Azariadis et al. | Drawing curves onto a cloud of points for point-based modelling | |
CN116595653A (zh) | 一种基于疲劳损伤敏感度计算的设计方法 | |
US20230306162A1 (en) | Sketch-processing | |
US11195330B2 (en) | Generation of a structured 3D model from a raw mesh | |
CN110060346A (zh) | 确定代表真实对象皮肤的小面的集合 | |
CN117786867A (zh) | 圆角检测方法、系统、程序和存储介质 | |
US20240135733A1 (en) | Fillet detection method | |
EP4242976A1 (en) | Processing a tesselation | |
US20230418990A1 (en) | Cad feature tree generation | |
EP4092559A1 (en) | Material extrusion detection method | |
CN117313256A (zh) | Cad特征树优化 | |
EP4254252A1 (en) | Gradient-based cad model optimization | |
EP4266257A1 (en) | 3d reconstruction from images | |
EP4099206A1 (en) | Processing a cad 3d model of a mechanical part | |
CN117131618A (zh) | 用于设计包括筋的片材部件的方法、系统和程序 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |