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.
kcl-samples
KittyCAD Language (KCL) is our language for defining geometry and working with our Geometry Engine efficiently.
This repository includes a mixture of simple and complex models demonstrating the features and syntax of KCL.
The samples can be browsed in our documentation at https://zoo.dev/docs/kcl-samples.
Guidelines for adding samples
KCL samples conform to a set of style guidelines to ensure consistency and readability.
- 
File Naming: Name your KCL files descriptively and concisely, using hyphens to separate words (e.g., flange.kcl, ball-bearing.kcl).
 - 
File Header: Include a title comment at the top of each file, followed by a brief description explaining what the model is and its typical use cases.
 - 
Inline Comments: Use inline comments to explain non-obvious parts of the code. Each major section should have a comment describing its purpose.
 - 
Constants: Define constants at the beginning of your KCL files for any values that might change or need to be reused (e.g., dimensions, angles).
 
Snapshot and export
When you submit a PR to add or modify KCL samples, images and STEP files will be generated and added to the repository automatically.





































