====== 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: [:] [::] 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]] ]