create-openscad-from-construction-image-en — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited create-openscad-from-construction-image-en (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Converts a hand-drawn or photographed technical/construction sketch into a parametric OpenSCAD (.scad) file, ready for 3D printing or further CAD work.
Activate when:
Typical trigger phrases:
| Skill | Repository | License |
|---|---|---|
create-agent-skill-en | https://github.com/roebi/agent-skills | CC BY-NC-SA 4.0 |
This skill was scaffolded following the create-agent-skill-en workflow and specification from agentskills.io.
Read all visible dimension annotations. Common German labels and their meanings:
| German label | English meaning | OpenSCAD parameter example |
|---|---|---|
| Länge | Length | length = ...; |
| Breite | Width | width = ...; |
| Höhe | Height | height = ...; |
| Durchmesser / Ø | Diameter | diameter = ...; |
| Radius | Radius | radius = ...; |
| Aussendurchmesser | Outer diameter | outer_diameter = ...; |
| Innendurchmesser | Inner diameter | inner_diameter = ...; |
| Innensechskant | Inner hex (across flats) | inner_hex_width = ...; |
| Wandstärke | Wall thickness | wall_thickness = ...; |
| Tiefe | Depth | depth = ...; |
| Bohrung | Bore / hole | bore_diameter = ...; |
| Schlüsselweite (SW) | Wrench size (hex flats) | hex_across_flats = ...; |
Parse units (mm, cm, m) and convert all values to millimeters in the output.
Determine the dominant geometry:
| Shape in sketch | OpenSCAD primitive / pattern |
|---|---|
| Cylinder / round part | cylinder(h, d, $fn=64) |
| Box / rectangular block | cube([x, y, z]) |
| Hex prism | cylinder(h, d=$fn=6) with adjusted diameter |
| Tube / hollow cylinder | difference() { cylinder(...outer...); cylinder(...inner...) } |
| Hex socket / Innensechskant | difference() { cylinder(outer); cylinder(hex, $fn=6) } |
| Cone / taper | cylinder(h, r1, r2) |
| Sphere | sphere(r) |
For complex multi-feature parts, combine primitives using difference(), union(), or intersection().
When a hex is specified as across flats (Schlüsselweite / Innensechskant), OpenSCAD's cylinder($fn=6) uses the circumradius (across corners). Convert using:
d_circumradius = across_flats / cos(30)In OpenSCAD:
// inner_hex_width = across-flats dimension
cylinder(h = length, d = inner_hex_width / cos(30), $fn = 6);Structure the output file as follows:
// <Part name or description>
// Source: hand-drawn construction sketch
// Generated by: create-openscad-from-construction-image-en skill
// --- Parameters (all units: mm) ---
<parameter declarations with comments>
// --- Geometry ---
<OpenSCAD CSG model>Rules:
$fn = 64 for smooth cylinders; $fn = 6 for hex prisms.center = false or center = true explicitly to avoid ambiguity..scad file as a downloadable file named after the part.part.scad or derive from the dominant feature.Sketch labels read:
Generated OpenSCAD:
// Hex Socket / Innensechskant
// Innensechskant (inner hex across flats): 8mm
// Aussendurchmesser (outer diameter): 14mm
// Länge (length): 25mm
outer_diameter = 14; // mm — Aussendurchmesser
inner_hex_width = 8; // mm — Innensechskant (across flats / Schlüsselweite)
length = 25; // mm — Länge
difference() {
// Outer cylinder
cylinder(h = length, d = outer_diameter, center = false, $fn = 64);
// Inner hexagon bore
// d = across_flats / cos(30) converts SW to circumradius
cylinder(h = length + 1, d = inner_hex_width / cos(30), center = false, $fn = 6);
}If the sketch is unclear or dimensions are missing:
// TODO: verify this dimension.references/openscad-primitives.md — Quick reference for OpenSCAD primitives and CSG operationsreferences/german-dimension-labels.md — Extended German ↔ English dimension label glossary~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.