Extend the current sketch with a new involute circular curve.
involuteCircular(
@sketch: Sketch,
angle: number(Angle),
startRadius?: number(Length),
endRadius?: number(Length),
startDiameter?: number(Length),
endDiameter?: number(Length),
reverse?: bool,
tag?: TagDecl,
): Sketch
Arguments
| Name | Type | Description | Required |
|---|---|---|---|
sketch | Sketch | Which sketch should this path be added to? | Yes |
angle | number(Angle) | The angle to rotate the involute by. A value of zero will produce a curve with a tangent along the x-axis at the start point of the curve. | Yes |
startRadius | number(Length) | The involute is described between two circles, startRadius is the radius of the inner circle. Either startRadius or startDiameter must be given (but not both). | No |
endRadius | number(Length) | The involute is described between two circles, endRadius is the radius of the outer circle. Either endRadius or endDiameter must be given (but not both). | No |
startDiameter | number(Length) | The involute is described between two circles, startDiameter describes the inner circle. Either startRadius or startDiameter must be given (but not both). | No |
endDiameter | number(Length) | The involute is described between two circles, endDiameter describes the outer circle. Either endRadius or endDiameter must be given (but not both). | No |
reverse | bool | If reverse is true, the segment will start from the end of the involute, otherwise it will start from that start. | No |
tag | TagDecl | Create a new tag which refers to this line. | No |
Returns
Sketch - A sketch is a collection of paths.
Examples
a = 10
b = 14
startSketchOn(XZ)
|> startProfile(at = [0, 0])
|> involuteCircular(startRadius = a, endRadius = b, angle = 60deg)
|> involuteCircular(
startRadius = a,
endRadius = b,
angle = 60deg,
reverse = true,
)
// Example: a gear that uses an involute circular profile for the teeth.
@settings(defaultLengthUnit = mm)
/// // Define gear parameters
nTeeth = 21
module = 1.5
pressureAngle = 14deg
gearHeight = 6
pitchDiameter = module * nTeeth
addendum = module
deddendum = 1.25 * module
baseDiameter = pitchDiameter * cos(pressureAngle)
tipDiameter = pitchDiameter + 2 * module
// Using the gear parameters, sketch an involute tooth spanning from the base diameter to the tip diameter
gearSketch = startSketchOn(XY)
|> startProfile(at = polar(angle = 0, length = baseDiameter / 2))
|> involuteCircular(
startDiameter = baseDiameter,
endDiameter = tipDiameter,
angle = 0,
tag = $seg01,
)
|> line(endAbsolute = polar(angle = 160deg / nTeeth, length = tipDiameter / 2))
|> involuteCircular(
startDiameter = baseDiameter,
endDiameter = tipDiameter,
angle = -atan(segEndY(seg01) / segEndX(seg01)) - (180deg / nTeeth),
reverse = true,
)
// Position the end line of the sketch at the start of the next tooth
|> line(endAbsolute = polar(angle = 360deg / nTeeth, length = baseDiameter / 2))
// Pattern the sketch about the center by the specified number of teeth, then close the sketch
|> patternCircular2d(
instances = nTeeth,
center = [0, 0],
arcDegrees = 360deg,
rotateDuplicates = true,
)
|> close()
// Extrude the gear to the specified height
|> extrude(length = gearHeight)