kcl

extrude

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.

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

extrude(
  sketches: [Sketch],
  length: number,
  symmetric?: bool,
  bidirectionalLength?: number,
  tagStart?: TagDeclarator,
  tagEnd?: TagDeclarator,
): [Solid]

Arguments

NameTypeDescriptionRequired
sketches[Sketch]Which sketch or sketches should be extrudedYes
lengthnumberHow far to extrude the given sketchesYes
symmetricboolIf true, the extrusion will happen symmetrically around the sketch. Otherwise, theNo
bidirectionalLengthnumberIf specified, will also extrude in the opposite direction to 'distance' to the specified distance. If 'symmetric' is true, this value is ignored.No
tagStartTagDeclaratorA named tag for the face at the start of the extrusion, i.e. the original sketchNo
tagEndTagDeclaratorA named tag for the face at the end of the extrusion, i.e. the new face created by extruding the original sketchNo

Returns

[Solid]

Examples

example = startSketchOn(XZ)
  |> startProfileAt([0, 0], %)
  |> line(end = [10, 0])
  |> arc(angleStart = 120, angleEnd = 0, radius = 5)
  |> line(end = [5, 0])
  |> line(end = [0, 10])
  |> bezierCurve({
       control1 = [-10, 0],
       control2 = [2, 10],
       to = [-5, 10]
     }, %)
  |> line(end = [-5, -2])
  |> close()
  |> extrude(length = 10)

Rendered example of extrude 0

exampleSketch = startSketchOn(XZ)
  |> startProfileAt([-10, 0], %)
  |> arc(angleStart = 120, angleEnd = -60, radius = 5)
  |> line(end = [10, 0])
  |> line(end = [5, 0])
  |> bezierCurve({
       control1 = [-3, 0],
       control2 = [2, 10],
       to = [-5, 10]
     }, %)
  |> line(end = [-4, 10])
  |> line(end = [-5, -2])
  |> close()

example = extrude(exampleSketch, length = 10)

Rendered example of extrude 1

exampleSketch = startSketchOn(XZ)
  |> startProfileAt([-10, 0], %)
  |> arc(angleStart = 120, angleEnd = -60, radius = 5)
  |> line(end = [10, 0])
  |> line(end = [5, 0])
  |> bezierCurve({
       control1 = [-3, 0],
       control2 = [2, 10],
       to = [-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)
  |> startProfileAt([-10, 0], %)
  |> arc(angleStart = 120, angleEnd = -60, radius = 5)
  |> line(end = [10, 0])
  |> line(end = [5, 0])
  |> bezierCurve({
       control1 = [-3, 0],
       control2 = [2, 10],
       to = [-5, 10]
     }, %)
  |> line(end = [-4, 10])
  |> line(end = [-5, -2])
  |> close()

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

Rendered example of extrude 3