kcl-stdfunctionsextrude

extrudeFunction in std::sketch

Extend a 2-dimensional sketch through a third dimension in order to create new 3-dimensional volume, or if extruded into an existing volume, cut into an existing solid.

extrude(
  @sketches: [Sketch; 1+],
  length: number(Length),
  symmetric?: bool,
  bidirectionalLength?: number(Length),
  tagStart?: TagDecl,
  tagEnd?: TagDecl,
  twistAngle?: number(Angle),
  twistAngleStep?: number(Angle),
  twistCenter?: Point2d,
): [Solid; 1+]

You can provide more than one sketch to extrude, and they will all be extruded in the same direction.

Arguments

NameTypeDescriptionRequired
sketches[Sketch; 1+]Which sketch or sketches should be extruded.Yes
lengthnumber(Length)How far to extrude the given sketches.Yes
symmetricboolIf true, the extrusion will happen symmetrically around the sketch. Otherwise, the extrusion will happen on only one side of the sketch.No
bidirectionalLengthnumber(Length)If specified, will also extrude in the opposite direction to 'distance' to the specified distance. If 'symmetric' is true, this value is ignored.No
tagStartTagDeclA named tag for the face at the start of the extrusion, i.e. the original sketch.No
tagEndTagDeclA named tag for the face at the end of the extrusion, i.e. the new face created by extruding the original sketch.No
twistAnglenumber(Angle)If given, the sketch will be twisted around this angle while being extruded.No
twistAngleStepnumber(Angle)The size of each intermediate angle as the sketch twists around. Must be between 4 and 90 degrees. Only used if twistAngle is given, defaults to 15 degrees.No
twistCenterPoint2dThe center around which the sketch will be twisted. Relative to the sketch's center. Only used if twistAngle is given, defaults to [0, 0] i.e. sketch's center.No

Returns

[Solid; 1+]

Examples

example = startSketchOn(XZ)
  |> startProfile(at = [0, 0])
  |> line(end = [10, 0])
  |> arc(angleStart = 120deg, angleEnd = 0, radius = 5)
  |> line(end = [5, 0])
  |> line(end = [0, 10])
  |> bezierCurve(control1 = [-10, 0], control2 = [2, 10], end = [-5, 10])
  |> line(end = [-5, -2])
  |> close()
  |> extrude(length = 10)

Rendered example of extrude 0

exampleSketch = startSketchOn(XZ)
  |> startProfile(at = [-10, 0])
  |> arc(angleStart = 120deg, angleEnd = -60deg, radius = 5)
  |> line(end = [10, 0])
  |> line(end = [5, 0])
  |> bezierCurve(control1 = [-3, 0], control2 = [2, 10], end = [-5, 10])
  |> line(end = [-4, 10])
  |> line(end = [-5, -2])
  |> close()

example = extrude(exampleSketch, length = 10)

Rendered example of extrude 1

exampleSketch = startSketchOn(XZ)
  |> startProfile(at = [-10, 0])
  |> arc(angleStart = 120deg, angleEnd = -60deg, radius = 5)
  |> line(end = [10, 0])
  |> line(end = [5, 0])
  |> bezierCurve(control1 = [-3, 0], control2 = [2, 10], end = [-5, 10])
  |> line(end = [-4, 10])
  |> line(end = [-5, -2])
  |> close()

example = extrude(exampleSketch, length = 20, symmetric = true)

Rendered example of extrude 2

exampleSketch = startSketchOn(XZ)
  |> startProfile(at = [-10, 0])
  |> arc(angleStart = 120deg, angleEnd = -60deg, radius = 5)
  |> line(end = [10, 0])
  |> line(end = [5, 0])
  |> bezierCurve(control1 = [-3, 0], control2 = [2, 10], end = [-5, 10])
  |> line(end = [-4, 10])
  |> line(end = [-5, -2])
  |> close()

example = extrude(exampleSketch, length = 10, bidirectionalLength = 50)

Rendered example of extrude 3

example = startSketchOn(XZ)
  |> polygon(radius = 10, numSides = 3, center = [0, 0])
  |> extrude(length = 10, twistAngle = 120deg)

Rendered example of extrude 4

Found a typo?