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

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]] ]