Loading...
Loading...
Generate 3D printable STL files for woodworking jigs and fixtures using CadQuery. Use when the user requests lampshade jigs, circle cutting guides, angle wedges, spacing blocks, alignment fixtures, router jigs, or any custom 3D-printed woodworking aid. Optimized for Elegoo Neptune 4 Pro (225x225x265mm build volume, 0.2mm layer height). Always use metric measurements.
npx skill4agent add ihistand/claude-skills stl-generatorreferences/printer_specs.mdscripts/circle_cutting_jig.pypython scripts/circle_cutting_jig.py <outer_diameter> <inner_diameter> [output.stl]python scripts/circle_cutting_jig.py 300 250 lampshade_jig.stlscripts/angle_wedge.pypython scripts/angle_wedge.py <angle_degrees> [output.stl]python scripts/angle_wedge.py 15 wedge_15deg.stlscripts/spacing_block.py# Single block
python scripts/spacing_block.py <height_mm> [width_mm] [depth_mm] [output.stl]
# Set of multiple heights
python scripts/spacing_block.py set <h1>,<h2>,<h3> [output.stl]python scripts/spacing_block.py 10 50 30 spacer_10mm.stl
python scripts/spacing_block.py set 5,10,15,20 spacer_set.stlreferences/cadquery_patterns.mdreferences/printer_specs.mdreferences/cadquery_patterns.mdcq.exporters.export(part, "filename.stl")/mnt/user-data/outputs/import cadquery as cq
def create_router_template(length, width, inset, guide_height):
"""Create router template with guide bushings."""
# Base plate
base = (
cq.Workplane("XY")
.rect(length, width)
.extrude(6)
)
# Cut out center area
base = (
base.faces(">Z")
.workplane()
.rect(length - 2 * inset, width - 2 * inset)
.cutThruAll()
)
# Add guide walls
walls = (
cq.Workplane("XY")
.workplane(offset=6)
.rect(length, width)
.rect(length - 2 * inset, width - 2 * inset)
.extrude(guide_height)
)
result = base.union(walls)
# Add mounting holes (corners)
for x in [-length/2 + 15, length/2 - 15]:
for y in [-width/2 + 15, width/2 - 15]:
result = (
result.faces(">Z")
.workplane()
.center(x, y)
.circle(2.5) # M5 clearance
.cutThruAll()
)
return result
# Generate and export
template = create_router_template(200, 150, 30, 8)
cq.exporters.export(template, "router_template.stl")circle_cutting_jig.pyangle_wedge.pyspacing_block.py/home/claude//mnt/user-data/outputs/lampshade_jig_300mm_OD.stlwedge_22.5_degrees.stljig1.stlreferences/cadquery_patterns.mdimport cadquery as cq
# Create base
part = cq.Workplane("XY").box(50, 30, 10)
# Add features on top
part = (
part.faces(">Z")
.workplane()
.circle(5)
.cutThruAll()
)
# Export
cq.exporters.export(part, "output.stl").box(w, d, h).circle(r).rect(w, h).extrude(height).cutThruAll().fillet(radius).chamfer(distance).translate((x, y, z)).rotate((cx,cy,cz), (ax,ay,az), angle)pip install --break-system-packages cadqueryreferences/printer_specs.mdreferences/cadquery_patterns.md/mnt/user-data/outputs/[View your file](computer:///mnt/user-data/outputs/filename.stl)