fix: review fixes for the metric template and the radial constraint

A new drawing (#1441) recorded ISO-25 as the current dimension style by
name only. Every other place that changes it sets the header's handle as
well, and a DWG carries the current style by handle alone, so a saved new
drawing reopened on Standard. The style's handle now comes back from the
helper that adds it.

A radius constraint (#1443) anchored the circle's centre from the shape of
its references — one whole entity — but a single whole reference is also a
line's length, whose start is what stays. The entity decides now.

The two tests that encoded the replaced rules follow them: a negative
radius validates by its magnitude, as a negative distance already did, and
only zero is refused; a new drawing's dimension text reads at ISO-25's
comma separator.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Hakan SevenandClaude Opus 5 committed 2026-09-22 13:46:49 +03:00
1 parent 6605a71fdd
commit 4bef410abb
5 files changed
+34 -10

No files matched your search

+4 -1
View File
@@ -2733,8 +2733,11 @@ impl Scene {
// current. Standard stays available for imperial work.
self.document.header.measurement = 1;
self.document.header.insertion_units = 4;
crate::scene::creation_style::ensure_iso_dim_style(&mut self.document);
let iso = crate::scene::creation_style::ensure_iso_dim_style(&mut self.document);
self.document.header.current_dimstyle_name = "ISO-25".to_string();
// The name alone leaves the header pointing at the previous style, and
// a DWG writes the current style by handle only.
self.document.header.current_dimstyle_handle = iso;
for obj in self.document.objects.values_mut() {
if let acadrust::objects::ObjectType::Layout(l) = obj {
if l.name != "Model" {