Extrude/revolve "all profiles" means the drawn ones: auto-projected face edges only count when the drawn curves make no profile

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AS5Tn3xieewUSg3uxrMVdL
This commit is contained in:
bherbruckandClaude Opus 5.5 committed 2026-10-07 21:58:18 +00:00
1 parent 9301bc4210
commit f5c2c725c8
5 files changed
+44 -25

No files matched your search

+6 -1
View File
@@ -210,7 +210,12 @@ fn select_profiles(ss: &SolvedSketch, sel: &ProfileSel) -> Result<Vec<Region2>>
return Err(DocError::Invalid(format!("{} has no closed profiles", ss.name)));
}
let out: Vec<Region2> = match sel {
ProfileSel::All => ps.iter().map(|p| p.region.clone()).collect(),
// "All" means what was drawn: projected reference geometry (a face's auto-projected
// edges) only counts when the drawn curves alone make no profile.
ProfileSel::All => {
let drawn = solvecraft_sketch::find_drawn_profiles(&ss.sketch);
if drawn.is_empty() { ps.iter().map(|p| p.region.clone()).collect() } else { drawn.into_iter().map(|p| p.region).collect() }
}
ProfileSel::Indices { indices } => {
let mut v = Vec::new();
for i in indices {