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 {
|
||||
|
||||
Reference in new issue
Block a user