Previously, `xLine`, `xLineTo`, `yLine` and `yLineTo` used positional arguments. Now: - `xLineTo` and `yLineTo` have been removed - `xLine` and `yLine` both use keyword arguments: - `length`, optional (i.e. a relative distance along the X or Y axis) - `endAbsolute` optional (i.e. an absolute point along the X or Y axis) - `tag` optional - Exactly one of `length` or `endAbsolute` must be given. Not both, not neither. For example: ``` // Old way |> xLine(6.04, %) |> yLineTo(20, %, $base) // New way |> xLine(length = 6.04) |> yLine(endAbsolute = 20, tag = $base) ``` This also improves some of the general-purpose keyword arguments code in modeling app's TS codebase.
37 lines
1.2 KiB
Plaintext
37 lines
1.2 KiB
Plaintext
// Pipe
|
|
// A tubular section or hollow cylinder, usually but not necessarily of circular cross-section, used mainly to convey substances that can flow.
|
|
|
|
// Set Units
|
|
@settings(defaultLengthUnit = in)
|
|
|
|
// Define constants
|
|
pipeTotalLength = 20
|
|
pipeLargeDiaLength = 1
|
|
pipeLargeDia = 1
|
|
pipeSmallDia = .75
|
|
thickness = 0.125
|
|
pipeTransitionAngle = 60
|
|
pipeTransitionLength = 0.5
|
|
pipeSmallDiaLength = pipeTotalLength - pipeTransitionLength - pipeLargeDiaLength
|
|
|
|
// Create the sketch to be revolved around the y-axis. Use the small diameter, large diameter, length, and thickness to define the sketch.
|
|
pipeSketch = startSketchOn('XY')
|
|
|> startProfileAt([pipeSmallDia - (thickness / 2), 38], %)
|
|
|> line(end = [thickness, 0])
|
|
|> line(end = [0, -pipeSmallDiaLength])
|
|
|> angledLineOfYLength({
|
|
angle = -60,
|
|
length = pipeTransitionLength
|
|
}, %)
|
|
|> line(end = [0, -pipeLargeDiaLength])
|
|
|> xLine(length = -thickness)
|
|
|> line(end = [0, pipeLargeDiaLength])
|
|
|> angledLineToX({
|
|
angle = -pipeTransitionAngle + 180,
|
|
to = pipeSmallDia - (thickness / 2)
|
|
}, %)
|
|
|> close()
|
|
|
|
// Revolve the sketch to create the pipe
|
|
pipe = revolve({ axis = 'y' }, pipeSketch)
|