← Demo

Storey 1 Wall Edge 4

v1 Gemini approved Generated with ElixiFree

Create Storey 1 Wall Edge 4, 8000mm long x 142mm thick x 2700mm high, stock sip/panel/osb_eps_142_2440x1220. Openings: window 1800x1200mm at u=2650 sill=900, window 1800x1200mm at u=5950 sill=900. Through corner.

Dependencies

floor_deck_0.top_face

Interfaces Provided

top_face (bearing)
◉
Agent initialized (status: waiting_for_dependencies, action: check_dependencies)
◉
Provider: google | Profile: balanced
◉
Provider updated to google / balanced
◇
Received interface floor_deck_0.top_face: %{name: "top_face", type: "bearing", value: %{}, agent_id: "floor_deck_0"}
◉
All dependencies resolved, starting generation
◉
Refreshed placement from design spec (bbox %{"x" => 8000.0, "y" => 142.0, "z" => 2700.0})
◉
Generating v1
◉
[ElixiFree] active — code_module=elixifree.sip
◉
[ElixiFree] downgrading to gemini-3-flash-preview (builder API active)
○
Calling Gemini API for code generation (gemini-3-flash-preview)...
◉
Generation token budget: max_tokens=12288, thinking_budget=0 (retry_count=0)
●
Received response (712 tokens)
◉
Normalized Wall builder dimensions/orientation to local-frame contract
◆
s1_wall_e4_v1.py · 44 lines
from elixifree.domains.sip import Wall

# === ANCHOR POINTS ===
ANCHOR_TOP_FACE = (4000.0, 71.0, 2700.0)
ANCHOR_BOTTOM_FACE = (4000.0, 71.0, 0.0)
ANCHOR_FRONT_FACE = (4000.0, 0.0, 1350.0)
ANCHOR_BACK_FACE = (4000.0, 142.0, 1350.0)
ANCHOR_LEFT_FACE = (0.0, 71.0, 1350.0)
ANCHOR_RIGHT_FACE = (8000.0, 71.0, 1350.0)
# === END ANCHOR POINTS ===

# === PARAMETERS ===
# Dimensions based on required bounding box: 8000 x 142 x 2700 mm
SPAN = 8000.0
HEIGHT = 2700.0
THICKNESS = 142.0
# Stock sip/panel/osb_eps_142_2440x1220 corresponds to SIP-120 (120mm core + 22mm faces)
STOCK = "SIP-120"

# Openings: window 1800x1200mm at u=2650 sill=900, window 1800x1200mm at u=5950 sill=900
# Opening 'u' coordinate (offset along span) is used as 'x' in the local builder
W1_X = 2650.0
W1_Z = 900.0
W1_W = 1800.0
W1_H = 1200.0

W2_X = 5950.0
W2_Z = 900.0
W2_W = 1800.0
W2_H = 1200.0

# === BUILD GEOMETRY ===
# Wall builder defaults to span along X and thickness along Y
# As per Local Frame Contract, we do NOT call .orient("Y")
result = (
    Wall(span=8000.0, height=2700.0, stock=142.0)
    .opening(x=W1_X, z=W1_Z, width=W1_W, height=W1_H)
    .opening(x=W2_X, z=W2_Z, width=W2_W, height=W2_H)
    .build()
)

# === FINAL ===
# add_to_doc handles document setup, recompute, and view fit
result.add_to_doc("Body")
◉
[ElixiFree] ✓ generated script uses elixifree imports
●
Executing in FreeCAD...
✖
FreeCAD execution failed: Traceback (most recent call last): File "/opt/freecad/bin/../Mod/CadClaude/cadclaude_worker.py", line 159, in _run_script exec(compile(script_source, "<cadclaude>", "exec"), {}) File "<cadclaude>", line 47, in <module> File "/opt/freecad/Mod/CadClaude/elixifree/builder.py", line 129, in build self._validate() File "/opt/freecad/Mod/CadClaude/elixifree/domains/sip.py", line 276, in _validate _resolve_stock(self._stock) # raises BuildError for unknown stock ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/freecad/Mod/CadClaude/elixifree/domains/sip.py", line 75, in _resolve_stock raise BuildError( elixifree.builder.BuildError: Unknown SIP stock '142.0'. Valid values: ['SIP-100', 'SIP-120', 'SIP-150', 'SIP-200', 'SIP-250', 'SIP-300']
◉
Retrying (attempt 2/4)
●
Received corrected script, re-executing...
●
Executing in FreeCAD...
◉
StepAnalyzer failed: FreeCAD could not read STEP file: FreeCAD exception thrown (File to load not existing or not readable) — skipping
●
FreeCAD execution succeeded
●
Exported: model.stl
◉
Generation succeeded and component was auto-approved (v1)
◉
Provider updated to google / balanced
v0.0.985