Create std::units module (#6528)
Signed-off-by: Nick Cameron <nrc@ncameron.org>
This commit is contained in:
68
rust/kcl-lib/std/units.kcl
Normal file
68
rust/kcl-lib/std/units.kcl
Normal file
@ -0,0 +1,68 @@
|
||||
@no_std
|
||||
@settings(defaultLengthUnit = mm)
|
||||
|
||||
/// 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
|
||||
}
|
Reference in New Issue
Block a user