【3D 打印避坑实录】如何用 Blender 彻底修复空壳 STL

关键词 :3D 打印 / Cura / Blender / Shells / Infill / STL 修复
适用人群:3D 打印新手 & 被"怎么调填充都没用"折磨过的人


一、问题现象:不管怎么调 Infill,模型内部都是空的

很多人在 Cura 里会遇到这样的问题:

  • Infill 从 10% 调到 100%
  • 预览里模型依然是空的
  • 有的地方"看起来有填充",有的地方完全没有
  • 甚至同一个模型,切一刀有实有空

一开始很容易误以为是 Cura 的参数问题。

但事实是:

👉 这不是切片问题,而是模型本身的问题。


二、核心原因:Cura 不知道"哪里是内部"

Cura 的判断逻辑其实非常简单:

只有当 STL 是一个"单一、封闭的实体(Volume)",
它才知道哪里是 inside,才能生成 infill。

如果模型是下面这种情况之一:

  • 只是"一层皮"(Surface)
  • 有多个不相连的壳(Shells > 1)
  • 局部是实体,局部是空壳

那么在 Cura 看来:

"我看到的是几张表面,

但我不知道'里面'在哪里,

那我就没法填。"

这时候你怎么调 Infill 都没用。


三、关键指标:Shells = 1 才是分水岭

判断一个模型能不能正确填充,有且只有一个关键指标:

👉 Shells 是否等于 1

  • Shells > 1

    → 多个壳体 / 空壳 / 零散部件

    → Cura 无法统一判断内部

    → 填充异常或不出现

  • Shells = 1

    → 单一封闭实体

    → Cura 可以明确 inside / outside

    → Infill 正常生成


四、用 Blender 修复 STL:只做一件事就够了

结论先给出:是的,用 Blender 一个软件就完全够了。

不需要 Netfabb

不需要 Meshmixer

不需要在线修复工具

核心工具只有一个:Voxel Remesh


1️⃣ 导入 STL,准备工作

  • 打开 Blender

  • 导入 STL

  • 切到 物体模式(Object Mode)

  • 执行:

    复制代码
    Ctrl + A → 应用 → 缩放(Scale)

    确保 Scale = 1 / 1 / 1

⚠️ 这一步不是"改大小",

而是让 Blender 的几何尺寸变成"真实尺寸"。


2️⃣ 进入雕刻模式,进行 Voxel Remesh

  • 切换到 雕刻模式(Sculpt Mode)

  • 找到 Voxel Remesh

  • 关键参数(经验值):

    • Voxel Size:0.8 ~ 1.2 mm(模型约 10cm 时)
    • 勾选:Preserve Volume / Fix Poles

这一步的目的不是"变好看",

而是 强制把多个 Shell 融合成一个实体


3️⃣ 检查结果:Shells 是否等于 1

  • 回到 物体模式

  • 打开 3D Print Toolbox

  • 点击 Check All

  • 查看结果中的一行:

    Shells = 1

✅ 到这里,模型在"工程意义上"已经修复完成。


五、修复前后对比(图片示例)

图 1:修复前(Shells > 1,无法正确填充)


说明:模型存在多个 Shell,Cura 只能看到"皮",无法判断内部


图 2:修复后(Shells = 1,Infill 正常)


说明:模型成为单一封闭实体,Cura 正确生成内墙和填充


六、回到 Cura:为什么现在一切都正常了?

当你把修复后的 STL 导入 Cura:

  • 红色:外墙(Outer Wall)
  • 绿色:内墙(Inner Wall)
  • 橙色:填充(Infill)
  • 黄色:顶部 / 底部实心层

橙色填充连续、完整地出现在模型内部,这说明:

👉 Cura 终于"知道哪里是 inside 了"。

这不是 Cura 变聪明了,

而是 你把模型变成了 Cura 能理解的东西


七、关于 Infill 的正确认知(顺便避个坑)

很多人修好模型后,会直接把 Infill 拉到 90% / 100%。

但实际经验是:

  • 强度主要来自外壳(Wall)

  • Infill 超过 30% 后,强度提升非常有限

  • 90% 只会:

    • 更费料
    • 更慢
    • 更重

对摆件 / 装饰模型,20--30% 已经是最优解。


八、最终总结(一句话版本)

Cura 不填充,从来不是 Cura 的问题,
而是 STL 没有"内部"。

只要用 Blender 把 Shells 修到 = 1,
Cura 自然就知道怎么填了。

相关推荐
三月微暖寻春笋3 分钟前
【和春笋一起学C++】(五十二)关于函数返回对象时的注意事项
c++·函数·const·返回对象·返回对象的引用
leiming66 分钟前
c++ transform算法
开发语言·c++·算法
菩提祖师_10 分钟前
基于VR的虚拟会议系统设计
开发语言·javascript·c++·爬虫
YxVoyager18 分钟前
Qt C++ :QJson使用详解
c++·qt
小尧嵌入式19 分钟前
c++红黑树及B树B+树
开发语言·数据结构·c++·windows·b树·算法·排序算法
Wuliwuliii38 分钟前
贡献延迟计算DP
数据结构·c++·算法·动态规划·dp
苦藤新鸡40 分钟前
2.字母异位词分组
c语言·c++·力扣·哈希算法
AAA.建材批发刘哥1 小时前
02--C++ 类和对象上篇
开发语言·c++
橘颂TA1 小时前
【Linux】从 “抢资源” 到 “优雅控场”:Linux 互斥锁的原理与 C++ RAII 封装实战(Ⅰ)
linux·运维·服务器·c++·算法
枫叶丹41 小时前
【Qt开发】Qt系统(三)->事件过滤器
java·c语言·开发语言·数据库·c++·qt