Split Body by a face of a body: FusionSplitBodyCommand tool {body, point}
The Split feature takes an optional face tool (FaceAt, the face through a point on a named body) and splits with kernel split_body, the tool's surface extended; otherwise the plane as before. Engine test: a box split by a cylinder's side into the core and the rest. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AS5Tn3xieewUSg3uxrMVdL
This commit is contained in:
1 parent
34be218639
commit
feaaba156e
6 files changed
+129
-69
No files matched your search
@@ -312,10 +312,13 @@ pub enum FeatureKind {
|
||||
ConstructionPlane {
|
||||
plane: PlaneRef,
|
||||
},
|
||||
/// Split a body with a plane into two bodies.
|
||||
/// Split a body into the parts on either side of a plane, or of a face of a body (the face
|
||||
/// through `point`, its surface extended) when `tool` is set.
|
||||
Split {
|
||||
body: String,
|
||||
plane: PlaneRef,
|
||||
#[serde(default, skip_serializing_if = "Option::is_none")]
|
||||
tool: Option<FaceAt>,
|
||||
},
|
||||
/// Scale bodies about a point (uniform, or per axis).
|
||||
Scale {
|
||||
@@ -630,6 +633,13 @@ pub enum FeatureKind {
|
||||
},
|
||||
}
|
||||
|
||||
/// A face picked by a point on it, on a named body.
|
||||
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
|
||||
pub struct FaceAt {
|
||||
pub body: String,
|
||||
pub point: Vec3,
|
||||
}
|
||||
|
||||
/// Triangles of one imported mesh body (millimetres).
|
||||
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
|
||||
pub struct MeshData {
|
||||
|
||||
+15
-4
@@ -2016,13 +2016,24 @@ fn eval_feature(doc: &Document, vals: &BTreeMap<String, Value>, f: &Feature, st:
|
||||
doc.resolve_plane(vals, plane, 0)?;
|
||||
Ok(())
|
||||
}
|
||||
FeatureKind::Split { body, plane } => {
|
||||
let pl = doc.resolve_plane(vals, plane, 0)?;
|
||||
FeatureKind::Split { body, plane, tool } => {
|
||||
let i = st.bodies.iter().position(|b| &b.name == body).ok_or_else(|| DocError::Unknown(format!("body `{body}`")))?;
|
||||
let Some(mb) = st.bodies.get(i).cloned() else { return Err(DocError::Unknown(format!("body `{body}`"))) };
|
||||
let parts = kernel::split_by_plane(&mb.body, &pl)?;
|
||||
let parts = match tool {
|
||||
// A face of a body (its surface extended).
|
||||
Some(t) => {
|
||||
let tb = st.body(&t.body).ok_or_else(|| DocError::Unknown(format!("body `{}`", t.body)))?;
|
||||
let face = crate::appearance::face_index_at(tb, t.point)
|
||||
.ok_or_else(|| DocError::Invalid(format!("no face of `{}` at the tool point", t.body)))?;
|
||||
kernel::split_body(&mb.body, &kernel::SplitTool::Face { body: &tb.body, face })?
|
||||
}
|
||||
None => {
|
||||
let pl = doc.resolve_plane(vals, plane, 0)?;
|
||||
kernel::split_by_plane(&mb.body, &pl)?
|
||||
}
|
||||
};
|
||||
if parts.len() < 2 {
|
||||
return Err(DocError::Invalid("the plane does not split the body".into()));
|
||||
return Err(DocError::Invalid("the tool does not split the body".into()));
|
||||
}
|
||||
let mut it = parts.into_iter();
|
||||
if let (Some(first), Some(slot)) = (it.next(), st.bodies.get_mut(i)) {
|
||||
|
||||
@@ -88,7 +88,10 @@ pub static COMMANDS: &[CommandSpec] = &[
|
||||
.at("SOLID", "CONSTRUCT")
|
||||
.icon("plane")
|
||||
.params("base: XY|XZ|YZ|plane name; axis: X|Y|Z|{origin, dir}; angle: expr; name?"),
|
||||
CommandSpec::new("FusionSplitBodyCommand", "Split Body", split_body).at("SOLID", "MODIFY").icon("split").params("body: name; plane: XY|XZ|YZ|plane name|{origin, normal}"),
|
||||
CommandSpec::new("FusionSplitBodyCommand", "Split Body", split_body)
|
||||
.at("SOLID", "MODIFY")
|
||||
.icon("split")
|
||||
.params("body: name; plane: XY|XZ|YZ|plane name|{origin, normal} — or tool: {body, point} (a face of a body, its surface extended)"),
|
||||
CommandSpec::new("FusionPressPullCommand", "Press Pull", press_pull)
|
||||
.at("SOLID", "MODIFY")
|
||||
.icon("presspull")
|
||||
@@ -771,8 +774,27 @@ fn split_body(s: &mut Session, p: &Value) -> Result<Value> {
|
||||
if s.model.state().body(&body).is_none() {
|
||||
return Err(bad(cmd, format!("no body `{body}`")));
|
||||
}
|
||||
// A face as the tool: `tool: {body, point}` (its surface extended); else a plane.
|
||||
if let Some(t) = p.get("tool").filter(|t| !t.is_null()) {
|
||||
let tb = t.get("body").and_then(Value::as_str).ok_or_else(|| bad(cmd, "`tool.body` must name a body"))?.to_string();
|
||||
let point = t.get("point").and_then(crate::params::vec3).ok_or_else(|| bad(cmd, "`tool.point` must be [x, y, z] on the tool face"))?;
|
||||
let st = s.model.state();
|
||||
let tbody = st.body(&tb).ok_or_else(|| bad(cmd, format!("no body `{tb}`")))?;
|
||||
if solvecraft_doc::appearance::face_index_at(tbody, point).is_none() {
|
||||
return Err(bad(cmd, "`tool.point` is not on a face of the tool body"));
|
||||
}
|
||||
return add_feature(
|
||||
s,
|
||||
p,
|
||||
FeatureKind::Split {
|
||||
body,
|
||||
plane: solvecraft_doc::PlaneRef::Origin { name: "XY".into() },
|
||||
tool: Some(solvecraft_doc::FaceAt { body: tb, point }),
|
||||
},
|
||||
);
|
||||
}
|
||||
let plane = plane_param(s, p.get("plane"), cmd)?;
|
||||
add_feature(s, p, FeatureKind::Split { body, plane })
|
||||
add_feature(s, p, FeatureKind::Split { body, plane, tool: None })
|
||||
}
|
||||
|
||||
/// ISO 273 clearance hole diameters (close, normal, loose fit) for metric bolts.
|
||||
|
||||
@@ -1041,6 +1041,23 @@ fn iges_export_and_open() {
|
||||
assert_eq!(st.bodies[1].body.color(), Some([1.0, 0.0, 0.0]));
|
||||
}
|
||||
|
||||
/// Split Body by a face of another body (its surface extended): a box cut by a cylinder's
|
||||
/// side into the core and the rest; volumes add up exactly.
|
||||
#[test]
|
||||
fn split_body_by_a_face() {
|
||||
let mut s = Session::default();
|
||||
run(&mut s, "PrimitiveBox", json!({"length": 10, "width": 20, "height": 30, "body_name": "Block"}));
|
||||
run(&mut s, "PrimitiveCylinder", json!({"radius": 4, "height": 40, "base": [5, 10, -5], "body_name": "Tool"}));
|
||||
run(&mut s, "FusionSplitBodyCommand", json!({"body": "Block", "tool": {"body": "Tool", "point": [9, 10, 10]}}));
|
||||
let st = s.world_state();
|
||||
let mut v: Vec<f64> =
|
||||
st.bodies.iter().filter(|b| b.name.starts_with("Block")).map(|b| solvecraft_kernel::measure(&b.body).unwrap().volume).collect();
|
||||
v.sort_by(f64::total_cmp);
|
||||
let core = PI * 16.0 * 30.0;
|
||||
assert!(v.len() == 2 && rel(v[0], core) < 1e-3 && rel(v[1], 6000.0 - core) < 1e-3, "{v:?}");
|
||||
assert!(s.execute("FusionSplitBodyCommand", &json!({"body": "Block", "tool": {"body": "Tool", "point": [100, 0, 0]}})).is_err());
|
||||
}
|
||||
|
||||
/// Components export as a STEP assembly: products, occurrences, placements.
|
||||
#[test]
|
||||
fn components_export_as_step_assembly() {
|
||||
|
||||
@@ -2625,7 +2625,7 @@ pub fn for_feature(app: &SolveApp, id: u64, marker: Option<usize>) -> Option<Dia
|
||||
}
|
||||
d
|
||||
}
|
||||
FeatureKind::Split { body, plane } => {
|
||||
FeatureKind::Split { body, plane, .. } => {
|
||||
let mut d = start("FusionSplitBodyCommand")?;
|
||||
if let Some(inp) = d.inputs.first_mut() {
|
||||
inp.items = vec![Sel::Body { name: body.clone() }];
|
||||
|
||||
+61
-61
@@ -2,49 +2,49 @@
|
||||
|
||||
Generated by `cargo xtask parity` from `xtask/data/fusion-catalog.tsv` (the toolbar commands of Fusion's Design workspace, ids and names only) and the live command registry (`solvecraft-cli commands`). A command counts as live when SolveCraft registers the same command id. This measures breadth, not depth; see ROADMAP.md and docs/oracle.md for depth.
|
||||
|
||||
**In scope (SOLID, SKETCH, ASSEMBLY, SHEET METAL, PLASTIC enclosure subset): 220 / 541 commands live (41%).** SOLID + SKETCH: 140 / 291 (48%). Registered commands: 225.
|
||||
**In scope (SOLID, SKETCH, ASSEMBLY, SHEET METAL, PLASTIC enclosure subset): 278 / 541 commands live (51%).** SOLID + SKETCH: 167 / 291 (57%). Registered commands: 276.
|
||||
|
||||
Deferred until further notice (not in the in-scope figure): MESH, FORM, SURFACE beyond what solids need, PCB, render, animation, simulation, manufacture, drawings, MANAGE, UTILITIES and the rest of PLASTIC. All Design tabs together: 372 / 1175 (32%).
|
||||
Deferred until further notice (not in the in-scope figure): MESH, FORM, SURFACE beyond what solids need, PCB, render, animation, simulation, manufacture, drawings, MANAGE, UTILITIES and the rest of PLASTIC. All Design tabs together: 494 / 1175 (42%).
|
||||
|
||||
| Tab | Panel | Live | Total | % |
|
||||
|---|---|---:|---:|---:|
|
||||
| SOLID | CREATE | 22 | 35 | 63% |
|
||||
| SOLID | MODIFY | 18 | 32 | 56% |
|
||||
| SOLID | ASSEMBLE | 7 | 21 | 33% |
|
||||
| SOLID | CONFIGURE | 0 | 3 | 0% |
|
||||
| SOLID | ASSEMBLE | 12 | 21 | 57% |
|
||||
| SOLID | CONFIGURE | 2 | 3 | 67% |
|
||||
| SOLID | CONSTRUCT | 2 | 20 | 10% |
|
||||
| SOLID | INSPECT | 4 | 25 | 16% |
|
||||
| SOLID | INSERT | 5 | 11 | 45% |
|
||||
| SOLID | INSPECT | 12 | 25 | 48% |
|
||||
| SOLID | INSERT | 6 | 11 | 55% |
|
||||
| SOLID | SELECT | 0 | 15 | 0% |
|
||||
| SOLID | POSITION | 2 | 2 | 100% |
|
||||
| SKETCH | CREATE | 41 | 41 | 100% |
|
||||
| SKETCH | MODIFY | 12 | 12 | 100% |
|
||||
| SKETCH | CONSTRAINTS | 15 | 15 | 100% |
|
||||
| SKETCH | CONFIGURE | 0 | 3 | 0% |
|
||||
| SKETCH | INSPECT | 4 | 25 | 16% |
|
||||
| SKETCH | INSERT | 6 | 13 | 46% |
|
||||
| SKETCH | CONFIGURE | 2 | 3 | 67% |
|
||||
| SKETCH | INSPECT | 12 | 25 | 48% |
|
||||
| SKETCH | INSERT | 7 | 13 | 54% |
|
||||
| SKETCH | ASSEMBLE | 0 | 1 | 0% |
|
||||
| SKETCH | SELECT | 0 | 15 | 0% |
|
||||
| SKETCH | FINISH SKETCH | 2 | 2 | 100% |
|
||||
| SHEET METAL | CREATE | 14 | 19 | 74% |
|
||||
| SHEET METAL | CREATE | 15 | 19 | 79% |
|
||||
| SHEET METAL | MODIFY | 12 | 21 | 57% |
|
||||
| SHEET METAL | ASSEMBLE | 6 | 20 | 30% |
|
||||
| SHEET METAL | CONFIGURE | 0 | 3 | 0% |
|
||||
| SHEET METAL | ASSEMBLE | 11 | 20 | 55% |
|
||||
| SHEET METAL | CONFIGURE | 2 | 3 | 67% |
|
||||
| SHEET METAL | CONSTRUCT | 2 | 20 | 10% |
|
||||
| SHEET METAL | INSPECT | 4 | 25 | 16% |
|
||||
| SHEET METAL | INSERT | 5 | 11 | 45% |
|
||||
| SHEET METAL | INSPECT | 12 | 25 | 48% |
|
||||
| SHEET METAL | INSERT | 6 | 11 | 55% |
|
||||
| SHEET METAL | SELECT | 0 | 15 | 0% |
|
||||
| SHEET METAL | REFOLD | 0 | 1 | 0% |
|
||||
| SHEET METAL | POSITION | 2 | 2 | 100% |
|
||||
| ASSEMBLY | INSERT | 3 | 8 | 38% |
|
||||
| ASSEMBLY | INSERT | 4 | 8 | 50% |
|
||||
| ASSEMBLY | CREATE | 5 | 8 | 62% |
|
||||
| ASSEMBLY | RELATIONSHIPS | 4 | 11 | 36% |
|
||||
| ASSEMBLY | MOTION | 2 | 3 | 67% |
|
||||
| ASSEMBLY | MOTION | 3 | 3 | 100% |
|
||||
| ASSEMBLY | MODIFY | 8 | 11 | 73% |
|
||||
| ASSEMBLY | CONTACT | 0 | 2 | 0% |
|
||||
| ASSEMBLY | CONFIGURE | 0 | 3 | 0% |
|
||||
| ASSEMBLY | CONTACT | 2 | 2 | 100% |
|
||||
| ASSEMBLY | CONFIGURE | 2 | 3 | 67% |
|
||||
| ASSEMBLY | CONSTRUCT | 2 | 20 | 10% |
|
||||
| ASSEMBLY | INSPECT | 4 | 25 | 16% |
|
||||
| ASSEMBLY | INSPECT | 12 | 25 | 48% |
|
||||
| ASSEMBLY | SELECT | 0 | 15 | 0% |
|
||||
| ASSEMBLY | POSITION | 2 | 2 | 100% |
|
||||
| PLASTIC | enclosure subset | 5 | 5 | 100% |
|
||||
@@ -55,21 +55,21 @@ Deferred until further notice (not in the in-scope figure): MESH, FORM, SURFACE
|
||||
|---|---|---:|---:|---:|
|
||||
| SURFACE | CREATE | 7 | 25 | 28% |
|
||||
| SURFACE | MODIFY | 13 | 26 | 50% |
|
||||
| SURFACE | ASSEMBLE | 6 | 20 | 30% |
|
||||
| SURFACE | CONFIGURE | 0 | 3 | 0% |
|
||||
| SURFACE | ASSEMBLE | 11 | 20 | 55% |
|
||||
| SURFACE | CONFIGURE | 2 | 3 | 67% |
|
||||
| SURFACE | CONSTRUCT | 2 | 20 | 10% |
|
||||
| SURFACE | INSPECT | 4 | 25 | 16% |
|
||||
| SURFACE | INSERT | 5 | 11 | 45% |
|
||||
| SURFACE | INSPECT | 12 | 25 | 48% |
|
||||
| SURFACE | INSERT | 6 | 11 | 55% |
|
||||
| SURFACE | SELECT | 0 | 15 | 0% |
|
||||
| SURFACE | POSITION | 2 | 2 | 100% |
|
||||
| MESH | CREATE | 2 | 5 | 40% |
|
||||
| MESH | PREPARE | 0 | 4 | 0% |
|
||||
| MESH | MODIFY | 6 | 30 | 20% |
|
||||
| MESH | ASSEMBLE | 7 | 21 | 33% |
|
||||
| MESH | CONFIGURE | 0 | 3 | 0% |
|
||||
| MESH | ASSEMBLE | 12 | 21 | 57% |
|
||||
| MESH | CONFIGURE | 2 | 3 | 67% |
|
||||
| MESH | CONSTRUCT | 2 | 20 | 10% |
|
||||
| MESH | INSPECT | 4 | 25 | 16% |
|
||||
| MESH | INSERT | 4 | 10 | 40% |
|
||||
| MESH | INSPECT | 12 | 25 | 48% |
|
||||
| MESH | INSERT | 5 | 10 | 50% |
|
||||
| MESH | SELECT | 0 | 10 | 0% |
|
||||
| MESH | EXPORT | 0 | 1 | 0% |
|
||||
| MESH | POSITION | 2 | 2 | 100% |
|
||||
@@ -78,19 +78,19 @@ Deferred until further notice (not in the in-scope figure): MESH, FORM, SURFACE
|
||||
| FORM | SYMMETRY | 0 | 6 | 0% |
|
||||
| FORM | UTILITIES | 0 | 5 | 0% |
|
||||
| FORM | CONSTRUCT | 2 | 20 | 10% |
|
||||
| FORM | INSPECT | 4 | 25 | 16% |
|
||||
| FORM | INSERT | 6 | 13 | 46% |
|
||||
| FORM | INSPECT | 12 | 25 | 48% |
|
||||
| FORM | INSERT | 7 | 13 | 54% |
|
||||
| FORM | ASSEMBLE | 0 | 1 | 0% |
|
||||
| FORM | SELECT | 0 | 15 | 0% |
|
||||
| FORM | FINISH FORM | 0 | 1 | 0% |
|
||||
| PLASTIC | SETUP | 2 | 2 | 100% |
|
||||
| PLASTIC | CREATE | 26 | 35 | 74% |
|
||||
| PLASTIC | MODIFY | 18 | 32 | 56% |
|
||||
| PLASTIC | ASSEMBLE | 6 | 20 | 30% |
|
||||
| PLASTIC | CONFIGURE | 0 | 3 | 0% |
|
||||
| PLASTIC | ASSEMBLE | 11 | 20 | 55% |
|
||||
| PLASTIC | CONFIGURE | 2 | 3 | 67% |
|
||||
| PLASTIC | CONSTRUCT | 2 | 20 | 10% |
|
||||
| PLASTIC | INSPECT | 4 | 26 | 15% |
|
||||
| PLASTIC | INSERT | 5 | 11 | 45% |
|
||||
| PLASTIC | INSPECT | 12 | 26 | 46% |
|
||||
| PLASTIC | INSERT | 6 | 11 | 55% |
|
||||
| PLASTIC | SELECT | 0 | 15 | 0% |
|
||||
| PLASTIC | POSITION | 2 | 2 | 100% |
|
||||
| MANAGE | ASSIGN | 0 | 1 | 0% |
|
||||
@@ -103,7 +103,7 @@ Deferred until further notice (not in the in-scope figure): MESH, FORM, SURFACE
|
||||
| UTILITIES | NEST | 0 | 1 | 0% |
|
||||
| UTILITIES | ADD-INS | 0 | 2 | 0% |
|
||||
| UTILITIES | UTILITY | 1 | 3 | 33% |
|
||||
| UTILITIES | INSPECT | 4 | 24 | 17% |
|
||||
| UTILITIES | INSPECT | 11 | 24 | 46% |
|
||||
| UTILITIES | CREATE PMI | 0 | 4 | 0% |
|
||||
| UTILITIES | SELECT | 0 | 15 | 0% |
|
||||
| UTILITIES | POSITION | 2 | 2 | 100% |
|
||||
@@ -157,17 +157,33 @@ Deferred until further notice (not in the in-scope figure): MESH, FORM, SURFACE
|
||||
- SOLID › ASSEMBLE › Rigid Group (`RigidGroupCmd`)
|
||||
- SOLID › ASSEMBLE › Drive Joints (`FusionMoveJointsCommand`)
|
||||
- SOLID › ASSEMBLE › Motion Link (`FusionMotionRelationshipCommand`)
|
||||
- SOLID › ASSEMBLE › Motion Study (`FusionMotionStudyCommand`)
|
||||
- SOLID › ASSEMBLE › Enable Contact Sets (`EnableContactSetsCmd`)
|
||||
- SOLID › ASSEMBLE › Enable All Contact (`EnableAllContactCmd`)
|
||||
- SOLID › ASSEMBLE › Disable Contact (`DisableAllContactCmd`)
|
||||
- SOLID › ASSEMBLE › New Contact Set (`ContactSetCmd`)
|
||||
- SOLID › CONFIGURE › Configure (`FusionStartDesignConfigModeCmd`)
|
||||
- SOLID › CONFIGURE › Display Configuration Table (`FusionShowDesignConfigPanelCmd`)
|
||||
- SOLID › CONSTRUCT › Offset Plane (`ConstructionPlaneOffsetFromPlaneCommand`)
|
||||
- SOLID › CONSTRUCT › Plane at Angle (`ConstructionPlaneAtAngleCommand`)
|
||||
- SOLID › INSPECT › Measure (`MeasureCommand`)
|
||||
- SOLID › INSPECT › Interference (`InterferenceCheckCommand`)
|
||||
- SOLID › INSPECT › Section Analysis (`FusionHalfSectionViewCommand`)
|
||||
- SOLID › INSPECT › Curvature Comb Analysis (`FusionCurvatureCombAnalysisCommand`)
|
||||
- SOLID › INSPECT › Curvature Map Analysis (`FusionCurvatureMapAnalysisCommand`)
|
||||
- SOLID › INSPECT › Draft Analysis (`FusionDraftAnalysisCommand`)
|
||||
- SOLID › INSPECT › Environment Map Analysis (`FusionEnvironmentMapAnalysisCommand`)
|
||||
- SOLID › INSPECT › Isocurve Analysis (`FusionIsoCurveAnalysisCommand`)
|
||||
- SOLID › INSPECT › Zebra Analysis (`FusionZebraAnalysisCommand`)
|
||||
- SOLID › INSPECT › Accessibility Analysis (`FusionAccessibilityAnalysisCommand`)
|
||||
- SOLID › INSPECT › Center of Mass (`FusionCenterOfMassCommand`)
|
||||
- SOLID › INSPECT › Minimum Radius Analysis (`FusionMinimumRadiusAnalysisCommand`)
|
||||
- SOLID › INSERT › Decal (`FusionAddEditDecalCommand`)
|
||||
- SOLID › INSERT › Canvas (`FusionAddCanvasCommand`)
|
||||
- SOLID › INSERT › Insert SVG (`SketchImportSVG`)
|
||||
- SOLID › INSERT › Insert DXF (`ImportDxfFileCommand`)
|
||||
- SOLID › INSERT › Insert Mesh (`ParaMeshInsertAlignCommand`)
|
||||
- SOLID › INSERT › Insert Fastener (`FusionFastenersCommand`)
|
||||
- SOLID › POSITION › Capture Position (`SnapshotCmd`)
|
||||
- SOLID › POSITION › Revert Position (`AsBuiltPositionsCmd`)
|
||||
- SKETCH › CREATE › Line (`DrawPolyline`)
|
||||
@@ -238,16 +254,27 @@ Deferred until further notice (not in the in-scope figure): MESH, FORM, SURFACE
|
||||
- SKETCH › CONSTRAINTS › Symmetry (`ConstraintSymmetry`)
|
||||
- SKETCH › CONSTRAINTS › Curvature (`ConstraintSmooth`)
|
||||
- SKETCH › CONSTRAINTS › Polygon (`SketchPolygonConstraintCmd`)
|
||||
- SKETCH › CONFIGURE › Configure (`FusionStartDesignConfigModeCmd`)
|
||||
- SKETCH › CONFIGURE › Display Configuration Table (`FusionShowDesignConfigPanelCmd`)
|
||||
- SKETCH › INSPECT › Measure (`MeasureCommand`)
|
||||
- SKETCH › INSPECT › Interference (`InterferenceCheckCommand`)
|
||||
- SKETCH › INSPECT › Section Analysis (`FusionHalfSectionViewCommand`)
|
||||
- SKETCH › INSPECT › Curvature Comb Analysis (`FusionCurvatureCombAnalysisCommand`)
|
||||
- SKETCH › INSPECT › Curvature Map Analysis (`FusionCurvatureMapAnalysisCommand`)
|
||||
- SKETCH › INSPECT › Draft Analysis (`FusionDraftAnalysisCommand`)
|
||||
- SKETCH › INSPECT › Environment Map Analysis (`FusionEnvironmentMapAnalysisCommand`)
|
||||
- SKETCH › INSPECT › Isocurve Analysis (`FusionIsoCurveAnalysisCommand`)
|
||||
- SKETCH › INSPECT › Zebra Analysis (`FusionZebraAnalysisCommand`)
|
||||
- SKETCH › INSPECT › Accessibility Analysis (`FusionAccessibilityAnalysisCommand`)
|
||||
- SKETCH › INSPECT › Center of Mass (`FusionCenterOfMassCommand`)
|
||||
- SKETCH › INSPECT › Minimum Radius Analysis (`FusionMinimumRadiusAnalysisCommand`)
|
||||
- SKETCH › INSERT › Decal (`FusionAddEditDecalCommand`)
|
||||
- SKETCH › INSERT › Canvas (`FusionAddCanvasCommand`)
|
||||
- SKETCH › INSERT › Insert SVG (`SketchImportSVG`)
|
||||
- SKETCH › INSERT › Insert DXF (`ImportDxfFileCommand`)
|
||||
- SKETCH › INSERT › Insert Mesh (`ParaMeshInsertAlignCommand`)
|
||||
- SKETCH › INSERT › Insert Component (`FusionImportCommandFromToolbar`)
|
||||
- SKETCH › INSERT › Insert Fastener (`FusionFastenersCommand`)
|
||||
- SKETCH › FINISH SKETCH › Finish Sketch (`SketchStop`)
|
||||
- SKETCH › FINISH SKETCH › Finish with AutoConstrain (`SketchAutoConstrainAndFinish`)
|
||||
|
||||
@@ -288,13 +315,6 @@ Deferred until further notice (not in the in-scope figure): MESH, FORM, SURFACE
|
||||
- SOLID › ASSEMBLE › Tangent Constraint (`TangentConstraintCmd`)
|
||||
- SOLID › ASSEMBLE › Joint Constraint (`JointConstraintCmd`)
|
||||
- SOLID › ASSEMBLE › As-Built Constraint (`AsBuiltConstraintCmd`)
|
||||
- SOLID › ASSEMBLE › Motion Study (`FusionMotionStudyCommand`)
|
||||
- SOLID › ASSEMBLE › Enable Contact Sets (`EnableContactSetsCmd`)
|
||||
- SOLID › ASSEMBLE › Enable All Contact (`EnableAllContactCmd`)
|
||||
- SOLID › ASSEMBLE › Disable Contact (`DisableAllContactCmd`)
|
||||
- SOLID › ASSEMBLE › New Contact Set (`ContactSetCmd`)
|
||||
- SOLID › CONFIGURE › Configure (`FusionStartDesignConfigModeCmd`)
|
||||
- SOLID › CONFIGURE › Display Configuration Table (`FusionShowDesignConfigPanelCmd`)
|
||||
- SOLID › CONFIGURE › Create Configuration Rules (`FusionConfigurationRulesCmd`)
|
||||
- SOLID › CONSTRUCT › User Coordinate System (UCS) (`CoordinateSystemCommand`)
|
||||
- SOLID › CONSTRUCT › Tangent Plane (`ConstructionTangentPlaneCommand`)
|
||||
@@ -314,15 +334,7 @@ Deferred until further notice (not in the in-scope figure): MESH, FORM, SURFACE
|
||||
- SOLID › CONSTRUCT › Point At Center Of Circle/Sphere/Torus (`ConstructionPointFromCircleOrSphereCommand`)
|
||||
- SOLID › CONSTRUCT › Point At Edge And Plane (`ConstructionPointAtEdgeAndPlaneCommand`)
|
||||
- SOLID › CONSTRUCT › Point Along Path (`ConstructionPointAlongPathCommand`)
|
||||
- SOLID › INSPECT › Curvature Map Analysis (`FusionCurvatureMapAnalysisCommand`)
|
||||
- SOLID › INSPECT › Draft Analysis (`FusionDraftAnalysisCommand`)
|
||||
- SOLID › INSPECT › Environment Map Analysis (`FusionEnvironmentMapAnalysisCommand`)
|
||||
- SOLID › INSPECT › Isocurve Analysis (`FusionIsoCurveAnalysisCommand`)
|
||||
- SOLID › INSPECT › Validate (`FusionSurfaceValidateCommand`)
|
||||
- SOLID › INSPECT › Zebra Analysis (`FusionZebraAnalysisCommand`)
|
||||
- SOLID › INSPECT › Accessibility Analysis (`FusionAccessibilityAnalysisCommand`)
|
||||
- SOLID › INSPECT › Center of Mass (`FusionCenterOfMassCommand`)
|
||||
- SOLID › INSPECT › Minimum Radius Analysis (`FusionMinimumRadiusAnalysisCommand`)
|
||||
- SOLID › INSPECT › Component Connection Analysis (`FusionComponentConnectionAnalysisCommand`)
|
||||
- SOLID › INSPECT › DOF Analysis (`FusionDOFAnalysisCommand`)
|
||||
- SOLID › INSPECT › Edit Component Connection Analysis (`FusionEditComponentConnectionAnalysisCommand`)
|
||||
@@ -336,7 +348,6 @@ Deferred until further notice (not in the in-scope figure): MESH, FORM, SURFACE
|
||||
- SOLID › INSPECT › History (`ShowHistoryToolbarCmd`)
|
||||
- SOLID › INSPECT › Sustainability Insights (`GravityClimate_ManufacturingSustainabilityInsights_MainDialog`)
|
||||
- SOLID › INSERT › Insert T-Spline (`TSplineImportCommand`)
|
||||
- SOLID › INSERT › Insert Fastener (`FusionFastenersCommand`)
|
||||
- SOLID › INSERT › Insert Derive (`PullDeriveCommand`)
|
||||
- SOLID › INSERT › Insert McMaster-Carr Component (`InsertMcMasterCarrComponentCommand`)
|
||||
- SOLID › INSERT › Insert a manufacturer part (`cadenasparts4cad`)
|
||||
@@ -357,18 +368,8 @@ Deferred until further notice (not in the in-scope figure): MESH, FORM, SURFACE
|
||||
- SOLID › SELECT › Select Edge Priority (`SelectEdgePriorityCommand`)
|
||||
- SOLID › SELECT › Select Component Priority (`SelectComponentPriorityCommand`)
|
||||
- SOLID › SELECT › Selection Filters (`SelectionFilterCommand`)
|
||||
- SKETCH › CONFIGURE › Configure (`FusionStartDesignConfigModeCmd`)
|
||||
- SKETCH › CONFIGURE › Display Configuration Table (`FusionShowDesignConfigPanelCmd`)
|
||||
- SKETCH › CONFIGURE › Create Configuration Rules (`FusionConfigurationRulesCmd`)
|
||||
- SKETCH › INSPECT › Curvature Map Analysis (`FusionCurvatureMapAnalysisCommand`)
|
||||
- SKETCH › INSPECT › Draft Analysis (`FusionDraftAnalysisCommand`)
|
||||
- SKETCH › INSPECT › Environment Map Analysis (`FusionEnvironmentMapAnalysisCommand`)
|
||||
- SKETCH › INSPECT › Isocurve Analysis (`FusionIsoCurveAnalysisCommand`)
|
||||
- SKETCH › INSPECT › Validate (`FusionSurfaceValidateCommand`)
|
||||
- SKETCH › INSPECT › Zebra Analysis (`FusionZebraAnalysisCommand`)
|
||||
- SKETCH › INSPECT › Accessibility Analysis (`FusionAccessibilityAnalysisCommand`)
|
||||
- SKETCH › INSPECT › Center of Mass (`FusionCenterOfMassCommand`)
|
||||
- SKETCH › INSPECT › Minimum Radius Analysis (`FusionMinimumRadiusAnalysisCommand`)
|
||||
- SKETCH › INSPECT › Component Connection Analysis (`FusionComponentConnectionAnalysisCommand`)
|
||||
- SKETCH › INSPECT › DOF Analysis (`FusionDOFAnalysisCommand`)
|
||||
- SKETCH › INSPECT › Edit Component Connection Analysis (`FusionEditComponentConnectionAnalysisCommand`)
|
||||
@@ -382,7 +383,6 @@ Deferred until further notice (not in the in-scope figure): MESH, FORM, SURFACE
|
||||
- SKETCH › INSPECT › History (`ShowHistoryToolbarCmd`)
|
||||
- SKETCH › INSPECT › Sustainability Insights (`GravityClimate_ManufacturingSustainabilityInsights_MainDialog`)
|
||||
- SKETCH › INSERT › Insert T-Spline (`TSplineImportCommand`)
|
||||
- SKETCH › INSERT › Insert Fastener (`FusionFastenersCommand`)
|
||||
- SKETCH › INSERT › Duplicate With Joints (`FusionDuplicateWithJointsCommand`)
|
||||
- SKETCH › INSERT › Insert Derive (`PullDeriveCommand`)
|
||||
- SKETCH › INSERT › Insert McMaster-Carr Component (`InsertMcMasterCarrComponentCommand`)
|
||||
|
||||
Reference in new issue
Block a user