贝特三维 logo (含白色中文字体)
逆向工程知识库

网站持续更新中 | 所有中文内容皆为贝特三维原创,版权所有,严禁转载 | 技术支持

< 上一页
打印

逆向工程简介

何谓逆向工程?

概念厘清

逆向工程 (reverse engineering),或称反向工程,其涵意为从现有可得的产品去反推其原始设计或工序。很显然这是一个回溯推敲的思路,所以在众多不同领域包括 IT、电子电路领域甚至生物学中,都有自己独特的逆向工程手段,但我们这里所称的逆向工程,指的是工业产品领域的逆向工程。

工业产品设计领域的逆向工程

在现代制造业中,绝大多数产品的图纸都是以 CAD (Computer-Aided Design,电脑辅助设计) 数字档案格式存储于个人电脑内,其中 3D CAD 更是现代工业设计软件的主流型式 (2D CAD 则多用于建筑工程领域)。3D CAD 图纸经过数控机床 (CNC) 加工,可以直接生产为成品,又或多数时候先以 CNC 生产模具,再透过塑胶射出或浇注的方式批量生产成品。不论是哪种工序,我们都可以视 3D CAD 图纸为现代制造业的源头,唯有取得产品 3D CAD 模型,才能进行生产或设计迭代。

既然现代制造业需要仰赖 3D CAD 模型,那怎样才能取得产品的 3D CAD 模型呢? 如果您是正在设计新产品,那就只能透过工业 3D CAD 软件如 SolidWorks®, Rhino®, Fusion 360®, Inventor®, Catia®, 中望 3D® 等,进行新图纸的绘制,这种典型流程被称为正向工程 (forward engineering)。
可是,在一些状况中 (比您想像中的多),您可能手上只有实体产品,却需要反向得到 (至少近似于) 原始的 3D CAD 档案,这种逆向工程该怎么进行呢? 答案就是量测。如果我们能量测出该产品方方面面的数据,那不就可以依照这些数据,重新绘制出它的 3D CAD 模型了吗? 概念上是这样没错,但现代工业产品外形经常具有复杂且不规则的曲面,不是一支卡尺可以搞定的,因此专业的逆向工程手段通常是先透过所谓三维扫描仪 (3D scanner) 将整个产品外形撷取下来成为多边型网格,再透过逆向工程软件/插件将其转换为 3D CAD 模型。

一张逆向工程流程示意图,展示从实物成品经三维扫描后取得三角面多边形网格,再以逆向工程软件重构出 3D CAD 模型的过程,并与一般工业软件的正向工程流做比较

逆向工程 (reverse engineering) 与正向工程 (forward engineering) 的关系
(制图: 贝特三维 – 版权所有)

与其说 “转换”,倒不如说这是一个重新制图的过程,只不过在逆向软件/插件的辅助下,这个 3D CAD 图纸的绘制过程完全是以参考网格为基础,尽量将绘制的 3D CAD 与其表面贴合,而达到还原造型的目的。从这个角度说,三维扫描也可被视为一种全角度的量测技术,逆向工程软件则负责在这个量测结果上进行精准制图,把外形重现。

多边形网格 ↔ 3D CAD 模型

您注意到了吗? 三维扫描只能产生多边形网格,而不能直接生成 3D CAD 模型,为什么不能一步到位呢? 又为什么非转成 3D CAD 不行呢?

原因是三维扫描的过程中,为了能最大程度重现工件外形,取得的点云 (point cloud) 资料多数情况下是高分辨率且均匀分散的小点,将这些无数小点之间以线段连接,产生的结果就成了一个由密密麻麻三角型所铺成的网格 (triangle mesh),通常以 STL 或 OBJ 格式导出存储。从肉眼来看,这种多边形网格与产品实物并无二致,但实际无法为工业软件所用,因为在工业软件的领域中,需要的是所谓以边界表示 (boundary-representation,简称 B-rep) 明确特征如平面、圆柱体、球体的实体或以 NURBS 数学式表达的曲面。这种以特征实体和曲面所构成的 3D CAD 模型不单是工业设计的标准,也是后续数控加工 (Computer-Aided Manufacturing, 简称 CAM) 的基础。模型若不存在上述这些明确信息,数控机床将对要做什么一无所知。

简单说,多边形网格和 CAD 模型看似都是 3D 档案,实则互不相容。这就是为什么我们需要专用的逆向工程软件/插件来进行转换。

因此狭义的逆向工程,指的就是这个把 3D 多边形网格转换为 3D CAD 的流程,以及为此一过程所量身打造的软件。下次您再听到逆向工程软件一词,就不会一头雾水了。

在电影、动画及游戏产业使用 3D 模型不是 CAD 格式,而是四角面多边形网格 (quad mesh),其与三角面网格也有着本质上的不同。如果希望将三维扫描取得的网格运用在这些产业,同样也需要转换,这一三角面转四角面的过程被称为重新拓扑 (retopology),也是由一类特殊软件/插件来负责完成,但此处不对其进行详述。

一张示意图,展示逆向工程流与重新拓扑的差别,其中三维扫描取得的三角面多边形,经过两类不同的软件处理后,分别能得到 3D CAD 模型及四角面多边形网格,以供不同产业使用

三角面多边形网格 (triangle mesh),3D CAD 模型,以及四角面网格 (quad mesh)的关系
(制图: 贝特三维 – 版权所有)

逆向工程一定需要使用三维扫描仪 (3D Scanner) 吗?

如上述,狭义的逆向工程指的仅是将多边形网格转换为 3D CAD 模型的过程,至于这个多边型网格是怎么来的,并不是此一流程关注的重点。只要格式正确,逆向工程软件/插件都能够将其导入并依据其外形进行建模。

在工业设计领域,大多情况下您会使用三维扫描义 (3D scanner),因为这种技术在量测过程中不需要接触工件,对工件的破坏最少。但一些情况中,人们可能会倾向使用接触式的三次元量测仪 (Coordinate Measuring Machine,简称 CMM) 或以断层扫描仪 (CT scanner) 来取得网格数据。

一台装置于机械臂上的高阶三维扫描仪 (3d scanner) 正在扫描一个机动车金属零件

高阶的蓝光三维扫描仪 (blue light 3d scanner) 装载在机械臂上,以数控方式对工件进行三维扫描

另外还有一类特殊应用场景,是希望将多边形建模软件如 Maya, 3ds Max, ZBrush 的模型 (也能以 OBJ 或 STL 格式导出) 转换为 3D CAD 格式,并继续在正规工业软件中进行产品设计,这时您同样也需要依赖逆向工程软件/插件来进行转换。

三维建模软件 ZBrush 的视窗撷图 (缩图),展示其工作介面及模型的四角面多边形 (quad polygon mesh) 本质

三维建模软件 ZBrush 与其建构的四角面多边形网格 (quad polygon mesh)。该模型若想进行后续工业设计及生产制造,
同样需要逆向工程软件来转换为 3D CAD 模型 (制图: 贝特三维 – 版权所有)。

逆向工程 ≠ 山寨

看到这里,您应该明白逆向工程是产品开发过程中的一个技术类别,以特定软件/插件来执行。此一技术本身是中性的,端看如何被利用。逆向工程不是山寨的代名词,也绝不该被用于非法的山寨行为。智慧财产权是工商社会赖以持续进步必不可少的元素,我国近年大力推广并完善智慧财产权相关法规,任何人的智慧财产都应该被尊重及保障,而不被不肖人士所盗取。

如果您需要使用逆向工程对任何产品外形进行复刻,请确保您得到该产品智慧财产权所有者的同意,否则您可能面临法律纠纷。贝特三维在此不为任何使用我们软件产品进行逆向工程的行为负责及背书,一切逆向工程的应用仅属于用户单方面的行为而与我们无关。

文档导览