一键导入
openscad-design
OpenSCAD parametric 3D modeling best practices, common patterns, and printability guidelines for designing 3D-printable parts.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
OpenSCAD parametric 3D modeling best practices, common patterns, and printability guidelines for designing 3D-printable parts.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Generate 3D-printable models using CadQuery Python scripts. Renders STL files and PNG previews from parametric Python code. Use when asked to design or model 3D-printable parts.
Analyze STL meshes for 3D printability — checks manifold integrity, wall thickness, overhangs, dimensions, and generates a structured report. Use when asked to validate or inspect an STL file.
Process scanned or image-based PDFs by rendering pages to images for vision analysis or extracting embedded text. Use when filesystem.read_document returns no text from a PDF.
Calculate cost basis and capital gains/losses using FIFO, LIFO, Specific Identification, or Average Cost methods, with awareness of wash sales, corporate actions, and cryptocurrency specifics.
Parse, extract, and interpret tax and financial documents including PDFs, spreadsheets, and CSV transaction records.
Research current tax rules, regulations, rates, and deadlines using web search and foundational tax knowledge.
| name | openscad-design |
| description | OpenSCAD parametric 3D modeling best practices, common patterns, and printability guidelines for designing 3D-printable parts. |
When designing 3D-printable parts in OpenSCAD, follow these guidelines.
// --- Parameters ---
wall_thickness = 2; // mm, minimum 1.2 for FDM
inner_diameter = 20; // mm
height = 30; // mm
corner_radius = 2; // mm, 0 for sharp corners
$fn = 60; // mesh resolution
// --- Derived ---
outer_diameter = inner_diameter + 2 * wall_thickness;
module rounded_box(size, radius) {
minkowski() {
cube([size.x - 2*radius, size.y - 2*radius, size.z/2]);
cylinder(r=radius, h=size.z/2);
}
}
module tube(od, id, h) {
difference() {
cylinder(d=od, h=h);
translate([0, 0, -0.01])
cylinder(d=id, h=h+0.02);
}
}
module countersunk_hole(d_hole, d_head, h_head, depth) {
union() {
cylinder(d=d_hole, h=depth);
translate([0, 0, depth - h_head])
cylinder(d1=d_hole, d2=d_head, h=h_head);
}
}
module snap_hook(width, length, hook_height, thickness) {
// Cantilever beam with hook
cube([width, length, thickness]);
translate([0, length, 0])
cube([width, thickness, hook_height]);
}
// Linear pattern
for (i = [0 : count-1])
translate([i * spacing, 0, 0])
child_module();
// Circular pattern
for (i = [0 : count-1])
rotate([0, 0, i * 360/count])
translate([radius, 0, 0])
child_module();
rotate([0, angle, 0]) to tilt features within the printable range$fn for circles and spheres. Values:
$fn = 30 (fast)$fn = 60–120 (smooth)$fn is fine: $fn = 24$fn > 200 — it dramatically increases render time with negligible visual improvementdifference(), extend the cutting tool 0.01mm beyond the surface to avoid zero-thickness faces:
difference() {
cube([10, 10, 10]);
translate([-0.01, 2, 2])
cube([10.02, 6, 6]); // extends 0.01 past both sides
}
difference(): the first child is the base, all subsequent children are subtracted.intersection() for complex shapes that are easier to define by overlap than subtraction.project/
├── main.scad # Top-level assembly, parameters
├── parts/
│ ├── base.scad # Base module
│ └── lid.scad # Lid module
└── lib/
├── fasteners.scad # Reusable screw holes, standoffs
└── utils.scad # Helper modules (rounded_box, etc.)
Use include <path> for files that define geometry directly, use <path> for files that only define modules/functions.