Files
modeling-app/rust/kcl-lib/std/units.kcl
Nick Cameron 0621e1a53e Docs content (#6792)
* Add documentation to modules, and some constants and types

Signed-off-by: Nick Cameron <nrc@ncameron.org>

* Improve the language reference

Signed-off-by: Nick Cameron <nrc@ncameron.org>

---------

Signed-off-by: Nick Cameron <nrc@ncameron.org>
2025-05-11 19:32:33 +12:00

78 lines
2.2 KiB
Plaintext

/// Functions for converting numbers to different units.
///
/// All numbers in KCL include units, e.g., the number `42` is always '42 mm' or '42 degrees', etc.
/// it is never just '42'. For more information, see [numeric types](/docs/kcl-lang/numeric).
///
/// Note that you only need to explicitly convert the units of a number if you need a specific unit
/// for your own calculations. When calling a function, KCL will convert a number to the required
/// units automatically (where possible, and give an error or warning if it's not possible).
@no_std
@settings(defaultLengthUnit = mm, kclVersion = 1.0)
/// Convert a number to millimeters from its current units.
export fn toMillimeters(@num: number(mm)): number(mm) {
return num
}
/// Convert a number to centimeters from its current units.
export fn toCentimeters(@num: number(cm)): number(cm) {
return num
}
/// Convert a number to meters from its current units.
export fn toMeters(@num: number(m)): number(m) {
return num
}
/// Convert a number to inches from its current units.
export fn toInches(@num: number(in)): number(in) {
return num
}
/// Convert a number to feet from its current units.
export fn toFeet(@num: number(ft)): number(ft) {
return num
}
/// Converts a number to yards from its current units.
export fn toYards(@num: number(yd)): number(yd) {
return num
}
/// Converts a number to radians from its current units.
///
/// ```
/// exampleSketch = startSketchOn(XZ)
/// |> startProfile(at = [0, 0])
/// |> angledLine(
/// angle = 50,
/// length = 70 * cos(units::toRadians(45)),
/// )
/// |> yLine(endAbsolute = 0)
/// |> close()
///
/// example = extrude(exampleSketch, length = 5)
/// ```
export fn toRadians(@num: number(rad)): number(rad) {
return num
}
/// Converts a number to degrees from its current units.
///
/// ```
/// exampleSketch = startSketchOn(XZ)
/// |> startProfile(at = [0, 0])
/// |> angledLine(
/// angle = 50,
/// length = 70 * cos(units::toDegrees((PI/4): number(rad))),
/// )
/// |> yLine(endAbsolute = 0)
/// |> close()
///
/// example = extrude(exampleSketch, length = 5)
/// ```
export fn toDegrees(@num: number(deg)): number(deg) {
return num
}