Links

Mallado de cama inteligente

El mallado de nivelación de cama es un gran avance para corregir desviaciones en nuestra superficie de impresión pero en ocasiones se podría mejorar para que fuera más efectivo.
Gracias a la versatilidad de Klipper podremos usar la siguiente macro que permitirá hacer un mallado de nuestra cama basada en el tamaño de la pieza que queramos imprimir mejorando de esta forma el mallado y correcciones.
Además este sistema nos permite:
  • Reusar el mallado si el área de impresión es menor o igual que el anterior
  • Tener en cuenta nuestros offsets del sensor
  • Numero de puntos por eje dinamico
  • Compatible con sistemas de nivelación que usen sus propias macros como el Klicky

Configuración

  • Descargaremos e instalaremos la macro lanzando los siguientes comandos desde nuestro terminal SSH:
cd ~
git clone https://github.com/Turge08/print_area_bed_mesh.git
~/print_area_bed_mesh/install.sh
En el caso que usemos unos path/directorios diferentes a los normales es aconsejable revisar el script de instalación para adaptarlo a nuestras necesidades.
  • Añadiremos esta macro en nuestro printer.cfg o cfg añadido como include que usemos para nuestras macros. Esta macro básicamente reemplazará a la macro BED_MESH_CALIBRATE usada por defecto
[include print_area_bed_mesh.cfg]
  • Añadiremos a nuestra configuración de Moonraker el update automático del repositorio para tener siempre actualizado de forma sencilla
moonraker.conf
[update_manager print_area_bed_mesh]
type: git_repo
path: ~/print_area_bed_mesh
origin: https://github.com/Turge08/print_area_bed_mesh.git
is_system_service: False
Debemos asegurarnos que hemos realizado el primer paso antes o veremos un error en el apartado actualizaciones de nuestra UI.
Por último deberemos ajustar nuestro laminador y/o nuestra macro de inicio
  • Si usamos BED_MESH_CALIBRATE en nuestra macro de inicio de impresión tendremos que reemplazar la llamada así:
    • BED_MESH_CALIBRATE PRINT_MIN={params.PRINT_MIN} PRINT_MAX={params.PRINT_MAX}
    • Si queremos forzar el mallado en cada impresión:
    • BED_MESH_CALIBRATE PRINT_MIN={params.PRINT_MIN} PRINT_MAX={params.PRINT_MAX} FORCE_NEW_MESH=True
    • Ajustaremos nuestro script de inicio de nuestro laminador
PrusaSlicer/SuperSlicer
IdeaMaker
Cura
En el caso que actualmente usemos la macro START_PRINT pasando temperaturas del estilo START_PRINT BED_TEMP={material_bed_temperature_layer_0} EXTRUDER_TEMP={material_print_temperature_layer_0}. Tendremos que hacer algunos ajustes en la nueva macro y en START_PRINT tal como vemos a continuación:
Y necesitaremos adaptar el gcode de inicio con respecto a lo comentado inicialmente:
START_PRINT EXTRUDER_TEMP={first_layer_temperature[initial_extruder] + extruder_temperature_offset[initial_extruder]} BED_TEMP=[first_layer_bed_temperature] CHAMBER=[chamber_temperature] PRINT_MIN={first_layer_print_min[0]},{first_layer_print_min[1]} PRINT_MAX={first_layer_print_max[0]},{first_layer_print_max[1]}
Con esta modificación desde START_PRINT capturamos parámetros y llamamos a nuestra nueva macro de mallado.
BED_MESH_CALIBRATE PRINT_MIN={print_pos_min_x},{print_pos_min_y} PRINT_MAX={print_pos_max_x},{print_pos_max_y}
BED_MESH_CALIBRATE PRINT_MIN=%MINX%,%MINY% PRINT_MAX=%MAXX%,%MAXY%
Deberemos de instalar el plugin Post Process Plugin (by frankbags) desde el menú Help/Show configuration Folder... copiaremos el script del link anterior dentro de la carpeta script. Reiniciamos Cura e iremos a Extensions/Post processing/Modify G-Code y seleccionaremos Mesh Print Size.
  • En el caso que lancemos la macro BED_MESH_CALIBRATE directamente desde el gcode de inicio de nuestro laminador
PrusaSlicer/SuperSlicer
IdeaMaker
Cura
BED_MESH_CALIBRATE PRINT_MIN={first_layer_print_min[0]},{first_layer_print_min[1]} PRINT_MAX={first_layer_print_max[0]},{first_layer_print_max[1]}
BED_MESH_CALIBRATE PRINT_MIN={print_pos_min_x},{print_pos_min_y} PRINT_MAX={print_pos_max_x},{print_pos_max_y}
BED_MESH_CALIBRATE PRINT_MIN=%MINX%,%MINY% PRINT_MAX=%MAXX%,%MAXY%