为什么不能从零开发特征识别与直接编辑 ?
难度远比看上去高得多
抽象地说,特征识别听起来很简单。你有一个 B-Rep 实体。你想找到它的面和边,识别模式,并给它们贴上标签。
一个圆柱面与一个具有特定角度关系的平面相邻?这可能是一个孔。两个面之间的平滑滚珠混合?圆角。
但现实世界是残酷的。沉孔有多个直径不同的圆柱段。沉头孔涉及锥形过渡。可变半径圆角沿其长度方向改变曲率,圆角交界处,即三个或更多混合面在一个拐角处相遇,会产生真正难以分类的几何形状。
此外,还有槽、袋、垫、凹槽、凸台、突起和徽标。每一种都有自己的几何特征,而这些特征的重叠和交互方式会让你的团队忙上好几年。
直接编辑更糟糕推/拉听起来很简单:用户抓住一个平面,然后向外拖动。但相邻的圆角会发生什么呢?它们需要拉伸或重建,同时保持半径不变。这些圆角之间的混合过渡如何处理?修剪和相交计算必须实时进行,以便用户在拖动时获得视觉反馈?这些都是深层次的专业工作。
单个算法就需要花费数年的研发时间。
我们见过一些团队严重低估了这一点。他们在简单的测试部件上设计出可以运行的原型,然后交付使用,接下来的三年时间里,他们都在处理生产几何图形中的边缘案例。与此同时,他们的实际差异化特征--仿真设置、刀具路径优化、成本模型--却得不到工程资源。
特征识别带来的好处
当特征识别系统运行良好时,它可以分析 B-Rep 主体,并返回一个有组织的制造特征层次结构及其参数数据。您可以遍历检测到的特征并查询其属性。
具体来说,这意味着
- 孔的直径、深度和子类型(简单通孔、沉孔、沉孔)
- 带有半径(恒定或可变)的圆角,包括圆角链和连接区域的识别
- 倒角及其偏移距离和角度
- 带有尺寸和方向的槽、凹槽和垫块
- 突出物、凸台、凹槽和徽标
这里重要的细节是 "参数数据 "的含义。有些实现方法提供面组--"这 7 个面属于一个特征"--然后将分类和测量留给应用程序代码处理。另一些系统则提供面组和参数:这是一个沉孔,直径 8 毫米,深 12 毫米,沉孔角度 90 度。这两者之间的差别对你还需要做多少工作有很大影响。
还有自动化程度的问题。有些方法要求您的应用程序提供一个种子人脸--识别算法的起点。其他方法则会自动分析整个身体,并将发现的所有信息反馈回来。如果您的工作流程需要处理成百上千的导入部件,而没有用户交互,那么这种区别就是可行产品与死胡同的区别。
要深入了解可识别特征类型的范围,包括垫、槽和徽标,请参阅博客文章CGM Core Modeler Enhanced Feature Recognition。
直接编辑功能
直接编辑让用户无需参数化特征树即可修改几何体。移动一个面、偏移一个面、应用一个变换--模型就会围绕变化进行自我修复。
真正的价值体现在保留特征的变换上。当用户将一个平面向外推 5 毫米时,相邻边缘的圆角半径保持不变。混合曲面会自动重建。模型自始至终都是有效的实体。不会出现布尔运算失败、曲面撕裂或手动清理等问题。
这对设计的重复使用最为重要。你的客户从供应商那里得到一个零件,需要对其进行修改。或者他们正在处理 15 年前的遗留设计,而原始参数模型已经丢失(或者是用他们没有的软件建立的)。或者他们正在快速探索概念变化,还不想建立完整的参数化模型。在所有这些情况下,对导入的几何体进行直接编辑才是真正合理的工作流程。
对于交互式应用,支持鼠标驱动的推/拉(用户在拖动时可看到几何图形的实时更新)可将其从 "有用的批处理操作 "提升为 "核心产品功能"。
为什么自研 vs 采购的决策至关重要
这里的经济效益是一边倒的。从头开始构建特征识别和直接编辑功能需要
- 计算几何专家(招聘难,留人贵)
- 多年的开发才能达到生产质量
- 在实际 CAD 数据中遇到新的边缘情况时需要持续维护
- 针对数十种 CAD 系统的几何图形进行测试,每种系统都有自己的建模差异
由几何内核专家开发的 SDK 可在庞大的用户群中分摊成本。您购买的技术有多年积累的知识产权作后盾,可针对各种实际几何图形进行测试,并由专门从事计算几何工作的人员进行维护。
这样,您的团队就可以腾出手来,研究如何真正实现产品的差异化。如果你正在开发 CAM 软件,那么你的竞争优势就是刀具路径策略,而不是圆角检测。如果你正在开发仿真工具,那么你的竞争优势就是求解器技术和网格智能,而不是推/拉面编辑。
我们并不是说 SDK 适合所有人。如果计算几何是你的核心业务,那就构建它。但对于大多数工程软件公司来说,这是基础设施,是关键,但不是客户选择你们的原因。
如何权衡构建与购买?
- Spatial 关于在应用生命周期管理中缩短开发时间的文章值得一读。
最常见的五大应用场景
在整个工程软件领域,特征识别和直接编辑都与少数工作流程相同:
1.简化仿真模型。有限元分析和流体动力学分析师在网格划分之前要花费大量时间来简化模型。小圆角、紧固件孔、外观细节--这些都会产生微小的网格元素,在不影响结果的情况下增加元素数量和求解时间。识别这些特征,根据尺寸进行过滤,自动删除它们。
2.制造自动化。CAM 系统需要识别可加工的特征--可钻的孔、可铣的槽、可车的面。自动特征识别可将导入的几何图形转化为制造计划,而无需手动绘制特征图。
3.设计重用。通过直接编辑修改几何图形,以适应新的要求。这就是特征识别和直接编辑相结合的优势所在。
4.成本估算。对零件上的每个特征进行编目--计数孔、测量圆角半径、识别凹槽深度--并将其输入制造时间和成本模型。这里的自动化意味着报价以分钟为单位,而不是以小时为单位。
5.可视化的细节水平。去除不必要的几何细节,实现实时渲染。与仿真失败类似,但过滤标准不同。
探索这些工作流程之间的联系:
- 如果您使用的是仿真破译,那么请看看Spatial 的 CAE 工作流程解决方案,它涵盖了从导入到网格的整个流程。
- 对于制造自动化,Spatial 有一个专门的CAM 行业页面,展示这些组件如何融入自动化制造工作流程。
实际可落地的特征移除工作流
下面是所有组件连接后的工作流程:
- 导入STEP 文件(或 CATIA、NX、SolidWorks 等客户使用的任何文件)
- 修复几何体--导入的数据几乎总是存在间隙、斜面、公差不匹配等问题
- 在修复后的体上运行特征识别
- 过滤结果:给出半径小于 2 毫米的所有圆角、直径小于 5 毫米的所有孔
- 自动删除这些特征
- 导出简化模型进行网格划分
第 2 步很容易被忽略,也很难跳过。在特征识别之前,必须进行几何修复、消除间隙、修正公差、去除锯齿面,否则就会得到不可靠的结果。
在实际操作中,错误的几何输入是导致特征识别失败的首要原因。
如需从技术上解释愈合的原因和实际操作,请参阅《3D互操作性中的修复:跨 CAD 系统保留设计意图》和《3D建模中的3D数据转换》。
有些实现将识别和移除步骤作为单个操作来处理。您只需告诉系统 "移除所有圆角链 "或 "移除所有低于此直径的孔",系统就会进行识别、分类和移除,而无需用户选择任何操作。对于批量处理和自动化流水线来说,这是对工作流程的重大改进。
Spatial SDK 在此提供的功能
Spatial 针对这一领域提供了几种不同的组件,由于它们具有不同的功能,因此值得分别了解:
CGM 建模器
CGM Modeler是更全面的特征识别选项。它能自动分析人体(无需选择种子人脸),同时返回人脸组和参数数据,并支持使用特征保留变换的直接编辑操作。如果您需要知道检测到的孔是否具有特定尺寸的沉孔,CGM 可以直接为您提供。CGM 还支持针对特定行业的识别启发式方法--针对汽车动力系统、建筑施工和电子产品采用不同的策略。
3D ACIS 建模器
3D ACIS Modeler以不同的方式处理特征检测--它能识别属于特征的人脸组,但将详细的分类和参数提取留给您的应用程序处理。它还包括一个可识别和移除按半径阈值混合的defeature组件。如果您已经在使用 ACIS,并需要专门的变形处理,这可能就足够了。
CGM Defeaturing
CGM Defeaturing是一款专门用于自动简化的插件。它无需用户输入,只需一步即可去除孔或圆角特征,并对尺寸阈值进行过滤控制。当您的主要目标是简化模型以进行仿真或可视化,而不是提取全部特征时,它将非常有用。
3D InterOp
3D InterOp 可处理多格式导入和几何图形愈合,这些工作需要在其他工作之前完成。它可以读取 CATIA、NX、SolidWorks、STEP、IGES、JT 和其他格式的数据,并提供修复操作,以解决困扰导入数据的公差和间隙问题。此外还有数据预处理功能,可在导入过程中对 InterOp 进行更高级别的简化操作。
这些功能自然而然地结合在一起:用 InterOp 导入、修复、用 CGM 识别特征、简化仿真、应用直接编辑、导出。提供 C++ 和 C# 应用程序接口,并配有入门框架,以减少初始集成时间。
从哪里开始评估
如果您正在为自己的应用评估该软件,那么首先要考虑的问题是您要启用什么样的工作流程。用于仿真的去毛刺与用于 CAM 的特征提取有着不同的要求。第二个问题是,您希望 SDK 处理多少识别流程,而您希望自己控制多少流程。
您可以试用一下,把你最棘手的客户几何数据丢进去测试,,看看会有什么结果。这比任何数据表都更能说明问题。
准备好对自己的几何图形进行测试了吗?
- 申请Spatial SDK免费评估,在您的真实几何模型上测试特征识别、直接编辑和模型简化去特征功能。
- 如果您想了解这些组件如何适合您的特定工作流程,请直接联系 Spatial 团队。