Tabla de Contenidos
Tipos de datos
Números
Números en notación decimal, ejemplos: -1, 42, 0.5, 2.99792458e+8.
OpenSCAD no soporta números en formato octal, hexadecimal, etc.
Valores booleanos
Valores TRUE/FALSE. Son el resultado de la evaluación de condiciones.
Strings
Los strings son cadenas de caracteres, no confundirlos con vectores cuyos elementos son caracteres, que son cosas distintas.
Se indican siempre entre “. Se usa como carácter de escape '\'.
Rangos
Define una secuencia de números:
[<start>:<end>] [<start>:<increment>:<end>]
Se usan por ejemplo en bucles for.
Valor indefinido y NaN
- undef es el valor inicial de una variable que no ha sido inicializada, ni tiene asignada ningún valor. Suelen retornarlo las funciones a las que se les ha pasado argumentos no válidos. Puede usarse como el valor NULL en otros lenguajes de programación. Según el contexto puede tomarse como false (funciones lógicas).
- NaN Quiere decir 'Not a Number' y suele indicar un argumento ilegal u operaciones que no pueden realizarse, por ejemplo 0/0.
Variables
Las variables se asignan sin necesidad de especificar el tipo de dato. Ejemplos:
var = 25; xx = 1.25 * cos(50); y = 2*xx+var; logic = true; MyString = "This is a string"; a_vector = [1,2,3]; rr = a_vector[2]; // member of vector range1 = [-1.5:0.5:3]; // for() loop range xx = [0:5]; // alternate for() loop range
Las variables son calculadas en tiempo de compilación, no de ejecución.
Vectores
Los vectores son secuencias de datos de cualquier tipo (en cambio los arrays son secuencias de datos del mismo tipo). Ejemplos:
[1,2,3] [a,5,b] [] [5.643] ["a","b","string"] [[1,r],[x,y,z,4,5]] [3, 5, [6,7], [[8,9],[10,[11,12],13], c, "string"] [4/3, 6*1.5, cos(60)]
Para crear vectores, se especifican entre corchetes:
cube([10,15,20]); a1 = [1,2,3]; a2 = [4,5]; a3 = [6,7,8,9]; b = [a1,a2,a3]; // [ [1,2,3], [4,5], [6,7,8,9] ] note increased nesting depth
Es posible meter vectores como elementos en otro vector.
e = [ [1], [], [3,4,5], "string", "x", [[10,11],[12,13,14],[[15,16],[17]]] ]; // length 6
address length element
e[0] 1 [1]
e[1] 0 []
e[5] 3 [ [10,11], [12,13,14], [[15,16],[17]] ]
e[5][1] 3 [ 12, 13, 14 ]
e[5][2] 2 [ [15,16], [17] ]
e[5][2][0] 2 [ 15, 16 ]
e[5][2][0][1] undef 16
e[3] 6 "string"
e[3 ][2] 1 "r"
s = [2,0,5]; a = 2;
s[a] undef 5
e[s[a]] 3 [ [10,11], [12,13,14], [[15,16],[17]] ]
