有时,你无法访问零件原始生产中的原始设计文档。逆向工程(reverse engineering)使你能够分析物理零件并探索其最初的制造方式,以复制、创建变体或改进设计。目标是最终创建一个用于制造的新 CAD 模型。
虽然逆向工程的概念非常简单,但大多数人并不了解如何从 3D 扫描数据创建 CAD 的分步工作流程。
NSDT工具推荐: Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线转换 - 可编程3D场景编辑器 - REVIT导出3D模型插件 - 3D模型语义搜索引擎 - Three.js虚拟轴心开发包 - 3D模型在线减面 - STL模型在线切割
0、逆向工程流程概述
该过程的第一部分涉及使用 3D 扫描仪快速准确地收集现有零件的几何表面测量值。传统上,人们使用卡尺和手动工具进行测量。然而,当尝试测量具有复杂特征的复杂零件(例如有机表面)时,它们通常被证明是有限的。
扫描仪通常以 obj、ply 或 stl 网格格式输出 3D 扫描数据作为密集三角形网格——从几千个到数百万个多边形
有了这种智能,你可以使用它来复制零件或基于原始零件创建新设计。 3D 扫描数据可作为绘制 CAD 图纸的视觉指南。 它基本上是在扫描数据的顶部进行跟踪。 你需要从跟踪基本的 2D 草图开始绘制 CAD 图纸,同时创建标准关系和约束,以最大限度地控制设计的开发方式。 然后将 2D 草图转换为 3D 特征。 你继续构建零件的所有特征,直到创建最终的 CAD 模型,如下例所示。
没有神奇的按钮可以自动将 3D 扫描数据转换为可用的 CAD 文件。但有一个标准化的工作流程,使逆向工程成为一个简单的过程。
让我们使用一个示例逐步检查此工作流程,以使我们的解释更加具体。
我们将使用 SOLIDWORKS 和 XTract3D 插件通过火箭喷嘴说明逆向工程工作流程。XTract3D 允许你直接在 SOLIDWORKS 内部进行逆向工程。
1、将扫描数据导入 SOLIDWORKS
通过将 3D 网格文件 (obj、ply 或 stl) 导入 SOLIDWORKS 来启动逆向工程过程。清理过程通常在 3D 扫描仪附带的 3D 扫描软件中进行。这发生在将扫描数据导入 SOLIDWORKS 之前。网格将作为构建 CAD 模型的参考文件,而不是在 SOLIDWORKS 中完全从头开始设计。
这是导入 SOLIDWORKS 内部的喷嘴的 3D 网格。这是一个相对简单的部件,但如果你无法访问 3D 扫描数据,则很难从中创建绘图,因为该部件包含有机形状。
直接在 SOLIDWORKS 中进行逆向工程有什么好处?
- 访问特征历史记录。如果你将 CAD 文件视为零件的蓝图,则特征树提供了零件开发方式的解构视图。有了特征树,协作就变得容易得多,因为文件中提供了零件的所有背景信息,并且将来需要时可以更直观地更改设计。
- 如果你使用独立的逆向工程包,则必须将文件导出为 STEP 或 IGES,然后将其重新导入 SOLIDWORKS。导入过程中,特征树可能无法正确转换以保留关系。
- 许多工程师和设计师已经拥有 SOLIDWORKS。SOLIDWORKS 是世界上最受欢迎的 CAD 建模包之一,拥有 320 万用户。使用 XTract3D 等插件来补充 SOLIDWORKS 比购买独立的逆向工程软件(成本可能高达 20,000 美元)更便宜(2,999 美元),而且可以产生相同的结果。另外,你不必学习新的工作流程或新软件。
导入技巧:精简数据
通常,3D 扫描仪扫描出来的 3D 网格文件大小非常大,包含大量你不需要的冗余数据。这使得绘制 CAD 模型时操作起来非常困难且速度很慢,尤其是如果你使用的是较旧的 PC。
导入网格后,你可以转到 Xtract3D 的工具栏:网格信息 → 抽取,以降低网格的复杂性来抽取数据。
2、逆向工程规划
这是一个在开始 3D 建模之前确定需要采取的步骤的心理过程。它涉及通过将零件分成按顺序步骤的主要建模阶段来决定需要单独创建哪些特征。此步骤很重要,因为通过良好的规划,你将构建一个强大的参数模型,从而为你以后减少工作量和麻烦。
喷嘴是对称部件,因此我们将利用这一点。
规划如下:
- 创建新的坐标系,这可让你在后续步骤中更轻松地对零件进行逆向工程
- 将喷嘴切成两半以查看零件的 2D 横截面
- 绘制扫描数据轮廓的轮廓
- 旋转零件以获得最终的 3D 实体 CAD 模型
基本 2D 横截面构成了所有机械 3D 图纸的基础。正确执行基本步骤将奠定坚实的基础,使下游发生的一切事情都稳定下来。
规划技巧:弄清真正的设计意图
逆向工程的主要原因是重新制作零件。因此,其目的是创建一个代表真正设计意图的“完美”零件。这可能需要详细了解零件的功能,因为只有这样才能正确解释设计意图。
重要的是要记住,所有制造的零件都会因制造方式而存在某种缺陷,并且可能因磨损而损坏,从而掩盖了原始设计意图。对每个缺陷进行建模可能既耗时又昂贵,而且没有必要。通常,零件将被重新建模以捕捉设计意图并忽略缺陷。
3、创建新的坐标系
将扫描数据导入 SOLIDWORKS 时,软件会将 3D 网格放置在空间中的任意位置和旋转位置,具体取决于你在将数据导入 SOLIDWORKS 之前如何对齐数据。
为获得最佳实践,最好创建新的坐标系。SOLIDWORKS 希望你的零件居中并沿顶部、右侧和前部平面对齐,以便零件居中。将零件定位到新坐标系会将 3D 模型置于 CAD 建模软件中的逻辑空间中。
对于像喷嘴这样的非常简单的零件,你可以使用自动居中工具(从网格自动居中)并将其中一个平面与三个平面之一对齐,即右侧(x 轴)、顶部(y 轴)或正面(z 轴)以定义中心点。你可以将右侧、顶部和正面平面分别视为(xyz 轴)。
对于大多数零件,你需要创建一个自定义坐标系,以便更好地控制坐标系的创建方式。使用 SOLIDWORKS 工具,转到特征 → 参考特征 → 坐标系工具。
首先自动居中零件,以使零件大致处于正确的位置。接下来,开始一个新的 2D 或 3D 草图,可用于定义一个点,该点表示你希望零件的中心位置。现在创建线段或点,它们将根据零件的特征定义 X、Y、Z 轴。定义一个或多个轴后,你可以使用这些特征创建自定义坐标系。之后,使用 Xtract3D → 使用坐标系工具将网格移动到新坐标系。
如果你对结果满意,则可以删除用于重新定位网格的草图和参考几何图形。
4、切出零件的 2D 横截面
切出 3D 网格的 2D 横截面可创建可见轮廓,便于绘制草图。
为了使用扫描数据作为绘制草图的参考,我们使用 Xtract3D 的切片工具切割喷嘴的 2D 横截面,该工具沿零件中心切下。我们可以使用前平面或右平面作为草图和切片平面。这很容易做到,因为我们在上一步中将零件居中并对齐。
这样会给出一个漂亮的红色高亮边缘,显示如图所示的部件边界。这样可以轻松地在下一步中将轮廓描摹为参考草图。
使用 XTract3D 切片部件的技巧
XTract3D 有一套工具可以以不同的方式切片部件,以便你可以获得部件的清晰轮廓。该插件提供了上下左右移动 2D 切片位置的灵活性,因此你可以控制切片部件的方式以及最终草图平面的位置。这也为你提供了很大的灵活性,不仅可以从一个平面获取信息,还可以从多个切片平面获取信息。
5、绘制零件草图
现在,建模工作开始了。此步骤将扫描数据的轮廓描绘成 2D 草图,该草图稍后会在步骤 6 中变成 3D 特征。
你可以点击 Xtract3D 工具栏中的“隐藏网格”按钮,专注于绘制红色轮廓。由于左侧和右侧相同,我们只需描绘零件的一侧。选择绘制哪一侧取决于哪一侧最能体现零件的设计意图。我们将选择左侧,因为它看起来比右侧更干净,这表明制造缺陷或磨损较少。
转到 SOLIDWORKS 草图工具,通过描摹扫描参考轮廓开始在平面上绘制草图。
如何创建草图取决于设计要求、草图标准以及个人偏好。在这里,我们首先绘制所有直线,然后绘制圆弧。一般来说,我们希望过度绘制线条,然后再修剪多余的部分。这也是添加任何约束的好时机,例如平行线或曲线以保持一致的角度。
一旦完成所有操作,我们将修剪掉末端的多余部分。
我们得到了喷嘴左侧横截面的完整草图:
使用 XTract3D 绘制草图的技巧
使用 XTract3D,绘制草图时不必精确。绘制一条靠近轮廓的线,XTract3D 的捕捉和拟合工具将使该线尽可能接近扫描轮廓。
捕捉工具将直接移动草图实体的控制点,使轮廓与最近的点精确匹配,而拟合工具将尝试执行平均拟合。
这些工具对于线条特别有用,因为由于零件的缺陷和磨损,扫描数据永远不会是完美的直线。绘制线条时,你可能会发现平均拟合比捕捉线条的端点更准确。
6、将草图旋转为 3D 实体
这是获得最终 CAD 模型的最后一步。
我们的中心轴由前平面和右平面的交点定义。要创建实体模型,我们只需使用 SOLIDWORKS 旋转按钮围绕中心轴旋转草图即可。
旋转之前:
旋转之后:
CAD 模型(结果)与扫描数据(起点)之间的比较:
7、分析
最后一步是比较扫描数据与新创建的 CAD 模型的偏差,以查看测量差异。
使用 Xtract3D 的网格偏差工具,你可以在屏幕左侧设置自己喜欢的容差水平。当将 CAD 模型与参考扫描数据进行比较时,颜色可以快速概览哪些区域低于或高于容差,其中绿色 = 低于容差,红色 = 高于容差。
分析 CAD 模型的技巧
你可以随时返回到任何点对 CAD 模型进行任何必要的修改,因为使用 SOLIDWORKS 的好处是我们可以访问完整的特征历史记录,而对扫描数据没有任何硬依赖。
使用Xtract3D的另一个好处是,由于SOLIDWORKS不与网格建立任何连接(模型的任何方面或定义模型的特征都不依赖于网格),因此你可以移动甚至删除网格而不会影响模型。
创建完实体和曲面后,你甚至可以从零件文件中删除扫描数据。