pub struct Extrude;Expand description
Extrudes the areas of a sketch — each a lump, as a text’s letters are —
along the sketch plane’s normal, into
a solid named extrude(E) for the operation E — kept as a new body,
or combined with another solid, see Combine; the result is
extrude(E) either way. Or, as faces (Output::Faces), sweeps the
sketch’s curves into faces standing on their own — the area’s outline,
or a chain of curves enclosing nothing.
How far it goes is an Extents: a length, or up to the next face of
the solid it is joined to or cut from, on one side of the plane, both
alike, or each its own way. With a draft angle its walls lean in away
from the plane, each by the angle (see [drafted]); both ways from the
plane, a ridge there.
The faces, edges and vertices are named after the sketch elements they
are swept from (see geop_lib_sweep::extrude), with X a piece of a
sketch curve (c3, or c3#1 for the second piece of an arc or circle
split into several) and P a joint (p2 for a sketch point, c3@1
where a curve was split) of the sketch K:
extrude(E,start)/extrude(E,end): the caps, at either end;extrude(E,K,X): the side face swept byX;extrude(E,K,X,start)/extrude(E,K,X,end)its edges on the two caps;extrude(E,K,P): the edge swept byP;extrude(E,K,P,start)/extrude(E,K,P,end)its vertices.
A side going up to the next face is built on its own, from the sketch’s
plane — its caps start on the plane — and the second of two sides
built so is named within side2: extrude(E,side2,K,X).
Trait Implementations§
impl Copy for Extrude
Source§impl<'de> Deserialize<'de> for Extrude
impl<'de> Deserialize<'de> for Extrude
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl Editable for Extrude
impl Editable for Extrude
const INFO: OperationInfo = <Extrude as ::geop_core_editor::part_operation::PartOperation>::INFO
Source§type EditingState = FormState<<Extrude as PartOperation>::Session>
type EditingState = FormState<<Extrude as PartOperation>::Session>
Source§fn new_args(context: &Context<'_>) -> Self::Args
fn new_args(context: &Context<'_>) -> Self::Args
Source§fn presentation(
context: &Context<'_>,
args: &Self::Args,
editing: &Self::EditingState,
) -> Form
fn presentation( context: &Context<'_>, args: &Self::Args, editing: &Self::EditingState, ) -> Form
Source§fn process_user_event(
context: &Context<'_>,
args: &Self::Args,
editing: &Self::EditingState,
event: Event,
) -> (Self::Args, Self::EditingState)
fn process_user_event( context: &Context<'_>, args: &Self::Args, editing: &Self::EditingState, event: Event, ) -> (Self::Args, Self::EditingState)
event.Source§impl ModelOperation for Extrude
impl ModelOperation for Extrude
Source§fn build(
model: &mut NamedModel,
reader: &Reader<'_>,
step: &str,
args: &ExtrudeArgs,
) -> GeopResult<()>
fn build( model: &mut NamedModel, reader: &Reader<'_>, step: &str, args: &ExtrudeArgs, ) -> GeopResult<()>
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 Extrude
impl Operation for Extrude
Source§const KIND: &'static str = <Extrude as ::geop_core_editor::part_operation::PartOperation>::KIND
const KIND: &'static str = <Extrude as ::geop_core_editor::part_operation::PartOperation>::KIND
Source§type Args = <Extrude as PartOperation>::Args
type Args = <Extrude as PartOperation>::Args
Source§fn run(ctx: &mut StepContext<'_>, args: &Self::Args) -> __GeopResult<()>
fn run(ctx: &mut StepContext<'_>, args: &Self::Args) -> __GeopResult<()>
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 Extrude
impl PartOperation for Extrude
Source§fn new_args(context: &Context<'_>) -> ExtrudeArgs
fn new_args(context: &Context<'_>) -> ExtrudeArgs
The newest sketch, 10 up — a size that reads in millimetres — joined to the newest solid if there is one.
Source§fn form<'a>(
context: &'a Context<'a>,
args: &ExtrudeArgs,
_: &FormState<()>,
) -> EditForm<'a, ExtrudeArgs>
fn form<'a>( context: &'a Context<'a>, args: &ExtrudeArgs, _: &FormState<()>, ) -> EditForm<'a, ExtrudeArgs>
The sketch, picked; how far, each length typed or dragged as a
handle; whether a face; and how to combine. A length typed or
dragged across the sketch plane turns a join into a cut, and back
(see Combine::follow_sign);
a formula is followed, not steered by.
const INFO: OperationInfo
Source§type Args = ExtrudeArgs
type Args = ExtrudeArgs
Source§type Session = ()
type Session = ()
() for most.Source§fn run(ctx: &mut StepContext<'_>, args: &ExtrudeArgs) -> GeopResult<()>
fn run(ctx: &mut StepContext<'_>, args: &ExtrudeArgs) -> GeopResult<()>
ctx (see
StepContext::produce).