meta data for this page
  •  

This is an old revision of the document!


Extrusions

Extruding a two dimensional shape into a three dimensional shape can be performed in various ways. In each extrusion process, a continuous three dimensional shape is formed with a constant cross section similar to that of the two dimensional shape.

Linear Extrude

 Extrude Linear

Extrude a two dimensional shape in an upward linear direction.

The two dimensional shape is extruded to the height, upwards along the Z axis. The two dimensional shape is be rotated twistAngle about the Z axis during the extrusion, creating twistSteps during the extrusion.

Note: The two dimensional shape can be placed anywhere to create various twisted shapes.

Defaults:

  • height : 1
  • twist : 0
  • twistSteps : 1 (Note: Increasing the value of twistSteps improves the overall shape.)
const { extrudeLinear } = require('@jscad/modeling').extrusions
 
const myshape = extrudeLinear({height: radiusZ * 2}, shape1)
const myshape = extrudeLinear({height: radiusZ * 2, twistAngle: Math.PI / 2, twistSteps: 10}, shape2)

Rectangular Extrude

 Extrude Rectangular

Extrude a rectangle (upright, perpendicular) along the outlines of the two dimensional shape.

The two dimensional shape is extruded to the height, upwards along the Z axis.

Note: The extrusion process uses Linear Extrude underneath, so the extrusion can be rotated twistAngle about the Z axis during the extrusion, creating twistSteps during the extrusion.

Defaults:

  • size: 1 (width of rectangle during extrusion)
  • height : 1
const myshape = extrudeRectangular({height: radiusZ * 2, size: 0.25}, shape1)
const myshape = extrudeRectangular({height: radiusZ * 2, size: 3, twistAngle: Math.PI / 2, twistSteps: 10}, shape2)

Rotate Extrude

 Extrude Rotate

Extrude a two dimensional shape in a rotation about the Z axis. The two dimensional shape can be placed anywhere to create various three dimensional shapes. The segments specify the number of segments to create per full rotation.

Defaults:

  • startAngle : 0
  • angle: PI * 2
  • overflow: 'cap' (cap the ends in order to create a solid)
  • segments: 12 (Note: Increasing the value of segments improves the overall shape.)
const myshape = extrudeRotate({segments: 64}, shape1)
const myshape = extrudeRotate({segments: 8, angle: Math.PI startAngle: 0}, shape3)

Projections

tbw