fix(dimension): render DIMAUNIT 4 as a surveyor's bearing

DIMAUNIT 4 is Surveyor's units, but format_angular_value matched only
0-3 and let 4 fall through the catch-all to decimal degrees. An angular
dimension in a drawing authored with surveyor units therefore read as
plain degrees, while AUNITS 4 in the same drawing writes a bearing for
the coordinate readout — the two disagreed on one angle.

Format the bearing from the dimension's own DMS path so it carries
DIMADEC, DIMAZIN and DIMDSEP, quantise before picking the quadrant so a
value just short of a cardinal does not quote a quarter turn, and offer
the option in the dimension-style dialog.
This commit is contained in:
NgoQuocViet2001 committed 2026-09-03 15:23:42 +07:00
1 parent 3ad0423393
commit 074e589ce8
2 files changed
+80 -1

No files matched your search

+1 -1
View File
@@ -956,7 +956,7 @@ pub fn view_window<'a>(
t!("Unit format"),
DsField::Dimaunit,
vals.dimaunit,
&[("0", "Decimal degrees"), ("1", "Degrees, minutes, seconds"), ("2", "Gradians"), ("3", "Radians")],
&[("0", "Decimal degrees"), ("1", "Degrees, minutes, seconds"), ("2", "Gradians"), ("3", "Radians"), ("4", "Surveyor's units")],
),
row![lbl(t!("Precision")), mk_field(DsField::Dimadec, vals.dimadec)]
.spacing(8).align_y(iced::Center),