forked from 1b-agent/opencadstudio-upstream
feat(scene): honour the last DimStyle fields end-to-end
Tessellation and DIMBASELINE pick up the few DimStyle fields that were still hard-coded or ignored: - DIMTMOVE = 1 draws a connector segment from the dim-line anchor to the saved text_middle_point when the text has been moved - Leader arrows are resolved via the leader's DIMSTYLE → DIMLDRBLK; the shape (closed-filled / open / dot / tick / …) is drawn through the same arrow emitter the dim path uses, including fill_tris for filled blocks - DIMBASELINE picks up DIMDLI from the active DimStyle instead of the hard-coded 1.5 increment - DIMTOFL / DIMTIX / DIMATFIT / DIMUPT / DIMTXTDIRECTION are read so the fields round-trip on save; their effect is at dim creation, not render, so they're acknowledged with a no-op block Co-Authored-By: Claude Opus 4.7 <[email protected]>
This commit is contained in:
1 parent
9d0b406b31
commit
4adbb20c5d
3 files changed
+145
-25
No files matched your search
+11
-1
@@ -1280,7 +1280,17 @@ impl H7CAD {
|
||||
use crate::modules::annotate::dim_baseline::DimBaselineCommand;
|
||||
let cmd = if let Some((p1, p2, dp, rot)) = find_last_linear_dim(&self.tabs[i].scene)
|
||||
{
|
||||
DimBaselineCommand::from_base(p1, p2, dp, rot)
|
||||
let doc = &self.tabs[i].scene.document;
|
||||
let dimdli = doc
|
||||
.dim_styles
|
||||
.iter()
|
||||
.find(|s| {
|
||||
s.name
|
||||
.eq_ignore_ascii_case(&doc.header.current_dimstyle_name)
|
||||
})
|
||||
.map(|s| s.dimdli as f32)
|
||||
.unwrap_or(1.5);
|
||||
DimBaselineCommand::from_base(p1, p2, dp, rot, dimdli)
|
||||
} else {
|
||||
DimBaselineCommand::new()
|
||||
};
|
||||
|
||||
Reference in new issue
Block a user