feat(arch): SECTION 25 opens - walls, openings, stairs and exterior chains as tools
engineering/arch/draw.py is the only module of the track that touches a backend. It draws through draw_prims(role_layer=ARCH_ROLE_LAYER) and the generic contract members, so it runs on both engines as written, and it writes the plan onto the drawing: each element's ACADMCP_ARCH record on one of its own entities (a wall's first face line, a door's leaf, a window's frame, a stair's first riser) and, beside it under ACADMCP_ARCH_H, the handles that element owns. read_plan reads the records back and never modifies the drawing. arch_wall computes the whole network before and after the new walls and redraws only the drawn walls whose outline changes - erasing exactly the entities they own - and says which under redrawn. arch_opening hosts a door or a window in a drawn wall found by id and redraws that wall cut; its tag defaults to the next D1/W1 (K1/P1 in Turkish). A new wall that would leave a drawn opening uncuttable, and an opening that runs into a junction, are refused before anything is erased. arch_stair reports the Blondel value; it does not enforce it. exterior_chains gives each side up to three rows, nearest first: every jamb in that facade, both faces of every wall meeting it, and the overall - from the wall engine's own faces. A row that would only restate a farther one is not emitted (ISO 129-1: each measurement once). The 10 mm / 8 mm row spacing is a declared drafting default times the plot scale, not a standard value. The arch tag is ranked after mech so the four tools file under a new architecture group; alias records carry WALLADD/MLINE, DOORADD/WINDOWADD and STAIRADD with English and Turkish shop words. Inventory regenerated; README snapshot 233 tools (228 advertised) in 26 groups; registry snapshot architecture: 4. No new ActiveX member is called. Measured on AutoCAD 2026 in a scratch document through ComBackend: shell + teed partition, D1 + W1, a straight 17-riser stair and the bottom chains gave the same 20 wall LINEs (identical endpoints), 9 poche HATCHes, 1+1 door, 4 window lines, 11 dimensions and a read_plan round trip as the headless engine. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01FKFStjEFzpGyLq5bMpWxTd
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
b68fe7ef66
commit
cd1ae3529c
@@ -2230,6 +2230,80 @@ TOOL_ALIASES: dict[str, ToolAliases] = {
|
||||
"punta deligi",
|
||||
),
|
||||
),
|
||||
# ── Architecture (SECTION 25, track F group W) ──────────────────────────
|
||||
"arch_wall": ToolAliases(
|
||||
acad=("WALLADD", "MLINE"),
|
||||
synonyms=(
|
||||
"draw a wall",
|
||||
"wall with a thickness",
|
||||
"exterior wall",
|
||||
"partition wall",
|
||||
"floor plan walls",
|
||||
"clean wall corners",
|
||||
"t junction of walls",
|
||||
"wall poche",
|
||||
"duvar",
|
||||
"duvar çiz",
|
||||
"duvar ciz",
|
||||
"bölme duvar",
|
||||
"bolme duvar",
|
||||
"kat planı",
|
||||
"kat plani",
|
||||
),
|
||||
),
|
||||
"arch_opening": ToolAliases(
|
||||
acad=("DOORADD", "WINDOWADD"),
|
||||
synonyms=(
|
||||
"add a door",
|
||||
"door in a wall",
|
||||
"door swing",
|
||||
"add a window",
|
||||
"window in a wall",
|
||||
"cut an opening in the wall",
|
||||
"kapı",
|
||||
"kapi",
|
||||
"kapı ekle",
|
||||
"pencere",
|
||||
"pencere ekle",
|
||||
"doğrama",
|
||||
"dograma",
|
||||
),
|
||||
),
|
||||
"arch_stair": ToolAliases(
|
||||
acad=("STAIRADD",),
|
||||
synonyms=(
|
||||
"draw a stair",
|
||||
"staircase",
|
||||
"flight of stairs",
|
||||
"l-shaped stair",
|
||||
"u-shaped stair",
|
||||
"walking line",
|
||||
"blondel rule",
|
||||
"risers and treads",
|
||||
"merdiven",
|
||||
"merdiven çiz",
|
||||
"merdiven ciz",
|
||||
"basamak",
|
||||
"rıht",
|
||||
"riht",
|
||||
),
|
||||
),
|
||||
"arch_dimension_chains": ToolAliases(
|
||||
acad=(),
|
||||
synonyms=(
|
||||
"dimension the facade",
|
||||
"exterior dimensions",
|
||||
"dimension chains",
|
||||
"overall building dimensions",
|
||||
"opening dimensions on the plan",
|
||||
"ölçülendir",
|
||||
"olculendir plan",
|
||||
"dış ölçü",
|
||||
"dis olcu",
|
||||
"aks ölçüsü",
|
||||
"aks olcusu",
|
||||
),
|
||||
),
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user