Motion analysis: a check that runs out before its first step says so, Contact sets offered only when one is active
This commit is contained in:
1 parent
53ae46e6b5
commit
f96aaa2a98
2 files changed
+7
-1
No files matched your search
@@ -391,6 +391,10 @@ pub(super) fn interference(s: &mut Session, p: &Value) -> Result<Value> {
|
||||
}
|
||||
Ok(true)
|
||||
})?;
|
||||
// Nothing checked is not clear.
|
||||
if truncated && checked == 0 {
|
||||
return Err(bad(cmd, "the check ran out of its work budget before its first step: check fewer parts (occurrences, against)"));
|
||||
}
|
||||
let mut list: Vec<(&(u64, u64), &Collision)> = found.iter().collect();
|
||||
list.sort_by_key(|(_, c)| c.samples.first().copied().unwrap_or(usize::MAX));
|
||||
let mut booleans = MAX_BOOLEANS;
|
||||
|
||||
@@ -248,7 +248,9 @@ fn collision_rows(
|
||||
) {
|
||||
// Collisions over the whole study: of the picked components (against the other picks, if
|
||||
// any), else among all components or in the contact sets.
|
||||
let sets = !app.session.doc.assembly.contact_sets.is_empty() || app.session.doc.assembly.contact_all;
|
||||
// Offered when there is a set to check (suppressed ones don't count).
|
||||
let assembly = &app.session.doc.assembly;
|
||||
let sets = assembly.contact_all || assembly.contact_sets.iter().any(|c| !c.suppressed);
|
||||
a.among = if sets { a.among.min(1) } else { 0 };
|
||||
let (parts, against) = (picked_occurrences(&app.session, inputs, 1), picked_occurrences(&app.session, inputs, 2));
|
||||
let among = if !parts.is_empty() {
|
||||
|
||||
Reference in new issue
Block a user