关于 openscad
openscad 是用于创建带版本号的 OpenSCAD 文件、渲染 PNG 预览并比较迭代版本的设计 skill,面向 3D 打印模型。它提供从文件命名到视觉检查的循环流程,并可继续进行 STL 导出与可打印性验证。
主要功能
- 01创建零填充编号的 SCAD 文件
- 02渲染设计 PNG 预览
- 03比较当前版本与前一版本
- 04根据视觉检查迭代设计
- 05继续进行 STL 导出与验证
适用场景
- 01通过多个版本设计 3D 打印物件
- 02查看模型预览并判断后续修改
- 03比较设计迭代之间的视觉差异
- 04为 STL 导出准备已检查的设计
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ iancanderson/ openscad-agent --skill openscad安装后在 Claude Code 中输入/openscad确认已加载。
附带文件scripts/version-scad.sh
详细介绍
OpenSCAD 设计技能
创建带版本号的 OpenSCAD 文件、渲染预览,并比较 3D 打印设计的各次迭代。
工作流
1. 确定下一个版本号
创建新的 .scad 文件之前,先查找已有版本:
.claude/skills/openscad/scripts/version-scad.sh <name>
此命令会返回下一个版本号和文件名。例如,如果存在 piano_001.scad,则会返回 piano_002。
2. 创建带版本号的 .scad 文件
将 OpenSCAD 代码写入带版本号的文件名(例如 piano_002.scad)。
3. 渲染预览
.claude/skills/preview-scad/scripts/render-scad.sh <name>_<version>.scad --output <name>_<version>.png
此命令会创建带有匹配版本号的 PNG 文件(例如 piano_002.png)。
4. 与上一版本比较
读取当前和上一版本的 PNG 图像,进行视觉比较:
- 当前版本:
piano_002.png - 上一版本:
piano_001.png(如果存在)
评估更改内容,以及新版本是否更符合要求。
5. 迭代
如果设计需要改进:
- 分析问题所在
- 创建下一个版本(例如
piano_003.scad) - 再次渲染并比较
文件命名约定
<model-name>_<version>.scad -> <model-name>_<version>.png
示例:
phone_stand_001.scad->phone_stand_001.pngphone_stand_002.scad->phone_stand_002.pnggear_001.scad->gear_001.png
模型名称中使用下划线,并始终使用 3 位数字、以零补齐的版本号。
示例会话
用户请求创建一个钢琴模型:
-
检查是否已有版本:
.claude/skills/openscad/scripts/version-scad.sh piano输出:
piano_001(没有已有文件) -
编写包含初始设计的
piano_001.scad -
渲染预览:
.claude/skills/preview-scad/scripts/render-scad.sh piano_001.scad --output piano_001.png -
读取
piano_001.png检查结果 -
如果需要改进,创建
piano_002.scad,并渲染为piano_002.png -
读取
piano_001.png和piano_002.png,比较各次迭代
渲染选项
完整的渲染选项请参阅 /preview-scad:
--size <WxH>- 图像尺寸(默认值:800x600)--camera <x,y,z,tx,ty,tz,d>- 相机位置--colorscheme <name>- 配色方案(默认值:Cornfield)--render- 完整渲染模式(较慢,但更准确)--preview- 预览模式(较快,默认模式)
后续步骤
PNG 预览中的设计看起来正确后:
- 导出为 STL:使用
/export-stl将最终版本转换为 STL 格式 - 导出过程包含几何验证,可用于发现影响可打印性的问题
完整流程
/openscad → /preview-scad → /export-stl (with validation)
提示
- 从简单设计开始,并在迭代中逐步增加复杂度
- 使用能描述对象的有意义的模型名称
- 每个版本的更改都应专注于特定改进
- 在回复用户时,记录各版本之间的更改
- 只有在预览看起来正确后,才导出为 STL
- 在认为模型已可打印之前,始终运行 slice-check
评论
支持 Markdown