← Bungalow

Perimeter strip foundation

v1 AI approved Generated with ElixiFree

Create Perimeter strip foundation, 4000x3000x300mm. Sole plate bears on foundation top face; mechanically anchored via cast-in straps at 600mm centres (fasteners placed deterministically downstream — not modelled as agents). Connects to extension__s0_wall_e0, extension__s0_wall_e2, extension__s0_wall_e3.

Interfaces Provided

body (component)
◉
Agent initialized (status: waiting_for_dependencies, action: check_dependencies, delay: 9000ms)
◉
Provider: claude_code | Profile: balanced
◉
Provider updated to claude_code / balanced
◉
Starting after stagger delay (action: check_dependencies)
◉
Refreshed placement from design spec (bbox %{"x" => 4000.0, "y" => 3000.0, "z" => 300.0})
◉
Generating v1
◉
[ElixiFree] active — code_module=elixifree.sip
◉
[ElixiFree] downgrading to claude-haiku-4-5-20251001 (builder API active)
○
Calling Claude (local subscription) for code generation (claude-haiku-4-5-20251001)...
◉
Generation token budget: max_tokens=12288, thinking_budget=0 (retry_count=0)
●
Received response ( tokens)
◆
extension__foundation_v1.py · 38 lines
import FreeCAD
from FreeCAD import Vector, Placement, Rotation
from elixifree.domains.sip import Foundation

# === PARAMETERS ===
LENGTH = 4000        # mm — outer length (X direction)
WIDTH = 3000         # mm — outer width (Y direction)  
DEPTH = 300          # mm — strip depth (Z direction)
STRIP_W = 450        # mm — perimeter strip width in plan

# === ANCHOR POINTS ===
ANCHOR_TOP_FACE = (2.0e3, 1.5e3, 300.0)
ANCHOR_BOTTOM_FACE = (2.0e3, 1.5e3, 0.0)
ANCHOR_FRONT_FACE = (2.0e3, 0.0, 150.0)
ANCHOR_BACK_FACE = (2.0e3, 3.0e3, 150.0)
ANCHOR_LEFT_FACE = (0.0, 1.5e3, 150.0)
ANCHOR_RIGHT_FACE = (4.0e3, 1.5e3, 150.0)
# === END ANCHOR POINTS ===

# === DOCUMENT ===
doc = FreeCAD.ActiveDocument or FreeCAD.newDocument("Foundation")

# === BUILD FOUNDATION ===
result = Foundation(
    length=LENGTH,
    width=WIDTH,
    depth=DEPTH,
    type="strip_foundation",
    strip_w=STRIP_W,
).build()

feature = result.add_to_doc("Body")

# === FINALIZE ===
doc.recompute()

if FreeCAD.GuiUp:
    FreeCAD.Gui.ActiveDocument.ActiveView.fitAll()
◉
[ElixiFree] ✓ generated script uses elixifree imports
●
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 claude_code / balanced
◉
Provider updated to claude_code / balanced
v0.0.985