fix(pid): signal lines carry no fabricated number; a bubble exits towards the first waypoint
An ISA-5.1 signal line has no pipe line number, yet every pneumatic / electric line got the bare sequence as its number and a label, and ate a process sequence number. Signal classes now leave line_number None (a verbatim one is still honoured), seq None, no label. A radial port aimed at the far end even with waypoints, so the first segment cut through the bubble; aim_points (lines.py) aims at the first/last waypoint for both draw_line and the dry run. Merge note: benchmarks/adapters/autocad_mcp_pro.py (final group's file) had its two _task_pid_roundtrip assertion lines moved to the new truth — the signal row is unnumbered, the connector row is 3. Co-Authored-By: Claude Opus 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
parent
2e101b95e2
commit
3c0babfef1
@@ -198,6 +198,21 @@ def route(start, start_dir, end, end_dir, stub: float = 5.0, mode="auto") -> lis
|
||||
return valid[0]
|
||||
|
||||
|
||||
def aim_points(start, end, mode) -> tuple[Point, Point]:
|
||||
"""What each end of a line aims at: the other end, or — with waypoints —
|
||||
the first waypoint for the start and the last one for the end.
|
||||
|
||||
A radial (bubble) port leaves its circle along the axis towards its aim
|
||||
point. Aiming at the far end while the route is a waypoint list put the
|
||||
exit on the wrong side of the bubble, so the first segment cut through it.
|
||||
"""
|
||||
if isinstance(mode, (list, tuple)) and len(mode) > 0:
|
||||
return _finite_point("waypoints[0]", mode[0]), _finite_point(
|
||||
f"waypoints[{len(mode) - 1}]", mode[-1]
|
||||
)
|
||||
return _finite_point("end", end), _finite_point("start", start)
|
||||
|
||||
|
||||
def label_placement(vertices, offset: float = 1.5) -> tuple[float, float, float, int]:
|
||||
"""Midpoint of the longest segment, offset to its left, readable rotation."""
|
||||
pts = [(float(x), float(y)) for x, y in vertices]
|
||||
|
||||
Reference in New Issue
Block a user