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.