← Bungalow

Interior partition (north-south, at x=6450)

v1 AI approved

Create Interior partition (north-south, at x=6450), 122.0x7716.0x2700.0mm. Sole plate on floor; top plate fixed to ceiling/rafter zone; ends butt to south & north eave walls' inner faces. Connects to main__s0_wall_e0, main__s0_wall_e2, main__foundation.

Interfaces Provided

body (component)
◉
Agent initialized (status: waiting_for_dependencies, action: check_dependencies, delay: 4000ms)
◉
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" => 7716.0, "y" => 122.0, "z" => 2700.0})
◉
Generating v1
◉
[ElixiFree] not active for this component — using raw FreeCAD scripting
○
Calling Claude (local subscription) for code generation (claude-sonnet-5)...
◉
Generation token budget: max_tokens=12288, thinking_budget=0 (retry_count=0)
●
Received response ( tokens)
◆
main__s0_p3554_v1.py · 55 lines
import FreeCAD
import Part
from FreeCAD import Vector, Placement, Rotation

# === ANCHOR POINTS ===
ANCHOR_TOP_FACE = (3858.0, 61.0, 2700.0)
ANCHOR_BOTTOM_FACE = (3858.0, 61.0, 0.0)
ANCHOR_FRONT_FACE = (3858.0, 0.0, 1350.0)
ANCHOR_BACK_FACE = (3858.0, 122.0, 1350.0)
ANCHOR_LEFT_FACE = (0.0, 61.0, 1350.0)
ANCHOR_RIGHT_FACE = (7716.0, 61.0, 1350.0)
# === END ANCHOR POINTS ===

# === PARAMETERS ===
LENGTH = 7716.0    # mm — span along X
WIDTH  = 122.0     # mm — thickness along Y
HEIGHT = 2700.0    # mm — height along Z

# SIP panel construction layers
FACE_THICKNESS = 11.0    # mm — OSB skin thickness (each face)
CORE_THICKNESS = WIDTH - 2 * FACE_THICKNESS  # mm — EPS foam core thickness

# Sole plate / top plate (timber, sits in the foam channel)
PLATE_DEPTH = CORE_THICKNESS   # timber plate fills the routed core channel
PLATE_HEIGHT = 45.0            # mm — typical sole/top plate timber height
PLATE_Y_OFFSET = FACE_THICKNESS  # aligns plate with channel between OSB skins
# === END PARAMETERS ===

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

# === BUILD GEOMETRY ===
# Main SIP panel body (OSB-EPS-OSB sandwich, modeled as solid box for simplicity)
panel = Part.makeBox(LENGTH, WIDTH, HEIGHT, Vector(0, 0, 0))

# Sole plate (timber) — embedded at base, within the core channel
sole_plate = Part.makeBox(LENGTH, PLATE_DEPTH, PLATE_HEIGHT,
                           Vector(0, PLATE_Y_OFFSET, 0))

# Top plate (timber) — embedded at top, within the core channel
top_plate = Part.makeBox(LENGTH, PLATE_DEPTH, PLATE_HEIGHT,
                          Vector(0, PLATE_Y_OFFSET, HEIGHT - PLATE_HEIGHT))

# Fuse panel with plates (plates are structural inserts, shown as part of solid)
result = panel.fuse([sole_plate, top_plate])
result = result.removeSplitter()

# === ADD TO DOCUMENT ===
feature = doc.addObject("Part::Feature", "Body")
feature.Shape = result

doc.recompute()

if FreeCAD.GuiUp:
    FreeCAD.Gui.ActiveDocument.ActiveView.fitAll()
●
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