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.
47 lines
1.1 KiB
Plaintext
47 lines
1.1 KiB
Plaintext
// Walkie talkie talk button
|
|
|
|
|
|
// Set units
|
|
@settings(defaultLengthUnit = in)
|
|
|
|
|
|
// Import constants
|
|
import width, thickness, talkButtonSideLength, talkButtonHeight from "globals.kcl"
|
|
|
|
talkButtonPlane = {
|
|
plane = {
|
|
origin = {
|
|
x = width / 2,
|
|
y = -thickness / 2,
|
|
z = .5
|
|
},
|
|
xAxis = { x = 0, y = 1, z = 0 },
|
|
yAxis = { x = 0, y = 0, z = 1 },
|
|
zAxis = { x = 1, y = 0, z = 0 }
|
|
}
|
|
}
|
|
|
|
// Create the talk button sketch
|
|
talkButtonSketch = startSketchOn(talkButtonPlane)
|
|
|> startProfileAt([
|
|
-talkButtonSideLength / 2,
|
|
talkButtonSideLength / 2
|
|
], %)
|
|
|> xLine(length = talkButtonSideLength, tag = $tag1)
|
|
|> yLine(length = -talkButtonSideLength, tag = $tag2)
|
|
|> xLine(length = -talkButtonSideLength, tag = $tag3)
|
|
|> close(tag = $tag4)
|
|
|
|
// Create the talk button and apply fillets
|
|
extrude(talkButtonSketch, length = talkButtonHeight)
|
|
|> fillet(
|
|
radius = 0.050,
|
|
tags = [
|
|
getNextAdjacentEdge(tag1),
|
|
getNextAdjacentEdge(tag2),
|
|
getNextAdjacentEdge(tag3),
|
|
getNextAdjacentEdge(tag4)
|
|
]
|
|
)
|
|
|> appearance(color = '#D0FF01', metalness = 90, roughness = 90)
|