3Dwork - Marlin
KLIPPERMARLINLABSTelegramColabora
  • 3DWork.io - Marlin
  • Invitame a un cafe :D
  • 🦈MARLIN
    • Marlin - Guía Compilación
      • Marlin - Gcodes Básicos
    • Configuracion Marlin
      • Ajuste de límites de impresión
      • Nivelación/Homing
        • Bltouch/3DTouch/CRTouch/MicroProbe
        • PINDAv2/Inductivos
        • Nivelado manual MESH
        • Nivelado UBL
        • Asistente Z-Offset [Marlin]
        • Mallado de cama inteligente en Marlin
        • Sensorless
      • Doble Z y autonivelado
      • Sensor de filamentos
      • Módulo UPS - Recuperación ante fallos corriente
      • Leds Neopixel
    • ‼️Marlin Troubleshooting
      • Pronterface
      • Control de ventiladores con MOSFET externo
      • Reparar pin sensor temperatura
    • Guía Calibración Impresoras 3D FDM/Filamento
    • Guía Resolución Problemas Impresoras 3D FDM/Filamento
    • Mejoras/Upgrades Impresoras 3D FDM/Filamento
  • 🐢Octoprint
    • Octoprint
    • Instalación
      • Instalando Octoprint
        • Raspberry Pi 4 – Actualizar firmware
        • Cambios y comprobaciones en nuestro Marlin
        • Reset Password
      • Configurando Octoprint
    • Plugins/Mejoras Octoprint
      • DisplayLayerProcess
      • PrintTimeGenious
      • Cancel Objects
      • ipOnConnect
      • Arc-Welder
      • Telegram
    • OctoDash - UI
    • Controlar varias impresoras usando varias instancias Octoprint
      • Multiples Webcam
    • Controlar varias impresoras usando instancias Docker
  • 🌐3DWORK
    • Quieres promocionar tus productos/empresa?
Con tecnología de GitBook
En esta página

¿Te fue útil?

  1. MARLIN
  2. Configuracion Marlin
  3. Nivelación/Homing

Mallado de cama inteligente en Marlin

AnteriorAsistente Z-Offset [Marlin]SiguienteSensorless

Última actualización hace 1 año

¿Te fue útil?

Una de las funciones de Klipper que nos encantan es el mallado de cama inteligente y que permite que el mallado se realice solamente en la zona donde vamos a imprimir nuestra figura mejorando considerablemente nuestras primeras capas.

IMPORTANTE!!!

Este mallado inteligente solamente es compatible si utilizamos un mallado tipo BILINEAR en Marlin... UBL no es compatible

Podremos implementarlo en varios laminadores:

Si nos sigues sabás que nos encanta este laminador, y esta es una de las razones de ello, soporta directamente este tipo de nivelado adaptativo.

Solamente disponible a partir de OrcaSlicer 2 Beta o superiores.

OrcaSlicer tiene placeholders específicos que podemos usar para, en el caso que usemos BILINEAR como os comentamos anteriormente, poder aprovechar esta útil funcionalidad.

Básicamente tendremos que reemplazar el típico G29 en nuestro gcode script de inicio por:

G29 X{bed_mesh_probe_count[0]} Y{bed_mesh_probe_count[1]} L{adaptive_bed_mesh_min[0]} R{adaptive_bed_mesh_max[0]} F{adaptive_bed_mesh_min[1]} B{adaptive_bed_mesh_max[1]} T V4

OrcaSlicer pone a nuestra disposición algunos placeholders/alias para indicar a nuestro firmware como realizar el mallado adaptativo:

bed_mesh_probe_count: Representa el número de puntos de sondeo en X e Y. Este valor se calcula en función del tamaño del área de malla adaptativo y la distancia entre los puntos de la sonda.

adaptive_bed_mesh_min: Especifica las coordenadas mínimas del área de malla adaptativa, definiendo el punto inicial de la malla.

adaptive_bed_mesh_max: Determina las coordenadas máximas del área de malla adaptativa, indicando el punto final de la malla.

Para un mejor ajuste disponemos de algunas opciones extras para su control:

Debido al offset XY de la sonda, la mayoría de las impresoras no pueden sondear toda la cama. Para garantizar que el punto de la sonda no salga del área de la cama, los puntos mínimo y máximo de la malla de la cama deben configurarse adecuadamente.

OrcaSlicer utilizando los valores adaptive_bed_mesh_min/adaptive_bed_mesh_max no excedan estos puntos mínimos/máximos. Esta información generalmente se puede obtener del fabricante de su impresora y deberemos ajustar en las opciones:

Bed mesh min: Esta opción establece el punto mínimo para el área permitida de la malla. La configuración predeterminada es (-99999, -99999), lo que significa que no hay límites, lo que permite sondear en toda la cama.

Bed mesh max: Esta opción establece el punto máximo para el área permitida de la malla. La configuración predeterminada es (99999, 99999), lo que significa que no hay límites, lo que permite sondear en toda la cama.

Probe point distance: Esta opción establece la distancia entre los puntos de sondeo (que definen el tamaño de cuadrícula de la malla) para X e Y, siendo el valor predeterminado 50 mm tanto para X como para Y.

Mesh margin: Esta opción determina la distancia adicional de margen por la cual se debe expandir el área de malla adaotatuva en las direcciones XY.

Aprovechando que PrusaSlicer permiten el uso de placeholders y macros que nos van a permitir crear condiciones, evaluaciones y cálculos nos va a permitir dotar de inteligencia al nivelado.

Aunque este script esta preparado para PrusaSlicer podemos usarlo en otros similares directamente o ajustando los placeholders a los que tu laminador utilice.

Los placeholders son unos "alias" o variables que usan los laminadores para que a la hora de generar el gcode sustituyen por los valores configurados en el perfil de impresión.

El siguiente script define unas variables que calculan el área de sondeo de acuerdo con el área de impresión del objeto. El script cubre los pasos de pre-calentado para sondeo, homing, mallado y calentado para la impresión por lo que has de incluirlo, reemplazar y adaptar en el proceso que sigas actualmente:

; Define local variables;
{
local sizex = (first_layer_print_max[0] - first_layer_print_min[0]);
local sizey = (first_layer_print_max[1] - first_layer_print_min[1]);
local probexmin = (max(print_bed_min[0], first_layer_print_min[0] - 20));
local probexmax = (min(print_bed_max[0], first_layer_print_max[0] + 20));
local probeymin = (max(print_bed_min[1], first_layer_print_min[1] - 20));
local probeymax = (min(print_bed_max[1], first_layer_print_max[1] + 20));
}

; General settings
G90 ; set absolute coordinates

; Heat up for probing
M104 S150 ; set extruder temp for bed leveling
M140 S[first_layer_bed_temperature] ; set bed temperature
M109 S150 ; wait for hotend probing temp
M190 S[first_layer_bed_temperature] ; wait for bed temperature

; Prepare for automatic calibration
M302 S140 ; lower cold extrusion limit to 160C
G1 E-2 F2400 ; cold retraction
M302 S170 ; restore cold extrusion limit
G28 ; home printer

; Auto mesh calibration;
G29 L{probexmin[0]} R{probexmax[0]} F{probeymin[0]} B{probeymax[0]} ; probe bed

; Heat up for printing
G90 ; absolute coordinates
G1 X10 Y10 Z15 ; move to park position
M104 S[first_layer_temperature] ; set extruder temp
M109 S[first_layer_temperature] ; wait for extruder temp

IMPORTANTE!!!

  • Este script no va a cambiar la densidad de puntos o puntos de mallado que use tu sistema de nivelación, tan solo va a limitar el área donde realizar el sondeo.

  • Dependiendo de tu versión de Marlin y el sistema de nivelación habilitado puede que el comando G29 no permita los parámetros de área de sondeo.

  • En impresiones que ocupen toda la cama el script no va a tener en cuenta los offsets del sensor y puede dar problemas.

  • Sección Define local variables, básicamente es donde se ejecutan los cálculos del área de sondeo. Es importante el 20 de las variables probexxx, ya que es el margen que queramos dar entre el área de impresión del objeto y el de sondeo.

  • Sección Heat up for probing, realiza el precalentado de nozzle y cama. Normalmente se aconseja realizar el sondeo a la temperatura de impresion de cama y el nozzle entre 140º a 160º para tener el nozzle caliente pero que no funda el filamento para no dejar trazas.

  • Sección Auto mesh calibration, lanza el comando de nivelación (G29) pasando como parámetros el área de sondeo

  • Sección Heat up for printing, coloca el cabezal de impresion en una zona de parking (X10 Y10 Z15) y calienta a temperaturas de impresión nozzle y cama... después de este paso es aconsejable una linea de purga o activar brim para evitar trazas al realizar nuestras piezas

Agradecimientos a Sander de Voxel3D por el script.

Con esto ya tendremos nuestra malla adaptativa implementada en Marlin!!!

En los siguientes links podéis encontrar un listado de estos para: , (además de los del anterior), y .

🦈
PrusaSlicer
SuperSlicer
Bambu Studio
Cura