Preparing for the removal of positional functions from the language. The first big step is to change all our KCL code examples, test code, public samples etc to all use keyword functions. Apologies for how large this PR is. Most of it is: - Changing example KCL that defined its own functions, so the functions now use keyword arguments rather than positional arguments. E.g. change `cube([20, 20])` to be `cube(center = [20, 20])`. - Some parts of the code assumed positional code and didn't handle keyword calls, e.g. the linter would only check for positional calls to startSketchOn. Now they should work with either positional or keyword. - Update all the artifacts This does _not_ remove support for positional calls. That will be in a follow-up PR.
35 lines
1.4 KiB
Plaintext
35 lines
1.4 KiB
Plaintext
// Bench
|
|
// This is a slight remix of Depep1's original 3D Boaty (https://www.printables.com/model/1141963-3d-boaty). This is a tool used for benchmarking 3D FDM printers for bed adhesion, overhangs, bridging and top surface quality. The name of this file is a bit of misnomer, the shape of the object is a typical park bench.
|
|
|
|
// Set units in millimeters (mm)
|
|
@settings(defaultLengthUnit = mm)
|
|
|
|
// Define the bench length
|
|
benchLength = 56
|
|
|
|
// Import various constants and functions from our library
|
|
import dividerThickness from "bench-parts.kcl"
|
|
import divider from "bench-parts.kcl"
|
|
import connector from "bench-parts.kcl"
|
|
import seatSlats from "bench-parts.kcl"
|
|
import backSlats from "bench-parts.kcl"
|
|
import armRest from "bench-parts.kcl"
|
|
|
|
// Create the dividers, these hold the seat and back slats
|
|
divider(YZ)
|
|
divider(offsetPlane(YZ, offset = benchLength / 2))
|
|
divider(offsetPlane(YZ, offset = -benchLength / 2))
|
|
|
|
// Create the connectors to join the dividers
|
|
connector(offsetPlane(YZ, offset = -benchLength / 2), length = benchLength)
|
|
|
|
// Create the seat slats
|
|
seatSlats(offsetPlane(YZ, offset = -benchLength / 2 - (dividerThickness / 2)), length = benchLength + dividerThickness)
|
|
|
|
// Create the back slats
|
|
backSlats(offsetPlane(YZ, offset = -benchLength / 2 - (dividerThickness / 2)), length = benchLength + dividerThickness)
|
|
|
|
// Create the arm rests
|
|
armRest(YZ, offset = benchLength / 2)
|
|
armRest(YZ, offset = -benchLength / 2)
|