From 5c2fa3e9ca94d09c47a48256209c2939d0fcd39b Mon Sep 17 00:00:00 2001 From: bherbruck Date: Thu, 15 Oct 2026 00:24:27 -0400 Subject: [PATCH] =?UTF-8?q?Action=20matrix=20regressions=20of=20#1255:=20k?= =?UTF-8?q?nuckle=20rounds,=20thin=20holes,=20a=2045=C2=B0=20flange=20hole?= =?UTF-8?q?,=20an=20axis=20after=20an=20edit=20(#1280)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Action matrix regressions of #1255: knuckle rounds, thin holes, a 45° flange hole, an axis after an edit - Curve blends: past the end of a curved edge the run of sections along the end tangent wrapped round the ring of centres; it is shortened while it still crosses the end face (the hinge knuckle's cap rounds at 0.728 mm). - Boolean retry guard: each body's volume is measured finer than its smallest radius, and a volume out of bounds is measured again ten times finer before it refuses (a 0.133 mm drill measured -30272 mm³; a plastic part's coarse mesh was off by more than the slack). - Sheet metal: a drill cap's certificate allows the evaluation noise its fitted tilt shows (a hole square to a 45° flange). - Construction geometry on a named face uses the face found by name, not a second pick at its nearest point (an axis through a corner round after a parameter moved it). Co-Authored-By: Claude Opus 5.5 * Retry guard: measure the target, tool and result at one tolerance Measured at different tolerances, the chords' error on the faces they share didn't cancel: a blind hole in a long D-profile bar measured 20 mm³ more than the bar. Co-Authored-By: Claude Opus 5.5 * Action matrix baseline from this branch's full run: 37 actions pass again, none fewer Blessed with cargo xtask action-matrix --from DIR --bless from the 16 shards of run 38673859774. Co-Authored-By: Claude Opus 5.5 --------- Co-authored-by: Claude Opus 5.5 --- apps/solidcraft-cli/tests/action_matrix.rs | 100 ++++ crates/doc/src/construct.rs | 13 +- crates/doc/src/eval_more.rs | 6 +- crates/kernel/src/boolean_guard.rs | 51 +- crates/kernel/src/curveblend.rs | 49 +- tests/action_matrix/baseline.json | 574 +++++++++++++++++++-- tests/action_matrix/costs.json | 239 ++++----- 7 files changed, 858 insertions(+), 174 deletions(-) diff --git a/apps/solidcraft-cli/tests/action_matrix.rs b/apps/solidcraft-cli/tests/action_matrix.rs index 93185464..ac025a44 100644 --- a/apps/solidcraft-cli/tests/action_matrix.rs +++ b/apps/solidcraft-cli/tests/action_matrix.rs @@ -1292,6 +1292,106 @@ fn a_fillet_or_chamfer_on_one_edge_ending_at_a_cylinder() { } } +// #1255: a round on a knuckle's cap circle (oracle/63's hinge), 0.73 wide on a ring of radius +// 4. The run past each end of the circle followed the end tangent so far that its sections +// wrapped round the ring and the blend was refused; it is shortened now while it still +// crosses the end face. Before #1101 a 0.13 mm station on the leaf's top edge kept the +// matrix's radius at 0.013, which never got that far. +#[test] +fn a_round_on_a_knuckle_cap_circle() { + for (cmd, size, removed) in [("solid.fillet", "radius", (2.4, 2.8)), ("solid.chamfer", "distance", (5.6, 6.3))] { + let mut s = load(&root().join("tests/oracle/63-hinge-knuckle/recipe.json")).unwrap(); + let volume = |s: &Session| s.model.state().bodies.iter().map(|b| b.body.tessellate(0.001).unwrap().measure().volume).sum::(); + let before = volume(&s); + s.execute(cmd, &json!({"edges": [[40.0, 29.837_722, 6.449_490]], size: 0.728})).unwrap_or_else(|e| panic!("{cmd}: {e}")); + check(&s, 0, &BTreeMap::new()).unwrap_or_else(|(kind, e)| panic!("{cmd}: {kind}: {e}")); + let st = s.model.state(); + let body = &st.bodies.first().unwrap().body; + assert!(body.validity().is_empty(), "{cmd}: {:?}", body.validity()); + let gone = before - volume(&s); + assert!(gone > removed.0 && gone < removed.1, "{cmd} took {gone} mm³"); + } +} + +// #1255: a hole 0.133 mm across on the 0.5 mm ledge a loft cut leaves in a pocket floor of a +// 900 mm slab. The Boolean needed a retry, and its guard meshed the drill as coarsely as the +// slab's size allows (0.4 mm, three times the drill's width): the mesh had no inside, the drill +// measured −30272 mm³ and the right cut was refused. Volumes are measured finer than each +// body's smallest radius now. +#[test] +fn a_hair_thin_hole_on_a_ledge_beside_a_loft_cut() { + let mut s = load(&root().join("examples/regressions/loft_cut_beside_round_hole.json")).unwrap(); + let volume = |s: &Session| s.model.state().bodies.iter().map(|b| b.body.tessellate_with(0.005, true).unwrap().measure().volume).sum::(); + let before = volume(&s); + s.execute("solid.hole", &json!({"diameter": 0.133, "position": [357.22, -150.993_333, 730.0]})).unwrap(); + check(&s, 0, &BTreeMap::new()).unwrap_or_else(|(kind, e)| panic!("{kind}: {e}")); + // The drill goes through the 4 mm ledge and on through the slab below: 690 to 730. + let gone = before - volume(&s); + let expected = std::f64::consts::PI * 0.0665 * 0.0665 * 40.0; + assert!((gone - expected).abs() < 0.2, "the hole took {gone} mm³, not {expected}"); +} + +// #1255: a 0.8 mm hole through the side wall of the plastic part's rest. Meshed at the +// tolerance the 200 mm drill sets, the part with its rounds, bosses and draft measured 6.8 mm³ +// more after the cut than before; ten times finer it is 1.44 mm³ less, the drill's volume +// through the 2.9 mm wall. A volume out of bounds is measured again finer before it refuses. +#[test] +fn a_small_hole_through_the_wall_of_a_plastic_rest() { + let mut s = load(&root().join("apps/solidcraft-cli/tests/corpus/modern-plastic.solidcraft")).unwrap(); + let volume = |s: &Session| s.model.state().bodies.iter().map(|b| b.body.tessellate_with(0.002, true).unwrap().measure().volume).sum::(); + let before = volume(&s); + s.execute("solid.hole", &json!({"diameter": 0.8, "position": [63.069_841_5, 28.333_333, 4.0]})).unwrap(); + check(&s, 0, &BTreeMap::new()).unwrap_or_else(|(kind, e)| panic!("{kind}: {e}")); + let gone = before - volume(&s); + assert!(gone > 1.2 && gone < 1.7, "the hole took {gone} mm³"); +} + +// #1255: a hole square to a flange bent at 45°. The drill's cap, evaluated at that angle, lay +// 2.9e-11 mm off the plane it was made on against a bound of 2.2e-11, so the sheet didn't take +// the hole as a cut-out of its flat pattern and the cut was refused. The sheet keeps the hole +// and still unfolds and folds back. +#[test] +fn a_hole_square_to_a_45_degree_flange() { + let mut s = load(&root().join("tests/oracle/70-sm-flange-45/recipe.json")).unwrap(); + let volume = |s: &Session| s.model.state().bodies.iter().map(|b| b.body.tessellate_with(0.002, true).unwrap().measure().volume).sum::(); + let before = volume(&s); + s.execute("solid.hole", &json!({"diameter": 3.448, "position": [66.666_667, -4.511_845, 4.511_845]})).unwrap(); + check(&s, 0, &BTreeMap::new()).unwrap_or_else(|(kind, e)| panic!("{kind}: {e}")); + // Through the 2.5 mm flange. + let gone = before - volume(&s); + let expected = std::f64::consts::PI * 1.724 * 1.724 * 2.5; + assert!((gone - expected).abs() < 0.1, "the hole took {gone} mm³, not {expected}"); + let sheets: Vec = s.model.state().sheets.iter().map(|sh| sh.body.clone()).collect(); + assert!(!sheets.is_empty()); + for body in sheets { + for id in ["sheet.unfold", "sheet.refold"] { + s.execute(id, &json!({"body": body})).unwrap_or_else(|e| panic!("{id}: {e}")); + } + } +} + +// #1255: an axis through a corner round of the sensor enclosure's lid, then a parameter that +// widens the lid. The round is found again by name, but its point nearest the old pick is the +// end of its arc, on the edge it shares with the flat side, and picking again by that point +// took the side: "the face is not a cylinder". The named face is used as found now. +#[test] +fn an_axis_through_a_corner_round_that_a_parameter_moves() { + let mut s = load(&root().join("examples/acceptance/sensor_enclosure.json")).unwrap(); + s.execute("construct.axis.through_cylinder", &json!({"face": {"face": [36.242_617, 29.977_740, 27.0]}})).unwrap(); + let start = s.doc.features.len(); + s.execute("parameters.change", &json!({"name": "board_w", "expression": "(60 mm) * 1.1"})).unwrap(); + check(&s, start, &BTreeMap::new()).unwrap_or_else(|(kind, e)| panic!("{kind}: {e}")); + let st = s.model.state(); + let axis = st.construct.iter().find_map(|c| match &c.geom { + solidcraft_engine::doc::construct::ConstructGeom::Axis { origin, dir } => Some((*origin, *dir)), + _ => None, + }); + let (origin, dir) = axis.expect("the axis"); + // The round's axis moved with the lid's corner, from x = 36 to 39. + let off = origin - Vec3::new(39.0, 26.0, 0.0); + assert!((off - dir * off.dot(dir)).len() < 1e-6, "the axis passes {origin:?} along {dir:?}"); +} + #[test] fn a_sketch_on_a_patterned_boss_top() { let mut c: Vec = rectangle(json!("XY"), [0., 0.], [60., 20.]).into(); diff --git a/crates/doc/src/construct.rs b/crates/doc/src/construct.rs index 2576541c..21b5a3c4 100644 --- a/crates/doc/src/construct.rs +++ b/crates/doc/src/construct.rs @@ -125,10 +125,15 @@ fn construct<'a>(st: &'a ModelState, name: &str) -> Result<&'a ConstructGeom> { /// The face picked: (body, face index, point on it). fn face_of<'a>(st: &'a ModelState, at: Vec3, name: &Option) -> Result<(&'a ModelBody, usize, Vec3)> { - let at = match name.as_deref().and_then(|n| crate::naming::point_on_face(st, n, at)) { - Some((q, _)) => q, - None => at, - }; + // The named face itself: its nearest point to the old pick can lie on an edge it shares + // (a corner round that a parameter moved away from the pick), where picking again by the + // point finds the flat face beside it (#1255). + if let Some(hit) = name.as_deref().and_then(|n| crate::name_lookup::locate_face(st, n, at)) + && let Some(b) = st.bodies.get(hit.body).filter(|b| !b.body.is_mesh()) + && hit.face < b.body.face_count() + { + return Ok((b, hit.face, hit.point)); + } for b in bodies(st) { if let Some(fi) = crate::appearance::face_index_at(b, at) { return Ok((b, fi, at)); diff --git a/crates/doc/src/eval_more.rs b/crates/doc/src/eval_more.rs index 6c130fdf..fcffcb19 100644 --- a/crates/doc/src/eval_more.rs +++ b/crates/doc/src/eval_more.rs @@ -729,7 +729,11 @@ fn sheet_tool_span(body: &Body, source: &Plane) -> Option<(f64, f64, f64, Option } // Bound floating point projection separately from model geometry tolerance. let roundoff = 128.0 * f64::EPSILON * (plane.origin.len() + current.origin.len() + source.origin.len()).max(1.0); - if roundoff > 1e-7 || (current.origin - plane.origin).dot(n).abs() > roundoff { + // The cap's current point lies off the recorded plane by the noise of evaluating + // its edges, which its fitted tilt shows across the distance between the two points + // (8e-12 over 2.4 mm on a 45° flange's drill, #1255; none on axis-aligned caps). + let noise = current.normal().cross(n).len() * (current.origin - plane.origin).len(); + if roundoff > 1e-7 || (current.origin - plane.origin).dot(n).abs() > roundoff + noise { return None; } projection_roundoff = projection_roundoff.max(roundoff); diff --git a/crates/kernel/src/boolean_guard.rs b/crates/kernel/src/boolean_guard.rs index 5d52e22b..aafcadd4 100644 --- a/crates/kernel/src/boolean_guard.rs +++ b/crates/kernel/src/boolean_guard.rs @@ -107,6 +107,19 @@ fn stray_point(from: &Mesh, onto: &Near, region: &Aabb3) -> Option { }) } +/// The smallest radius of a body's cylinders, spheres and tori (their tubes). +fn smallest_radius(body: &Body) -> Option { + use crate::surface_kind::{FaceSurface, face_surface}; + (0..body.face_count()) + .filter_map(|i| match face_surface(body, i)? { + FaceSurface::Cylinder { radius, .. } | FaceSurface::Sphere { radius, .. } => Some(radius), + FaceSurface::Torus { minor, .. } => Some(minor), + _ => None, + }) + .filter(|r| r.is_finite() && *r > 0.0) + .min_by(f64::total_cmp) +} + fn bad(op: BoolOp, what: String) -> KernelError { let verb = match op { BoolOp::Union => "join", @@ -148,14 +161,36 @@ pub(crate) fn check_retry(a: &Body, b: &Body, op: BoolOp, result: Option<&Body>) let (Ok(ma), Ok(mb), Ok(mr)) = (a.tessellate_with(t, true), b.tessellate_with(t, true), r.tessellate_with(t, true)) else { return Err(bad(op, "the result could not be checked".into())); }; - let (va, vb, vr) = (ma.measure().volume, mb.measure().volume, mr.measure().volume); - let slack = 2e-4 * (va.abs() + vb.abs()) + 1e-9; - let volume_ok = vr.is_finite() - && match op { - BoolOp::Union => vr >= va.max(vb) - slack && vr <= va + vb + slack, - BoolOp::Cut => vr <= va + slack && vr >= va - vb - slack, - BoolOp::Intersect => true, - }; + // A mesh as coarse as `t` on a round smaller than it has no inside to speak of (a through + // hole 0.13 mm across in a 900 mm slab measured −30272 mm³, #1255): the volumes are measured + // at a tenth of the bodies' smallest radius, where that is finer. All three at the same + // tolerance, so the chords' error on the faces they share cancels. `scale` refines it all. + let finest = [a, b, r].iter().filter_map(|x| smallest_radius(x)).fold(f64::INFINITY, f64::min); + let fine = if finest * 0.1 < t { (finest * 0.1).max(t * 1e-2) } else { t }; + let volume = |body: &Body, mesh: &Mesh, scale: f64| -> Result { + if fine == t && scale == 1.0 { + return Ok(mesh.measure().volume); + } + body.tessellate_with(fine * scale, true).map(|m| m.measure().volume).map_err(|_| bad(op, "the result could not be checked".into())) + }; + let judge = |scale: f64| -> Result<(bool, f64, f64, f64)> { + let (va, vb, vr) = (volume(a, &ma, scale)?, volume(b, &mb, scale)?, volume(r, &mr, scale)?); + let slack = 2e-4 * (va.abs() + vb.abs()) + 1e-9; + let ok = vr.is_finite() + && match op { + BoolOp::Union => vr >= va.max(vb) - slack && vr <= va + vb + slack, + BoolOp::Cut => vr <= va + slack && vr >= va - vb - slack, + BoolOp::Intersect => true, + }; + Ok((ok, va, vb, vr)) + }; + // A volume out of bounds is measured again ten times finer before it refuses the result: + // the coarse meshes of a part with many rounds can be off by more than the slack (a 0.8 mm + // hole through a plastic part's wall measured 6.8 mm³ more than the part, #1255). + let (mut volume_ok, mut va, mut vb, mut vr) = judge(1.0)?; + if !volume_ok { + (volume_ok, va, vb, vr) = judge(0.1)?; + } if !volume_ok { let what = match op { BoolOp::Union => format!("the joined body's volume would be {vr:.4} mm³ (the target is {va:.4} mm³, the tool {vb:.4} mm³)"), diff --git a/crates/kernel/src/curveblend.rs b/crates/kernel/src/curveblend.rs index 0ede742d..0c93fe06 100644 --- a/crates/kernel/src/curveblend.rs +++ b/crates/kernel/src/curveblend.rs @@ -31,8 +31,13 @@ const EXTENSION: usize = 8; const KNIFE: f64 = 1e-4; /// An end face this close to square-on-to-its-sides' normal counts as tangent to a side. const TANGENT_END: f64 = 1e-6; -/// Times the run past a tangent end is halved when the ball does not fit along it. +/// Times the run past a tangent end is halved when the ball does not fit along it (and the run +/// past a curved end is shortened when its sections wrap round). const TANGENT_RETRIES: usize = 8; +/// The longest step between the centres of neighbouring sections past an open chain's end, as a +/// multiple of the step along the end tangent: longer, and the sections have wrapped round a +/// curved edge's ring of centres. +const MAX_STEP_STRETCH: f64 = 3.0; /// Slides of the ball's centre along a knife edge's faces, each 1.6 times the last. const KNIFE_STEPS: usize = 40; @@ -1170,20 +1175,44 @@ fn curve_blend_with_limit(solid: &Solid, ids: &[mt::EdgeID], size: f64, r: f64, // the ball no longer fits, the run is shortened (it only gives the fit its context). let mut list = Vec::with_capacity(EXTENSION); let mut reach = reach; - for attempt in 0..(if tangent.is_some() { TANGENT_RETRIES } else { 1 }) { + // Past the end of a curved edge the planes square to its end tangent cut the ring of + // centres further and further round it, until a step jumps across the ring (#1255: a + // knuckle's cap circle with a round as wide as 0.7 of its radius). The run is shortened + // then, as long as one of its sections still lies wholly past the end face. + let ng_out = if ng.dot(out) < 0.0 { -ng } else { ng }; + let past = |sec: &Section| [sec.c, sec.q1, sec.q2].iter().all(|x| (*x - *p).dot(ng_out) > tol); + let mut fallback: Option> = None; + for attempt in 0..TANGENT_RETRIES { list.clear(); + let step = reach / EXTENSION as f64; let sections = (1..=EXTENSION).map(|j| { - let anchor = *p + out * (reach * j as f64 / EXTENSION as f64); + let anchor = *p + out * (step * j as f64); solve(&e1, &e2, anchor, *t, r, sigma, cusp, None, tol * 100.0) }); - if let Some(all) = sections.collect::>>() { - list = all; - break; + match sections.collect::>>() { + Some(all) => { + let smooth = tangent.is_some() + || std::iter::once(at.c).chain(all.iter().map(|s| s.c)).collect::>().windows(2).all(|w| match w { + [a, b] => a.dist(*b) <= MAX_STEP_STRETCH * step, + _ => true, + }); + if smooth { + // A shortened run must still cross the end face; else the first, + // full-length run stands. + if fallback.is_none() || all.iter().any(past) { + list = all; + } + break; + } + fallback.get_or_insert(all); + } + None if tangent.is_none() || fallback.is_some() || attempt + 1 == TANGENT_RETRIES => break, + None => {} } - if attempt + 1 == TANGENT_RETRIES || tangent.is_none() { - return Err(unsupported("the ball doesn't fit past the end of the edge")); - } - reach *= 0.5; + reach *= if tangent.is_some() { 0.5 } else { 0.75 }; + } + if list.is_empty() { + list = fallback.ok_or_else(|| unsupported("the ball doesn't fit past the end of the edge"))?; } if *k == 0 { list.reverse(); diff --git a/tests/action_matrix/baseline.json b/tests/action_matrix/baseline.json index 37d63435..f856d81f 100644 --- a/tests/action_matrix/baseline.json +++ b/tests/action_matrix/baseline.json @@ -254,7 +254,7 @@ "Lid/F1:+z#[F4:side:l5,F4:side:l6,F4:side:l7,F4:side:l8,F5:+x,F5:+y,F5:-x,F5:-y]#[F10:-y,F4:side:l5,F4:side:l6,F4:side:l8,F5:+x,F5:+y,F5:-x,F8:-y]|F5:+y": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", "Lid/F1:+z#[F4:side:l5,F4:side:l6,F4:side:l7,F4:side:l8,F5:+x,F5:+y,F5:-x,F5:-y]#[F10:-y,F4:side:l5,F4:side:l6,F4:side:l8,F5:+x,F5:+y,F5:-x,F8:-y]|F5:-x": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", "Lid/F1:+z#[F4:side:l5,F4:side:l6,F4:side:l7,F4:side:l8,F5:+x,F5:+y,F5:-x,F5:-y]#[F10:-y,F4:side:l5,F4:side:l6,F4:side:l8,F5:+x,F5:+y,F5:-x,F8:-y]|F8:-y": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", - "Lid/F1:+z#[F4:side:l5,F4:side:l6,F4:side:l7,F4:side:l8,F5:+x,F5:+y,F5:-x,F5:-y]#[F11:+y,F1:+x,F1:+y,F1:-x,F1:-y,F2:blend:F1:+x|F1:+y,F2:blend:F1:+x|F1:-y,F2:blend:F1:+y|F1:-x,F2:blend:F1:-x|F1:-y,F4:side:l1,F4:side:l2,F4:side:l3,F4:side:l4,F4:side:l6,F4:side:l7,F4:side:l8,F5:+x,F5:-x,F5:-y,F6:+x,F6:+y,F6:-x,F6:-y,F7:+x,F7:-x,F9:+y]": "face.angle_plane !face.draft_neutral !face.extrude face.hole face.midplane !face.offset_plane !face.press_pull !face.shell !face.sketch", + "Lid/F1:+z#[F4:side:l5,F4:side:l6,F4:side:l7,F4:side:l8,F5:+x,F5:+y,F5:-x,F5:-y]#[F11:+y,F1:+x,F1:+y,F1:-x,F1:-y,F2:blend:F1:+x|F1:+y,F2:blend:F1:+x|F1:-y,F2:blend:F1:+y|F1:-x,F2:blend:F1:-x|F1:-y,F4:side:l1,F4:side:l2,F4:side:l3,F4:side:l4,F4:side:l6,F4:side:l7,F4:side:l8,F5:+x,F5:-x,F5:-y,F6:+x,F6:+y,F6:-x,F6:-y,F7:+x,F7:-x,F9:+y]": "face.angle_plane !face.draft_neutral !face.extrude face.hole face.midplane !face.offset_plane !face.press_pull face.shell !face.sketch", "Lid/F1:+z#[F4:side:l5,F4:side:l6,F4:side:l7,F4:side:l8,F5:+x,F5:+y,F5:-x,F5:-y]#[F11:+y,F1:+x,F1:+y,F1:-x,F1:-y,F2:blend:F1:+x|F1:+y,F2:blend:F1:+x|F1:-y,F2:blend:F1:+y|F1:-x,F2:blend:F1:-x|F1:-y,F4:side:l1,F4:side:l2,F4:side:l3,F4:side:l4,F4:side:l6,F4:side:l7,F4:side:l8,F5:+x,F5:-x,F5:-y,F6:+x,F6:+y,F6:-x,F6:-y,F7:+x,F7:-x,F9:+y]|F1:-x": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", "Lid/F1:+z#[F4:side:l5,F4:side:l6,F4:side:l7,F4:side:l8,F5:+x,F5:+y,F5:-x,F5:-y]#[F11:+y,F1:+x,F1:+y,F1:-x,F1:-y,F2:blend:F1:+x|F1:+y,F2:blend:F1:+x|F1:-y,F2:blend:F1:+y|F1:-x,F2:blend:F1:-x|F1:-y,F4:side:l1,F4:side:l2,F4:side:l3,F4:side:l4,F4:side:l6,F4:side:l7,F4:side:l8,F5:+x,F5:-x,F5:-y,F6:+x,F6:+y,F6:-x,F6:-y,F7:+x,F7:-x,F9:+y]|F1:-y": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", "Lid/F1:+z#[F4:side:l5,F4:side:l6,F4:side:l7,F4:side:l8,F5:+x,F5:+y,F5:-x,F5:-y]#[F11:+y,F1:+x,F1:+y,F1:-x,F1:-y,F2:blend:F1:+x|F1:+y,F2:blend:F1:+x|F1:-y,F2:blend:F1:+y|F1:-x,F2:blend:F1:-x|F1:-y,F4:side:l1,F4:side:l2,F4:side:l3,F4:side:l4,F4:side:l6,F4:side:l7,F4:side:l8,F5:+x,F5:-x,F5:-y,F6:+x,F6:+y,F6:-x,F6:-y,F7:+x,F7:-x,F9:+y]|F2:blend:F1:+x|F1:+y": "edge.chamfer edge.fillet edge.normal_plane edge.project", @@ -545,7 +545,7 @@ "Body2/F4:bottom|F4:side#2": "edge.chamfer edge.fillet edge.normal_plane edge.project", "Body2/F4:side#1": "curved.axis curved.axis+edit curved.tangent_plane", "Body2/F4:side#1|F4:top": "edge.chamfer edge.fillet edge.fillet+edit edge.normal_plane edge.project", - "Body2/F4:side#2": "!curved.axis curved.tangent_plane", + "Body2/F4:side#2": "curved.axis curved.axis+edit curved.tangent_plane", "Body2/F4:side#2|F4:top": "edge.chamfer edge.fillet edge.fillet+edit edge.normal_plane edge.project", "Body2/F4:top": "!face.extrude face.hole face.offset_plane !face.press_pull face.shell face.sketch", "Body2/body": "body.copy body.mirror body.move body.pattern body.pattern+edit", @@ -938,7 +938,7 @@ "Body1/F5:rest:side:6": "face.angle_plane face.extrude face.hole face.offset_plane face.press_pull !face.shell face.sketch", "Body1/F5:rest:side:6|F5:rest:side:7": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", "Body1/F5:rest:side:6|F5:rest:top": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", - "Body1/F5:rest:side:7": "face.angle_plane face.extrude !face.hole face.offset_plane face.press_pull !face.shell face.sketch", + "Body1/F5:rest:side:7": "face.angle_plane face.extrude face.hole face.offset_plane face.press_pull !face.shell face.sketch", "Body1/F5:rest:side:7|F5:rest:top": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", "Body1/F5:rest:top": "face.angle_plane face.extrude face.hole face.midplane face.offset_plane face.press_pull !face.shell face.sketch", "Body1/F6:arm:base": "face.angle_plane !face.draft_neutral face.extrude face.hole face.midplane face.offset_plane face.press_pull face.shell face.sketch", @@ -2417,7 +2417,7 @@ "Body1/F17:side:l60|F4:inner:F2:start#[F4:inner:F2:side:l1,F4:inner:F2:side:l2,F4:inner:F2:side:l3,F4:inner:F2:side:l4,F4:inner:F3:blend:F2:side:l1|F2:side:l2,F4:inner:F3:blend:F2:side:l1|F2:side:l4,F4:inner:F3:blend:F2:side:l2|F2:side:l3,F4:inner:F3:blend:F2:side:l3|F2:side:l4,F7:side:c1]#[F4:inner:F2:side:l1,F4:inner:F2:side:l2,F4:inner:F2:side:l3,F4:inner:F2:side:l4,F4:inner:F3:blend:F2:side:l1|F2:side:l2,F4:inner:F3:blend:F2:side:l1|F2:side:l4,F4:inner:F3:blend:F2:side:l2|F2:side:l3,F4:inner:F3:blend:F2:side:l3|F2:side:l4,F7:side:c1,F7:side:c1@F8.1,F7:side:c1@F8.2,F7:side:c1@F8.3]#[F14:side:l5,F14:side:l5@F15.1,F14:side:l5@F15.2,F14:side:l5@F15.3,F14:side:l5@F15.4,F14:side:l6,F14:side:l6@F15.1,F14:side:l6@F15.2,F14:side:l6@F15.3,F14:side:l6@F15.4,F14:side:l7,F14:side:l7@F15.1,F14:side:l7@F15.2,F14:side:l7@F15.3,F14:side:l7@F15.4,F14:side:l8,F14:side:l8@F15.1,F14:side:l8@F15.2,F14:side:l8@F15.3,F14:side:l8@F15.4,F17:side:k10,F17:side:k11,F17:side:k12,F17:side:k9,F17:side:l57,F17:side:l58,F17:side:l59,F17:side:l60,F17:side:l61,F17:side:l65,F17:side:l66,F17:side:l67,F17:side:l68,F17:side:l69,F17:side:l70,F17:side:l71,F17:side:l72,F17:side:l76,F17:side:l77,F17:side:l78,F17:side:l79,F17:side:l80,F17:side:l81,F17:side:l82,F17:side:l83,F17:side:l84,F17:side:l85,F17:side:l86,F4:inner:F2:side:l1,F4:inner:F2:side:l2,F4:inner:F2:side:l3,F4:inner:F2:side:l4,F4:inner:F3:blend:F2:side:l1|F2:side:l2,F4:inner:F3:blend:F2:side:l1|F2:side:l4,F4:inner:F3:blend:F2:side:l2|F2:side:l3,F4:inner:F3:blend:F2:side:l3|F2:side:l4,F7:side:c1,F7:side:c1@F8.1,F7:side:c1@F8.2,F7:side:c1@F8.3]": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.normal_plane+edit edge.project", "Body1/F17:side:l61": "face.angle_plane !face.draft_neutral face.extrude face.extrude+edit face.hole face.midplane face.offset_plane face.press_pull !face.shell face.sketch", "Body1/F17:side:l61|F4:inner:F2:start#[F4:inner:F2:side:l1,F4:inner:F2:side:l2,F4:inner:F2:side:l3,F4:inner:F2:side:l4,F4:inner:F3:blend:F2:side:l1|F2:side:l2,F4:inner:F3:blend:F2:side:l1|F2:side:l4,F4:inner:F3:blend:F2:side:l2|F2:side:l3,F4:inner:F3:blend:F2:side:l3|F2:side:l4,F7:side:c1]#[F4:inner:F2:side:l1,F4:inner:F2:side:l2,F4:inner:F2:side:l3,F4:inner:F2:side:l4,F4:inner:F3:blend:F2:side:l1|F2:side:l2,F4:inner:F3:blend:F2:side:l1|F2:side:l4,F4:inner:F3:blend:F2:side:l2|F2:side:l3,F4:inner:F3:blend:F2:side:l3|F2:side:l4,F7:side:c1,F7:side:c1@F8.1,F7:side:c1@F8.2,F7:side:c1@F8.3]#[F14:side:l5,F14:side:l5@F15.1,F14:side:l5@F15.2,F14:side:l5@F15.3,F14:side:l5@F15.4,F14:side:l6,F14:side:l6@F15.1,F14:side:l6@F15.2,F14:side:l6@F15.3,F14:side:l6@F15.4,F14:side:l7,F14:side:l7@F15.1,F14:side:l7@F15.2,F14:side:l7@F15.3,F14:side:l7@F15.4,F14:side:l8,F14:side:l8@F15.1,F14:side:l8@F15.2,F14:side:l8@F15.3,F14:side:l8@F15.4,F17:side:k10,F17:side:k11,F17:side:k12,F17:side:k9,F17:side:l57,F17:side:l58,F17:side:l59,F17:side:l60,F17:side:l61,F17:side:l65,F17:side:l66,F17:side:l67,F17:side:l68,F17:side:l69,F17:side:l70,F17:side:l71,F17:side:l72,F17:side:l76,F17:side:l77,F17:side:l78,F17:side:l79,F17:side:l80,F17:side:l81,F17:side:l82,F17:side:l83,F17:side:l84,F17:side:l85,F17:side:l86,F4:inner:F2:side:l1,F4:inner:F2:side:l2,F4:inner:F2:side:l3,F4:inner:F2:side:l4,F4:inner:F3:blend:F2:side:l1|F2:side:l2,F4:inner:F3:blend:F2:side:l1|F2:side:l4,F4:inner:F3:blend:F2:side:l2|F2:side:l3,F4:inner:F3:blend:F2:side:l3|F2:side:l4,F7:side:c1,F7:side:c1@F8.1,F7:side:c1@F8.2,F7:side:c1@F8.3]": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project edge.project+edit", - "Body1/F17:side:l62": "face.angle_plane !face.draft_neutral face.extrude face.hole !face.hole+edit face.midplane face.midplane+edit face.offset_plane face.press_pull !face.shell face.sketch", + "Body1/F17:side:l62": "face.angle_plane !face.draft_neutral face.extrude face.hole face.hole+edit face.midplane face.midplane+edit face.offset_plane face.press_pull !face.shell face.sketch", "Body1/F17:side:l62|F17:side:l63": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.normal_plane+edit edge.project", "Body1/F17:side:l62|F17:side:l64": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", "Body1/F17:side:l62|F4:inner:F2:start#[F4:inner:F2:side:l1,F4:inner:F2:side:l2,F4:inner:F2:side:l3,F4:inner:F2:side:l4,F4:inner:F3:blend:F2:side:l1|F2:side:l2,F4:inner:F3:blend:F2:side:l1|F2:side:l4,F4:inner:F3:blend:F2:side:l2|F2:side:l3,F4:inner:F3:blend:F2:side:l3|F2:side:l4,F7:side:c1]#[F4:inner:F2:side:l1,F4:inner:F2:side:l2,F4:inner:F2:side:l3,F4:inner:F2:side:l4,F4:inner:F3:blend:F2:side:l1|F2:side:l2,F4:inner:F3:blend:F2:side:l1|F2:side:l4,F4:inner:F3:blend:F2:side:l2|F2:side:l3,F4:inner:F3:blend:F2:side:l3|F2:side:l4,F7:side:c1,F7:side:c1@F8.1,F7:side:c1@F8.2,F7:side:c1@F8.3]#[F17:side:k13,F17:side:k14,F17:side:k15,F17:side:k16,F17:side:l62,F17:side:l63,F17:side:l64]": "edge.axis edge.axis+edit edge.chamfer edge.fillet edge.normal_plane edge.project", @@ -2456,7 +2456,7 @@ "Body1/F17:side:l74": "face.angle_plane !face.draft_neutral face.extrude !face.hole face.offset_plane face.press_pull face.press_pull+edit !face.shell face.sketch", "Body1/F17:side:l74|F17:side:l75": "edge.axis edge.chamfer edge.chamfer+edit edge.fillet edge.fillet+edit edge.normal_plane edge.normal_plane+edit edge.project", "Body1/F17:side:l74|F4:inner:F2:start#[F4:inner:F2:side:l1,F4:inner:F2:side:l2,F4:inner:F2:side:l3,F4:inner:F2:side:l4,F4:inner:F3:blend:F2:side:l1|F2:side:l2,F4:inner:F3:blend:F2:side:l1|F2:side:l4,F4:inner:F3:blend:F2:side:l2|F2:side:l3,F4:inner:F3:blend:F2:side:l3|F2:side:l4,F7:side:c1]#[F4:inner:F2:side:l1,F4:inner:F2:side:l2,F4:inner:F2:side:l3,F4:inner:F2:side:l4,F4:inner:F3:blend:F2:side:l1|F2:side:l2,F4:inner:F3:blend:F2:side:l1|F2:side:l4,F4:inner:F3:blend:F2:side:l2|F2:side:l3,F4:inner:F3:blend:F2:side:l3|F2:side:l4,F7:side:c1,F7:side:c1@F8.1,F7:side:c1@F8.2,F7:side:c1@F8.3]#[F17:side:l73,F17:side:l74,F17:side:l75]": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", - "Body1/F17:side:l75": "face.angle_plane !face.draft_neutral face.extrude !face.hole face.offset_plane face.press_pull !face.shell face.sketch", + "Body1/F17:side:l75": "face.angle_plane !face.draft_neutral face.extrude face.hole face.hole+edit face.offset_plane face.press_pull !face.shell face.sketch", "Body1/F17:side:l75|F4:inner:F2:start#[F4:inner:F2:side:l1,F4:inner:F2:side:l2,F4:inner:F2:side:l3,F4:inner:F2:side:l4,F4:inner:F3:blend:F2:side:l1|F2:side:l2,F4:inner:F3:blend:F2:side:l1|F2:side:l4,F4:inner:F3:blend:F2:side:l2|F2:side:l3,F4:inner:F3:blend:F2:side:l3|F2:side:l4,F7:side:c1]#[F4:inner:F2:side:l1,F4:inner:F2:side:l2,F4:inner:F2:side:l3,F4:inner:F2:side:l4,F4:inner:F3:blend:F2:side:l1|F2:side:l2,F4:inner:F3:blend:F2:side:l1|F2:side:l4,F4:inner:F3:blend:F2:side:l2|F2:side:l3,F4:inner:F3:blend:F2:side:l3|F2:side:l4,F7:side:c1,F7:side:c1@F8.1,F7:side:c1@F8.2,F7:side:c1@F8.3]#[F17:side:l73,F17:side:l74,F17:side:l75]": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", "Body1/F17:side:l76": "face.angle_plane !face.draft_neutral face.extrude face.extrude+edit face.hole face.midplane face.offset_plane face.press_pull !face.shell face.sketch", "Body1/F17:side:l76|F17:side:l77": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", @@ -2723,6 +2723,386 @@ "Bracket/v[F2:side:e & F2:side:f & F2:start]": "vertex.plane_three_points vertex.point", "design": "load" }, + "examples/render-opaque-studio": { + "Metal rough/F4:face:0": "curved.tangent_plane", + "Metal rough/F4:face:1": "curved.tangent_plane", + "Metal rough/F4:face:2": "curved.tangent_plane", + "Metal rough/F4:face:3": "curved.tangent_plane", + "Metal rough/F4:face:4": "curved.tangent_plane", + "Metal rough/F4:face:5": "curved.tangent_plane", + "Metal rough/body": "body.copy body.mirror body.move body.pattern", + "Metal smooth/F3:face:0": "curved.tangent_plane", + "Metal smooth/F3:face:1": "curved.tangent_plane", + "Metal smooth/F3:face:2": "curved.tangent_plane", + "Metal smooth/F3:face:3": "curved.tangent_plane", + "Metal smooth/F3:face:4": "curved.tangent_plane", + "Metal smooth/F3:face:5": "curved.tangent_plane", + "Metal smooth/body": "body.copy body.mirror body.move body.pattern", + "Nonmetal rough/F2:face:0": "curved.tangent_plane", + "Nonmetal rough/F2:face:1": "curved.tangent_plane", + "Nonmetal rough/F2:face:2": "curved.tangent_plane", + "Nonmetal rough/F2:face:3": "curved.tangent_plane", + "Nonmetal rough/F2:face:4": "curved.tangent_plane", + "Nonmetal rough/F2:face:5": "curved.tangent_plane", + "Nonmetal rough/body": "body.copy body.mirror body.move body.pattern", + "Nonmetal smooth/F1:face:0": "curved.tangent_plane", + "Nonmetal smooth/F1:face:1": "curved.tangent_plane", + "Nonmetal smooth/F1:face:2": "curved.tangent_plane", + "Nonmetal smooth/F1:face:3": "curved.tangent_plane", + "Nonmetal smooth/F1:face:4": "curved.tangent_plane", + "Nonmetal smooth/F1:face:5": "curved.tangent_plane", + "Nonmetal smooth/body": "body.copy body.mirror body.move body.pattern", + "Study base/F5:+x": "face.angle_plane face.draft_neutral face.extrude face.hole face.midplane face.offset_plane face.press_pull face.shell face.sketch", + "Study base/F5:+x|F5:+y": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", + "Study base/F5:+x|F5:+z": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", + "Study base/F5:+x|F5:-y": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", + "Study base/F5:+x|F5:-z": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", + "Study base/F5:+y": "face.angle_plane face.draft_neutral face.extrude face.hole face.midplane face.offset_plane face.press_pull face.shell face.sketch", + "Study base/F5:+y|F5:+z": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", + "Study base/F5:+y|F5:-x": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", + "Study base/F5:+y|F5:-z": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", + "Study base/F5:+z": "face.angle_plane face.draft_neutral face.extrude face.hole face.midplane face.offset_plane face.press_pull !face.shell face.sketch", + "Study base/F5:+z|F5:-x": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", + "Study base/F5:+z|F5:-y": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", + "Study base/F5:-x": "face.angle_plane face.draft_neutral face.extrude face.hole face.offset_plane face.press_pull face.shell face.sketch", + "Study base/F5:-x|F5:-y": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", + "Study base/F5:-x|F5:-z": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", + "Study base/F5:-y": "face.angle_plane face.draft_neutral face.extrude face.hole face.offset_plane face.press_pull face.shell face.sketch", + "Study base/F5:-y|F5:-z": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", + "Study base/F5:-z": "face.angle_plane face.draft_neutral face.extrude face.hole face.offset_plane face.press_pull face.shell face.sketch", + "Study base/body": "body.copy body.mirror body.move body.pattern", + "Study base/v[F5:+x & F5:+y & F5:+z]": "vertex.plane_three_points vertex.point", + "Study base/v[F5:+x & F5:+y & F5:-z]": "vertex.plane_three_points vertex.point", + "Study base/v[F5:+x & F5:+z & F5:-y]": "vertex.plane_three_points vertex.point", + "Study base/v[F5:+x & F5:-y & F5:-z]": "vertex.plane_three_points vertex.point", + "Study base/v[F5:+y & F5:+z & F5:-x]": "vertex.plane_three_points vertex.point", + "Study base/v[F5:+y & F5:-x & F5:-z]": "vertex.plane_three_points vertex.point", + "Study base/v[F5:+z & F5:-x & F5:-y]": "vertex.plane_three_points vertex.point", + "Study base/v[F5:-x & F5:-y & F5:-z]": "vertex.plane_three_points vertex.point", + "design": "load" + }, + "examples/render-studio": { + "BackWall/F7:+x": "face.angle_plane face.draft_neutral !face.extrude face.hole face.midplane face.offset_plane !face.press_pull face.shell face.sketch", + "BackWall/F7:+x|F7:+y": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", + "BackWall/F7:+x|F7:+z": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", + "BackWall/F7:+x|F7:-y": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", + "BackWall/F7:+x|F7:-z": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", + "BackWall/F7:+y": "face.angle_plane face.draft_neutral face.extrude face.hole face.midplane face.offset_plane face.press_pull face.shell face.sketch", + "BackWall/F7:+y|F7:+z": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", + "BackWall/F7:+y|F7:-x": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", + "BackWall/F7:+y|F7:-z": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", + "BackWall/F7:+z": "face.angle_plane face.draft_neutral !face.extrude face.hole face.midplane face.offset_plane !face.press_pull face.shell face.sketch", + "BackWall/F7:+z|F7:-x": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", + "BackWall/F7:+z|F7:-y": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", + "BackWall/F7:-x": "face.angle_plane face.draft_neutral !face.extrude face.hole face.offset_plane !face.press_pull face.shell face.sketch", + "BackWall/F7:-x|F7:-y": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", + "BackWall/F7:-x|F7:-z": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", + "BackWall/F7:-y": "face.angle_plane face.draft_neutral face.extrude face.hole face.offset_plane face.press_pull face.shell face.sketch", + "BackWall/F7:-y|F7:-z": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", + "BackWall/F7:-z": "face.angle_plane face.draft_neutral !face.extrude face.hole face.offset_plane !face.press_pull face.shell face.sketch", + "BackWall/body": "body.copy body.mirror body.move body.pattern", + "BackWall/v[F7:+x & F7:+y & F7:+z]": "vertex.plane_three_points vertex.point", + "BackWall/v[F7:+x & F7:+y & F7:-z]": "vertex.plane_three_points vertex.point", + "BackWall/v[F7:+x & F7:+z & F7:-y]": "vertex.plane_three_points vertex.point", + "BackWall/v[F7:+x & F7:-y & F7:-z]": "vertex.plane_three_points vertex.point", + "BackWall/v[F7:+y & F7:+z & F7:-x]": "vertex.plane_three_points vertex.point", + "BackWall/v[F7:+y & F7:-x & F7:-z]": "vertex.plane_three_points vertex.point", + "BackWall/v[F7:+z & F7:-x & F7:-y]": "vertex.plane_three_points vertex.point", + "BackWall/v[F7:-x & F7:-y & F7:-z]": "vertex.plane_three_points vertex.point", + "Base/F3:+x": "face.angle_plane face.draft_neutral face.extrude face.hole face.midplane face.offset_plane face.press_pull face.shell face.sketch", + "Base/F3:+x|F3:+y": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", + "Base/F3:+x|F3:+z": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", + "Base/F3:+x|F3:-y": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", + "Base/F3:+x|F3:-z": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", + "Base/F3:+y": "face.angle_plane face.draft_neutral face.extrude face.hole face.midplane face.offset_plane face.press_pull face.shell face.sketch", + "Base/F3:+y|F3:+z": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", + "Base/F3:+y|F3:-x": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", + "Base/F3:+y|F3:-z": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", + "Base/F3:+z": "face.angle_plane face.draft_neutral !face.extrude face.hole face.midplane face.offset_plane !face.press_pull face.shell face.sketch", + "Base/F3:+z|F3:-x": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", + "Base/F3:+z|F3:-y": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", + "Base/F3:-x": "face.angle_plane face.draft_neutral face.extrude face.hole face.offset_plane face.press_pull face.shell face.sketch", + "Base/F3:-x|F3:-y": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", + "Base/F3:-x|F3:-z": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", + "Base/F3:-y": "face.angle_plane face.draft_neutral face.extrude face.hole face.offset_plane face.press_pull face.shell face.sketch", + "Base/F3:-y|F3:-z": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", + "Base/F3:-z": "face.angle_plane face.draft_neutral face.extrude face.hole face.offset_plane face.press_pull face.shell face.sketch", + "Base/body": "body.copy body.mirror body.move body.pattern", + "Base/v[F3:+x & F3:+y & F3:+z]": "vertex.plane_three_points vertex.point", + "Base/v[F3:+x & F3:+y & F3:-z]": "vertex.plane_three_points vertex.point", + "Base/v[F3:+x & F3:+z & F3:-y]": "vertex.plane_three_points vertex.point", + "Base/v[F3:+x & F3:-y & F3:-z]": "vertex.plane_three_points vertex.point", + "Base/v[F3:+y & F3:+z & F3:-x]": "vertex.plane_three_points vertex.point", + "Base/v[F3:+y & F3:-x & F3:-z]": "vertex.plane_three_points vertex.point", + "Base/v[F3:+z & F3:-x & F3:-y]": "vertex.plane_three_points vertex.point", + "Base/v[F3:-x & F3:-y & F3:-z]": "vertex.plane_three_points vertex.point", + "ClearLid/F25:+x": "face.angle_plane face.draft_neutral face.extrude face.hole face.midplane face.offset_plane face.press_pull face.shell face.sketch", + "ClearLid/F25:+x|F25:+y": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", + "ClearLid/F25:+x|F25:+z": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", + "ClearLid/F25:+x|F25:-y": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", + "ClearLid/F25:+x|F25:-z": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", + "ClearLid/F25:+y": "face.angle_plane face.draft_neutral face.extrude face.hole face.midplane face.offset_plane face.press_pull face.shell face.sketch", + "ClearLid/F25:+y|F25:+z": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", + "ClearLid/F25:+y|F25:-x": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", + "ClearLid/F25:+y|F25:-z": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", + "ClearLid/F25:+z": "face.angle_plane face.draft_neutral face.extrude face.hole face.midplane face.offset_plane face.press_pull face.shell face.sketch", + "ClearLid/F25:+z|F25:-x": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", + "ClearLid/F25:+z|F25:-y": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", + "ClearLid/F25:-x": "face.angle_plane face.draft_neutral face.extrude face.hole face.offset_plane face.press_pull face.shell face.sketch", + "ClearLid/F25:-x|F25:-y": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", + "ClearLid/F25:-x|F25:-z": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", + "ClearLid/F25:-y": "face.angle_plane face.draft_neutral face.extrude face.hole face.offset_plane face.press_pull face.shell face.sketch", + "ClearLid/F25:-y|F25:-z": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", + "ClearLid/F25:-z": "face.angle_plane face.draft_neutral face.extrude face.hole face.offset_plane face.press_pull face.shell face.sketch", + "ClearLid/body": "body.copy body.mirror body.move body.pattern", + "ClearLid/v[F25:+x & F25:+y & F25:+z]": "vertex.plane_three_points vertex.point", + "ClearLid/v[F25:+x & F25:+y & F25:-z]": "vertex.plane_three_points vertex.point", + "ClearLid/v[F25:+x & F25:+z & F25:-y]": "vertex.plane_three_points vertex.point", + "ClearLid/v[F25:+x & F25:-y & F25:-z]": "vertex.plane_three_points vertex.point", + "ClearLid/v[F25:+y & F25:+z & F25:-x]": "vertex.plane_three_points vertex.point", + "ClearLid/v[F25:+y & F25:-x & F25:-z]": "vertex.plane_three_points vertex.point", + "ClearLid/v[F25:+z & F25:-x & F25:-y]": "vertex.plane_three_points vertex.point", + "ClearLid/v[F25:-x & F25:-y & F25:-z]": "vertex.plane_three_points vertex.point", + "FrontWall/F6:+x": "face.angle_plane face.draft_neutral !face.extrude face.hole face.midplane face.offset_plane !face.press_pull face.shell face.sketch", + "FrontWall/F6:+x|F6:+y": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", + "FrontWall/F6:+x|F6:+z": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", + "FrontWall/F6:+x|F6:-y": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", + "FrontWall/F6:+x|F6:-z": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", + "FrontWall/F6:+y": "face.angle_plane face.draft_neutral face.extrude face.hole face.midplane face.offset_plane face.press_pull face.shell face.sketch", + "FrontWall/F6:+y|F6:+z": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", + "FrontWall/F6:+y|F6:-x": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", + "FrontWall/F6:+y|F6:-z": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", + "FrontWall/F6:+z": "face.angle_plane face.draft_neutral !face.extrude face.hole face.midplane face.offset_plane !face.press_pull face.shell face.sketch", + "FrontWall/F6:+z|F6:-x": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", + "FrontWall/F6:+z|F6:-y": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", + "FrontWall/F6:-x": "face.angle_plane face.draft_neutral !face.extrude face.hole face.offset_plane !face.press_pull face.shell face.sketch", + "FrontWall/F6:-x|F6:-y": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", + "FrontWall/F6:-x|F6:-z": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", + "FrontWall/F6:-y": "face.angle_plane face.draft_neutral face.extrude face.hole face.offset_plane face.press_pull face.shell face.sketch", + "FrontWall/F6:-y|F6:-z": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", + "FrontWall/F6:-z": "face.angle_plane face.draft_neutral !face.extrude face.hole face.offset_plane !face.press_pull face.shell face.sketch", + "FrontWall/body": "body.copy body.mirror body.move body.pattern", + "FrontWall/v[F6:+x & F6:+y & F6:+z]": "vertex.plane_three_points vertex.point", + "FrontWall/v[F6:+x & F6:+y & F6:-z]": "vertex.plane_three_points vertex.point", + "FrontWall/v[F6:+x & F6:+z & F6:-y]": "vertex.plane_three_points vertex.point", + "FrontWall/v[F6:+x & F6:-y & F6:-z]": "vertex.plane_three_points vertex.point", + "FrontWall/v[F6:+y & F6:+z & F6:-x]": "vertex.plane_three_points vertex.point", + "FrontWall/v[F6:+y & F6:-x & F6:-z]": "vertex.plane_three_points vertex.point", + "FrontWall/v[F6:+z & F6:-x & F6:-y]": "vertex.plane_three_points vertex.point", + "FrontWall/v[F6:-x & F6:-y & F6:-z]": "vertex.plane_three_points vertex.point", + "Insert/F10:+x": "face.angle_plane face.draft_neutral face.extrude face.hole face.midplane face.offset_plane face.press_pull face.shell face.sketch", + "Insert/F10:+x|F10:+y": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", + "Insert/F10:+x|F10:+z": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", + "Insert/F10:+x|F10:-y": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", + "Insert/F10:+x|F10:-z": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", + "Insert/F10:+y": "face.angle_plane face.draft_neutral face.extrude face.hole face.midplane face.offset_plane face.press_pull face.shell face.sketch", + "Insert/F10:+y|F10:+z": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", + "Insert/F10:+y|F10:-x": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", + "Insert/F10:+y|F10:-z": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", + "Insert/F10:+z": "face.angle_plane face.draft_neutral face.extrude face.hole face.midplane face.offset_plane face.press_pull face.shell face.sketch", + "Insert/F10:+z|F10:-x": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", + "Insert/F10:+z|F10:-y": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", + "Insert/F10:-x": "face.angle_plane face.draft_neutral face.extrude face.hole face.offset_plane face.press_pull face.shell face.sketch", + "Insert/F10:-x|F10:-y": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", + "Insert/F10:-x|F10:-z": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", + "Insert/F10:-y": "face.angle_plane face.draft_neutral face.extrude face.hole face.offset_plane face.press_pull face.shell face.sketch", + "Insert/F10:-y|F10:-z": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", + "Insert/F10:-z": "face.angle_plane face.draft_neutral !face.extrude face.hole face.offset_plane !face.press_pull face.shell face.sketch", + "Insert/body": "body.copy body.mirror body.move body.pattern", + "Insert/v[F10:+x & F10:+y & F10:+z]": "vertex.plane_three_points vertex.point", + "Insert/v[F10:+x & F10:+y & F10:-z]": "vertex.plane_three_points vertex.point", + "Insert/v[F10:+x & F10:+z & F10:-y]": "vertex.plane_three_points vertex.point", + "Insert/v[F10:+x & F10:-y & F10:-z]": "vertex.plane_three_points vertex.point", + "Insert/v[F10:+y & F10:+z & F10:-x]": "vertex.plane_three_points vertex.point", + "Insert/v[F10:+y & F10:-x & F10:-z]": "vertex.plane_three_points vertex.point", + "Insert/v[F10:+z & F10:-x & F10:-y]": "vertex.plane_three_points vertex.point", + "Insert/v[F10:-x & F10:-y & F10:-z]": "vertex.plane_three_points vertex.point", + "LeftWall/F4:+x": "face.angle_plane face.draft_neutral face.extrude face.hole face.midplane face.offset_plane face.press_pull face.shell face.sketch", + "LeftWall/F4:+x|F4:+y": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", + "LeftWall/F4:+x|F4:+z": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", + "LeftWall/F4:+x|F4:-y": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", + "LeftWall/F4:+x|F4:-z": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", + "LeftWall/F4:+y": "face.angle_plane face.draft_neutral face.extrude face.hole face.midplane face.offset_plane face.press_pull face.shell face.sketch", + "LeftWall/F4:+y|F4:+z": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", + "LeftWall/F4:+y|F4:-x": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", + "LeftWall/F4:+y|F4:-z": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", + "LeftWall/F4:+z": "face.angle_plane face.draft_neutral !face.extrude face.hole face.midplane face.offset_plane !face.press_pull face.shell face.sketch", + "LeftWall/F4:+z|F4:-x": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", + "LeftWall/F4:+z|F4:-y": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", + "LeftWall/F4:-x": "face.angle_plane face.draft_neutral face.extrude face.hole face.offset_plane face.press_pull face.shell face.sketch", + "LeftWall/F4:-x|F4:-y": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", + "LeftWall/F4:-x|F4:-z": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", + "LeftWall/F4:-y": "face.angle_plane face.draft_neutral face.extrude face.hole face.offset_plane face.press_pull face.shell face.sketch", + "LeftWall/F4:-y|F4:-z": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", + "LeftWall/F4:-z": "face.angle_plane face.draft_neutral !face.extrude face.hole face.offset_plane !face.press_pull face.shell face.sketch", + "LeftWall/body": "body.copy body.mirror body.move body.pattern", + "LeftWall/v[F4:+x & F4:+y & F4:+z]": "vertex.plane_three_points vertex.point", + "LeftWall/v[F4:+x & F4:+y & F4:-z]": "vertex.plane_three_points vertex.point", + "LeftWall/v[F4:+x & F4:+z & F4:-y]": "vertex.plane_three_points vertex.point", + "LeftWall/v[F4:+x & F4:-y & F4:-z]": "vertex.plane_three_points vertex.point", + "LeftWall/v[F4:+y & F4:+z & F4:-x]": "vertex.plane_three_points vertex.point", + "LeftWall/v[F4:+y & F4:-x & F4:-z]": "vertex.plane_three_points vertex.point", + "LeftWall/v[F4:+z & F4:-x & F4:-y]": "vertex.plane_three_points vertex.point", + "LeftWall/v[F4:-x & F4:-y & F4:-z]": "vertex.plane_three_points vertex.point", + "Pad1/F11:bottom": "!face.extrude face.hole face.midplane face.offset_plane !face.press_pull face.shell face.sketch", + "Pad1/F11:bottom|F11:side#1": "!edge.chamfer !edge.fillet edge.normal_plane edge.project", + "Pad1/F11:bottom|F11:side#2": "!edge.chamfer !edge.fillet edge.normal_plane edge.project", + "Pad1/F11:side#1": "curved.axis curved.tangent_plane", + "Pad1/F11:side#1|F11:top": "!edge.chamfer !edge.fillet edge.normal_plane edge.project", + "Pad1/F11:side#2": "curved.axis curved.tangent_plane", + "Pad1/F11:side#2|F11:top": "!edge.chamfer !edge.fillet edge.normal_plane edge.project", + "Pad1/F11:top": "face.extrude face.hole face.offset_plane face.press_pull face.shell face.sketch", + "Pad1/body": "body.copy body.mirror body.move body.pattern", + "Pad1/v[F11:bottom & F11:side#1 & F11:side#2]": "vertex.point", + "Pad1/v[F11:bottom & F11:side#1 & F11:side#2] (2)": "vertex.point", + "Pad1/v[F11:side#1 & F11:side#2 & F11:top]": "vertex.point", + "Pad1/v[F11:side#1 & F11:side#2 & F11:top] (2)": "vertex.point", + "Pad2/F12:bottom": "!face.extrude face.hole face.midplane face.offset_plane !face.press_pull face.shell face.sketch", + "Pad2/F12:bottom|F12:side#1": "!edge.chamfer !edge.fillet edge.normal_plane edge.project", + "Pad2/F12:bottom|F12:side#2": "!edge.chamfer !edge.fillet edge.normal_plane edge.project", + "Pad2/F12:side#1": "curved.axis curved.tangent_plane", + "Pad2/F12:side#1|F12:top": "!edge.chamfer !edge.fillet edge.normal_plane edge.project", + "Pad2/F12:side#2": "curved.axis curved.tangent_plane", + "Pad2/F12:side#2|F12:top": "!edge.chamfer !edge.fillet edge.normal_plane edge.project", + "Pad2/F12:top": "face.extrude face.hole face.offset_plane face.press_pull face.shell face.sketch", + "Pad2/body": "body.copy body.mirror body.move body.pattern", + "Pad2/v[F12:bottom & F12:side#1 & F12:side#2]": "vertex.point", + "Pad2/v[F12:bottom & F12:side#1 & F12:side#2] (2)": "vertex.point", + "Pad2/v[F12:side#1 & F12:side#2 & F12:top]": "vertex.point", + "Pad2/v[F12:side#1 & F12:side#2 & F12:top] (2)": "vertex.point", + "Pad3/F13:bottom": "!face.extrude face.hole face.midplane face.offset_plane !face.press_pull face.shell face.sketch", + "Pad3/F13:bottom|F13:side#1": "!edge.chamfer !edge.fillet edge.normal_plane edge.project", + "Pad3/F13:bottom|F13:side#2": "!edge.chamfer !edge.fillet edge.normal_plane edge.project", + "Pad3/F13:side#1": "curved.axis curved.tangent_plane", + "Pad3/F13:side#1|F13:top": "!edge.chamfer !edge.fillet edge.normal_plane edge.project", + "Pad3/F13:side#2": "curved.axis curved.tangent_plane", + "Pad3/F13:side#2|F13:top": "!edge.chamfer !edge.fillet edge.normal_plane edge.project", + "Pad3/F13:top": "face.extrude face.hole face.offset_plane face.press_pull face.shell face.sketch", + "Pad3/body": "body.copy body.mirror body.move body.pattern", + "Pad3/v[F13:bottom & F13:side#1 & F13:side#2]": "vertex.point", + "Pad3/v[F13:bottom & F13:side#1 & F13:side#2] (2)": "vertex.point", + "Pad3/v[F13:side#1 & F13:side#2 & F13:top]": "vertex.point", + "Pad3/v[F13:side#1 & F13:side#2 & F13:top] (2)": "vertex.point", + "Pad4/F14:bottom": "!face.extrude face.hole face.midplane face.offset_plane !face.press_pull face.shell face.sketch", + "Pad4/F14:bottom|F14:side#1": "!edge.chamfer !edge.fillet edge.normal_plane edge.project", + "Pad4/F14:bottom|F14:side#2": "!edge.chamfer !edge.fillet edge.normal_plane edge.project", + "Pad4/F14:side#1": "curved.axis curved.tangent_plane", + "Pad4/F14:side#1|F14:top": "!edge.chamfer !edge.fillet edge.normal_plane edge.project", + "Pad4/F14:side#2": "curved.axis curved.tangent_plane", + "Pad4/F14:side#2|F14:top": "!edge.chamfer !edge.fillet edge.normal_plane edge.project", + "Pad4/F14:top": "face.extrude face.hole face.offset_plane face.press_pull face.shell face.sketch", + "Pad4/body": "body.copy body.mirror body.move body.pattern", + "Pad4/v[F14:bottom & F14:side#1 & F14:side#2]": "vertex.point", + "Pad4/v[F14:bottom & F14:side#1 & F14:side#2] (2)": "vertex.point", + "Pad4/v[F14:side#1 & F14:side#2 & F14:top]": "vertex.point", + "Pad4/v[F14:side#1 & F14:side#2 & F14:top] (2)": "vertex.point", + "Pad5/F15:bottom": "!face.extrude face.hole face.midplane face.offset_plane !face.press_pull face.shell face.sketch", + "Pad5/F15:bottom|F15:side#1": "!edge.chamfer !edge.fillet edge.normal_plane edge.project", + "Pad5/F15:bottom|F15:side#2": "!edge.chamfer !edge.fillet edge.normal_plane edge.project", + "Pad5/F15:side#1": "curved.axis curved.tangent_plane", + "Pad5/F15:side#1|F15:top": "!edge.chamfer !edge.fillet edge.normal_plane edge.project", + "Pad5/F15:side#2": "curved.axis curved.tangent_plane", + "Pad5/F15:side#2|F15:top": "!edge.chamfer !edge.fillet edge.normal_plane edge.project", + "Pad5/F15:top": "face.extrude face.hole face.offset_plane face.press_pull face.shell face.sketch", + "Pad5/body": "body.copy body.mirror body.move body.pattern", + "Pad5/v[F15:bottom & F15:side#1 & F15:side#2]": "vertex.point", + "Pad5/v[F15:bottom & F15:side#1 & F15:side#2] (2)": "vertex.point", + "Pad5/v[F15:side#1 & F15:side#2 & F15:top]": "vertex.point", + "Pad5/v[F15:side#1 & F15:side#2 & F15:top] (2)": "vertex.point", + "Pad6/F16:bottom": "!face.extrude face.hole face.midplane face.offset_plane !face.press_pull face.shell face.sketch", + "Pad6/F16:bottom|F16:side#1": "!edge.chamfer !edge.fillet edge.normal_plane edge.project", + "Pad6/F16:bottom|F16:side#2": "!edge.chamfer !edge.fillet edge.normal_plane edge.project", + "Pad6/F16:side#1": "curved.axis curved.tangent_plane", + "Pad6/F16:side#1|F16:top": "!edge.chamfer !edge.fillet edge.normal_plane edge.project", + "Pad6/F16:side#2": "curved.axis curved.tangent_plane", + "Pad6/F16:side#2|F16:top": "!edge.chamfer !edge.fillet edge.normal_plane edge.project", + "Pad6/F16:top": "face.extrude face.hole face.offset_plane face.press_pull face.shell face.sketch", + "Pad6/body": "body.copy body.mirror body.move body.pattern", + "Pad6/v[F16:bottom & F16:side#1 & F16:side#2]": "vertex.point", + "Pad6/v[F16:bottom & F16:side#1 & F16:side#2] (2)": "vertex.point", + "Pad6/v[F16:side#1 & F16:side#2 & F16:top]": "vertex.point", + "Pad6/v[F16:side#1 & F16:side#2 & F16:top] (2)": "vertex.point", + "Post1/F19:bottom": "!face.extrude face.hole face.midplane face.offset_plane !face.press_pull face.shell face.sketch", + "Post1/F19:bottom|F19:side#1": "edge.chamfer edge.fillet edge.normal_plane edge.project", + "Post1/F19:bottom|F19:side#2": "edge.chamfer edge.fillet edge.normal_plane edge.project", + "Post1/F19:side#1": "curved.axis curved.tangent_plane", + "Post1/F19:side#1|F19:top": "edge.chamfer edge.fillet edge.normal_plane edge.project", + "Post1/F19:side#2": "curved.axis curved.tangent_plane", + "Post1/F19:side#2|F19:top": "edge.chamfer edge.fillet edge.normal_plane edge.project", + "Post1/F19:top": "!face.extrude face.hole face.offset_plane !face.press_pull face.shell face.sketch", + "Post1/body": "body.copy body.mirror body.move body.pattern", + "Post1/v[F19:bottom & F19:side#1 & F19:side#2]": "vertex.point", + "Post1/v[F19:bottom & F19:side#1 & F19:side#2] (2)": "vertex.point", + "Post1/v[F19:side#1 & F19:side#2 & F19:top]": "vertex.point", + "Post1/v[F19:side#1 & F19:side#2 & F19:top] (2)": "vertex.point", + "Post2/F20:bottom": "!face.extrude face.hole face.midplane face.offset_plane !face.press_pull face.shell face.sketch", + "Post2/F20:bottom|F20:side#1": "edge.chamfer edge.fillet edge.normal_plane edge.project", + "Post2/F20:bottom|F20:side#2": "edge.chamfer edge.fillet edge.normal_plane edge.project", + "Post2/F20:side#1": "curved.axis curved.tangent_plane", + "Post2/F20:side#1|F20:top": "edge.chamfer edge.fillet edge.normal_plane edge.project", + "Post2/F20:side#2": "curved.axis curved.tangent_plane", + "Post2/F20:side#2|F20:top": "edge.chamfer edge.fillet edge.normal_plane edge.project", + "Post2/F20:top": "!face.extrude face.hole face.offset_plane !face.press_pull face.shell face.sketch", + "Post2/body": "body.copy body.mirror body.move body.pattern", + "Post2/v[F20:bottom & F20:side#1 & F20:side#2]": "vertex.point", + "Post2/v[F20:bottom & F20:side#1 & F20:side#2] (2)": "vertex.point", + "Post2/v[F20:side#1 & F20:side#2 & F20:top]": "vertex.point", + "Post2/v[F20:side#1 & F20:side#2 & F20:top] (2)": "vertex.point", + "Post3/F21:bottom": "!face.extrude face.hole face.midplane face.offset_plane !face.press_pull face.shell face.sketch", + "Post3/F21:bottom|F21:side#1": "edge.chamfer edge.fillet edge.normal_plane edge.project", + "Post3/F21:bottom|F21:side#2": "edge.chamfer edge.fillet edge.normal_plane edge.project", + "Post3/F21:side#1": "curved.axis curved.tangent_plane", + "Post3/F21:side#1|F21:top": "edge.chamfer edge.fillet edge.normal_plane edge.project", + "Post3/F21:side#2": "curved.axis curved.tangent_plane", + "Post3/F21:side#2|F21:top": "edge.chamfer edge.fillet edge.normal_plane edge.project", + "Post3/F21:top": "!face.extrude face.hole face.offset_plane !face.press_pull face.shell face.sketch", + "Post3/body": "body.copy body.mirror body.move body.pattern", + "Post3/v[F21:bottom & F21:side#1 & F21:side#2]": "vertex.point", + "Post3/v[F21:bottom & F21:side#1 & F21:side#2] (2)": "vertex.point", + "Post3/v[F21:side#1 & F21:side#2 & F21:top]": "vertex.point", + "Post3/v[F21:side#1 & F21:side#2 & F21:top] (2)": "vertex.point", + "Post4/F22:bottom": "!face.extrude face.hole face.midplane face.offset_plane !face.press_pull face.shell face.sketch", + "Post4/F22:bottom|F22:side#1": "edge.chamfer edge.fillet edge.normal_plane edge.project", + "Post4/F22:bottom|F22:side#2": "edge.chamfer edge.fillet edge.normal_plane edge.project", + "Post4/F22:side#1": "curved.axis curved.tangent_plane", + "Post4/F22:side#1|F22:top": "edge.chamfer edge.fillet edge.normal_plane edge.project", + "Post4/F22:side#2": "curved.axis curved.tangent_plane", + "Post4/F22:side#2|F22:top": "edge.chamfer edge.fillet edge.normal_plane edge.project", + "Post4/F22:top": "!face.extrude face.hole face.offset_plane !face.press_pull face.shell face.sketch", + "Post4/body": "body.copy body.mirror body.move body.pattern", + "Post4/v[F22:bottom & F22:side#1 & F22:side#2]": "vertex.point", + "Post4/v[F22:bottom & F22:side#1 & F22:side#2] (2)": "vertex.point", + "Post4/v[F22:side#1 & F22:side#2 & F22:top]": "vertex.point", + "Post4/v[F22:side#1 & F22:side#2 & F22:top] (2)": "vertex.point", + "RightWall/F5:+x": "face.angle_plane face.draft_neutral face.extrude face.hole face.midplane face.offset_plane face.press_pull face.shell face.sketch", + "RightWall/F5:+x|F5:+y": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", + "RightWall/F5:+x|F5:+z": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", + "RightWall/F5:+x|F5:-y": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", + "RightWall/F5:+x|F5:-z": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", + "RightWall/F5:+y": "face.angle_plane face.draft_neutral face.extrude face.hole face.midplane face.offset_plane face.press_pull face.shell face.sketch", + "RightWall/F5:+y|F5:+z": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", + "RightWall/F5:+y|F5:-x": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", + "RightWall/F5:+y|F5:-z": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", + "RightWall/F5:+z": "face.angle_plane face.draft_neutral !face.extrude face.hole face.midplane face.offset_plane !face.press_pull face.shell face.sketch", + "RightWall/F5:+z|F5:-x": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", + "RightWall/F5:+z|F5:-y": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", + "RightWall/F5:-x": "face.angle_plane face.draft_neutral face.extrude face.hole face.offset_plane face.press_pull face.shell face.sketch", + "RightWall/F5:-x|F5:-y": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", + "RightWall/F5:-x|F5:-z": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", + "RightWall/F5:-y": "face.angle_plane face.draft_neutral face.extrude face.hole face.offset_plane face.press_pull face.shell face.sketch", + "RightWall/F5:-y|F5:-z": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", + "RightWall/F5:-z": "face.angle_plane face.draft_neutral !face.extrude face.hole face.offset_plane !face.press_pull face.shell face.sketch", + "RightWall/body": "body.copy body.mirror body.move body.pattern", + "RightWall/v[F5:+x & F5:+y & F5:+z]": "vertex.plane_three_points vertex.point", + "RightWall/v[F5:+x & F5:+y & F5:-z]": "vertex.plane_three_points vertex.point", + "RightWall/v[F5:+x & F5:+z & F5:-y]": "vertex.plane_three_points vertex.point", + "RightWall/v[F5:+x & F5:-y & F5:-z]": "vertex.plane_three_points vertex.point", + "RightWall/v[F5:+y & F5:+z & F5:-x]": "vertex.plane_three_points vertex.point", + "RightWall/v[F5:+y & F5:-x & F5:-z]": "vertex.plane_three_points vertex.point", + "RightWall/v[F5:+z & F5:-x & F5:-y]": "vertex.plane_three_points vertex.point", + "RightWall/v[F5:-x & F5:-y & F5:-z]": "vertex.plane_three_points vertex.point", + "design": "load" + }, "examples/sensor_enclosure": { "Case/F11:side:bs#1": "curved.axis curved.axis+edit curved.tangent_plane", "Case/F11:side:bs#2": "curved.axis curved.axis+edit curved.tangent_plane", @@ -3015,7 +3395,7 @@ "Case/F4:inner:F2:start#[F11:side:bs_hole]": "face.extrude face.hole face.midplane face.midplane+edit face.offset_plane face.offset_plane+edit face.press_pull face.shell face.sketch face.sketch+edit", "Case/F4:inner:F2:start#[F12:face:34,F12:face:35]": "face.extrude face.hole face.hole+edit face.midplane face.offset_plane face.offset_plane+edit face.press_pull face.shell face.sketch", "Case/F4:inner:F2:start#[F12:face:38,F12:face:39]": "face.extrude face.hole face.hole+edit face.midplane face.midplane+edit face.offset_plane face.offset_plane+edit face.press_pull face.shell face.sketch", - "Case/F4:inner:F2:start#[F12:face:42,F12:face:43]": "face.extrude face.hole face.hole+edit face.midplane !face.midplane+edit face.offset_plane face.press_pull face.shell face.sketch", + "Case/F4:inner:F2:start#[F12:face:42,F12:face:43]": "face.extrude face.hole face.hole+edit face.midplane face.midplane+edit face.offset_plane face.press_pull face.shell face.sketch", "Case/F4:inner:F2:start#[F6:side:so_hole@F7.1]": "face.extrude face.hole face.midplane face.offset_plane face.press_pull face.shell face.sketch", "Case/F4:inner:F2:start#[F6:side:so_hole@F7.1]|F6:side:so_hole@F7.1#1": "edge.chamfer edge.fillet edge.normal_plane edge.project", "Case/F4:inner:F2:start#[F6:side:so_hole@F7.1]|F6:side:so_hole@F7.1#2": "edge.chamfer edge.fillet edge.normal_plane edge.project", @@ -3181,12 +3561,12 @@ "Lid/F14:side:l2|F15:blend:F14:side:l1|F14:side:l2": "edge.axis edge.normal_plane edge.project edge.project+edit", "Lid/F14:side:l2|F15:blend:F14:side:l2|F14:side:l3": "edge.axis edge.axis+edit edge.normal_plane edge.project edge.project+edit", "Lid/F14:side:l2|F2:top": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.normal_plane+edit edge.project", - "Lid/F14:side:l3": "face.angle_plane face.angle_plane+edit !face.draft_neutral !face.extrude face.hole face.hole+edit face.midplane face.offset_plane !face.press_pull face.shell face.sketch", + "Lid/F14:side:l3": "face.angle_plane face.angle_plane+edit !face.draft_neutral face.extrude face.hole face.hole+edit face.midplane face.offset_plane face.press_pull face.shell face.sketch", "Lid/F14:side:l3|F14:top": "edge.axis edge.chamfer edge.fillet edge.fillet+edit edge.normal_plane edge.normal_plane+edit edge.project", "Lid/F14:side:l3|F15:blend:F14:side:l2|F14:side:l3": "edge.axis edge.normal_plane edge.project", "Lid/F14:side:l3|F15:blend:F14:side:l3|F14:side:l4": "edge.axis edge.normal_plane edge.project", "Lid/F14:side:l3|F2:top": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", - "Lid/F14:side:l4": "face.angle_plane !face.draft_neutral !face.extrude face.hole face.midplane face.offset_plane !face.press_pull face.shell face.sketch", + "Lid/F14:side:l4": "face.angle_plane !face.draft_neutral face.extrude face.hole face.midplane face.offset_plane face.press_pull face.shell face.sketch", "Lid/F14:side:l4|F14:top": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", "Lid/F14:side:l4|F15:blend:F14:side:l1|F14:side:l4": "edge.axis edge.axis+edit edge.normal_plane edge.project", "Lid/F14:side:l4|F15:blend:F14:side:l3|F14:side:l4": "edge.axis edge.normal_plane edge.project", @@ -3225,7 +3605,7 @@ "Lid/F15:blend:F14:side:l1|F14:side:l2|F2:top": "edge.chamfer edge.fillet edge.fillet+edit edge.normal_plane edge.project", "Lid/F15:blend:F14:side:l1|F14:side:l4": "curved.axis curved.tangent_plane", "Lid/F15:blend:F14:side:l1|F14:side:l4|F2:top": "edge.chamfer edge.chamfer+edit edge.fillet edge.fillet+edit edge.normal_plane edge.project", - "Lid/F15:blend:F14:side:l2|F14:side:l3": "curved.axis !curved.axis+edit curved.tangent_plane", + "Lid/F15:blend:F14:side:l2|F14:side:l3": "curved.axis curved.axis+edit curved.tangent_plane", "Lid/F15:blend:F14:side:l2|F14:side:l3|F2:top": "edge.chamfer edge.fillet edge.fillet+edit edge.normal_plane edge.project", "Lid/F15:blend:F14:side:l3|F14:side:l4": "curved.axis curved.tangent_plane", "Lid/F15:blend:F14:side:l3|F14:side:l4|F2:top": "edge.chamfer edge.chamfer+edit edge.fillet edge.fillet+edit edge.normal_plane edge.project", @@ -3286,14 +3666,14 @@ "Lid/F18:side:l20": "face.angle_plane !face.draft_neutral !face.extrude face.hole face.offset_plane !face.press_pull !face.shell face.sketch", "Lid/F18:side:l20|F18:top": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", "Lid/F18:top": "face.angle_plane !face.draft_neutral face.extrude !face.hole face.midplane face.offset_plane face.press_pull face.press_pull+edit !face.shell face.sketch", - "Lid/F20:side:ls#1": "!curved.axis curved.tangent_plane", - "Lid/F20:side:ls#2": "!curved.axis curved.tangent_plane", - "Lid/F20:side:ls@F21.1#1": "!curved.axis curved.tangent_plane curved.tangent_plane+edit", - "Lid/F20:side:ls@F21.1#2": "!curved.axis curved.tangent_plane curved.tangent_plane+edit", - "Lid/F20:side:ls@F21.2#1": "!curved.axis curved.tangent_plane", - "Lid/F20:side:ls@F21.2#2": "!curved.axis curved.tangent_plane", - "Lid/F20:side:ls@F21.3#1": "!curved.axis curved.tangent_plane", - "Lid/F20:side:ls@F21.3#2": "!curved.axis curved.tangent_plane", + "Lid/F20:side:ls#1": "curved.axis curved.tangent_plane", + "Lid/F20:side:ls#2": "curved.axis curved.tangent_plane", + "Lid/F20:side:ls@F21.1#1": "curved.axis curved.tangent_plane curved.tangent_plane+edit", + "Lid/F20:side:ls@F21.1#2": "curved.axis curved.tangent_plane curved.tangent_plane+edit", + "Lid/F20:side:ls@F21.2#1": "curved.axis curved.tangent_plane", + "Lid/F20:side:ls@F21.2#2": "curved.axis curved.tangent_plane", + "Lid/F20:side:ls@F21.3#1": "curved.axis curved.tangent_plane", + "Lid/F20:side:ls@F21.3#2": "curved.axis curved.tangent_plane", "Lid/F2:top": "face.angle_plane face.angle_plane+edit !face.draft_neutral !face.extrude face.hole face.offset_plane !face.press_pull face.shell face.sketch face.sketch+edit", "Lid/body": "body.copy body.mirror body.move body.pattern body.pattern+edit", "Lid/v[F14:side:l1 & F14:top & F15:blend:F14:side:l1|F14:side:l2]": "vertex.plane_three_points vertex.point", @@ -5759,7 +6139,7 @@ "Tube/F2:side:c_in#2|F4:side:c1@F5.2#1": "edge.chamfer edge.fillet edge.normal_plane edge.project", "Tube/F2:side:c_in#2|F4:side:c1@F5.2#3": "edge.chamfer edge.fillet edge.normal_plane edge.project", "Tube/F2:side:c_in#2|F4:side:c2#2": "edge.chamfer edge.fillet edge.normal_plane edge.project", - "Tube/F2:side:c_in#2|F4:side:c2#4": "!edge.chamfer edge.fillet edge.normal_plane edge.project", + "Tube/F2:side:c_in#2|F4:side:c2#4": "edge.chamfer edge.fillet edge.normal_plane edge.project", "Tube/F2:side:c_in#2|F4:side:c2@F5.1#2": "edge.chamfer edge.fillet edge.normal_plane edge.project", "Tube/F2:side:c_in#2|F4:side:c2@F5.1#4": "edge.chamfer edge.fillet edge.normal_plane edge.project", "Tube/F2:side:c_in#2|F4:side:c2@F5.2#2": "edge.chamfer edge.fillet edge.normal_plane edge.project", @@ -5768,7 +6148,7 @@ "Tube/F2:side:c_in#2|F4:side:c3#4": "edge.chamfer edge.fillet edge.normal_plane edge.project", "Tube/F2:side:c_in#2|F4:side:c3@F5.1#2": "edge.chamfer edge.fillet edge.normal_plane edge.project", "Tube/F2:side:c_in#2|F4:side:c3@F5.1#3": "edge.chamfer edge.fillet edge.normal_plane edge.project", - "Tube/F2:side:c_in#2|F4:side:c3@F5.2#2": "!edge.chamfer edge.fillet edge.normal_plane edge.project", + "Tube/F2:side:c_in#2|F4:side:c3@F5.2#2": "edge.chamfer edge.fillet edge.normal_plane edge.project", "Tube/F2:side:c_in#2|F4:side:c3@F5.2#3": "edge.chamfer edge.fillet edge.normal_plane edge.project", "Tube/F2:side:c_out#1": "curved.axis curved.tangent_plane", "Tube/F2:side:c_out#1|F2:start": "edge.chamfer edge.fillet edge.normal_plane edge.project", @@ -5779,7 +6159,7 @@ "Tube/F2:side:c_out#1|F4:side:c1@F5.1#4": "edge.chamfer edge.fillet edge.normal_plane edge.project", "Tube/F2:side:c_out#1|F4:side:c1@F5.2#1": "edge.chamfer edge.fillet edge.normal_plane edge.project", "Tube/F2:side:c_out#1|F4:side:c1@F5.2#3": "edge.chamfer edge.fillet edge.normal_plane edge.project", - "Tube/F2:side:c_out#1|F4:side:c2#2": "!edge.chamfer edge.fillet edge.normal_plane edge.project", + "Tube/F2:side:c_out#1|F4:side:c2#2": "edge.chamfer edge.fillet edge.normal_plane edge.project", "Tube/F2:side:c_out#1|F4:side:c2#4": "edge.chamfer edge.fillet edge.normal_plane edge.project", "Tube/F2:side:c_out#1|F4:side:c2@F5.1#2": "edge.chamfer edge.fillet edge.normal_plane edge.project", "Tube/F2:side:c_out#1|F4:side:c2@F5.1#4": "edge.chamfer edge.fillet edge.normal_plane edge.project", @@ -5801,7 +6181,7 @@ "Tube/F2:side:c_out#2|F4:side:c1@F5.2#2": "edge.chamfer edge.fillet edge.normal_plane edge.project", "Tube/F2:side:c_out#2|F4:side:c1@F5.2#4": "edge.chamfer edge.fillet edge.normal_plane edge.project", "Tube/F2:side:c_out#2|F4:side:c2#1": "edge.chamfer edge.fillet edge.normal_plane edge.project", - "Tube/F2:side:c_out#2|F4:side:c2#3": "!edge.chamfer edge.fillet edge.normal_plane edge.project", + "Tube/F2:side:c_out#2|F4:side:c2#3": "edge.chamfer edge.fillet edge.normal_plane edge.project", "Tube/F2:side:c_out#2|F4:side:c2@F5.1#1": "edge.chamfer edge.fillet edge.normal_plane edge.project", "Tube/F2:side:c_out#2|F4:side:c2@F5.1#3": "edge.chamfer edge.fillet edge.normal_plane edge.project", "Tube/F2:side:c_out#2|F4:side:c2@F5.2#1": "edge.chamfer edge.fillet edge.normal_plane edge.project", @@ -5809,7 +6189,7 @@ "Tube/F2:side:c_out#2|F4:side:c3#1": "edge.chamfer edge.fillet edge.normal_plane edge.project", "Tube/F2:side:c_out#2|F4:side:c3#3": "edge.chamfer edge.fillet edge.normal_plane edge.project", "Tube/F2:side:c_out#2|F4:side:c3@F5.1#1": "edge.chamfer edge.fillet edge.normal_plane edge.project", - "Tube/F2:side:c_out#2|F4:side:c3@F5.1#4": "!edge.chamfer edge.fillet edge.normal_plane edge.project", + "Tube/F2:side:c_out#2|F4:side:c3@F5.1#4": "edge.chamfer edge.fillet edge.normal_plane edge.project", "Tube/F2:side:c_out#2|F4:side:c3@F5.2#1": "edge.chamfer edge.fillet edge.normal_plane edge.project", "Tube/F2:side:c_out#2|F4:side:c3@F5.2#4": "edge.chamfer edge.fillet edge.normal_plane edge.project", "Tube/F2:start": "!face.extrude face.hole face.midplane face.offset_plane !face.press_pull !face.shell !face.sketch", @@ -8328,7 +8708,7 @@ "Hinge/F2:side:l2|F2:top": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", "Hinge/F2:side:l2|F4:side:c1#[F2:side:l2,F8:side:l2]": "edge.chamfer edge.fillet edge.normal_plane edge.project", "Hinge/F2:side:l2|F4:side:c1#[F2:side:l3]#[F2:side:l2,F8:side:l2]": "edge.chamfer edge.fillet edge.normal_plane edge.project", - "Hinge/F2:side:l2|F4:side:c1#[F2:top]#[F2:side:l2,F8:side:l2]": "!edge.chamfer !edge.fillet edge.normal_plane edge.project", + "Hinge/F2:side:l2|F4:side:c1#[F2:top]#[F2:side:l2,F8:side:l2]": "edge.chamfer edge.fillet edge.normal_plane edge.project", "Hinge/F2:side:l2|F6:side:c1#1#[F2:side:l2,F8:side:l2]": "edge.chamfer edge.fillet edge.normal_plane edge.project", "Hinge/F2:side:l2|F6:side:c1#2#[F2:side:l2,F8:side:l2]": "edge.chamfer edge.fillet edge.normal_plane edge.project", "Hinge/F2:side:l3#[F2:side:l2,F8:side:l2]": "face.angle_plane !face.draft_neutral face.extrude face.hole face.midplane face.offset_plane face.press_pull !face.shell face.sketch", @@ -8345,7 +8725,7 @@ "Hinge/F2:side:l4|F2:top": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", "Hinge/F2:side:l4|F4:side:c1#[F2:side:l3]#[F2:side:l4,F8:side:l4]": "edge.chamfer edge.fillet edge.normal_plane edge.project", "Hinge/F2:side:l4|F4:side:c1#[F2:side:l4,F8:side:l4]": "edge.chamfer edge.fillet edge.normal_plane edge.project", - "Hinge/F2:side:l4|F4:side:c1#[F2:top]#[F2:side:l4,F8:side:l4]": "!edge.chamfer !edge.fillet edge.normal_plane edge.project", + "Hinge/F2:side:l4|F4:side:c1#[F2:top]#[F2:side:l4,F8:side:l4]": "edge.chamfer edge.fillet edge.normal_plane edge.project", "Hinge/F2:side:l4|F6:side:c1#1#[F2:side:l4,F8:side:l4]": "edge.chamfer edge.fillet edge.normal_plane edge.project", "Hinge/F2:side:l4|F6:side:c1#2#[F2:side:l4,F8:side:l4]": "edge.chamfer edge.fillet edge.normal_plane edge.project", "Hinge/F2:start": "face.angle_plane !face.draft_neutral face.extrude face.hole face.midplane face.offset_plane face.press_pull !face.shell face.sketch", @@ -8738,7 +9118,7 @@ "Body1/F3:face:20|F3:face:21": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", "Body1/F3:face:21": "face.angle_plane !face.draft_neutral !face.extrude face.hole face.midplane !face.offset_plane !face.press_pull !face.shell !face.sketch", "Body1/F3:face:21|F3:face:41": "edge.axis edge.chamfer !edge.fillet edge.normal_plane edge.project", - "Body1/F3:face:22": "face.angle_plane !face.draft_neutral !face.extrude !face.hole face.midplane !face.offset_plane !face.press_pull !face.shell !face.sketch", + "Body1/F3:face:22": "face.angle_plane !face.draft_neutral !face.extrude face.hole face.midplane !face.offset_plane !face.press_pull !face.shell !face.sketch", "Body1/F3:face:22|F3:face:40": "edge.axis edge.chamfer !edge.fillet edge.normal_plane edge.project", "Body1/F3:face:23": "face.angle_plane !face.draft_neutral face.extrude face.hole face.midplane face.offset_plane face.press_pull !face.shell face.sketch", "Body1/F3:face:23|F3:face:25": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", @@ -8920,7 +9300,7 @@ "Body1/F3:face:5|F3:face:7": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", "Body1/F3:face:5|F3:face:8": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", "Body1/F3:face:5|F3:face:9": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", - "Body1/F3:face:6": "face.angle_plane !face.draft_neutral face.extrude !face.hole face.offset_plane face.press_pull face.shell face.sketch", + "Body1/F3:face:6": "face.angle_plane !face.draft_neutral face.extrude face.hole face.offset_plane face.press_pull face.shell face.sketch", "Body1/F3:face:6|F3:face:7": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", "Body1/F3:face:6|F3:face:8": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", "Body1/F3:face:6|F3:face:9": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", @@ -9166,7 +9546,7 @@ "Body1/F3:face:11|F3:face:6": "edge.axis edge.normal_plane edge.project", "Body1/F3:face:12": "face.angle_plane face.extrude !face.hole face.midplane face.offset_plane face.press_pull face.shell face.sketch", "Body1/F3:face:12|F3:face:7": "edge.axis edge.normal_plane edge.project", - "Body1/F3:face:5": "face.angle_plane !face.draft_neutral !face.extrude !face.hole face.midplane face.offset_plane face.press_pull face.shell face.sketch", + "Body1/F3:face:5": "face.angle_plane !face.draft_neutral face.extrude face.hole face.midplane face.offset_plane face.press_pull face.shell face.sketch", "Body1/F3:face:5|F3:face:7": "edge.axis edge.chamfer !edge.fillet edge.normal_plane edge.project", "Body1/F3:face:5|F3:face:9": "edge.axis edge.chamfer !edge.fillet edge.normal_plane edge.project", "Body1/F3:face:5|F4:face:18": "edge.axis edge.normal_plane edge.project", @@ -9202,7 +9582,7 @@ "Body1/F4:face:19|F4:face:21": "edge.chamfer edge.fillet edge.normal_plane edge.project", "Body1/F4:face:20": "face.angle_plane face.extrude !face.hole face.midplane face.offset_plane face.press_pull face.shell face.sketch", "Body1/F4:face:21": "face.angle_plane face.extrude !face.hole face.midplane face.offset_plane face.press_pull face.shell face.sketch", - "Body1/F4:face:9": "face.angle_plane !face.draft_neutral face.extrude !face.hole face.offset_plane face.press_pull face.shell face.sketch", + "Body1/F4:face:9": "face.angle_plane !face.draft_neutral face.extrude face.hole face.offset_plane face.press_pull face.shell face.sketch", "Body1/body": "body.copy body.mirror body.move body.pattern", "Body1/v[F2:face:0 & F2:face:3#[F2:face:0,F2:face:1,F2:face:4] & F2:face:3#[F3:face:10,F3:face:11,F3:face:9] & F3:face:10]": "vertex.plane_three_points vertex.point", "Body1/v[F2:face:0 & F2:face:3#[F2:face:0,F2:face:1,F2:face:4] & F2:face:4]": "vertex.plane_three_points vertex.point", @@ -10028,7 +10408,7 @@ "Lid/F1:+z#[F4:side:l5,F4:side:l6,F4:side:l7,F4:side:l8,F5:+x,F5:+y,F5:-x,F5:-y]#[F10:-y,F4:side:l5,F4:side:l6,F4:side:l8,F5:+x,F5:+y,F5:-x,F8:-y]|F5:+y": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", "Lid/F1:+z#[F4:side:l5,F4:side:l6,F4:side:l7,F4:side:l8,F5:+x,F5:+y,F5:-x,F5:-y]#[F10:-y,F4:side:l5,F4:side:l6,F4:side:l8,F5:+x,F5:+y,F5:-x,F8:-y]|F5:-x": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", "Lid/F1:+z#[F4:side:l5,F4:side:l6,F4:side:l7,F4:side:l8,F5:+x,F5:+y,F5:-x,F5:-y]#[F10:-y,F4:side:l5,F4:side:l6,F4:side:l8,F5:+x,F5:+y,F5:-x,F8:-y]|F8:-y": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", - "Lid/F1:+z#[F4:side:l5,F4:side:l6,F4:side:l7,F4:side:l8,F5:+x,F5:+y,F5:-x,F5:-y]#[F11:+y,F1:+x,F1:+y,F1:-x,F1:-y,F2:blend:F1:+x|F1:+y,F2:blend:F1:+x|F1:-y,F2:blend:F1:+y|F1:-x,F2:blend:F1:-x|F1:-y,F4:side:l1,F4:side:l2,F4:side:l3,F4:side:l4,F4:side:l6,F4:side:l7,F4:side:l8,F5:+x,F5:-x,F5:-y,F6:+x,F6:+y,F6:-x,F6:-y,F7:+x,F7:-x,F9:+y]": "face.angle_plane !face.draft_neutral !face.extrude face.hole face.midplane !face.offset_plane !face.press_pull !face.shell !face.sketch", + "Lid/F1:+z#[F4:side:l5,F4:side:l6,F4:side:l7,F4:side:l8,F5:+x,F5:+y,F5:-x,F5:-y]#[F11:+y,F1:+x,F1:+y,F1:-x,F1:-y,F2:blend:F1:+x|F1:+y,F2:blend:F1:+x|F1:-y,F2:blend:F1:+y|F1:-x,F2:blend:F1:-x|F1:-y,F4:side:l1,F4:side:l2,F4:side:l3,F4:side:l4,F4:side:l6,F4:side:l7,F4:side:l8,F5:+x,F5:-x,F5:-y,F6:+x,F6:+y,F6:-x,F6:-y,F7:+x,F7:-x,F9:+y]": "face.angle_plane !face.draft_neutral !face.extrude face.hole face.midplane !face.offset_plane !face.press_pull face.shell !face.sketch", "Lid/F1:+z#[F4:side:l5,F4:side:l6,F4:side:l7,F4:side:l8,F5:+x,F5:+y,F5:-x,F5:-y]#[F11:+y,F1:+x,F1:+y,F1:-x,F1:-y,F2:blend:F1:+x|F1:+y,F2:blend:F1:+x|F1:-y,F2:blend:F1:+y|F1:-x,F2:blend:F1:-x|F1:-y,F4:side:l1,F4:side:l2,F4:side:l3,F4:side:l4,F4:side:l6,F4:side:l7,F4:side:l8,F5:+x,F5:-x,F5:-y,F6:+x,F6:+y,F6:-x,F6:-y,F7:+x,F7:-x,F9:+y]|F1:-x": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", "Lid/F1:+z#[F4:side:l5,F4:side:l6,F4:side:l7,F4:side:l8,F5:+x,F5:+y,F5:-x,F5:-y]#[F11:+y,F1:+x,F1:+y,F1:-x,F1:-y,F2:blend:F1:+x|F1:+y,F2:blend:F1:+x|F1:-y,F2:blend:F1:+y|F1:-x,F2:blend:F1:-x|F1:-y,F4:side:l1,F4:side:l2,F4:side:l3,F4:side:l4,F4:side:l6,F4:side:l7,F4:side:l8,F5:+x,F5:-x,F5:-y,F6:+x,F6:+y,F6:-x,F6:-y,F7:+x,F7:-x,F9:+y]|F1:-y": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", "Lid/F1:+z#[F4:side:l5,F4:side:l6,F4:side:l7,F4:side:l8,F5:+x,F5:+y,F5:-x,F5:-y]#[F11:+y,F1:+x,F1:+y,F1:-x,F1:-y,F2:blend:F1:+x|F1:+y,F2:blend:F1:+x|F1:-y,F2:blend:F1:+y|F1:-x,F2:blend:F1:-x|F1:-y,F4:side:l1,F4:side:l2,F4:side:l3,F4:side:l4,F4:side:l6,F4:side:l7,F4:side:l8,F5:+x,F5:-x,F5:-y,F6:+x,F6:+y,F6:-x,F6:-y,F7:+x,F7:-x,F9:+y]|F2:blend:F1:+x|F1:+y": "edge.chamfer edge.fillet edge.normal_plane edge.project", @@ -10286,6 +10666,130 @@ "Lid/v[F9:+z#[F9:+y,F9:-x,F9:-y] & F9:-x & F9:-y]": "vertex.plane_three_points vertex.point", "design": "load" }, + "regressions/lip_swept_flush_round_corner": { + "Block/F2:side:a1": "curved.axis curved.tangent_plane", + "Block/F2:side:a1|F2:side:l1": "edge.axis edge.normal_plane edge.project", + "Block/F2:side:a1|F2:side:l2": "edge.axis edge.normal_plane edge.project", + "Block/F2:side:a1|F2:start": "edge.chamfer edge.fillet edge.normal_plane edge.project", + "Block/F2:side:a2": "curved.axis curved.tangent_plane", + "Block/F2:side:a2|F2:side:l2": "edge.axis edge.normal_plane edge.project", + "Block/F2:side:a2|F2:side:l3": "edge.axis edge.normal_plane edge.project", + "Block/F2:side:a2|F2:start": "edge.chamfer edge.fillet edge.normal_plane edge.project", + "Block/F2:side:a3": "curved.axis curved.tangent_plane", + "Block/F2:side:a3|F2:side:l3": "edge.axis edge.normal_plane edge.project", + "Block/F2:side:a3|F2:side:l4": "edge.axis edge.normal_plane edge.project", + "Block/F2:side:a3|F2:start": "edge.chamfer edge.fillet edge.normal_plane edge.project", + "Block/F2:side:a3|F2:top": "!edge.chamfer !edge.fillet edge.normal_plane edge.project", + "Block/F2:side:a4": "curved.axis curved.tangent_plane", + "Block/F2:side:a4|F2:side:l1": "edge.axis edge.normal_plane edge.project", + "Block/F2:side:a4|F2:side:l4": "edge.axis edge.normal_plane edge.project", + "Block/F2:side:a4|F2:start": "edge.chamfer edge.fillet edge.normal_plane edge.project", + "Block/F2:side:a4|F2:top": "!edge.chamfer !edge.fillet edge.normal_plane edge.project", + "Block/F2:side:l1": "face.angle_plane !face.draft_neutral !face.extrude face.hole face.midplane !face.offset_plane !face.press_pull !face.shell !face.sketch", + "Block/F2:side:l1|F2:start": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", + "Block/F2:side:l1|F5:side:l3": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", + "Block/F2:side:l1|F5:side:l4": "edge.axis edge.normal_plane edge.project", + "Block/F2:side:l1|F5:start#[F2:side:l1]": "edge.axis !edge.chamfer !edge.fillet edge.normal_plane edge.project", + "Block/F2:side:l2": "face.angle_plane !face.draft_neutral !face.extrude face.hole face.midplane !face.offset_plane !face.press_pull !face.shell !face.sketch", + "Block/F2:side:l2|F2:start": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", + "Block/F2:side:l2|F5:side:l2#[F2:side:a1,F2:side:l2,F5:side:l4]": "edge.axis edge.normal_plane edge.project", + "Block/F2:side:l2|F5:side:l2#[F2:side:a2,F2:side:l2]": "edge.axis edge.normal_plane edge.project", + "Block/F2:side:l2|F5:side:l3": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", + "Block/F2:side:l3": "face.angle_plane !face.draft_neutral !face.extrude face.hole face.midplane !face.offset_plane !face.press_pull !face.shell !face.sketch", + "Block/F2:side:l3|F2:start": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", + "Block/F2:side:l3|F5:side:l2#[F2:side:a2,F2:side:l3]": "edge.axis edge.normal_plane edge.project", + "Block/F2:side:l3|F5:side:l3": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", + "Block/F2:side:l3|F5:start#[F2:side:l3]": "edge.axis !edge.chamfer !edge.fillet edge.normal_plane edge.project", + "Block/F2:side:l4": "face.angle_plane !face.draft_neutral face.extrude face.hole face.midplane face.offset_plane face.press_pull !face.shell face.sketch", + "Block/F2:side:l4|F2:start": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", + "Block/F2:side:l4|F2:top": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", + "Block/F2:start": "face.angle_plane !face.draft_neutral face.extrude face.hole face.midplane face.offset_plane face.press_pull !face.shell face.sketch", + "Block/F2:top": "face.angle_plane !face.draft_neutral face.extrude face.hole face.offset_plane face.press_pull !face.shell face.sketch", + "Block/F2:top|F5:end": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", + "Block/F2:top|F5:side:l2#[F2:top,F5:end]#1": "edge.chamfer edge.fillet edge.normal_plane edge.project", + "Block/F2:top|F5:side:l2#[F2:top,F5:end]#2": "edge.chamfer edge.fillet edge.normal_plane edge.project", + "Block/F2:top|F5:side:l2#[F2:top,F5:start]#1": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", + "Block/F2:top|F5:side:l2#[F2:top,F5:start]#2": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", + "Block/F2:top|F5:side:l2#[F2:top]#1": "edge.chamfer edge.fillet edge.normal_plane edge.project", + "Block/F2:top|F5:side:l2#[F2:top]#2": "edge.chamfer edge.fillet edge.normal_plane edge.project", + "Block/F2:top|F5:start#[F2:side:l1]": "edge.axis !edge.chamfer !edge.fillet edge.normal_plane edge.project", + "Block/F2:top|F5:start#[F2:side:l3]": "edge.axis !edge.chamfer !edge.fillet edge.normal_plane edge.project", + "Block/F5:end": "face.angle_plane !face.draft_neutral !face.extrude face.hole !face.offset_plane !face.press_pull !face.shell !face.sketch", + "Block/F5:end|F5:side:l2#[F2:top,F5:end]#1": "edge.axis edge.normal_plane edge.project", + "Block/F5:end|F5:side:l2#[F2:top,F5:end]#2": "edge.axis edge.normal_plane edge.project", + "Block/F5:end|F5:side:l3": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", + "Block/F5:side:l2#[F2:side:a1,F2:side:l2,F5:side:l4]": "curved.axis curved.tangent_plane", + "Block/F5:side:l2#[F2:side:a1,F2:side:l2,F5:side:l4]|F5:side:l3": "edge.chamfer edge.fillet edge.normal_plane edge.project", + "Block/F5:side:l2#[F2:side:a2,F2:side:l2]": "curved.axis curved.tangent_plane", + "Block/F5:side:l2#[F2:side:a2,F2:side:l2]|F5:side:l3": "edge.chamfer edge.fillet edge.normal_plane edge.project", + "Block/F5:side:l2#[F2:side:a2,F2:side:l3]": "curved.axis curved.tangent_plane", + "Block/F5:side:l2#[F2:side:a2,F2:side:l3]|F5:side:l3": "edge.chamfer edge.fillet edge.normal_plane edge.project", + "Block/F5:side:l2#[F2:top,F5:end]#1": "curved.axis curved.tangent_plane", + "Block/F5:side:l2#[F2:top,F5:end]#1|F5:side:l3": "edge.chamfer edge.fillet edge.normal_plane edge.project", + "Block/F5:side:l2#[F2:top,F5:end]#2": "curved.axis curved.tangent_plane", + "Block/F5:side:l2#[F2:top,F5:end]#2|F5:side:l3": "edge.chamfer edge.fillet edge.normal_plane edge.project", + "Block/F5:side:l2#[F2:top,F5:start]#1": "face.angle_plane !face.draft_neutral !face.extrude face.hole !face.offset_plane !face.press_pull !face.shell !face.sketch", + "Block/F5:side:l2#[F2:top,F5:start]#1|F5:side:l2#[F2:top]#1": "edge.axis edge.normal_plane edge.project", + "Block/F5:side:l2#[F2:top,F5:start]#1|F5:side:l3": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", + "Block/F5:side:l2#[F2:top,F5:start]#1|F5:start#[F2:side:l1]": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", + "Block/F5:side:l2#[F2:top,F5:start]#2": "face.angle_plane !face.draft_neutral !face.extrude face.hole !face.offset_plane !face.press_pull !face.shell !face.sketch", + "Block/F5:side:l2#[F2:top,F5:start]#2|F5:side:l2#[F2:top]#2": "edge.axis edge.normal_plane edge.project", + "Block/F5:side:l2#[F2:top,F5:start]#2|F5:side:l3": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", + "Block/F5:side:l2#[F2:top,F5:start]#2|F5:start#[F2:side:l3]": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", + "Block/F5:side:l2#[F2:top]#1": "curved.axis curved.tangent_plane", + "Block/F5:side:l2#[F2:top]#1|F5:side:l3": "edge.chamfer edge.fillet edge.normal_plane edge.project", + "Block/F5:side:l2#[F2:top]#2": "curved.axis curved.tangent_plane", + "Block/F5:side:l2#[F2:top]#2|F5:side:l3": "edge.chamfer edge.fillet edge.normal_plane edge.project", + "Block/F5:side:l3": "face.angle_plane !face.draft_neutral !face.extrude face.hole face.midplane !face.offset_plane !face.press_pull !face.shell !face.sketch", + "Block/F5:side:l3|F5:side:l4": "edge.chamfer edge.fillet edge.normal_plane edge.project", + "Block/F5:side:l3|F5:start#[F2:side:l1]": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", + "Block/F5:side:l3|F5:start#[F2:side:l3]": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", + "Block/F5:side:l4": "curved.axis curved.tangent_plane", + "Block/F5:start#[F2:side:l1]": "face.angle_plane !face.draft_neutral !face.extrude face.hole face.midplane !face.offset_plane !face.press_pull !face.shell !face.sketch", + "Block/F5:start#[F2:side:l3]": "face.angle_plane !face.draft_neutral !face.extrude face.hole face.midplane !face.offset_plane !face.press_pull !face.shell !face.sketch", + "Block/body": "body.copy body.mirror body.move body.pattern", + "Block/v[F2:side:a1 & F2:side:l1 & F2:start]": "vertex.plane_three_points vertex.point", + "Block/v[F2:side:a1 & F2:side:l1 & F5:side:l4]": "vertex.point", + "Block/v[F2:side:a1 & F2:side:l2 & F2:start]": "vertex.plane_three_points vertex.point", + "Block/v[F2:side:a1 & F2:side:l2 & F5:side:l2#[F2:side:a1,F2:side:l2,F5:side:l4]]": "vertex.point", + "Block/v[F2:side:a2 & F2:side:l2 & F2:start]": "vertex.plane_three_points vertex.point", + "Block/v[F2:side:a2 & F2:side:l2 & F5:side:l2#[F2:side:a2,F2:side:l2]]": "vertex.point", + "Block/v[F2:side:a2 & F2:side:l3 & F2:start]": "vertex.plane_three_points vertex.point", + "Block/v[F2:side:a2 & F2:side:l3 & F5:side:l2#[F2:side:a2,F2:side:l3]]": "vertex.point", + "Block/v[F2:side:a3 & F2:side:l3 & F2:start]": "vertex.plane_three_points vertex.point", + "Block/v[F2:side:a3 & F2:side:l3 & F2:top & F5:start#[F2:side:l3]]": "vertex.plane_three_points vertex.point", + "Block/v[F2:side:a3 & F2:side:l4 & F2:start]": "vertex.plane_three_points vertex.point", + "Block/v[F2:side:a3 & F2:side:l4 & F2:top]": "vertex.plane_three_points vertex.point", + "Block/v[F2:side:a4 & F2:side:l1 & F2:start]": "vertex.plane_three_points vertex.point", + "Block/v[F2:side:a4 & F2:side:l1 & F2:top & F5:start#[F2:side:l1]]": "vertex.plane_three_points vertex.point", + "Block/v[F2:side:a4 & F2:side:l4 & F2:start]": "vertex.plane_three_points vertex.point", + "Block/v[F2:side:a4 & F2:side:l4 & F2:top]": "vertex.plane_three_points vertex.point", + "Block/v[F2:side:l1 & F5:side:l3 & F5:side:l4]": "vertex.plane_three_points vertex.point", + "Block/v[F2:side:l1 & F5:side:l3 & F5:start#[F2:side:l1]]": "vertex.plane_three_points vertex.point", + "Block/v[F2:side:l2 & F5:side:l2#[F2:side:a1,F2:side:l2,F5:side:l4] & F5:side:l3]": "vertex.plane_three_points vertex.point", + "Block/v[F2:side:l2 & F5:side:l2#[F2:side:a2,F2:side:l2] & F5:side:l3]": "vertex.plane_three_points vertex.point", + "Block/v[F2:side:l3 & F5:side:l2#[F2:side:a2,F2:side:l3] & F5:side:l3]": "vertex.plane_three_points vertex.point", + "Block/v[F2:side:l3 & F5:side:l3 & F5:start#[F2:side:l3]]": "vertex.plane_three_points vertex.point", + "Block/v[F2:top & F5:end & F5:side:l2#[F2:top,F5:end]#1]": "vertex.plane_three_points vertex.point", + "Block/v[F2:top & F5:end & F5:side:l2#[F2:top,F5:end]#2]": "vertex.plane_three_points vertex.point", + "Block/v[F2:top & F5:side:l2#[F2:top,F5:end]#1 & F5:side:l2#[F2:top]#1]": "vertex.plane_three_points vertex.point", + "Block/v[F2:top & F5:side:l2#[F2:top,F5:end]#2 & F5:side:l2#[F2:top]#2]": "vertex.plane_three_points vertex.point", + "Block/v[F2:top & F5:side:l2#[F2:top,F5:start]#1 & F5:side:l2#[F2:top]#1]": "vertex.plane_three_points vertex.point", + "Block/v[F2:top & F5:side:l2#[F2:top,F5:start]#1 & F5:start#[F2:side:l1]]": "vertex.plane_three_points vertex.point", + "Block/v[F2:top & F5:side:l2#[F2:top,F5:start]#2 & F5:side:l2#[F2:top]#2]": "vertex.plane_three_points vertex.point", + "Block/v[F2:top & F5:side:l2#[F2:top,F5:start]#2 & F5:start#[F2:side:l3]]": "vertex.plane_three_points vertex.point", + "Block/v[F5:end & F5:side:l2#[F2:top,F5:end]#1 & F5:side:l3]": "vertex.plane_three_points vertex.point", + "Block/v[F5:end & F5:side:l2#[F2:top,F5:end]#2 & F5:side:l3]": "vertex.plane_three_points vertex.point", + "Block/v[F5:side:l2#[F2:side:a1,F2:side:l2,F5:side:l4] & F5:side:l3 & F5:side:l4]": "vertex.plane_three_points vertex.point", + "Block/v[F5:side:l2#[F2:side:a2,F2:side:l2] & F5:side:l2#[F2:side:a2,F2:side:l3] & F5:side:l3]": "vertex.plane_three_points vertex.point", + "Block/v[F5:side:l2#[F2:top,F5:end]#1 & F5:side:l2#[F2:top]#1 & F5:side:l3]": "vertex.plane_three_points vertex.point", + "Block/v[F5:side:l2#[F2:top,F5:end]#2 & F5:side:l2#[F2:top]#2 & F5:side:l3]": "vertex.plane_three_points vertex.point", + "Block/v[F5:side:l2#[F2:top,F5:start]#1 & F5:side:l2#[F2:top]#1 & F5:side:l3]": "vertex.plane_three_points vertex.point", + "Block/v[F5:side:l2#[F2:top,F5:start]#1 & F5:side:l3 & F5:start#[F2:side:l1]]": "vertex.plane_three_points vertex.point", + "Block/v[F5:side:l2#[F2:top,F5:start]#2 & F5:side:l2#[F2:top]#2 & F5:side:l3]": "vertex.plane_three_points vertex.point", + "Block/v[F5:side:l2#[F2:top,F5:start]#2 & F5:side:l3 & F5:start#[F2:side:l3]]": "vertex.plane_three_points vertex.point", + "design": "load" + }, "regressions/loft_cut_beside_round_hole": { "Body1/F2:side:l1": "face.angle_plane !face.draft_neutral face.extrude face.hole face.midplane face.offset_plane face.press_pull face.shell face.sketch", "Body1/F2:side:l1|F2:side:l2": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", @@ -10311,7 +10815,7 @@ "Body1/F2:top|F4:side:l4": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", "Body1/F2:top|F6:side:c1#1": "edge.chamfer edge.fillet edge.normal_plane edge.project", "Body1/F2:top|F6:side:c1#2": "edge.chamfer edge.fillet edge.normal_plane edge.project", - "Body1/F4:bottom": "face.angle_plane !face.draft_neutral face.extrude !face.hole face.midplane face.offset_plane face.press_pull face.shell face.sketch", + "Body1/F4:bottom": "face.angle_plane !face.draft_neutral face.extrude face.hole face.midplane face.offset_plane face.press_pull face.shell face.sketch", "Body1/F4:bottom|F4:side:l1": "edge.axis !edge.chamfer !edge.fillet edge.normal_plane edge.project", "Body1/F4:bottom|F4:side:l2": "edge.axis !edge.chamfer !edge.fillet edge.normal_plane edge.project", "Body1/F4:bottom|F4:side:l3": "edge.axis !edge.chamfer !edge.fillet edge.normal_plane edge.project", @@ -10430,7 +10934,7 @@ "Tool/F2:side:l4|F2:top": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", "Tool/F2:side:l4|F4:side:l1": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", "Tool/F2:top": "face.angle_plane !face.draft_neutral face.extrude !face.hole face.offset_plane face.press_pull !face.shell face.sketch", - "Tool/F4:side:l1": "face.angle_plane !face.draft_neutral !face.extrude !face.hole face.offset_plane !face.press_pull !face.shell face.sketch", + "Tool/F4:side:l1": "face.angle_plane !face.draft_neutral !face.extrude face.hole face.offset_plane !face.press_pull !face.shell face.sketch", "Tool/body": "body.copy body.mirror body.move body.pattern", "Tool/v[F2:bottom & F2:side:l1 & F2:side:l2]": "vertex.plane_three_points vertex.point", "Tool/v[F2:bottom & F2:side:l1 & F4:side:l1]": "vertex.plane_three_points vertex.point", @@ -10474,7 +10978,7 @@ "ClipBody/v[F4:side:l1 & F4:side:l4 & F4:top]": "vertex.plane_three_points vertex.point", "ClipBody/v[F4:side:l2 & F4:side:l3 & F4:top]": "vertex.plane_three_points vertex.point", "ClipBody/v[F4:side:l3 & F4:side:l4 & F4:top]": "vertex.plane_three_points vertex.point", - "Tool/F2:bottom": "face.angle_plane !face.draft_neutral face.extrude !face.hole face.midplane face.offset_plane face.press_pull !face.shell face.sketch", + "Tool/F2:bottom": "face.angle_plane !face.draft_neutral face.extrude face.hole face.midplane face.offset_plane face.press_pull !face.shell face.sketch", "Tool/F2:bottom|F2:side:l1": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", "Tool/F2:bottom|F2:side:l2": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", "Tool/F2:bottom|F2:side:l3": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", @@ -11392,10 +11896,12 @@ "Body1/F3:end|F3:side:l2#[F3:end]": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", "Body1/F3:end|F3:side:l3#[F3:end]": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", "Body1/F3:end|F3:side:l4#[F3:end]": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", + "Body1/F3:side:l1#1": "face.angle_plane face.extrude face.hole face.midplane face.offset_plane face.press_pull !face.shell face.sketch", "Body1/F3:side:l1#1|F3:side:l1#2": "edge.axis edge.normal_plane edge.project", "Body1/F3:side:l1#1|F3:side:l1#[F3:start]": "edge.axis edge.normal_plane edge.project", "Body1/F3:side:l1#1|F3:side:l2#1": "edge.chamfer edge.fillet edge.normal_plane edge.project", "Body1/F3:side:l1#1|F3:side:l4#1": "edge.chamfer edge.fillet edge.normal_plane edge.project", + "Body1/F3:side:l1#2": "face.angle_plane face.extrude face.hole face.midplane face.offset_plane face.press_pull !face.shell face.sketch", "Body1/F3:side:l1#2|F3:side:l1#[F3:end]": "edge.axis edge.normal_plane edge.project", "Body1/F3:side:l1#2|F3:side:l2#2": "edge.chamfer edge.fillet edge.normal_plane edge.project", "Body1/F3:side:l1#2|F3:side:l4#2": "edge.chamfer edge.fillet edge.normal_plane edge.project", @@ -11417,12 +11923,14 @@ "Body1/F3:side:l2#[F3:start]": "face.angle_plane !face.draft_neutral face.extrude face.hole face.midplane face.offset_plane face.press_pull !face.shell face.sketch", "Body1/F3:side:l2#[F3:start]|F3:side:l3#[F3:start]": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", "Body1/F3:side:l2#[F3:start]|F3:start": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", + "Body1/F3:side:l3#1": "face.angle_plane face.extrude face.hole face.offset_plane face.press_pull !face.shell face.sketch", "Body1/F3:side:l3#1|F3:side:l3#2": "edge.axis edge.normal_plane edge.project", "Body1/F3:side:l3#1|F3:side:l3#[F3:start]": "edge.axis edge.normal_plane edge.project", "Body1/F3:side:l3#1|F3:side:l4#1": "edge.chamfer edge.fillet edge.normal_plane edge.project", + "Body1/F3:side:l3#2": "face.angle_plane face.extrude face.hole face.midplane face.offset_plane face.press_pull !face.shell face.sketch", "Body1/F3:side:l3#2|F3:side:l3#[F3:end]": "edge.axis edge.normal_plane edge.project", "Body1/F3:side:l3#2|F3:side:l4#2": "edge.chamfer edge.fillet edge.normal_plane edge.project", - "Body1/F3:side:l3#[F3:end]": "face.angle_plane !face.draft_neutral face.extrude face.hole face.offset_plane face.press_pull !face.shell face.sketch", + "Body1/F3:side:l3#[F3:end]": "face.angle_plane !face.draft_neutral face.extrude face.hole face.midplane face.offset_plane face.press_pull !face.shell face.sketch", "Body1/F3:side:l3#[F3:end]|F3:side:l4#[F3:end]": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", "Body1/F3:side:l3#[F3:start]": "face.angle_plane !face.draft_neutral face.extrude face.hole face.midplane face.offset_plane face.press_pull !face.shell face.sketch", "Body1/F3:side:l3#[F3:start]|F3:side:l4#[F3:start]": "edge.axis edge.chamfer edge.fillet edge.normal_plane edge.project", diff --git a/tests/action_matrix/costs.json b/tests/action_matrix/costs.json index a6ce7308..4478d112 100644 --- a/tests/action_matrix/costs.json +++ b/tests/action_matrix/costs.json @@ -1,124 +1,127 @@ { "about": "What each action matrix design costs on a CI runner, in seconds (secs: the whole design, load: before its first action), for cutting the nightly shards (apps/solidcraft-cli/tests/action_matrix.rs, plan). Written with the baseline by cargo xtask action-matrix --bless --from DIR.", "designs": { - "corpus/components-arm": {"secs": 48.0, "load": 0.3}, - "corpus/issue-489-stacked-join": {"secs": 2.8, "load": 0.0}, - "corpus/issue-616-lid-ribs": {"secs": 257.6, "load": 0.7}, - "corpus/joints-hinge": {"secs": 23.4, "load": 0.0}, - "corpus/m0-box-fillet-hole": {"secs": 25.2, "load": 0.1}, - "corpus/m0-revolve-primitives": {"secs": 86.9, "load": 0.5}, - "corpus/modern-path-pattern": {"secs": 73.6, "load": 0.4}, - "corpus/modern-plastic": {"secs": 617.5, "load": 1.4}, - "corpus/modern-sheet-metal": {"secs": 47.9, "load": 0.0}, - "corpus/move-bodies": {"secs": 2.7, "load": 0.0}, - "corpus/naming-split-pieces": {"secs": 15.6, "load": 0.1}, - "corpus/split-body-pieces": {"secs": 12.4, "load": 0.1}, - "demo/crazy-geom-cuts": {"secs": 21.4, "load": 0.1}, - "demo/enclosure_steps": {"secs": 655.0, "load": 15.4}, - "demo/logo-up-down-join": {"secs": 5.8, "load": 0.0}, - "demo/pi-case": {"secs": 3753.2, "load": 5.2}, - "demo/pi-case-0.8": {"secs": 13979.6, "load": 10.8}, - "examples/bracket": {"secs": 14.2, "load": 0.1}, - "examples/sensor_enclosure": {"secs": 8289.0, "load": 16.3}, + "corpus/components-arm": {"secs": 58.8, "load": 0.5}, + "corpus/issue-489-stacked-join": {"secs": 3.5, "load": 0.0}, + "corpus/issue-616-lid-ribs": {"secs": 261.8, "load": 0.9}, + "corpus/joints-hinge": {"secs": 16.4, "load": 0.0}, + "corpus/m0-box-fillet-hole": {"secs": 32.0, "load": 0.3}, + "corpus/m0-revolve-primitives": {"secs": 87.2, "load": 0.4}, + "corpus/modern-path-pattern": {"secs": 85.2, "load": 0.5}, + "corpus/modern-plastic": {"secs": 570.6, "load": 1.0}, + "corpus/modern-sheet-metal": {"secs": 127.1, "load": 0.0}, + "corpus/move-bodies": {"secs": 2.5, "load": 0.0}, + "corpus/naming-split-pieces": {"secs": 16.9, "load": 0.1}, + "corpus/split-body-pieces": {"secs": 9.4, "load": 0.0}, + "demo/crazy-geom-cuts": {"secs": 22.0, "load": 0.1}, + "demo/enclosure_steps": {"secs": 644.7, "load": 22.3}, + "demo/logo-up-down-join": {"secs": 11.2, "load": 0.1}, + "demo/pi-case": {"secs": 3288.3, "load": 7.0}, + "demo/pi-case-0.8": {"secs": 14291.3, "load": 12.2}, + "examples/bracket": {"secs": 19.8, "load": 0.2}, + "examples/render-opaque-studio": {"secs": 53.1, "load": 0.2}, + "examples/render-studio": {"secs": 98.3, "load": 0.0}, + "examples/sensor_enclosure": {"secs": 10619.7, "load": 13.2}, "oracle/01-box": {"secs": 0.9, "load": 0.0}, - "oracle/02-cylinder": {"secs": 1.4, "load": 0.0}, - "oracle/03-box-through-hole": {"secs": 18.8, "load": 0.0}, - "oracle/04-revolve-vase": {"secs": 8.0, "load": 0.0}, - "oracle/05-taper-extrude": {"secs": 5.4, "load": 0.0}, - "oracle/06-symmetric-extrude": {"secs": 0.9, "load": 0.0}, - "oracle/07-fillet-all-edges": {"secs": 54.0, "load": 0.2}, - "oracle/08-chamfer": {"secs": 9.4, "load": 0.1}, - "oracle/09-shell": {"secs": 2.2, "load": 0.0}, - "oracle/10-rect-pattern-holes": {"secs": 135.3, "load": 0.3}, - "oracle/11-circular-pattern-flange": {"secs": 24.2, "load": 0.3}, - "oracle/12-mirror-feature": {"secs": 30.5, "load": 0.2}, - "oracle/13-combine-join": {"secs": 29.3, "load": 0.1}, - "oracle/14-combine-cut": {"secs": 123.6, "load": 2.4}, - "oracle/15-combine-intersect": {"secs": 41.4, "load": 12.3}, - "oracle/16-sweep": {"secs": 29.7, "load": 0.0}, - "oracle/17-loft": {"secs": 33.6, "load": 0.0}, - "oracle/18-hole-features": {"secs": 63.5, "load": 1.8}, - "oracle/19-l-bracket-constrained": {"secs": 1.6, "load": 0.0}, - "oracle/20-slot-constrained": {"secs": 3.0, "load": 0.0}, - "oracle/21-draft": {"secs": 5.4, "load": 0.0}, - "oracle/22-split-body": {"secs": 392.0, "load": 4.4}, - "oracle/23-bracket-multifeature": {"secs": 149.8, "load": 4.3}, - "oracle/24-user-parameters": {"secs": 13.4, "load": 0.0}, - "oracle/25-sketch-triangle": {"secs": 4.9, "load": 0.0}, - "oracle/26-sketch-belt": {"secs": 9.3, "load": 0.0}, - "oracle/27-sketch-trapezoid": {"secs": 32.9, "load": 0.0}, - "oracle/28-blind-pocket-fillets": {"secs": 143.7, "load": 0.6}, - "oracle/29-two-sided-and-partial-revolve": {"secs": 48.5, "load": 2.1}, - "oracle/30-fillet-after-shell": {"secs": 151.5, "load": 1.0}, - "oracle/31-fillet-l-all-edges": {"secs": 129.9, "load": 2.2}, - "oracle/32-boss-plate-fillets": {"secs": 122.0, "load": 0.4}, - "oracle/33-fillet-tangent-chain": {"secs": 86.5, "load": 0.3}, - "oracle/34-chamfer-then-fillet": {"secs": 71.0, "load": 0.3}, - "oracle/35-fillet-curved-curved": {"secs": 38.8, "load": 19.0}, - "oracle/36-corner-blend-two-radii": {"secs": 27.5, "load": 0.1}, - "oracle/37-pyramid-apex-blend": {"secs": 18.3, "load": 0.1}, - "oracle/38-coincident-cylinders": {"secs": 3.2, "load": 1.2}, - "oracle/39-tee-pipe": {"secs": 880.7, "load": 26.6}, - "oracle/40-box-sphere-torus": {"secs": 352.8, "load": 9.4}, - "oracle/41-tube-radial-holes": {"secs": 18429.5, "load": 134.7}, - "oracle/42-overlapping-patterns": {"secs": 1466.4, "load": 2.4}, - "oracle/43-cut-splits-body": {"secs": 3.3, "load": 0.0}, - "oracle/44-shell-l-bracket": {"secs": 3.7, "load": 0.0}, - "oracle/45-shell-boss-plate": {"secs": 83.9, "load": 0.8}, - "oracle/46-shell-two-open-faces": {"secs": 2.1, "load": 0.0}, - "oracle/47-draft-curved-pocket": {"secs": 30.7, "load": 0.1}, - "oracle/48-pulley": {"secs": 138.2, "load": 0.1}, - "oracle/49-helical-sweep": {"secs": 715.3, "load": 0.3}, - "oracle/50-sweep-tight-bend": {"secs": 24.9, "load": 0.0}, - "oracle/51-loft-rect-circle-offset": {"secs": 22.0, "load": 0.0}, - "oracle/52-circular-pattern-fillet": {"secs": 143.8, "load": 8.3}, - "oracle/53-path-pattern": {"secs": 50.3, "load": 0.3}, - "oracle/54-mirror-body-fillets": {"secs": 17.6, "load": 0.1}, - "oracle/55-tapped-hole-cosmetic": {"secs": 29.4, "load": 0.8}, - "oracle/56-holes-on-curved-face": {"secs": 721.8, "load": 12.0}, - "oracle/57-hole-pattern-sketch-points": {"secs": 168.2, "load": 1.5}, - "oracle/58-phone-stand": {"secs": 45.6, "load": 0.5}, - "oracle/59-enclosure-base": {"secs": 274.7, "load": 3.3}, - "oracle/60-pipe-flange": {"secs": 213.4, "load": 13.6}, - "oracle/61-shaft-keyway": {"secs": 1938.2, "load": 11.1}, - "oracle/62-heat-sink": {"secs": 54.7, "load": 0.7}, - "oracle/63-hinge-knuckle": {"secs": 107.9, "load": 0.4}, - "oracle/64-sketch-tangent-arc-chain": {"secs": 36.5, "load": 0.0}, - "oracle/65-sketch-gear-tooth": {"secs": 18.7, "load": 0.0}, - "oracle/66-sketch-linkage": {"secs": 24.2, "load": 0.0}, - "oracle/67-sm-base-flange": {"secs": 11.4, "load": 0.0}, - "oracle/68-sm-edge-flange": {"secs": 261.8, "load": 0.0}, - "oracle/69-sm-tray": {"secs": 1449.7, "load": 0.1}, - "oracle/70-sm-flange-45": {"secs": 194.4, "load": 0.0}, - "oracle/71-sm-custom-rule": {"secs": 200.7, "load": 0.0}, - "oracle/72-sm-contour-flange": {"secs": 63.6, "load": 0.0}, - "oracle/73-sm-hem": {"secs": 465.7, "load": 0.0}, - "oracle/74-sm-unfold-refold": {"secs": 205.2, "load": 0.0}, - "oracle/75-sm-bracket-holes": {"secs": 672.8, "load": 0.7}, - "oracle/76-sm-thickness-variant": {"secs": 171.0, "load": 0.1}, - "oracle/77-fillet-variable-linear": {"secs": 5.6, "load": 0.0}, - "oracle/78-fillet-variable-to-zero": {"secs": 8.6, "load": 0.0}, - "oracle/79-fillet-chord-length": {"secs": 5.7, "load": 0.0}, - "oracle/80-fillet-taper-to-fit": {"secs": 25.5, "load": 0.0}, - "oracle/81-fillet-spline-radius": {"secs": 82.2, "load": 0.0}, - "oracle/82-thin-extrude-frame": {"secs": 4.2, "load": 0.0}, - "regressions/blind_hole_in_long_d_profile": {"secs": 54.3, "load": 0.3}, - "regressions/join_struts_on_bore_wall": {"secs": 333.4, "load": 0.7}, - "regressions/lid_ribs_flush_with_window": {"secs": 234.8, "load": 0.7}, - "regressions/loft_cut_beside_round_hole": {"secs": 79.4, "load": 0.3}, - "regressions/oblique_cut_of_cylinder": {"secs": 162.2, "load": 0.1}, - "regressions/oblique_cut_of_cylinder_hang": {"secs": 244.9, "load": 0.4}, - "regressions/partial_face_contact_pattern": {"secs": 269.4, "load": 1.7}, - "regressions/ring_cut_below_recess_thin_floor": {"secs": 7.4, "load": 0.1}, - "regressions/shallow_loft_cut_from_top_face": {"secs": 40.8, "load": 1.3}, - "typical/filleted-shelled-box": {"secs": 43.4, "load": 0.4}, - "typical/holes-pattern-chamfer": {"secs": 525.7, "load": 3.1}, - "typical/loft": {"secs": 69.9, "load": 0.3}, - "typical/multi-body-join-cut": {"secs": 39.1, "load": 0.1}, - "typical/revolved-part": {"secs": 12.1, "load": 0.0}, - "typical/sheet-metal-bracket": {"secs": 140.1, "load": 0.8}, - "typical/stacked-extrude": {"secs": 37.1, "load": 0.5}, - "typical/sweep": {"secs": 57.9, "load": 0.0}, - "typical/up-down-join": {"secs": 4.9, "load": 0.0} + "oracle/02-cylinder": {"secs": 2.8, "load": 0.0}, + "oracle/03-box-through-hole": {"secs": 26.0, "load": 0.1}, + "oracle/04-revolve-vase": {"secs": 8.3, "load": 0.0}, + "oracle/05-taper-extrude": {"secs": 7.9, "load": 0.0}, + "oracle/06-symmetric-extrude": {"secs": 1.0, "load": 0.0}, + "oracle/07-fillet-all-edges": {"secs": 52.7, "load": 0.2}, + "oracle/08-chamfer": {"secs": 8.0, "load": 0.0}, + "oracle/09-shell": {"secs": 2.1, "load": 0.0}, + "oracle/10-rect-pattern-holes": {"secs": 128.9, "load": 0.4}, + "oracle/11-circular-pattern-flange": {"secs": 38.6, "load": 0.4}, + "oracle/12-mirror-feature": {"secs": 31.0, "load": 0.2}, + "oracle/13-combine-join": {"secs": 29.0, "load": 0.1}, + "oracle/14-combine-cut": {"secs": 81.9, "load": 1.3}, + "oracle/15-combine-intersect": {"secs": 32.4, "load": 8.5}, + "oracle/16-sweep": {"secs": 40.2, "load": 0.1}, + "oracle/17-loft": {"secs": 27.4, "load": 0.0}, + "oracle/18-hole-features": {"secs": 123.5, "load": 2.3}, + "oracle/19-l-bracket-constrained": {"secs": 1.9, "load": 0.0}, + "oracle/20-slot-constrained": {"secs": 5.9, "load": 0.0}, + "oracle/21-draft": {"secs": 6.0, "load": 0.0}, + "oracle/22-split-body": {"secs": 471.5, "load": 5.4}, + "oracle/23-bracket-multifeature": {"secs": 123.4, "load": 3.2}, + "oracle/24-user-parameters": {"secs": 15.4, "load": 0.0}, + "oracle/25-sketch-triangle": {"secs": 5.1, "load": 0.0}, + "oracle/26-sketch-belt": {"secs": 11.2, "load": 0.1}, + "oracle/27-sketch-trapezoid": {"secs": 24.1, "load": 0.0}, + "oracle/28-blind-pocket-fillets": {"secs": 227.5, "load": 0.3}, + "oracle/29-two-sided-and-partial-revolve": {"secs": 40.9, "load": 1.6}, + "oracle/30-fillet-after-shell": {"secs": 203.5, "load": 1.7}, + "oracle/31-fillet-l-all-edges": {"secs": 112.2, "load": 1.8}, + "oracle/32-boss-plate-fillets": {"secs": 217.7, "load": 1.3}, + "oracle/33-fillet-tangent-chain": {"secs": 107.5, "load": 0.5}, + "oracle/34-chamfer-then-fillet": {"secs": 54.2, "load": 0.3}, + "oracle/35-fillet-curved-curved": {"secs": 43.4, "load": 22.0}, + "oracle/36-corner-blend-two-radii": {"secs": 21.7, "load": 0.1}, + "oracle/37-pyramid-apex-blend": {"secs": 23.8, "load": 0.1}, + "oracle/38-coincident-cylinders": {"secs": 1.9, "load": 0.6}, + "oracle/39-tee-pipe": {"secs": 909.4, "load": 68.7}, + "oracle/40-box-sphere-torus": {"secs": 297.8, "load": 7.4}, + "oracle/41-tube-radial-holes": {"secs": 20507.9, "load": 131.1}, + "oracle/42-overlapping-patterns": {"secs": 1191.8, "load": 1.2}, + "oracle/43-cut-splits-body": {"secs": 4.4, "load": 0.0}, + "oracle/44-shell-l-bracket": {"secs": 3.2, "load": 0.0}, + "oracle/45-shell-boss-plate": {"secs": 59.2, "load": 0.5}, + "oracle/46-shell-two-open-faces": {"secs": 3.0, "load": 0.1}, + "oracle/47-draft-curved-pocket": {"secs": 43.4, "load": 0.2}, + "oracle/48-pulley": {"secs": 76.3, "load": 0.1}, + "oracle/49-helical-sweep": {"secs": 787.9, "load": 0.3}, + "oracle/50-sweep-tight-bend": {"secs": 30.6, "load": 0.1}, + "oracle/51-loft-rect-circle-offset": {"secs": 29.7, "load": 0.0}, + "oracle/52-circular-pattern-fillet": {"secs": 231.8, "load": 14.0}, + "oracle/53-path-pattern": {"secs": 79.4, "load": 0.5}, + "oracle/54-mirror-body-fillets": {"secs": 23.8, "load": 0.3}, + "oracle/55-tapped-hole-cosmetic": {"secs": 24.9, "load": 0.7}, + "oracle/56-holes-on-curved-face": {"secs": 612.9, "load": 10.0}, + "oracle/57-hole-pattern-sketch-points": {"secs": 105.0, "load": 0.9}, + "oracle/58-phone-stand": {"secs": 52.4, "load": 0.3}, + "oracle/59-enclosure-base": {"secs": 326.8, "load": 5.9}, + "oracle/60-pipe-flange": {"secs": 302.8, "load": 27.3}, + "oracle/61-shaft-keyway": {"secs": 1872.1, "load": 11.5}, + "oracle/62-heat-sink": {"secs": 171.3, "load": 0.8}, + "oracle/63-hinge-knuckle": {"secs": 103.1, "load": 0.2}, + "oracle/64-sketch-tangent-arc-chain": {"secs": 46.0, "load": 0.1}, + "oracle/65-sketch-gear-tooth": {"secs": 15.2, "load": 0.0}, + "oracle/66-sketch-linkage": {"secs": 32.6, "load": 0.0}, + "oracle/67-sm-base-flange": {"secs": 19.0, "load": 0.0}, + "oracle/68-sm-edge-flange": {"secs": 225.6, "load": 0.0}, + "oracle/69-sm-tray": {"secs": 1237.1, "load": 0.1}, + "oracle/70-sm-flange-45": {"secs": 237.7, "load": 0.0}, + "oracle/71-sm-custom-rule": {"secs": 190.6, "load": 0.0}, + "oracle/72-sm-contour-flange": {"secs": 76.2, "load": 0.0}, + "oracle/73-sm-hem": {"secs": 291.1, "load": 0.1}, + "oracle/74-sm-unfold-refold": {"secs": 265.0, "load": 0.0}, + "oracle/75-sm-bracket-holes": {"secs": 560.8, "load": 0.9}, + "oracle/76-sm-thickness-variant": {"secs": 185.2, "load": 0.0}, + "oracle/77-fillet-variable-linear": {"secs": 18.3, "load": 0.0}, + "oracle/78-fillet-variable-to-zero": {"secs": 15.1, "load": 0.1}, + "oracle/79-fillet-chord-length": {"secs": 7.2, "load": 0.1}, + "oracle/80-fillet-taper-to-fit": {"secs": 46.9, "load": 0.0}, + "oracle/81-fillet-spline-radius": {"secs": 71.1, "load": 0.0}, + "oracle/82-thin-extrude-frame": {"secs": 1.7, "load": 0.0}, + "regressions/blind_hole_in_long_d_profile": {"secs": 64.3, "load": 0.2}, + "regressions/join_struts_on_bore_wall": {"secs": 334.4, "load": 0.8}, + "regressions/lid_ribs_flush_with_window": {"secs": 714.4, "load": 1.6}, + "regressions/lip_swept_flush_round_corner": {"secs": 164.4, "load": 0.9}, + "regressions/loft_cut_beside_round_hole": {"secs": 101.9, "load": 0.2}, + "regressions/oblique_cut_of_cylinder": {"secs": 228.8, "load": 0.2}, + "regressions/oblique_cut_of_cylinder_hang": {"secs": 264.7, "load": 0.2}, + "regressions/partial_face_contact_pattern": {"secs": 173.3, "load": 1.1}, + "regressions/ring_cut_below_recess_thin_floor": {"secs": 7.9, "load": 0.0}, + "regressions/shallow_loft_cut_from_top_face": {"secs": 75.1, "load": 1.5}, + "typical/filleted-shelled-box": {"secs": 27.9, "load": 0.1}, + "typical/holes-pattern-chamfer": {"secs": 632.5, "load": 6.0}, + "typical/loft": {"secs": 111.2, "load": 0.4}, + "typical/multi-body-join-cut": {"secs": 50.7, "load": 0.2}, + "typical/revolved-part": {"secs": 16.2, "load": 0.0}, + "typical/sheet-metal-bracket": {"secs": 116.6, "load": 0.5}, + "typical/stacked-extrude": {"secs": 36.5, "load": 0.4}, + "typical/sweep": {"secs": 30.1, "load": 0.0}, + "typical/up-down-join": {"secs": 4.0, "load": 0.0} } }