prepare-print-model
关于
This skill prepares 3D models for FDM/SLA printing by handling export, mesh repair, and printability analysis. It verifies wall thickness, generates supports, and optimizes part orientation to ensure successful slicing. Use it when exporting from CAD software, troubleshooting slicing failures, or converting model formats for printing.
快速安装
Claude Code
推荐npx skills add pjt222/agent-almanac -a claude-code/plugin add https://github.com/pjt222/agent-almanacgit clone https://github.com/pjt222/agent-almanac.git ~/.claude/skills/prepare-print-model在 Claude Code 中复制并粘贴此命令以安装该技能
技能文档
備齊列印模型
為加成製造匯出並最佳化 3D 模型。本技能涵蓋自 CAD/建模軟體匯出,至網格修補、可列印性分析、支撐生成與切片設定之完整流程。確保模型流形、壁厚足、方向正確以利強度與品質。
適用時機
- 自 CAD 軟體(Fusion 360、SolidWorks、Onshape)或 3D 建模工具(Blender、Maya)為 3D 列印匯出
- 切片前先驗證既有 STL/3MF 是否可印
- 排除無法正確切片或列印之模型
- 為強度、表面或最少支撐而最佳化擺向
- 為具特定強度或公差需求之機械件作準備
- 在保留可列印性下於格式間轉換(STL、3MF、OBJ)
輸入
- source_model:CAD 檔或 3D 模型檔之路徑(STEP、F3D、STL、OBJ、3MF)
- target_process:列印製程類型(
fdm、sla、sls) - material:擬用列印材料(如
pla、petg、abs、standard-resin) - functional_requirements:受力方向、公差需求、表面要求
- printer_specs:成形體積、噴嘴直徑(FDM)、層高能力
- slicer_tool:目標切片軟體(
cura、prusaslicer、orcaslicer、chitubox)
步驟
1. 自來源軟體匯出模型
以適合列印之格式匯出 3D 模型:
FDM/SLA 用:
# If starting from CAD (Fusion 360, SolidWorks)
# Export as: STL (binary) or 3MF
# Resolution: High (triangle count sufficient for detail)
# Units: mm (verify scale)
# Example export settings:
# STL: Binary format, refinement 0.1mm
# 3MF: Include color/material data if using multi-material printer
預期: 以適切解析度匯出之模型檔(機械件用 0.1mm 弦容差,有機形用 0.05mm)。
失敗時: 檢查模型是否完整定義(無構造幾何)、無遺面、所有元件皆可見。
2. 驗證網格完整性
檢查網格是否流形且可印:
# Install mesh repair tools if needed
# sudo apt install meshlab admesh
# Check STL file for errors
admesh --check model.stl
# Look for:
# - Non-manifold edges: 0 (every edge connects exactly 2 faces)
# - Holes: 0
# - Backwards/inverted normals: 0
# - Degenerate facets: 0
常見問題:
- 非流形邊:多面共享一邊,或邊僅連一面
- 洞:表面有縫
- 法線反向:模型內外顛倒
- 相交面:自交幾何
預期: 報告顯示 0 錯,或錯可修。
失敗時: 自動或手動修補網格:
# Automatic repair with admesh
admesh --write-binary-stl=model_fixed.stl \
--exact \
--nearby \
--remove-unconnected \
--fill-holes \
--normal-directions \
model.stl
# Or use meshlab GUI for manual inspection/repair
meshlab model.stl
# Filters → Cleaning and Repairing → Remove Duplicate Vertices
# Filters → Cleaning and Repairing → Remove Duplicate Faces
# Filters → Normals → Re-Orient all faces coherently
若自動修補失敗,回到來源軟體修建模錯(重合頂點、開邊、重疊本體)。
3. 檢查壁厚
驗證所擇製程之最小壁厚:
各製程之最小壁厚:
| Process | Min Wall | Recommended Min | Structural Parts |
|---|---|---|---|
| FDM (0.4mm nozzle) | 0.8mm | 1.2mm | 2.4mm+ |
| FDM (0.6mm nozzle) | 1.2mm | 1.8mm | 3.6mm+ |
| SLA (standard) | 0.4mm | 0.8mm | 2.0mm+ |
| SLA (engineering) | 0.6mm | 1.2mm | 2.5mm+ |
| SLS (nylon) | 0.7mm | 1.0mm | 2.0mm+ |
# Check wall thickness visually in slicer:
# - Import model
# - Enable "Thin walls" detection
# - Slice with 0 infill to see wall structure
# For precise measurement, use CAD software:
# - Measure distance between parallel surfaces
# - Check in critical load-bearing areas
預期: 各壁皆達所擇製程之最小厚。薄壁標記以便檢視。
失敗時: 回 CAD 加厚壁,或:
- 改用較小噴嘴(FDM)
- 啟用切片之「detect thin walls」
- 對原型接受較弱之強度
4. 判定列印擺向
擇擺向以最佳化強度、表面與支撐用量:
擺向決策矩陣:
為強度:
- 使層線垂直於主受力方向
- 例:受拉之托架→直立列印,使層沿受力軸堆疊
為表面:
- 使最大/最顯眼之面平於床(最少階梯)
- 關鍵尺寸對齊 X/Y 平面(精度高於 Z)
為最少支撐:
- 將懸垂 >45°(FDM)或 >30°(SLA)最小化
- 可能時將平面置於床上
受力方向分析:
If part experiences:
- Tensile load along axis → print with layers perpendicular to axis
- Compressive load → layers can be parallel (less critical)
- Bending moment → layers perpendicular to neutral axis
- Shear → avoid layer interfaces parallel to shear direction
預期: 已擇擺向並明示為強度、表面或支撐取捨之理由。
失敗時: 若無單一擺向滿足所有需求,依序排優:功能強度→尺寸精度→表面→最少支撐。
5. 生成支撐結構
為懸垂配置自動或手動支撐:
支撐角門檻:
- FDM:垂直 45°(部分搭橋可至 60°)
- SLA:垂直 30°(搭橋能力較弱)
- SLS:無需支撐(粉床支撐)
支撐類型:
樹狀支撐(FDM,建議):
- 與模型接點較少
- 易拆
- 有機形佳
- 設定:分支角 40-50°、密度中
線性支撐(FDM,傳統):
- 對大懸垂較穩
- 接點較多(拆較難)
- 設定:格紋、密度 15-20%、介面層 2-3
重支撐(SLA):
- 重件用厚接點
- 表面留痕之風險
- 設定:接觸直徑 0.5-0.8mm、密度依重量
介面層:
- 於支撐與模型間加 2-3 介面層
- 減少表面痕
- 略易拆
# In slicer (PrusaSlicer example):
# Print Settings → Support material
# - Generate support material: Yes
# - Overhang threshold: 45° (FDM) / 30° (SLA)
# - Pattern: Rectilinear / Tree (auto)
# - Interface layers: 3
# - Interface pattern spacing: 0.2mm
預期: 已為超出門檻之懸垂生成支撐,預覽顯示無浮空幾何。
失敗時: 若自動支撐不足:
- 於關鍵區加手動支撐強制器
- 於薄懸垂附近增支撐密度
- 切分模型分節列印(若無法支撐)
6. 設定切片設定檔
設製程適當之參數:
FDM 層高:
- 草稿:0.28-0.32mm(快、層紋顯)
- 標準:0.16-0.20mm(質速兼顧)
- 精細:0.08-0.12mm(順、慢)
- 規則:層高 = 噴嘴直徑之 25-75%
SLA 層高:
- 標準:0.05mm(兼顧)
- 精細:0.025mm(小件、高細)
- 快:0.1mm(原型)
各製程關鍵參數:
FDM:
layer_height: 0.2mm
line_width: 0.4mm (= nozzle diameter)
perimeters: 3-4 (structural), 2 (cosmetic)
top_bottom_layers: 5 (0.2mm layers = 1mm solid)
infill_percentage: 20% (cosmetic), 40-60% (functional)
infill_pattern: gyroid (FDM), grid (basic)
print_speed: 50mm/s perimeter, 80mm/s infill
temperature: material-specific (see select-print-material skill)
SLA:
layer_height: 0.05mm
bottom_layers: 6-8 (strong bed adhesion)
exposure_time: material-specific (2-8s per layer)
bottom_exposure_time: 30-60s
lift_speed: 60-80mm/min
retract_speed: 150-180mm/min
預期: 設定檔以製程適當之預設配置,並依特定材料/模型需求微調。
失敗時: 若不確定參數,先用切片之「Standard Quality」預設,再迭代。
7. 逐層預覽切片
檢視切片之 G-code:
# In slicer:
# - Slice model
# - Use layer preview slider to inspect each layer
# - Check for:
# * Gaps in perimeters (indicates thin walls)
# * Floating regions (missing supports)
# * Excessive stringing paths (reduce travel)
# * First layer: proper squish and adhesion
# * Top layers: sufficient solid infill
預覽中之警訊:
- 實體區出現白色縫隙:壁過薄不及當前線寬
- 長距離移動:增回抽或加 z-hop
- 首層未壓實:將 Z-offset 下調 0.05mm
- 頂層稀薄:將頂層加至 5+
預期: 預覽顯示連續之周線、適切之填充、乾淨之移動,無顯著缺陷。
失敗時: 調整切片參數重切。常見修補:
- 薄壁縫→啟用「Detect thin walls」或減線寬
- 搭橋差→將搭橋速降至 30mm/s、增冷卻
- 拉絲→回抽距離 +1mm、溫度 -5°C
8. 匯出 G-code 並驗證
以描述性名稱儲存切片之 G-code:
# Naming convention:
# <part_name>_<material>_<layer_height>_<profile>.gcode
# Example: bracket_petg_0.2mm_standard.gcode
# Verify G-code:
grep "^;PRINT_TIME:" model.gcode # Check estimated time
grep "^;Filament used:" model.gcode # Check material usage
head -n 50 model.gcode | grep "^M104\|^M140" # Verify temperatures
# Expected first layer temp:
# M140 S85 (bed temp for PETG)
# M104 S245 (hotend temp for PETG)
列印前查核表:
- 床已平整且潔淨
- 已載正確且乾燥之材料
- 溫度與材料需求相符
- 首層 Z-offset 已校正
- 線材/樹脂量足
- 列印時間於監控計畫內可承
預期: G-code 檔已儲存並含中繼資料、溫度已驗證、列印時間/材料估值合理。
失敗時: 若列印時間過長(>12 小時),可考慮:
- 增層高(0.2 → 0.28mm 約省 30% 時間)
- 減周線(4 → 3)
- 減填充(40% → 20%,非結構件)
- 若尺寸非關鍵,縮小模型
驗證
- 模型已自來源軟體以正確單位(mm)與比例匯出
- 網格完整性已驗:流形、無洞、法線正確
- 壁厚達所擇製程之最低(FDM ≥0.8mm、SLA ≥0.4mm)
- 列印擺向已為強度、表面或支撐取捨而最佳化
- 已為所有 >45°(FDM)或 >30°(SLA)之懸垂生成支撐
- 切片設定檔已配適當之層高與參數
- 已逐層預覽,無縫隙或浮空
- G-code 已匯出,溫度已驗、列印時間合理
- 列印前查核表已完成(床整、料載入等)
常見陷阱
- 跳過網格修補:非流形網格雖能切片,但會以縫隙或畸層失印
- 忽略壁厚:壁過薄會出現縫隙,強度大減
- 強度擺向錯:將受拉件以層平行於受力方向列印,造成弱層分離面
- 支撐不足:低估懸垂角致下塌、拉絲或全敗
- 疏忽首層:90% 失印起於首層——Z-offset 與床附著至關緊要
- 網路上抓溫度:每組印機/材料皆獨特;務必以塔測校正
- 細節過於層高:小於 2 倍層高之精細特徵無法正解
- 未預覽切片:切片可能作出意外決策(薄壁縫、奇填充);列印前務必預覽
- 材料吸濕:濕線材(尤其 Nylon、TPU、PETG)致層附差、拉絲、易脆
- 過信支撐:含大懸垂之重件即便有支撐仍可能下塌——先以小件試之
相關技能
- select-print-material:依機械、熱、化學需求擇適切材料
- troubleshoot-print-issues:若已備齊之模型仍失印,診斷並修
- Model with Blender(未來技能):自零起建可印之 3D 模型
- Calibrate 3D Printer(未來技能):E-steps、流量、溫度塔、回抽調校
GitHub 仓库
相关推荐技能
content-collections
元Content Collections 是一个 TypeScript 优先的构建工具,可将本地 Markdown/MDX 文件转换为类型安全的数据集合。它专为构建博客、文档站和内容密集型 Vite+React 应用而设计,提供基于 Zod 的自动模式验证。该工具涵盖从 Vite 插件配置、MDX 编译到生产环境部署的完整工作流。
polymarket
元这个Claude Skill为开发者提供完整的Polymarket预测市场开发支持,涵盖API调用、交易执行和市场数据分析。关键特性包括实时WebSocket数据流,可监控实时交易、订单和市场动态。开发者可用它构建预测市场应用、实施交易策略并集成实时市场预测功能。
creating-opencode-plugins
元该Skill帮助开发者创建OpenCode插件,用于接入命令、文件、LSP等25+种事件。它提供了插件结构、事件API规范和JavaScript/TypeScript实现模式,适合需要拦截操作、扩展功能或自定义事件处理的场景。开发者可通过它快速构建响应式模块来增强OpenCode AI助手的能力。
sglang
元SGLang是一个专为LLM设计的高性能推理框架,特别适用于需要结构化输出的场景。它通过RadixAttention前缀缓存技术,在处理JSON、正则表达式、工具调用等具有重复前缀的复杂工作流时,能实现极速生成。如果你正在构建智能体或多轮对话系统,并追求远超vLLM的推理性能,SGLang是理想选择。
