模型修复:如何在 Cympha Studio 中用 Fix model 修复网格
Fix model 是 Studio 的一键模型修复:一次性修复原始 STL、PLY 或 OBJ 扫描,封闭 5 mm 以内的孔洞并保留最大区域,然后再把文件放入牙科病例.
适用对象: 刚加载了一份需要在配准、测量或导出前清理的 .stl、.ply 或 .obj 网格的临床医生和技工所设计师 —— 典型来源包括原始口内扫描、分割后的牙齿网格、第三方导出文件,以及任何以三角形"散料"形式出现的几何数据.
你将了解到: 何时该用 Fix model,何时应使用更具针对性的工具;如何从网格右键菜单调用它;流水线会对你的几何做些什么;运行时如何解读状态消息;以及那个让人栽跟头的注意点 —— "最大区域"那一步.
所需时间: 几秒钟. 流水线在单颌扫描上很快完成,在密集的全口网格上会明显更久.
开始之前
你需要:
- 已通过顶部工具栏的 Add model (+)、☰ Open optical scan file…、拖放或 URL 加载到场景中的网格. 支持格式:
.stl、.ply、.obj. - 未加载 GuideMia 病例. ** Fix model 与其他独立清理命令仅在没有完整
.gvw病例打开时,才会出现在用户添加网格的右键菜单中**. 如果已加载病例又想清理另一份扫描,请先使用 ☰ → Clear scene,或在新的 Studio 标签页中打开该扫描. - 原文件备份. Fix model 会原地重写几何. <kbd>Ctrl</kbd>+<kbd>Z</kbd> 可恢复上一版几何 —— 但撤销只有一步,如果你在做了后续编辑之后才发现问题,就需要原文件重新导入.
登录 studio.cympha.com 并打开你的网格.
**何时使用 Fix model. ** 当你想对整张网格做一次保守的处理时使用它 —— 典型场景是刚从扫描仪导出的 STL,或带小孔洞、重复顶点、非流形边的第三方导出. 如果你能精确看到缺陷位置且想保持其它表面不变,改用定点工具(Smart cleanup…、Delete region…、Local smoothing…). 参见 如何用笔刷工具清理网格.
第 1 步 —— 打开网格右键菜单
- 在主 3D 视图中直接在网格主体上右键单击. 在空白区域右键无法打开清理菜单 —— Studio 需要在网格本身上拾取到一个点.
- 菜单在光标位置打开. 菜单标题显示你点击的网格的文件名,所以在场景中有两个牙弓时,你可以确认即将编辑哪一个.
- 在菜单外单击或按 <kbd>Escape</kbd> 可关闭菜单且不执行任何操作.
**如果菜单中没有
Fix model. ** 最可能的原因是加载了 GuideMia 病例 —— 在该模式下独立清理被隐藏,以防病例几何被意外覆写. 如果你是在独立处理扫描且无需病例,请用 ☰ → Clear scene. 如果你在带有病例元数据的网格上(.gvw计划中的一颗牙)右键,该命令也会被隐藏,即便场景中还有其它用户添加的网格.
第 2 步 —— 运行 Fix model
- 在右键菜单中选择 Fix model.
- 流水线在主线程上执行时,视图切换为等待光标. 在密集网格上,浏览器标签页会感觉有几秒无响应 —— 这是预期表现,并非卡死.
- 关注视口底部的状态行. 它会报告:
- 开始:"Fix model: running pipeline…"
- 成功:"Fix model complete (holes ≤5 mm, non-manifold, clean, smooth)."
- 失败:"Fix model failed: …" 并附简短原因.
- 成功后,清理后的几何会替换场景中的原网格.
流水线实际做了什么
Fix model 是一组固定顺序的保守清理步骤,按下列顺序对整张网格应用:
- **合并重合点. ** 把位置相同但顶点索引不同的三角形焊接起来,使边真正连通. 这是修复"STL 散料"(每个三角形各自为岛)最关键的一步.
- **去除非流形结构. ** 剥离非流形点和有问题的边,然后丢弃内部元素与悬挂元素.
- **再次清理,然后保留最大连通区域. ** 这一步丢弃漂浮岛 —— 与主壳不连通的零散三角形. 这一步可能会让你吃惊(见下文注意点).
- **填充小孔洞 —— 两遍. ** 小的开口被封闭;较大的开口被有意保留为开放,以免过滤器跨越真实的缺口架桥. 第二遍捕获第一遍暴露出来的洞.
- **再清理一次,然后轻度光顺. ** 故意保持轻度 —— 刚好够消除三角形尺度的阶梯,但不会把解剖结构磨圆.
- **重新计算顶点法线. ** 这样不论源文件如何存储法线,视图中的着色都是稳定的.
这些步骤的参数都无法调整 —— Fix model 有意保持为一键操作. 如果你只想对网格的一部分使用不同的填洞行为或光顺强度,请改用定点工具. 参见 如何对整张表面填洞与光顺 和 如何用笔刷工具清理网格.
成功的样子
- 状态行显示 "Fix model complete (holes ≤5 mm, non-manifold, clean, smooth)."
- 可见网格保留了整体形状,小孔已封闭,表面比原始稍微更光顺.
- 顶部工具栏 Models 中该网格条目仍在,颜色与可见性设置保留,只是几何被原地重写.
- 如果之后把场景保存为
.cyp项目,随项目一起的将是清理后的网格,而非原始输入文件.
最大区域注意点
"保留最大连通区域"这一步是 Fix model 唯一可能做出你意料之外行为的地方. 如果扫描包含两个真实但物理上不相连的壳 —— 例如分割为单独导出的上颌加分割出来的孤立牙齿,或耳部脱离的面部扫描 —— 流水线只保留按三角形数量计最大的那块,丢弃其它.
对大多数扫描仪原始输出而言,这是保守的处理 —— 不连通的岛通常是噪声. 但当较小的那部分是你想保留的东西时,这就是错误选择.
如果你发现结果丢失了材料:
- 不要在缩水后的网格上继续工作. 立即按 <kbd>Ctrl</kbd>+<kbd>Z</kbd> —— 网格几何编辑保留恰好一步撤销,可恢复运行 Fix model 前的几何. 如果已做了后续编辑,则重新导入原文件(再次 Add model,浏览到同一源). 然后要么完全跳过 Fix model,要么只在异常区域上使用定点笔刷工具.
- 对于确实由两个或多个分离壳组成、且你希望合并为一份网格的扫描,先在你的扫描软件里配准或合并它们,再带入 Studio. Fix model 无法判断哪些岛是解剖结构,哪些是噪声.
故障排查
**右键菜单不显示 Fix model. ** 最可能的原因是加载了 .gvw 病例 —— 如果是在独立处理,使用 ☰ → Clear scene 清场. 或者你在带有病例元数据的网格上右键 —— 改在用户添加的网格上右键.
状态行显示 "Fix model failed: empty result." 流水线运行了但未产生任何三角形. 通常表示输入网格病态到清理步骤无法应对(每个三角形都非流形,或清理后最大连通区域为空). 重新导入原文件,先在问题区域试用 Fill holes 或 Smart cleanup….
**网格看起来比之前"更软"了,但我并不想做平滑. ** Fix model 最后总会做一次轻度光顺 —— 强度温和但在高分辨率扫描上肉眼可见. 如果你想要零平滑,就不要用 Fix model;改为组合使用 Fill holes 和定点笔刷清理,或在专门的网格编辑工具中打开扫描.
**Fix model 丢掉了一颗牙 / 一块我想保留的小漂浮件. ** 这是"最大区域"步骤造成的. 按 <kbd>Ctrl</kbd>+<kbd>Z</kbd> 恢复上一版几何(一步撤销),或重新导入原文件,然后选择:要么在扫描软件中预先合并这些岛,要么跳过 Fix model,在具体缺陷上使用笔刷工具.
**浏览器标签页好几秒像卡住了. ** 流水线运行在主线程,因此 UI 在处理期间无响应. 等待状态行更新 —— 密集的全口网格合理情况下也可能耗时较久. 不要在流水线进行中重新加载标签页.
相关教程: 如何对整张表面填洞与光顺 · 如何用笔刷工具清理网格 · 如何在 Cympha Studio 中构建虚拟患者 · Cympha Studio 操作参考
