원클릭으로
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.