Files
modeling-app/docs/kcl-std/consts/std-math-PI.md
Nick Cameron 1443f3ab39 Improve error messages around PI and other numbers with unknown units (#7457)
* Improve docs around PI

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

* Refactor and polish type error messages

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

* Add suggestion to fix unknown numbers error

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

* Don't warn so often about unknown units

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

---------

Signed-off-by: Nick Cameron <nrc@ncameron.org>
2025-06-12 10:20:04 -04:00

107 KiB
Raw Blame History

title, subtitle, excerpt, layout
title subtitle excerpt layout
PI Constant in std::math The value of `pi`, Archimedes constant (π). manual

The value of pi, Archimedes constant (π).

PI: number(_?) = 3.14159265358979323846264338327950288_?

PI is a number and is technically a ratio, so you might expect it to have type number(_). However, PI is nearly always used for converting between different units - usually degrees to or from radians. Therefore, PI is treated a bit specially by KCL and always has unknown units. This means that if you use PI, you will need to give KCL some extra information about the units of numbers. Usually you should use type ascription on the result of calculations, e.g., (2 * PI): number(rad). It is better to use units::toRadians or units::toDegrees to convert between angles with different units where possible.

Examples

circumference = 70

exampleSketch = startSketchOn(XZ)
  |> circle(center = [0, 0], radius = (circumference / (2 * PI)): number(mm))

example = extrude(exampleSketch, length = 5)

Rendered example of PI 0