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.
51 lines
1.2 KiB
Plaintext
51 lines
1.2 KiB
Plaintext
// Antenna
|
|
|
|
|
|
// Set units
|
|
@settings(defaultLengthUnit = in)
|
|
|
|
|
|
// import constants
|
|
import height, width, antennaBaseWidth, antennaBaseHeight, antennaTopWidth, antennaTopHeight from "globals.kcl"
|
|
|
|
// Calculate the origin
|
|
origin = [-width / 2 + .45, -0.10]
|
|
|
|
// Create the antenna
|
|
antennaX = origin[0]
|
|
antennaY = origin[1]
|
|
|
|
antennaPlane = {
|
|
plane = {
|
|
origin = { x = 0, y = 0, z = height / 2 },
|
|
xAxis = { x = 1, y = 0, z = 0 },
|
|
yAxis = { x = 0, y = 1, z = 0 },
|
|
zAxis = { x = 0, y = 0, z = 1 }
|
|
}
|
|
}
|
|
|
|
// Create the antenna base sketch
|
|
sketch001 = startSketchOn(antennaPlane)
|
|
|> startProfileAt([origin[0], origin[1]], %)
|
|
|> line(end = [antennaBaseWidth, 0])
|
|
|> line(end = [0, -antennaBaseHeight])
|
|
|> line(end = [-antennaBaseWidth, 0])
|
|
|> close()
|
|
|
|
// Create the antenna top sketch
|
|
loftPlane = offsetPlane('XY', offset = height / 2 + 3)
|
|
|
|
sketch002 = startSketchOn(loftPlane)
|
|
|> startProfileAt([
|
|
origin[0] + (antennaBaseWidth - antennaTopWidth) / 2,
|
|
origin[1] - ((antennaBaseHeight - antennaTopHeight) / 2)
|
|
], %)
|
|
|> xLine(length = antennaTopWidth)
|
|
|> yLine(length = -antennaTopHeight)
|
|
|> xLine(length = -antennaTopWidth)
|
|
|> close()
|
|
|
|
// Create the antenna using a loft
|
|
loft([sketch001, sketch002])
|
|
|> appearance(color = "#000000")
|