forked from 1b-agent/opencadstudio-upstream
append_linear_dimension() applied the same perp offset to both d1 and d2, but only d2 is guaranteed to be at the definition_point level; d1 must be projected independently onto the dimension line, otherwise non-collinear first/second points produce a parallelogram instead of a rectangle. Fix: compute dim_line_pos = def.dot(perp) and project each endpoint separately so the dimension line is always parallel to axis. Additionally, the acadrust DXF reader stores LinearDimension.rotation from group code 50 (degrees) without converting to radians, while DWG and our own annotation commands store it in radians. Add a post-load fixup in load_file() that converts the rotation to radians for DXF files so tessellation can call cos/sin uniformly. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>