STL模型修复权威指南【3D打印】

news2024/12/28 4:57:54

设计师和工程师通常需要软件来调整、修复和最终确定 3D 打印的 3D 模型。 幸运的是,手动网格编程的时代早已一去不复返了。

在这里插入图片描述

推荐:用 NSDT设计器 快速搭建可编程3D场景。

如今,有一系列专用工具可提供自动和手动 STL 修复功能。 自动向导足以满足大多数模型的需要,并修复小错误,例如孔和松动的外壳,但具有更严重错误的模型将需要独立的解决方案。

在本指南中,我们描述了修复 STL 文件的工作流程,并使用五种最好的 STL 修复软件工具逐步完成该过程,以完全修复模型以实现 3D 打印准备。

1、为什么要修复 STL 文件?

3D 设计师通常使用复杂的曲面制作方法构建模型。 这会产生由曲线和样条线定义的数学上“完美”的几何形状。 对于 3D 打印,表面被转换为网格格式,将几何形状描述为由连接的三角形面和顶点组成的云。

网格转换就像打碎一面完美光滑的镜子,然后将所有碎片粘合在一起,使其看起来像原来的一样。 如果做得不好,结果是模型具有各种边缘、孔洞和浮动部分,以及具有许多不属于该模型的相交三角形的区域。 如果做得好的话,3D 打印出来的是一个没有孔的流形网格,与原始设计没有区别。
在这里插入图片描述

一个有多种缺陷的 3D 模型网格

2、如何修复 STL 文件

典型的 STL 文件修复工作流程包含以下步骤:

  • 自动修理。 STL 修复软件的向导将尝试修复所有主要错误,包括孔、分离壳和交叉点。
  • 分离壳。 网格由连接的三角形的集合组成。 它可以包含多个连续的表面,理想情况下这些表面连接在一起,而过时的表面则需要移除。
  • 堵住漏洞,弥合差距。 一些全面的 STL 修复程序允许不同的孔填充方式,例如平面、切线、直纹或自由形状。
  • 解决重叠和交叉问题。 这通常需要重新计算网格的整个部分。
  • 过滤掉双面、双顶点、反转法线和尖锐、狭窄的三角形。
  • 缝合开放边缘和剩余孔。
  • 通过删除和创建三角形进行手动修复。
  • 重新划分网格以优化三角形计数。
  • 导出为选定的网格格式。

最流行且存储友好的格式是 STL(StereoLiThography),我们将在本文中使用它。 我们建议以二进制格式保存 .STL 文件,因为它可以进一步减小文件大小。 正如我们的 Meshmixer 教程中所述,还有其他几种有用的格式,例如 AMF、Collada、OBJ 和 PLY,它们具有用于存储材质、颜色、渲染、3D 扫描和 3D 打印信息的特殊品质。

有多个软件包提供网格修复功能,例如 FreeCAD、SketchUp、3D Studio Max 和 Rhinoceros,以及在线服务,例如 Willit 3D Print、MakePrintable、3DPrinterOS、SculptGL 和 Shapeways。

3、 STL 模型修复工具对比

有效性效率UI多功能性网格重构自动修复顶级功能适合谁?成本
Meshmixer★★★★★★★★★★★★★★★★★★★★★★★★UI、网格重构和自动修复3D 艺术家免费
Netfabb★★★★★★★★★★★★★★★★★★★填充和支持工程师免费 (edu)
Magics★★★★★★★★★★★★★★★★★★★★★人工修复工程师付费
Blender★★★★★★★★★★★★★★★CG艺术家免费
Meshlab★★★★★★★★★★★3D 扫描免费

根据我们的探索,最好的STL修复工具是Meshmixer。 它将用户友好的界面与修复复杂网格错误所需的所有选项结合在一起。 其额外的可能性和免费可用性使其成为毫无疑问的第一。 Meshmixer 也是编辑 STL 文件、重新雕刻整个截面以及优化和最终确定 3D 模型的有用工具。

Autodesk 的 Netfabb 因其先进的 3D 打印准备功能而面向工程师,因而脱颖而出。

Magics是一款专业的STL编辑器解决方案,提供种类繁多的STL文件修复功能,但通常需要更多的手动修复工作。 因此,Magics排在第三位。

虽然 Blender 更适合 3D 建模并且具有复杂的界面,但它仍然提供成功网格修复所需的大部分功能。

最后,Meshlab 是一款必备的轻量级网格查看器和编辑器,它通过先进的重新网格化脚本弥补了文件修复功能和用户友好性方面的不足。

以下部分使用衣帽钩的复杂 3D 模型对五种 STL 修复工具进行测试,该模型存在多个主要错误,包括孔、间隙、交叉点和浮动三角形。 挂钩需要与安装圆柱体结合以形成单个防水网。

请继续阅读,了解五个最佳 STL 修复程序的逐步修复过程。

4、Meshmixer

Meshmixer 是一款多功能且用户友好的网格编辑程序。 不仅可以优化三角形网格,还可以重新雕刻整个截面、风格化模型或向其添加有用的功能。

当将衣帽钩加载到 Meshmixer 并启动 Analysis → Inspector 时,我们发现它确实显示了所有网格错误。 在“着色器”下,选择 X 射线模式以获得更好的可见性。 在通过单击点指示器修复单个错误或运行“自动修复所有”之前,请确保选择正确的孔填充模式,这在大多数情况下足以完成工作。

在这里插入图片描述

使用检查器中的 X 射线着色器查看所有错误

另一种孔修复过程是选择孔周围的区域,然后使用弹出菜单中的编辑 → 擦除和填充 (F) 操作。 将类型设置为 Smooth MVC 会产生良好的连续填充。 编辑 → 制作实体或编辑 → 替换和填充是产生闭合网格的其他替代方法。 使用 RobustSmooth 雕刻笔进行额外的操作会将改进的区域完全融入模型中。

如果模型由单独的壳组成,请转到编辑 → 单独的壳并打开对象浏览器 (Ctrl + Shift + O)。 现在,一次逐渐选择两个 shell,然后从弹出窗口中单击“布尔并集”。 在新打开的子菜单中,“精确”或“最大质量”模式将保持两个对象之间的相交曲线,而“快速近似”则要快得多,通常就足够了。

如果布尔运算失败,则会产生两个红色对象。 在这种情况下,请调高“搜索深度”参数并降低“目标边缘比例”以增加成功机会。 检查使用相交曲线也可以提高质量。 如果所有其他方法都失败,在“编辑”→“变换”部分中将其中一个壳移动百分之几毫米即可解决问题。

自动修复全部将删除浮动部分并修补所有边界循环。 在这种情况下,我们想要手动连接其中一个支柱中的间隙。 这就是桥接工具的用武之地。它在直线部分上效果最好,并且由于这是圆形环路之间的间隙,因此最好分段修补。 选择“编辑”→“选择”并突出显示要连接的两侧的三角形。 然后从弹出菜单中点击“编辑”→“桥接”(Ctrl + B),并将“优化”参数设置得足够高,以实现平滑连接。 对间隙周边的几个区域重复“桥接”命令,然后使用检查器填充剩余的孔。 一个好的错误预防做法是在修复之前使用编辑 → 重新网格化,以增加和均匀化相关区域的三角剖分。
在这里插入图片描述

连接圆柱形间隙需要在 Meshmixer 中进行多次桥接、重新网格划分和孔填充操作。

5、Meshlab

Meshlab是一款专门从事与3D扫描数据相关的网格操作的软件套件,并提供许多重新三角测量和高级修复算法。 一个有用的方法是过滤器→重新划分网格、简化和构造→简化(二次边缘折叠抽取),因为它会根据目标面数重新计算网格。 检查平面简化将最好地保留平面。 另一种三角形缩减方法是过滤器→清理和修复→合并关闭顶点。

可以通过右键单击项目窗口中的零件并选择“在连接的组件中拆分”来检测浮动元素。 然后可以使用 Union 运算符将单独的 shell 单独删除或与 CSG 操作合并回来。

在这里插入图片描述

Meshlab 中的基本修复实用程序:闭孔、布尔运算和画笔选择。

为了桥接间隙,可以使用工具栏中的“在矩形区域中选择面”工具删除三角形组。 按住 Alt 键可将背面排除在选择之外,使用 Shift + Ctrl + D 取消选择。 要选择单个三角形,请单击工具栏上的 Z 绘画工具并选择红色画笔图标。 左键单击选择三角形,右键单击删除选择,然后点击删除删除三角形。

由于 Meshlab 没有实现任何三角形创建功能,因此我们驻留在 Filters → Remeshing, Simplification and Construction → Surface Reconstruction: VCG 下的曲面生成方法。 如果体素侧的设置足够低,测地权重和体积拉普拉斯迭代的值足够高,它将产生平滑的流形网格。 通常推荐使用此方法,而不是过滤器 → 重新划分网格、简化和构造 → 筛选泊松曲面重建。

另一种替代方法是生成 Alpha Complex,然后生成 Alpha Shape,有时可以使用正确的值。 对于重新网格化操作,Meshlab 在“过滤器”→“重新网格化、简化和构造”→“均匀网格重采样”下提供了一个体素化器,它会生成流形网格并提供可用于创建空心零件的偏移参数。

注意:在每次重要操作后保存网格! Meshlab 没有撤消功能,需要重新导入原始网格。

在这里插入图片描述

Meshlab 中的高级表面重建功能,有些功能比其他功能更成功

6、Magics

Materialise Magics 是一款专业的 3D 打印数据准备工具,允许对网格进行广泛的手动控制,包括壁厚分析、挖空、重新网格化、平滑、布尔和切割操作,以及修复孔、坏边缘和最复杂的三角形错误 。

修复错误通常是使用红十字图标下的修复向导完成的。 单击“转到建议步骤”将打开诊断表以检查要修复的不同错误。 对于大型网格,建议取消选中“重叠三角形”和“相交三角形”并首先修复主要错误。 选择“更新”后,再次单击“转到建议步骤”,然后单击“自动修复”——这将修复大多数错误。

如果修复向导无法修复不良边缘和重叠三角形,则“修复向导”菜单中“缝合”下的“缝合”功能通常在足够高的公差设置下非常有用。 对于剩余的重叠三角形,请再次运行“修复向导”或从“修复向导”菜单的“重叠”部分中选择“检测重叠”。 这将选择所有重叠,然后通过点击“删除标记”将其删除。 同样,可以在“三角形”→“检测相交”下对相交三角形执行此操作。 如果缝合剩余间隙未完成修复,“创建”按钮现在允许手动填充剩余间隙。 网格部分也可以在主菜单的“标记”选项卡下手动标记。 可以在“噪声壳”部分下删除浮动部分。 对于大型非平面孔,使用“修复向导”菜单中“孔”下的“自由形状”选项手动填充这些孔将获得最平滑的填充补片。 “直纹”选项允许指定孔所遵循的方向,在本例中,用于在手动创建一些桥接三角形后桥接花朵雄蕊之一中的圆柱形间隙。

有时修复向导不会合并网格中的不同壳。 要解决此问题,请右键单击主屏幕上“零件页面”→“零件列表”菜单中的零件,然后选择“外壳到零件”。 这会创建单独的网格,选中后可以使用“工具”→“布尔”(Ctrl + B) 功能组合这些网格。

在这里插入图片描述

Magics 中有机形状和圆柱形形状的高级孔填充功能

7、Blender

Blender 是一个免费的开源网格创建环境,包括 3D 建模、绑定、渲染和动画。 下部工具栏的“网格”菜单上的“编辑模式”下提供了多种 STL 修复功能。 CellBlender 附加组件提供了网格分析工具来检查流形并查找流形错误。 在开始任何修复脚本之前,请确保选择相关的网格或部分。

网格 → 法线 → 重新计算外部 (Ctrl + N) 可翻转任何具有反转法线的三角形。 检查顶部的信息窗格以获取结果,如果生成了四边形,可以使用“网格”→“面”→“三角化面”(Ctrl + T) 将它们转换为三角形。 网格→退化→溶解删除没有区域的边缘和面。 使用“网格”→“顶点”→“删除双点”删除重复的顶点以将边焊接在一起。

在这里插入图片描述

桥接、孔填充和布尔函数都在 Blender 中体现

在 Blender 中填充洞的最简单方法是首先使用 Select → Select Boundary Loop 选择边界循环,或使用 Select → Select All by Trait → Non Manifold (Shift + Ctrl + Alt + M) 选择所有非流形边缘,然后 点击“网格”→“面”→“制作边/面”(F) 或“网格”→“面”→“填充”(Alt + F) 以改进填充。 可以通过右键单击一条边或顶点、按住 Shift 键并右键单击第二个边或顶点并按 F 来创建单个三角形。

在编辑过程中,在由三个图标指示的“顶点选择”、“面选择”或“边选择”模式之间切换会很有帮助 在底部工具栏。 选择特定区域可以通过选择 → 圆形选择 © 来完成,其工作方式类似于画笔选择。 使用鼠标滚轮或数字加/减按钮更改画笔大小,按住 Shift 键取消选择。 网格→面→美化面(Shift + Alt + F)有时可以提高选定区域的网格质量。 可以使用 Alt + 右键单击来选择单个边界循环。 选择两个开放边界循环后,选择“网格”→“边”→“桥边循环”,两个区域将平滑连接。

选择“网格”→“顶点”→“分离”→“按松散零件”将在项目浏览器中为每个外壳创建一个对象。 这使得删除不需要的网格对象成为可能。 单独的外壳可以使用布尔修饰符连接在一起。 如果所有其他方法都失败,请实施重新网格修改器并将八叉树深度增加到 8 左右或直到结果令人满意。 要增加某些区域的壁厚,请转到“雕刻模式”并使用下部菜单“画笔”→“雕刻工具”中的“膨胀”画笔。

8、Netfabb

Autodesk Netfabb是一款先进的3D打印文件准备工具,其自动修复功能嵌入在Formlabs PreForm等软件中。 它提供标准版、高级版和终极版,其中前两个版本可免费用于教育用途。

Netfabb 提供额外的网格编辑程序,例如空心、自定义支撑构建以及 Lattice Assistant 和 Lattice Commander,它们对于开发轻量级零件有很大帮助。 Ultimate 版本提供了一个优化实用程序,可使用 FEA 分析根据施加的载荷对零件进行结构优化。

通过“文件”→“将 CAD 文件导入为网格”功能,不仅可以导入各种格式的网格模型,还可以导入来自 Catia、Siemens NX、SolidWorks、SolidEdge、Rhinoceros、ProE、Sketchup 的本机文件,并支持 STEP、IGES、SAT 和 Parasolid XT 文件。 要导入网格,请单击“文件”→“添加零件”,然后在对话框中选中“扩展修复”。 这可以解决导致 3D 打印文件的大多数错误。

在开始维修工作之前,分析零件很有用。 在任务栏中的“分析”图标下或在“零件”→“分析”→“新分析”→“添加零件”下右键单击零件后,可以快速检查壁厚。 右键单击零件,然后选择“分析”→“新测量”或从任务栏中选择标尺图标,该图标允许在特定点进行线性、半径、角度和壁厚测量。

在这里插入图片描述

高级 Netfabb 功能:壁厚分析和晶格结构

单击任务栏上的红色修复图标,打开“零件修复”部分。 如果自动修复脚本在导入时表现良好,则“状态”选项卡中的“网格已关闭”和“网格已定向”项目应检查为绿色。 在“操作”选项卡中,如果存在交叉点,可以进一步优化文件。 在“自相交”下,选择“检测”,然后选择“简单”(执行默认孔修复)、“缝合三角形”、“删除双三角形”、“删除简并面”或“拆分”,然后删除相交。 包裹零件表面的工作原理与体素化程序类似,并且仅留下歧管外蒙皮。 另外,请确保“Shells”选项卡下不存在噪声壳。

在这里插入图片描述

Netfabb 提供了先进的 STL 修复功能

当尝试弥补差距时,Netfabb 宁愿填补需要进一步手动修复的空洞。 点击主工具栏上的“选择曲面”图标并选择整个孔,然后单击“删除”。 或者,使用画笔选择工具并使用 Ctrl + 滚轮和加号/减号按钮来更改画笔大小和选择。 选择三角形后,选择“删除选定的三角形”图标,然后使用“添加三角形”按钮手动添加缺失的三角形以及一些桥接三角形。 修复 → 关闭所有孔操作将完成网格修复任务。 最后,我们可以选择使用“网格编辑”→“重新网格化”命令来细化网格,该命令根据目标边长度参数重新计算模型。 选中“维护边缘”选项以优化锐边周围的模型完整性。


原文链接:STL模型修复权威指南 — BimAnt

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/851783.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

zju代码题:4-6

一 分段函数算水费 #include <stdio.h>int main() {/*** 定义两个* 定义浮点型变量* y:水费* x:用水的吨数* */double x, y;printf("Enter x(x>=0):\n"

侯捷 C++ part2 兼谈对象模型笔记——2-xxx-like-classes

2 xxx-like classes 2.1 pointer-like classes 2.1.1 智能指针 设计得像指针class&#xff0c;能有更多的功能&#xff0c;包着一个普通指针指针允许的动作&#xff0c;这个类也要有&#xff0c;其中 *&#xff0c;-> 一般都要重载 template <typename T> class s…

工作中学到三个CSS伪类,直接少些几百行CSS代码~

前言 用最通俗易懂的话讲最难的知识点是我的座右铭&#xff0c;基础是进阶的前提是我的初心。分享一篇好文~ :where 基本使用 :where() CSS 伪类函数接受选择器列表作为它的参数&#xff0c;将会选择所有能被该选择器列表中任何一条规则选中的元素。 以下代码&#xff0c;文…

基于java SpringBoot和Vue零食销售网站设计

随着时代的发展&#xff0c;传统的超市购物方式已经不能满足人们的需求&#xff0c;对于顾客来说&#xff0c;排队购物和支付购物费用的问题亟待解决。对于实体超市来说&#xff0c;他们面临着网上购物的竞争压力&#xff0c;作为超市经理&#xff0c;他们要降低成本&#xff0…

全栈测试平台推荐:RunnerGo

做软件测试的同学在工作时应该都碰到过这种情况&#xff1a;接口管理、接口测试用postman、Apipost等接口管理工具&#xff0c;性能测试用jmeter、loadrunner等性能测试工具&#xff0c;接口自动化则是jmeter脚本或者python脚本配合jenkins使用。这种情况极大的降低了研发效率&…

聚观早报|网信办就人脸识别征求意见;地平线前总监入职比亚迪

【聚观365】8月9日消息 网信办就人脸识别应用征求意见地平线前总监廖杰入职比亚迪理想汽车预计三季度车辆交付量星纪魅族回应终止自研芯片业务上汽集团7月销量同比下滑21% 网信办就人脸识别应用征求意见 据网信中国微信公众号消息&#xff0c;为规范人脸识别技术应用&#xf…

自定义类型——联合

联合 1.联合体的定义 联合也是一种特殊的自定义类型。 先来看一个结构体变量&#xff1a; #include<stdio.h> #include<stdlib.h> union Un {char c;int i; }; int main() {union Un un;printf("%p\n", &un);printf("%p\n", &un.c)…

ad+硬件每日学习十个知识点(26)23.8.6 (DCDC的降压电路、升压电路、降压-升压电路,同步整流,选型考虑同步、隔离)

文章目录 1.DCDC的降压原理2.DCDC的升压原理3.DCDC的升压和降压原理4.什么是肖特基二极管造成的死区电压&#xff1f;5.MOS管有死区电压么&#xff1f;6.DCDC的同步整流&#xff08;用MOS管取代整流二极管&#xff0c;避免死区电压的影响&#xff09;7.DCDC选型——同步与非同步…

怎样学习PMP呢?

大多数人会觉得自己是工作者如果花时间去学习PMP精力上和时间上不好安排&#xff0c;其实上班族也是能学号pmp项目管理的。 首先&#xff0c;我把总结和思维导图打印出来&#xff0c;贴在镜子上&#xff0c;每天早上起来刷牙时&#xff0c;就可以过一遍这些内容。上班路上&…

《golang设计模式》第二部分·结构型模式-01-适配器模式(Adapter)

文章目录 1. 概念1.1 角色1.2 应用场景1.2 类图 2. 代码示例2.1 设计2.2 代码2.3 示例类图 1. 概念 定义一个适配器&#xff0c;帮助原本不能实现接口的类“实现”该接口 1.1 角色 目标&#xff08;Target&#xff09;&#xff1a;客户端调用的目标接口 被适配者&#xff08…

Vue3中v-model在原生元素和自定义组件上的使用

目录 前言 一、原生元素上的用法 1. 输入框(input) 2. 多行文本域(textarea) 3. 单选按钮(radio) 4. 多选框(checkbox) 5. 下拉选择框(select) 二、自定义组件上的用法 1. 定义一个名为 modelValue 的 props 属性和一个名为 update:modelValue 的事件 2.使用一个可…

岩土工程仪器多通道振弦传感器信号转换器应用于桥梁安全监测

岩土工程仪器多通道振弦传感器信号转换器应用于桥梁安全监测 桥梁作为交通运输的重要节点&#xff0c;其安全性一直备受关注。不同于其他建筑物&#xff0c;桥梁所处的环境复杂多变&#xff0c;同时&#xff0c;其所需承受的负荷也相对较大&#xff0c;这就需要对桥梁的安全进…

关于eclipse导入部署具有增删改查的项目

目录 前言&#xff1a;当我们刚刚进入公司的第一步就是去部署当前公司的项目&#xff0c;本博客就是详细介绍怎么去部署当前公司的项目。 一&#xff0c;开发工具&#xff1a; 二&#xff0c;具体步骤&#xff1a; 2.1导入公司的项目 打开eclipse开发工具 2.2配置当前的环…

windows 10 远程桌面配置

1. 修改远程桌面端口&#xff08;3389&#xff09; 打开注册表&#xff08;winr&#xff09;, 输入regedit 找到配置项【计算机\HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Terminal Server\Wds\rdpwd\Tds\tcp】 &#xff0c; 可以通过搜索“Wds”快速定位。 修改端口配…

Linux线程同步(条件变量)

文章目录 前言一、条件变量概念二、条件变量相关的函数三、条件变量模拟生产者消费者模型四、使用条件变量的好处总结 前言 本篇文章来讲解一下条件变量的使用。 一、条件变量概念 条件变量&#xff08;Condition Variable&#xff09;是并发编程中一种线程同步机制&#xf…

解决阿里图标引入彩色图标却是黑色的问题

解决阿里图标引入彩色图标却是黑色的问题 下载symbol文件&#xff0c; 引入这些文件&#xff1a; 使用&#xff1a; <svg class"icon" aria-hidden"true"><use xlink:href"#icon-图标名称"></use></svg>.icon {width: …

Flowable-结束事件-取消结束事件

目录 定义图形标记XML内容使用示例视频教程 定义 取消结束事件只能与 BPMN 事务子流程结合使用&#xff0c;它可以取消一个事务子流程的执行&#xff0c;同时 也只能在子流程中执行。实际应用中&#xff0c;会把取消事件&#xff0c;事务子流程&#xff0c;补偿事件一起用。当…

实例033 制作闪烁的窗体

实例说明 Windows系统中&#xff0c;当程序在后台运行时&#xff0c;如果某个窗口的提示信息需要用户浏览&#xff0c;该窗口就会不停的闪烁&#xff0c;这样就会吸引用户的注意。同样&#xff0c;如果在自己的程序中使某个窗口不停的闪烁就会吸引用户的注意。本例设计了一个闪…

adb用法,安卓的用户CA证书放到系统CA证书下

设备需root&#xff01;&#xff01;设备需root&#xff01;&#xff01;设备需root&#xff01;&#xff01; ​​​​​​​测试环境&#xff1a;redmi 5 plus、miui10 9.9.2dev&#xff08;安卓8.1&#xff09;、已root win下安装手机USB驱动&#xff08;过程略&#xff0c…

图像的转置之c++实现(qt + 不调包)

1.基本原理 图像的转置就是将图像的横坐标和纵坐标交换位置&#xff0c;和矩阵的转置是一样的&#xff0c;公式见下&#xff1a; 2.代码实现&#xff08;代码是我以前自学图像处理时写的&#xff0c;代码很粗糙没做任何优化&#xff0c;但很好理解&#xff09; /*图像的转置函…