Files
2026-07-22 13:48:46 +08:00

34 lines
1.0 KiB
Python

"""Expression parameters inside a replayable graph/model workflow.
Run from the repository root with:
uv run python examples/03_expressions.py
"""
import json
from pathlib import Path
import simplecadapi as scad
OUT = Path("examples/out")
OUT.mkdir(parents=True, exist_ok=True)
width = scad.var("width", 24.0, comment="plate width")
height = scad.var("height", 12.0, comment="plate height")
thickness = scad.var("thickness", 4.0, comment="plate thickness")
with scad.GraphSession() as session:
plate = scad.make_box_rsolid(width, height, thickness)
rib = scad.make_box_rsolid(width / 4.0, height, thickness * 2.0)
rib = scad.translate_shape(rib, (0.0, 0.0, 4.0))
part = scad.union_rsolid(plate, rib)
model_json = scad.export_model_json(session)
payload = json.loads(model_json)
(OUT / "expressions.model.json").write_text(model_json, encoding="utf-8")
print("expression_nodes", len(payload["expression_graph"]["nodes"]))
print("graph_nodes", len(payload["graph"]["nodes"]))
print("volume", round(part.get_volume(), 3))