Afeitar piezas con OpenSCAD

Al fabricar una pieza con una impresora de extrusión de plástico es frecuente que la primera capa se expanda y quede sobredimensionada. Este fenómeno tiene una parte buena y otra mala: la pieza se agarra mejor al sustrato, pero no se ajusta a las medidas del diseño, y hay que desbarbar o afeitar la parte inferior.

Si tu plástico se agarra bien, puedes rediseñar la pieza para que la primera capa sea algo más pequeña. Pero para una figura compleja y/o diseñada por terceros puede ser muy laborioso, sobre todo si no tenemos el código fuente.

Afortunadamente hay atajos, como por ejemplo utilizar una función que se encargue de recortar la primera capa:

// uso: afeita(alto_de_capa [, cuanto]) <código>
//
module afeita(alto_de_capa, cuanto = 0.2) {
   maximo = 200 ;
   poquito = 0.1 ;

   difference() {
      children();
      minkowski() {
         difference() {
            translate([-maximo/2, -maximo/2, -poquito])
            cube([maximo, maximo, alto_de_capa + poquito]);
            children();
         }
         translate([0, 0, -poquito])
         cylinder(r=cuanto, h=poquito, $fn=4);
      }
   }
}


Esto es un ejemplo de uso del módulo de afeitado con un desarrollo propio y una pieza traída de un repositorio de STLs. Se utiliza un alto de capa de 0,25 mm y el desbarbado por defecto de 0,2 mm.



afeita(0.25) {
    translate([0, 10, 0])
        cube(10);
    import("eslabon.stl"); 
}


base de dos piezas afeitadas

El procedimiento es lento por el uso de la transformación minkowski(), pero creo que merece la pena usarlo justo en el paso previo a la fabricación. Durante el desarrollo de la pieza nos podemos ahorrar el afeitado.