Mia碼上AI
AI 工具實測·

不會 3D 也能建模?我讓 Opus 5.5 和 GPT-6 Astra 直接操作 Blender

模型都能在下面轉著看,切到「單色」就是列印出來的樣子;提示詞能複製,STL 能下載,自己拿去切片。

闖關 · 一句話工坊 · 第 4 關看完這條就過一關,+30 經驗這一關過了
下一關
在 YouTube 訂閱

燈塔小島:開著視窗現場搭

兩邊連的是 Blender 官方的 MCP 外掛,同一句話。點上面的按鈕換模型,點「單色」看打出來的樣子。

3DBlender 裡的燈塔小島打開 →
給兩邊的同一句話
Blender 已经打开,并通过 MCP 连上了你(blender 这组工具)。请直接在这个打开的 Blender 里一步一步地搭:每加一组东西就截一张视口图看看效果,我想看着它在窗口里一点点长出来。

先清空场景(删掉默认的立方体、相机、灯),然后搭一个桌面微缩场景:海边的灯塔小岛。直径 8 厘米左右的圆形底座,上面是海水和一座小岛:一座红白条纹的灯塔、一间守塔人的小屋、几块礁石、几棵树、岸边一条小木船。卡通、温馨的风格,摆在书桌上要好看。1 Blender 单位 = 1 米,按真实的打印尺寸建(底座直径约 0.08)。

- 要能直接 3D 打印(FDM,拓竹打印机,0.4 mm 喷嘴,PLA),整个场景一体打印:封闭的实体(几块互相重叠的封闭实体也行),底面平、贴在 z = 0,最薄的地方不少于 1.2 mm,尽量少用超过 45° 的悬空。Blender 里装了 3D Print Toolbox 扩展(print3d_toolbox),可以拿来检查。
- 给物体上材质颜色,加灯光和相机,让效果图好看(打印是单色的,颜色只用于效果图)。

做完后:
1. 把文件存成 <你的工作目录>/scene.blend;
2. 把要打印的部分导出成 <你的工作目录>/print.stl(单位毫米);
3. 用 render_viewport_to_path 渲一张效果图到 <你的工作目录>/final.png;
4. 最后用几句话说:一共改了几轮、每轮改了什么、遇到什么问题、成品能不能直接打印。

所有建模都在这个打开的 Blender 里用 blender 工具做,不要另外启动 Blender。只在 <你的工作目录> 里读写文件。整个过程控制在 40 分钟以内。
Opus 那座單色打出來光禿禿,我在同一個對話裡補了這一段
Blender 又打开了,就是你刚才存的 <你的工作目录>/scene.blend,还是通过 MCP 连着你。

我把效果图和打印的样子对比了一下,发现一个问题:打印是单色的,打出来颜色全都没了。红白条纹、门窗、海水和沙滩都会变成同一个颜色,现在这一版打出来基本只剩几个光秃秃的形状。

请在这个场景的基础上改,让这些细节单色打印也能看出来:用凹凸、高低、纹理来表现,比如灯塔的条纹、门窗、屋顶、海浪和沙滩的分界。打印要求和刚才一样:一体打印、封闭实体、底面平贴 z = 0、最薄的地方不少于 1.2 mm、尽量少用超过 45° 的悬空。

一样边改边截视口图看效果。改完后:
1. 存回 <你的工作目录>/scene.blend;
2. 重新导出 <你的工作目录>/print.stl(单位毫米);
3. 用 render_viewport_to_path 渲一张效果图到 <你的工作目录>/final.png;
4. 用几句话说你改了什么、成品能不能直接打印。

所有建模都在这个打开的 Blender 里用 blender 工具做,不要另外启动 Blender。只在 <你的工作目录> 里读写文件。控制在 30 分钟以内。

Mia 的小貼士

  • Opus 5.5 我是在 Claude Code 裡跑的,GPT-6 Astra 在 Codex 裡、推理開到 max。
  • 兩邊第一次匯出的 STL 都是空檔案:零件放在渲染裡隱藏的集合裡,匯出器會跳過。要是你拿到一個幾十位元組的 STL,就是這個原因。
  • 寫的時候直接說「細節要靠形狀,不靠顏色」:只說「列印是單色的」,它可能當成備註,窗戶、瓦片還是只上了顏色。
  • 這個外掛會直接執行 AI 寫的程式碼,沒有任何防護,別在放著重要檔案的 Blender 裡開。
  • 兩座我都用同一套設定切過片(0.4 mm 噴嘴、0.16 mm 層高、PLA):都不用加支撐,一個半小時左右、27 克上下。

寫腳本:手機支架、小貓、小房間

這一輪不開視窗:讓它們寫一個建模腳本,Blender 在後臺跑,再用檢查工具出效果圖和列印報告,它們自己看完再改。

3DBlender 裡的燈塔小島打開 →
小貓這道題的全文(另外兩道只換「任務」那一段)
# 任务
一个桌面小摆件:一只戴着头戴式耳机的小猫,坐着,卡通可爱风格,高 6 厘米左右。

# 要交的东西
在当前目录写一个 Blender 5.2 的 Python 脚本 `model.py`:在空场景里(没有默认立方体、相机、灯)用 bpy / bmesh / mathutils 把它建出来。不能用外部文件、插件、网络。
- 单位:1 Blender 单位 = 1 米,按真实尺寸建。
- 要能直接 3D 打印(FDM,拓竹打印机,0.4 mm 喷嘴,PLA):
  - 打印件是封闭的实体(可以由几块互相重叠的封闭实体组成,切片软件会合并),不要有单面片、破面;
  - 底面平、贴在 z = 0;
  - 最薄的地方不少于 1.2 mm;尽量少用超过 45° 的悬空。
- 给物体上材质颜色(只用于渲染效果图,打印是单色的)。地面、灯、相机不用你建,检查工具会自己加。

# 怎么检查
随时可以跑这条命令(它会清空场景、执行 model.py、渲染一张图、做打印检查):

    blender -b --factory-startup --python bl_harness.py -- --build model.py --render preview.png --engine eevee --samples 16 --res 960x540 --camera auto --studio --view iso --report report.json

- `--view` 可以换成 front / back / left / right / top 看别的角度(`--render` 换个文件名就能留几张);
- report.json 里 `build_ok` 为 false 时 `build_error` 是报错;`print` 一项是打印检查:`toolbox` 里 Non-manifold Edges 和 Bad Contiguous Edges 都是 0 才算封闭;Intersect Faces 是互相穿插的面(几块重叠的实体会有,可以接受);Thin Faces 是薄于 0.8 mm 的面;`bed_contact_mm2` 是贴床面积;`overhang_area_pct` 是悬空面积占比;`size_mm` 是长宽高。
- 渲染出来的图请自己打开看。

# 过程记录
- 第一版写完、还没跑过检查之前,先复制成 iter_01.py;之后每改一版,跑检查之前也复制一份(iter_02.py、iter_03.py……)。
- 做完写 notes.md:一共几版、每版改了什么、遇到什么问题、最后成品哪里还不够好、能不能直接拿去打印。
- 只在当前目录里读写文件。整个过程控制在 40 分钟以内。
手機支架的「任務」
一个手机支架:放在桌上用,手机横放、竖放都能稳稳靠住,后面留一个能穿充电线的口。一体打印,不加支撑。
小房間的「任務」
一个桌面微缩场景(diorama):在 8 × 8 厘米的方形底座上,搭一个温馨的等距视角小房间——两面墙、地板、窗户、书桌、椅子、电脑、台灯、书架、一盆植物。既要渲染出来好看,也要能整个一体打印出来。

Mia 的小貼士

  • 提示詞裡的檢查命令要換成你自己電腦上的路徑。檢查腳本就是一個 Blender 的 Python 檔案:跑模型腳本、渲一張圖、用 3D Print Toolbox 查破面和薄壁。沒有它也能做,但 AI 會少一雙「眼睛」。
  • 兩邊都踩過同一個坑:幾十個零件用 Blender 預設的精確布林合併會冒破洞,換成 Manifold 演算法就好了。你的模型合併出問題,可以直接叫它換這個。
  • Astra 的小貓網格有 86 萬個面,檔案四十多兆,我就沒放下載;網頁裡看的是減過面的版本。
  • Opus 的小貓,虎斑和白肚皮只是顏色,單色打出來是一隻素色貓;Astra 的眼睛、嘴、條紋都是凸起的。

有問題?去 YouTube 留言區聊聊