Referencia de funciones
Funciones matemáticas, lógicas, de texto y redondeo.
El motor incluye funciones integradas para matemáticas, lógica, redondeo y texto.
Funciones matemáticas
abs(x) Valor absoluto abs(-5) = 5
ceil(x) Redondeo hacia arriba ceil(4.2) = 5
ceiling(x) Redondeo hacia arriba (alias) ceiling(4.2) = 5
floor(x) Redondeo hacia abajo floor(4.8) = 4
round(x) Redondeo al entero más cercano round(4.5) = 5
round(x; n) Redondeo a n decimales round(3.456; 2) = 3.46
truncate(x; n) Corte a n decimales truncate(3.456; 2) = 3.45
min(a; b; ...) Mínimo min(3; 1; 4) = 1
max(a; b; ...) Máximo max(3; 1; 4) = 4
sqrt(x) Raíz cuadrada sqrt(16) = 4
pow(x; n) Potencia pow(2; 3) = 8
log(x) Logaritmo natural log(e) = 1
log10(x) Logaritmo decimal log10(100) = 2
exp(x) Exponencial exp(1) = 2.718...
Condiciones y comparación:
If(condición; siVerdadero; siFalso) Elegir según una condición If(5 > 3; 10; 20) = 10
Case(condición1; valor1; ...; por_defecto) Valor de la primera condición verdadera Case(2 > 3; 10; 2 > 1; 20; 0) = 20
Equal(a; b) Igual (números o texto) Equal("steel"; "steel") = 1
Unequal(a; b) Distinto (números o texto) Unequal("steel"; "wood") = 1
Operadores lógicos:
a and b Ambas condiciones son verdaderas 1 and 0 = 0
a or b Al menos una condición es verdadera 1 or 0 = 1
not a Negación not 0 = 1
Texto:
len(text) Longitud del texto len("hello") = 5
text(value) Número a texto text(42) = "42"
number(text) Texto a número number("42") = 42
concat(a; b; ...) Concatenar textos concat("hi"; " "; "there") = "hi there"
join(sep; a; ...) Unir con un separador join("-"; "a"; "b"; "c") = "a-b-c"Funciones trigonométricas
Las funciones trigonométricas trabajan en radianes. Para convertir grados, multiplique por π/180.
sin(x) Seno (radianes) sin(0) = 0 cos(x) Coseno cos(0) = 1 tan(x) Tangente tan(0) = 0 asin(x) Arcoseno asin(1) = π/2 acos(x) Arcocoseno acos(1) = 0 atan(x) Arcotangente atan(1) = π/4 atan2(y; x) Ángulo de un punto (primero y, luego x) atan2(1; 1) = π/4
Redondeo
- ceil(x) / ceiling(x) — siempre redondea hacia arriba.
- floor(x) — siempre redondea hacia abajo.
- round(x) — redondea al entero más cercano.
- round(x; n) — redondea a n decimales.
- truncate(x; n) — corta a n decimales sin redondear.
Condiciones y comparación
- If(condición; valorSiVerdadero; valorSiFalso) — devuelve uno de dos valores: If(5 > 3; 10; 20) = 10.
- Case(condición1; valor1; ...; por_defecto) — devuelve el valor de la primera condición verdadera: Case(2 > 3; 10; 2 > 1; 20; 0) = 20. Cada condición es una comparación.
- Equal(a; b) — 1 si los valores son iguales, también con texto: Equal("steel"; "steel") = 1. Igual que a == b.
- Unequal(a; b) — 1 si los valores son distintos: Unequal("steel"; "wood") = 1. Igual que a != b.
Lógica y texto
- a and b, a or b, not a — operadores lógicos para combinar condiciones, por ejemplo If($width > 1000 and $height > 2000; 1; 0).
- len(text), text(value), number(text) — utilidades de texto.
- concat(a; b; ...), join(separator; v1; v2; ...) — composición de cadenas.
Use ceil() para cantidades de material cuando solo se compren unidades completas.