Settings
KCL Settings
There are three levels of settings available in Zoo Design Studio:
- User Settings: Global settings that apply to all projects, stored in
user.toml - Project Settings: Settings specific to a project, stored in
project.toml - Per-file Settings: Settings that apply to a single KCL file, specified using the
@settingsattribute
Configuration Files
Zoo Design Studio uses TOML files for configuration:
- User Settings:
user.toml- See complete documentation - Project Settings:
project.toml- See complete documentation
Per-file settings
Settings which affect a single file are configured using the settings attribute. This must be at the top of the KCL file (comments before the attribute are permitted). For example:
The settings attribute may contain multiple properties separated by commas. Valid properties are:
defaultLengthUnit: the default length unit to use for numbers declared in this file.- Accepted values:
mm,cm,m,in(inches),ft(feet),yd(yards).
- Accepted values:
experimentalFeatures: how experimental features are handled within this file.- Accepted values:
allow(experimental features can be used freely),warn(experimental features cause a warning),deny(the default, experimental features cause an error).
- Accepted values:
kclVersion: the version of the KCL language and standard library to execute with.1.0: the original language version, for existing programs.2.0: the previous language version, for existing programs.3.0: the current language version, for new programs.- See Migrating to KCL 3.0 for how to update a program to the newest version.
- Point-and-click modeling commands only offer arguments supported by this version. Arguments already present in the code are left alone.
defaultAngleUnit is not accepted in KCL 3.0. Use explicit angle suffixes,
such as 180deg or 3.14rad, instead.
The entry point's kclVersion selects the language version for the whole
program, including imported KCL files. For imported files:
- An explicit
kclVersionmust match the entry point's version. - A file without
kclVersioninherits the entry point's version.
These settings override any project-wide settings (configured in project.toml or via the UI).