Herramientas de usuario

Herramientas del sitio


openscad:transformaciones

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Próxima revisión
Revisión previa
openscad:transformaciones [2018/08/08 01:45] – creado albertoopenscad:transformaciones [2018/08/10 16:45] (actual) – [Hull] alberto
Línea 52: Línea 52:
  
 ===== Multimatriz ===== ===== Multimatriz =====
 +A través de una matriz de 4x4, se especifica la transformación de la figura. Mediante este sistema es posible obtener figuras que no se podrían obtener con ninguna otra transformación.
 +<code>multmatrix(m = [...]) { ... }</code>
 +
 +A continuación el significado de cada elemento de la matriz:
 +|      A              B              C              D         |
 +|      E              F              G              H         |
 +|      I              J              K              L         |
 +|      0              0              0              1         |
 +
 +  * A: Escalado en el eje X.
 +  * B: Escalado en X 'tirando' de los extremos del eje Y.
 +  * C: inclinación en X sin variar Y, ni Z.
 +  * D: Traslación en eje X.
 +  * E: Escalado en Y 'tirando' de los extremos del eje X.
 +  * F: Escalado en el eje Y.
 +  * G: inclinación en Y sin variar X, ni Z.
 +  * H: Traslación en eje Y.
 +  * I: Escalado en Z 'tirando' de los extremos del eje X.
 +  * J: Escalado en Z 'tirando' de los extremos del eje Y.
 +  * K: Escalado en el eje Z.
 +  * L: Traslación en eje Z.
 +
 +La última columna se usa en entornos 3D para definir la vista del objeto, y no se usa en OpenSCAD. Debe ser siempre [0,0,0,1].\\
 +
 +Un ejemplo que puede servir para realizar pruebas: 
 +<code>M = [ [ 1  , 0  , 0  , 0   ],
 +      [ 0  , 1  , 0  , 0   ],
 +      [ 0  , 0  , 1  , 0   ],
 +      [ 0  , 0  , 0  , 1   ] ] ;
 +
 +multmatrix(M) cylinder (h=20, d=10, center=false, $fn=30);</code>
 +===== Color =====
 +"Pinta" la figura del color y establece el 'canal' alfa (transparencia) que se defina.\\
 +
 +Puede definirse de varias maneras:
 +<code>color( c = [r, g, b, a] ) { ... }
 +color( c = [r, g, b], alpha = 1.0 ) { ... }
 +color( "colorname", 1.0 ) { ... }</code>
 +
 +los valores rgba son valores de coma flotante comprendidos entre 0 y 1.
 +<code>translate([0,-5,0]) color("red") cube(10);
 +color("blue") translate([20,0,0]) cylinder(10,5,0);
 +color(0.5) translate([35,0,5]) sphere(5);</code>
 +===== Offset =====
 +La función offset() sirve para crear "paredes" con grosor a partir de una figura 3D.\\
 +Se pueden definir los siguientes parámetros:
 +  * **r | delta:** es el grosor de la pared. Puede ser positivo (del plano hacia fuera) o negativo (del plano hacia adentro). Si definimos r, las esquinas son redondeadas. Si en lugar de definir 'r', definimos 'delta', las esquinas será rectas (puntiagudas).
 +  * **chamfer:** este parámetro se usa cuando se ha definido anteriormente delta, y sirve para recortar las esquinas.
 +{{:openscad:350px-openscad_offset_join-type_in.svg.png?nolink|}}
 +{{:openscad:openscad_offset_join-type_out.svg.png|}}
 +
 +Ejemplo:
 +<code>linear_extrude(height = 60, twist = 90, slices = 60) {
 +   difference() {
 +     offset(r = 10) {
 +      square(20, center = true);
 +     }
 +     offset(r = 8) {
 +       square(20, center = true);
 +     }
 +   }
 +}</code>
 +===== Minkowski =====
 +Suma de Minkoswi de 2 figuras. Lógicamente las dimensiones de la figura resultante cambian, pero también puede cambiar la posición de esta figura, tomando como origen la segunda figura declarada.
 +<code>minkowski() {
 + cube([10, 10, 1]);
 + translate([0,-2,5]) sphere(1, center=true, $fn=10); //referencia
 +        cylinder([10,5,5], $fn=10);
 +}</code>
 +===== Hull =====
 +Las figuras declaradas se unen en una sola sin varia la posición de ninguna de ellas.
 +<code>hull(){
 +    sphere(10, $fn=50);
 +    //translate([30,0,10]) sphere(5, $fn=50);
 +    translate([30,0,10]) rotate([0,-10,0]) cube(5);
 +    //translate([60,30,0]) cylinder(5,10,10);
 +}</code>
openscad/transformaciones.1533685545.txt.gz · Última modificación: por alberto

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki