OpenSCAD技能Skill openscad

OpenSCAD技能用于创建、验证和导出OpenSCAD 3D模型,支持参数定制、多角度预览和STL导出,适用于3D打印平台如MakerWorld。关键词:OpenSCAD, 3D建模, 参数定制, 预览, STL导出, 3D打印。

CAD制图 0 次安装 0 次浏览 更新于 3/24/2026

名称: openscad 描述: “创建和渲染OpenSCAD 3D模型。从多个角度生成预览图像,提取可定制参数,验证语法,并为3D打印平台如MakerWorld导出STL文件。”

OpenSCAD 技能

创建、验证和导出OpenSCAD 3D模型。支持参数定制、多角度视觉预览和STL导出,适用于3D打印平台如MakerWorld。

先决条件

必须安装OpenSCAD。通过Homebrew安装:

brew install openscad

工具

此技能在tools/目录下提供多个工具:

预览生成

# 生成单个预览图像
./tools/preview.sh model.scad output.png [--camera=x,y,z,tx,ty,tz,dist] [--size=800x600]

# 生成多角度预览(前、后、左、右、顶、等轴)
./tools/multi-preview.sh model.scad output_dir/

STL导出

# 导出为STL用于3D打印
./tools/export-stl.sh model.scad output.stl [-D 'param=value']

参数提取

# 从OpenSCAD文件中提取可定制参数
./tools/extract-params.sh model.scad

验证

# 检查语法错误和警告
./tools/validate.sh model.scad

视觉验证(必需)

创建或修改OpenSCAD模型后,始终进行视觉验证。

编写或编辑任何OpenSCAD文件后:

  1. 使用multi-preview.sh生成多角度预览
  2. 使用read工具查看每个生成的图像
  3. 从多个角度检查问题
    • 前/后:验证对称性、特征和比例
    • 左/右:检查深度和侧面轮廓
    • 顶:确保顶部特征正确
    • 等轴:整体形状验证
  4. 如果需要迭代:如果看起来有问题,修复代码并重新验证

这捕获了仅语法验证无法检测的问题:

  • 反转法线或内外几何
  • 错位的特征或不正确的布尔操作
  • 比例与设计意图不匹配
  • 缺失或浮动的几何
  • Z-fighting或重叠表面

永远不要在没有从多个角度视觉确认看起来正确的情况下交付OpenSCAD模型。

工作流程

1. 创建OpenSCAD模型

编写带有顶部可定制参数的OpenSCAD代码:

// 可定制参数
wall_thickness = 2;        // [1:0.5:5] 壁厚,单位mm
width = 50;                // [20:100] 宽度,单位mm
height = 30;               // [10:80] 高度,单位mm
rounded = true;            // 添加圆角

// 模型代码在下方
module main_shape() {
    if (rounded) {
        minkowski() {
            cube([width - 4, width - 4, height - 2]);
            sphere(r = 2);
        }
    } else {
        cube([width, width, height]);
    }
}

difference() {
    main_shape();
    translate([wall_thickness, wall_thickness, wall_thickness])
        scale([1 - 2*wall_thickness/width, 1 - 2*wall_thickness/width, 1])
        main_shape();
}

参数注释格式:

  • // [最小值:最大值] - 数值范围
  • // [最小值:步长:最大值] - 带步长的数值范围
  • // [选项1, 选项2, 选项3] - 下拉选项
  • // 描述文本 - 纯描述

2. 验证模型

./tools/validate.sh model.scad

3. 生成预览

生成预览图像以视觉验证模型:

./tools/multi-preview.sh model.scad ./previews/

这从多个角度创建PNG图像。使用read工具查看它们。

4. 导出到STL

./tools/export-stl.sh model.scad output.stl
# 使用自定义参数:
./tools/export-stl.sh model.scad output.stl -D 'width=60' -D 'height=40'

相机位置

预览的常见相机角度:

  • 等轴: --camera=0,0,0,45,0,45,200
  • : --camera=0,0,0,90,0,0,200
  • : --camera=0,0,0,0,0,0,200
  • : --camera=0,0,0,90,0,90,200

格式: x,y,z,rotx,roty,rotz,distance

MakerWorld发布

对于MakerWorld,通常需要:

  1. 通过export-stl.sh导出的STL文件
  2. 预览图像(至少一个好的等轴视图)
  3. 可定制参数的描述

考虑创建带有元数据的model.json

{
  "name": "模型名称",
  "description": "MakerWorld的描述",
  "parameters": [...],
  "tags": ["functional", "container", "organizer"]
}

示例:完整工作流程

# 1. 创建模型(编写.scad文件)

# 2. 验证语法
./tools/validate.sh box.scad

# 3. 生成多角度预览
./tools/multi-preview.sh box.scad ./previews/

# 4. 重要:查看和验证所有预览图像
#    使用read工具在每个PNG文件上视觉检查:
#    - previews/box_front.png
#    - previews/box_back.png
#    - previews/box_left.png
#    - previews/box_right.png
#    - previews/box_top.png
#    - previews/box_iso.png
#    寻找几何问题、错位或意外结果。
#    如果看起来有问题,返回步骤1并修复它!

# 5. 提取和审查参数
./tools/extract-params.sh box.scad

# 6. 使用默认参数导出STL
./tools/export-stl.sh box.scad box.stl

# 7. 使用自定义参数导出STL
./tools/export-stl.sh box.scad box_large.stl -D 'width=80' -D 'height=60'

记住:永远不要跳过视觉验证步骤。许多问题(错误尺寸、布尔操作错误、反转几何)只有在实际查看渲染模型时才可见。

OpenSCAD 快速参考

基本形状

cube([x, y, z]);
sphere(r = radius);
cylinder(h = height, r = radius);
cylinder(h = height, r1 = bottom_r, r2 = top_r);  // 圆锥

变换

translate([x, y, z]) object();
rotate([rx, ry, rz]) object();
scale([sx, sy, sz]) object();
mirror([x, y, z]) object();

布尔操作

union() { a(); b(); }        // 合并
difference() { a(); b(); }   // 从a中减去b
intersection() { a(); b(); } // 仅重叠部分

高级

linear_extrude(height) 2d_shape();
rotate_extrude() 2d_shape();
hull() { objects(); }        // 凸包
minkowski() { a(); b(); }    // Minkowski和(圆角)

2D形状

circle(r = radius);
square([x, y]);
polygon(points = [[x1,y1], [x2,y2], ...]);
text("字符串", size = 10);