32 lines
979 B
Python
32 lines
979 B
Python
"""Basic shape-first modeling with the functional API.
|
|
|
|
Run from the repository root with:
|
|
uv run python examples/01_basic_modeling.py
|
|
"""
|
|
|
|
from pathlib import Path
|
|
|
|
import simplecadapi as scad
|
|
|
|
|
|
OUT = Path("examples/out")
|
|
OUT.mkdir(parents=True, exist_ok=True)
|
|
|
|
|
|
base = scad.make_box_rsolid(60.0, 36.0, 8.0, bottom_face_center=(0.0, 0.0, 0.0))
|
|
hole = scad.make_cylinder_rsolid(5.0, 14.0, bottom_face_center=(0.0, 0.0, -3.0))
|
|
slot = scad.make_box_rsolid(18.0, 8.0, 14.0, bottom_face_center=(14.0, 0.0, -3.0))
|
|
part = scad.cut_rsolid(base, hole, slot)
|
|
|
|
boss = scad.make_cylinder_rsolid(8.0, 7.0, bottom_face_center=(-18.0, 0.0, 8.0))
|
|
part = scad.union_rsolid(part, boss)
|
|
part.auto_tag_faces("box")
|
|
|
|
print("volume", round(part.get_volume(), 3))
|
|
print("faces", len(part.get_faces()))
|
|
print("edges", len(part.get_edges()))
|
|
|
|
scad.export_step(part, str(OUT / "basic_modeling.step"))
|
|
scad.export_stl(part, str(OUT / "basic_modeling.stl"))
|
|
print("wrote", OUT / "basic_modeling.step")
|