pub struct TargetSelection {
pub target_solids: Vec<String>,
pub drive_faces: Vec<TargetRef>,
pub avoid_faces: Vec<TargetRef>,
pub protected_solids: Vec<String>,
pub chains: Vec<ChainRef>,
}Expand description
What an operation machines and what it must not touch.
drive_faces restrict where cutting is REQUESTED; collision and gouge
checks always protect every triangle of target_solids and
protected_solids. An empty target_solids list is a reported error for
an enabled operation.
Fields§
§target_solids: Vec<String>Bodies to machine.
drive_faces: Vec<TargetRef>Faces (on the target bodies) that bound the requested cutting region.
avoid_faces: Vec<TargetRef>Faces to avoid (checked, never cut) in addition to the protected bodies.
protected_solids: Vec<String>Fixtures, clamps and other bodies that are protected but not machined.
chains: Vec<ChainRef>Ordered edge chains and sketch curves/profiles to machine along (2D contour, slot, chamfer, trace, engrave, …).
Implementations§
Source§impl TargetSelection
impl TargetSelection
Sourcepub fn validate(&self) -> Result<(), String>
pub fn validate(&self) -> Result<(), String>
Names and chain shapes are well formed (resolution against the model is the dispatcher’s).
pub fn solids<I, S>(solids: I) -> Self
Sourcepub fn protected_bodies(&self) -> Vec<String>
pub fn protected_bodies(&self) -> Vec<String>
Every body whose triangles take part in protection checks, de-duplicated and sorted.