2025-03-06 18:01:24 -05:00
|
|
|
// Zoo logo
|
|
|
|
|
2025-03-20 09:22:17 -07:00
|
|
|
// define a function to draw the ZOO "Z"
|
2025-03-06 18:01:24 -05:00
|
|
|
export fn zLogo(surface, origin, scale) {
|
|
|
|
zSketch = surface
|
2025-04-25 16:01:35 -05:00
|
|
|
|> startProfile(at = [
|
2025-03-06 18:01:24 -05:00
|
|
|
0 + origin[0],
|
|
|
|
0.15 * scale + origin[1]
|
2025-04-25 16:01:35 -05:00
|
|
|
])
|
2025-03-07 22:07:16 -06:00
|
|
|
|> yLine(length = -0.15 * scale)
|
|
|
|
|> xLine(length = 0.15 * scale)
|
KCL: Angled line should use keyword args (#5803)
We continue migrating KCL stdlib functions to use keyword arguments. Next up is the `angledLine` family of functions (except `angledLineThatIntersects, which will be a quick follow-up).
Before vs. after:
`angledLine({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, length = 3, tag = $edge)`
`angledLineOfXLength({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, lengthX = 3, tag = $edge)`
`angledLineOfYLength({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, lengthY = 3, tag = $edge)`
`angledLineToX({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, endAbsoluteX = 3, tag = $edge)`
`angledLineToY({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, endAbsoluteY = 3, tag = $edge)`
2025-04-09 14:55:15 -05:00
|
|
|
|> angledLine(angle = 47.15, endAbsoluteX = 0.3 * scale + origin[0], tag = $seg1)
|
2025-03-07 22:07:16 -06:00
|
|
|
|> yLine(endAbsolute = 0 + origin[1], tag = $seg3)
|
|
|
|
|> xLine(length = 0.63 * scale)
|
|
|
|
|> yLine(length = 0.225 * scale)
|
|
|
|
|> xLine(length = -0.57 * scale)
|
KCL: Angled line should use keyword args (#5803)
We continue migrating KCL stdlib functions to use keyword arguments. Next up is the `angledLine` family of functions (except `angledLineThatIntersects, which will be a quick follow-up).
Before vs. after:
`angledLine({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, length = 3, tag = $edge)`
`angledLineOfXLength({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, lengthX = 3, tag = $edge)`
`angledLineOfYLength({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, lengthY = 3, tag = $edge)`
`angledLineToX({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, endAbsoluteX = 3, tag = $edge)`
`angledLineToY({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, endAbsoluteY = 3, tag = $edge)`
2025-04-09 14:55:15 -05:00
|
|
|
|> angledLine(angle = 47.15, endAbsoluteX = 0.93 * scale + origin[0])
|
2025-03-07 22:07:16 -06:00
|
|
|
|> yLine(length = 0.15 * scale)
|
|
|
|
|> xLine(length = -0.15 * scale)
|
KCL: Angled line should use keyword args (#5803)
We continue migrating KCL stdlib functions to use keyword arguments. Next up is the `angledLine` family of functions (except `angledLineThatIntersects, which will be a quick follow-up).
Before vs. after:
`angledLine({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, length = 3, tag = $edge)`
`angledLineOfXLength({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, lengthX = 3, tag = $edge)`
`angledLineOfYLength({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, lengthY = 3, tag = $edge)`
`angledLineToX({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, endAbsoluteX = 3, tag = $edge)`
`angledLineToY({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, endAbsoluteY = 3, tag = $edge)`
2025-04-09 14:55:15 -05:00
|
|
|
|> angledLine(angle = 47.15, length = -segLen(seg1), tag = $seg2)
|
2025-03-07 22:07:16 -06:00
|
|
|
|> yLine(length = segLen(seg3))
|
|
|
|
|> xLine(endAbsolute = 0 + origin[0])
|
|
|
|
|> yLine(length = -0.225 * scale)
|
2025-04-14 21:06:55 -05:00
|
|
|
|> angledLineThatIntersects(angle = 0, intersectTag = seg2, offset = 0)
|
2025-03-06 18:01:24 -05:00
|
|
|
|> close()
|
|
|
|
return zSketch
|
|
|
|
}
|
|
|
|
|
2025-03-20 09:22:17 -07:00
|
|
|
// define a function to draw the ZOO "O"
|
2025-03-06 18:01:24 -05:00
|
|
|
export fn oLogo(surface, origin, scale) {
|
|
|
|
oSketch001 = surface
|
2025-04-25 16:01:35 -05:00
|
|
|
|> startProfile(at = [
|
2025-03-06 18:01:24 -05:00
|
|
|
.788 * scale + origin[0],
|
|
|
|
.921 * scale + origin[1]
|
2025-04-25 16:01:35 -05:00
|
|
|
])
|
2025-04-18 17:40:44 -05:00
|
|
|
|> arc(angleStart = 47.15 + 6, angleEnd = 47.15 - 6 + 180, radius = .525 * scale)
|
KCL: Angled line should use keyword args (#5803)
We continue migrating KCL stdlib functions to use keyword arguments. Next up is the `angledLine` family of functions (except `angledLineThatIntersects, which will be a quick follow-up).
Before vs. after:
`angledLine({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, length = 3, tag = $edge)`
`angledLineOfXLength({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, lengthX = 3, tag = $edge)`
`angledLineOfYLength({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, lengthY = 3, tag = $edge)`
`angledLineToX({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, endAbsoluteX = 3, tag = $edge)`
`angledLineToY({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, endAbsoluteY = 3, tag = $edge)`
2025-04-09 14:55:15 -05:00
|
|
|
|> angledLine(angle = 47.15, length = .24 * scale)
|
2025-04-18 17:40:44 -05:00
|
|
|
|> arc(angleStart = 47.15 - 11 + 180, angleEnd = 47.15 + 11, radius = .288 * scale)
|
2025-03-06 18:01:24 -05:00
|
|
|
|> close()
|
|
|
|
return oSketch001
|
|
|
|
}
|
|
|
|
|
|
|
|
export fn oLogo2(surface, origin, scale) {
|
|
|
|
oSketch002 = surface
|
2025-04-25 16:01:35 -05:00
|
|
|
|> startProfile(at = [
|
2025-03-06 18:01:24 -05:00
|
|
|
.16 * scale + origin[0],
|
|
|
|
.079 * scale + origin[1]
|
2025-04-25 16:01:35 -05:00
|
|
|
])
|
2025-04-18 17:40:44 -05:00
|
|
|
|> arc(angleStart = 47.15 + 6 - 180, angleEnd = 47.15 - 6, radius = .525 * scale)
|
KCL: Angled line should use keyword args (#5803)
We continue migrating KCL stdlib functions to use keyword arguments. Next up is the `angledLine` family of functions (except `angledLineThatIntersects, which will be a quick follow-up).
Before vs. after:
`angledLine({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, length = 3, tag = $edge)`
`angledLineOfXLength({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, lengthX = 3, tag = $edge)`
`angledLineOfYLength({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, lengthY = 3, tag = $edge)`
`angledLineToX({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, endAbsoluteX = 3, tag = $edge)`
`angledLineToY({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, endAbsoluteY = 3, tag = $edge)`
2025-04-09 14:55:15 -05:00
|
|
|
|> angledLine(angle = 47.15, length = -.24 * scale)
|
2025-04-18 17:40:44 -05:00
|
|
|
|> arc(angleStart = 47.15 - 11, angleEnd = 47.15 + 11 - 180, radius = .288 * scale)
|
2025-03-06 18:01:24 -05:00
|
|
|
|> close()
|
|
|
|
return oSketch002
|
2025-03-26 08:53:34 -07:00
|
|
|
}
|