Herramientas de usuario

Herramientas del sitio


openscad:tipos_de_datos

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]] ]
openscad/tipos_de_datos.txt · Última modificación: por alberto

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki