Skip to main content

SheetCut

Struct SheetCut 

Source
pub struct SheetCut;
Expand description

Cuts through a sheet-metal body along a sketch, for the operation C: the body is consumed and rebuilt as sheet_cut(C), every face, edge and vertex it had keeping its name except those the cut splits or takes away.

Every area of sketch is projected onto the flat face face, along its normal, and cut out straight through the sheet: a hole where it lies inside the face, a notch where it reaches over the face’s outline, and where it reaches past the face into a bend — and on into the next flat — it is cut through the bend as the bend lies unrolled, so that the flat pattern shows it exactly as drawn. The cut is recorded with the body’s bends: the body still unfolds.

The edges the cut makes are named after the sketch’s pieces: piece X of sketch K gives sheet_cut(C,K,X) — ...,0, ...,1 along it where the body’s edges split it — with its edges ...,a and ...,b and its wall as crate::thicken says. An edge of the body the cut splits becomes E,0, E,1, … along it.

Refused, by name: a sketch not parallel to the face, an area with a hole in it (whose island would fall out), a cut that crosses an edge at its end, touches one or runs along one, crosses a curve that is no line or arc, splits a face in two or takes one away, or misses the sheet.

Trait Implementations§

Source§

impl Clone for SheetCut

Source§

fn clone(&self) -> SheetCut

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Copy for SheetCut

Source§

impl Debug for SheetCut

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for SheetCut

Source§

fn default() -> SheetCut

Returns the “default value” for a type. Read more
Source§

impl<'de> Deserialize<'de> for SheetCut

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl Editable for SheetCut

Source§

const INFO: OperationInfo = <SheetCut as ::geop_core_editor::part_operation::PartOperation>::INFO

Source§

type EditingState = FormState<<SheetCut as PartOperation>::Session>

What the editor keeps about a step while it is edited, beyond its arguments, starting from the default whenever a step is opened.
Source§

fn new_args(context: &Context<'_>) -> Self::Args

The arguments of a new step: sensible defaults, taking the part it is inserted into into account.
Source§

fn presentation( context: &Context<'_>, args: &Self::Args, editing: &Self::EditingState, ) -> Form

What the editor shows while the step is edited. Never fails: an editor needs the form most exactly when the arguments do not build, so whatever is wrong is said in it.
Source§

fn process_user_event( context: &Context<'_>, args: &Self::Args, editing: &Self::EditingState, event: Event, ) -> (Self::Args, Self::EditingState)

The step’s arguments and editing state after event.
Source§

impl ModelOperation for SheetCut

Source§

fn build( model: &mut NamedModel, reader: &Reader<'_>, step: &str, _: &SheetCutArgs, ) -> GeopResult<()>

Builds the step step — what everything it makes is named after — into model, reading whatever else it builds on through reader, so the step is rebuilt when that changes.
Source§

impl Operation for SheetCut

Source§

const KIND: &'static str = <SheetCut as ::geop_core_editor::part_operation::PartOperation>::KIND

The name programs store its steps under.
Source§

type Args = <SheetCut as PartOperation>::Args

What a step of the operation is given. It is saved with the program, so it names targets and elements, never holds their internal ids.
Source§

fn run(ctx: &mut StepContext<'_>, args: &Self::Args) -> __GeopResult<()>

Declares what the step produces, through ctx (see StepContext::produce): cheap, since it runs in every run. What takes work is done in the makes, which run only when what they read changed.
Source§

impl PartOperation for SheetCut

Source§

fn new_args(context: &Context<'_>) -> SheetCutArgs

The newest sketch, on the face it lies on.

Source§

fn form<'a>( context: &'a Context<'a>, args: &SheetCutArgs, _: &FormState<()>, ) -> EditForm<'a, SheetCutArgs>

The sketch, picked, and the face, if not the one the sketch lies on.

Source§

const KIND: &'static str = "sheet_cut"

The name programs store its steps under.
Source§

const INFO: OperationInfo

Source§

type Args = SheetCutArgs

What a step is given. It is saved with the program, so it names targets and elements, never holds their internal ids.
Source§

type Session = ()

What the editor keeps while a step is edited besides its arguments and the visuals selected: () for most.
Source§

fn run(ctx: &mut StepContext<'_>, args: &SheetCutArgs) -> GeopResult<()>

Declares what the step produces, through ctx (see StepContext::produce).
Source§

fn begin_event(session: &mut Self::Session)

What the session forgets at the start of every event, before the event is handled: nothing, by default.
Source§

fn canvas( context: &Context<'_>, edit: Edit<'_, Self::Args, Self::Session>, event: &CanvasEvent, )

What the pointer or a key did on the canvas: nothing, by default.
Source§

impl PartialEq for SheetCut

Source§

fn eq(&self, other: &SheetCut) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl Serialize for SheetCut

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl StructuralPartialEq for SheetCut

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<O> ErasedEditable for O
where O: Editable,

Source§

fn info(&self) -> &'static OperationInfo

Source§

fn new_args(&self, context: &Context<'_>) -> Result<Value, GeopError>

Source§

fn initial_editing(&self) -> Box<dyn Any>

Source§

fn presentation( &self, context: &Context<'_>, args: &Value, editing: &(dyn Any + 'static), ) -> Result<Form, GeopError>

Source§

fn process_user_event( &self, context: &Context<'_>, args: &Value, editing: &(dyn Any + 'static), event: Event, ) -> Result<Edited, GeopError>

Source§

impl<O> ErasedOperation for O
where O: Operation,

Source§

fn kind(&self) -> &'static str

Source§

fn check_args(&self, args: &Value) -> Result<(), GeopError>

Whether args are arguments of the operation, as saved.
Source§

fn run(&self, ctx: &mut StepContext<'_>, args: &Value) -> Result<(), GeopError>

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.