forked from 1b-agent/opencadstudio-upstream
The 2Lines placement (#1459) wrote the second line's new ends back with `set_resolved_point`, which was not the inverse of the `resolve_point` it paired with. `resolve_point` reads polyline vertices in WCS through the polyline's OCS; the writer put that world point straight into the OCS vertex, so a mirrored polyline (normal -Z, common in real drawings) had its vertex flipped, and the closing segment's end marker — which names vertex 0 on a closed polyline — found no vertex and the placement was silently dropped. The writer now converts back into the OCS, keeps the polyline's own elevation, and wraps the closing marker the same way. The same arm pushed `test_pline_line_then_arc` past the default test thread's stack: its locals, a cloned entity among them, sat in the frame of the command-result dispatcher, which is on the stack of every click. The placement is built out of line and handed over boxed. Merging #1447 had left nothing setting DIMCONSTRAINT's default to Diameter; the Dispatch arm #1461 turned into a match now covers it with Radius and Convert. DCCONVERT's result lines go through the translation macros. Co-Authored-By: Claude Opus 5.5 <[email protected]>