mirror of
https://github.com/storytold/cadcraft.git
synced 2026-11-01 23:06:50 -06:00
* DIMASSOC: no standard reference to a polyline's vertex or segment (#1049) A dimension on a polyline vertex was written with an AcDbOsnapPointRef naming the polyline but no subentity (groups 73 and 91 both 0); AutoCAD then resolved it to the polyline's first segment when it regenerated the dimension, and the value changed without warning (210 became 5). Such points (LWPOLYLINE, 3D polyline, MLINE, also as the second object of an intersection) are now left out of the DIMASSOC object, as the report suggests: AutoCAD sees them as non-associative and the values stay right. CADCraft keeps every link through its own xdata, and references to single-curve objects (lines, arcs, circles, points) are written as before. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * DIMASSOC: reference polyline vertices by segment, as AutoCAD does Following the black-box observation of AutoCAD 2026 in the PR review: a polyline vertex is referenced as an end of one of its segments, subentity type 73 = 2 (edge) and the 1-based segment in 91 (segment k runs from vertex k-1 to vertex k; a closed polyline's closing segment is the last), with osnap 1 / parameter 1.0 for a segment's end and 13 / 0.0 for its start. Vertex 0 is written as the start of segment 1, vertex k as the end of segment k, falling back to the other neighbour when that one is an arc; a vertex between two arcs (where AutoCAD writes an angle parameter, not yet tested) still gets no reference, nor do 3D polylines and multilines. Reading uses the segment and osnap for polylines: AutoCAD leaves the reference point at 0,0, so the nearest-vertex fallback attached AutoCAD's associative dimensions on polylines to the vertex nearest the origin. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>