Sheet metal: machine a hole feature's drills in one pass, keep cuts after a text cut (#1979) (#1980)

Thanks @NOWN-DEV.
This commit is contained in:
NOWN-DEV authored and GitHub committed 2026-10-17 08:52:19 -04:00
1 parent c4d2ae87ee
commit 09b3bd0e01
5 files changed
+354 -10

No files matched your search

+17
View File
@@ -2660,6 +2660,23 @@ fn sheet_hole_cut(
let mut handled: Vec<String> = Vec::new();
// Noted only when every tool was machined here.
let mut parted = None;
// Many plain drills along one axis (a hole on each of a pattern's points): all in one pass.
let prisms: Option<Vec<more::PrimitivePrism>> = tools.iter().map(|(_, prism)| *prism).collect();
if let Some(prisms) = prisms {
match more::sheet_drill_cuts(f, st, &prisms, &mut parted) {
Ok(Some(done)) => {
if let Some(note) = parted {
append_warning(warning, note);
}
return Ok(done);
}
// Not all of them that way, or refused at once: one by one, from the model as it was.
Ok(None) | Err(_) => {
(st.sheets, st.bodies) = saved.clone();
parted = None;
}
}
}
for (tool, prism) in tools {
let tool = &tool.body;
let done = match prism {