This forum uses cookies
This forum makes use of cookies to store your login information if you are registered, and your last visit if you are not. Cookies are small text documents stored on your computer; the cookies set by this forum can only be used on this website and pose no security risk. Cookies on this forum also track the specific topics you have read and when you last read them. Please confirm whether you accept or reject these cookies being set.

A cookie will be stored in your browser regardless of choice to prevent you being asked this question again. You will be able to change your cookie settings at any time using the link in the footer.

  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Bed Leveling (Bilinear)
#1
Hola, aquí de nuevo con una consultilla (me parece q estoy haciendo algo mal)  Smash2

La primera capa de impresión veo q del lado izquierdo sale bien, pero del derecho esta como "aplastada", como si no hubiese salido bien el Auto Bed Leveling Bilinear (lo hago con 9 puntos, similar a la Prusa).
Aquí unas fotos

[Imagen: 20210421-093522.jpg]

[Imagen: 20210421-093537.jpg]

[Imagen: 20210421-093545.jpg]



Uso Clon Mk3s con SKR 1.4 Turbo TMC2130 en X,Y, Z1 y Z2; TMC2209 en E.

Mi preguntas son:

1- ¿Tengo que sacar la linea "G29 A" del Codigo G Inicial en el PrusaSlicer? 2guns
2- ¿Tengo que descomentar //#define RESTORE_LEVELING_AFTER_G28? Nusenuse

Desde ya muchas Gracias

En mi Código G Inicial de PrusaSlicer tengo: Icon_popcorn

M104 S[first_layer_temperature] ; set extruder temp
M140 S[first_layer_bed_temperature] ; set bed temp
M190 S[first_layer_bed_temperature] ; wait for bed temp
M109 S[first_layer_temperature] ; wait for extruder temp
G28
G29 A
G1 X10 Y3.0 Z0 F6000.0 ; go outside print area
G92 E0.0
G1 X60.0 E9.0 F1000.0 ; intro line
G1 X100.0 E12.5 F1000.0 ; intro line


Este lo copie/modifique cuando intentaba usar UBL, luego de que me volvió loco pase a Bilinear, con mejores resultados, aunque sigo viendo que imprime asi en las primeras capas

En Configuration.h tengo: Icon_popcorn

//===========================================================================
//=============================== Bed Leveling ==============================
//===========================================================================
// @section calibrate

/**
 * Choose one of the options below to enable G29 Bed Leveling. The parameters
 * and behavior of G29 will change depending on your selection.
 *
 *  If using a Probe for Z Homing, enable Z_SAFE_HOMING also!
 *
 * - AUTO_BED_LEVELING_3POINT
 *   Probe 3 arbitrary points on the bed (that aren't collinear)
 *   You specify the XY coordinates of all 3 points.
 *   The result is a single tilted plane. Best for a flat bed.
 *
 * - AUTO_BED_LEVELING_LINEAR
 *   Probe several points in a grid.
 *   You specify the rectangle and the density of sample points.
 *   The result is a single tilted plane. Best for a flat bed.
 *
 * - AUTO_BED_LEVELING_BILINEAR
 *   Probe several points in a grid.
 *   You specify the rectangle and the density of sample points.
 *   The result is a mesh, best for large or uneven beds.
 *
 * - AUTO_BED_LEVELING_UBL (Unified Bed Leveling)
 *   A comprehensive bed leveling system combining the features and benefits
 *   of other systems. UBL also includes integrated Mesh Generation, Mesh
 *   Validation and Mesh Editing systems.
 *
 * - MESH_BED_LEVELING
 *   Probe a grid manually
 *   The result is a mesh, suitable for large or uneven beds. (See BILINEAR.)
 *   For machines without a probe, Mesh Bed Leveling provides a method to perform
 *   leveling in steps so you can manually adjust the Z height at each grid-point.
 *   With an LCD controller the process is guided step-by-step.
 */
//#define AUTO_BED_LEVELING_3POINT
//#define AUTO_BED_LEVELING_LINEAR
#define AUTO_BED_LEVELING_BILINEAR
//#define AUTO_BED_LEVELING_UBL
//#define MESH_BED_LEVELING

/**
 * Normally G28 leaves leveling disabled on completion. Enable
 * this option to have G28 restore the prior leveling state.
 */
//#define RESTORE_LEVELING_AFTER_G28

/**
 * Enable detailed logging of G28, G29, M48, etc.
 * Turn on with the command 'M111 S32'.
 * NOTE: Requires a lot of PROGMEM!
 */
//#define DEBUG_LEVELING_FEATURE

#if ANY(MESH_BED_LEVELING, AUTO_BED_LEVELING_BILINEAR, AUTO_BED_LEVELING_UBL)
  // Gradually reduce leveling correction until a set height is reached,
  // at which point movement will be level to the machine's XY plane.
  // The height can be set with M420 Z<height>
  #define ENABLE_LEVELING_FADE_HEIGHT

  // For Cartesian machines, instead of dividing moves on mesh boundaries,
  // split up moves into short segments like a Delta. This follows the
  // contours of the bed more closely than edge-to-edge straight moves.
  #define SEGMENT_LEVELED_MOVES
  #define LEVELED_SEGMENT_LENGTH 10.0 // (mm) Length of all segments (except the last one)

  /**
   * Enable the G26 Mesh Validation Pattern tool.
   */
  //#define G26_MESH_VALIDATION
  #if ENABLED(G26_MESH_VALIDATION)
    #define MESH_TEST_NOZZLE_SIZE    0.4  // (mm) Diameter of primary nozzle.
    #define MESH_TEST_LAYER_HEIGHT   0.2  // (mm) Default layer height for the G26 Mesh Validation Tool.
    #define MESH_TEST_HOTEND_TEMP  205    // (°C) Default nozzle temperature for the G26 Mesh Validation Tool.
    #define MESH_TEST_BED_TEMP      60    // (°C) Default bed temperature for the G26 Mesh Validation Tool.
    #define G26_XY_FEEDRATE         20    // (mm/s) Feedrate for XY Moves for the G26 Mesh Validation Tool.
    #define G26_RETRACT_MULTIPLIER   1.0  // G26 Q (retraction) used by default between mesh test elements.
  #endif

#endif

#if EITHER(AUTO_BED_LEVELING_LINEAR, AUTO_BED_LEVELING_BILINEAR)

  // Set the number of grid points per dimension.
  #define GRID_MAX_POINTS_X 3
  #define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X

  // Probe along the Y axis, advancing X after each column
  //#define PROBE_Y_FIRST

  #if ENABLED(AUTO_BED_LEVELING_BILINEAR)

    // Beyond the probed grid, continue the implied tilt?
    // Default is to maintain the height of the nearest edge.
    //#define EXTRAPOLATE_BEYOND_GRID

    //
    // Experimental Subdivision of the grid by Catmull-Rom method.
    // Synthesizes intermediate points to produce a more detailed mesh.
    //
    //#define ABL_BILINEAR_SUBDIVISION
    #if ENABLED(ABL_BILINEAR_SUBDIVISION)
      // Number of subdivisions between probe points
      #define BILINEAR_SUBDIVISIONS 3
    #endif

  #endif

#elif ENABLED(AUTO_BED_LEVELING_UBL)

  //===========================================================================
  //========================= Unified Bed Leveling ============================
  //===========================================================================

  //#define MESH_EDIT_GFX_OVERLAY   // Display a graphics overlay while editing the mesh

  #define MESH_INSET 1              // Set Mesh bounds as an inset region of the bed
  #define GRID_MAX_POINTS_X 10      // Don't use more than 15 points per axis, implementation limited.
  #define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X

  #define UBL_MESH_EDIT_MOVES_Z     // Sophisticated users prefer no movement of nozzle
  #define UBL_SAVE_ACTIVE_ON_M500   // Save the currently active mesh in the current slot on M500

  //#define UBL_Z_RAISE_WHEN_OFF_MESH 2.5 // When the nozzle is off the mesh, this value is used
                                          // as the Z-Height correction value.

#elif ENABLED(MESH_BED_LEVELING)

  //===========================================================================
  //=================================== Mesh ==================================
  //===========================================================================

  #define MESH_INSET 10          // Set Mesh bounds as an inset region of the bed
  #define GRID_MAX_POINTS_X 3    // Don't use more than 7 points per axis, implementation limited.
  #define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X

  //#define MESH_G28_REST_ORIGIN // After homing all axes ('G28' or 'G28 XYZ') rest Z at Z_MIN_POS

#endif // BED_LEVELING

/**
 * Add a bed leveling sub-menu for ABL or MBL.
 * Include a guided procedure if manual probing is enabled.
 */
//#define LCD_BED_LEVELING

#if ENABLED(LCD_BED_LEVELING)
  #define MESH_EDIT_Z_STEP  0.025 // (mm) Step size while manually probing Z axis.
  #define LCD_PROBE_Z_RANGE 4     // (mm) Z Range centered on Z_MIN_POS for LCD Z adjustment
  //#define MESH_EDIT_MENU        // Add a menu to edit mesh points
#endif

// Add a menu item to move between bed corners for manual bed adjustment
//#define LEVEL_BED_CORNERS

#if ENABLED(LEVEL_BED_CORNERS)
  #define LEVEL_CORNERS_INSET_LFRB { 30303030 } // (mm) Left, Front, Right, Back insets
  #define LEVEL_CORNERS_HEIGHT      0.0   // (mm) Z height of nozzle at leveling points
  #define LEVEL_CORNERS_Z_HOP       4.0   // (mm) Z height of nozzle between leveling points
  //#define LEVEL_CENTER_TOO              // Move to the center after the last corner
#endif

/**
 * Commands to execute at the end of G29 probing.
 * Useful to retract or move the Z probe out of the way.
 */
//#define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10"

// @section homing

// The center of the bed is at (X=0, Y=0)
//#define BED_CENTER_AT_0_0

// Manually set the home position. Leave these undefined for automatic settings.
// For DELTA this is the top-center of the Cartesian print volume.
//#define MANUAL_X_HOME_POS 0
//#define MANUAL_Y_HOME_POS 0
//#define MANUAL_Z_HOME_POS 0

// Use "Z Safe Homing" to avoid homing with a Z probe outside the bed area.
//
// With this feature enabled:
//
// - Allow Z homing only after X and Y homing AND stepper drivers still enabled.
// - If stepper drivers time out, it will need X and Y homing again before Z homing.
// - Move the Z probe (or nozzle) to a defined XY point before Z Homing.
// - Prevent Z homing when the Z probe is outside bed area.
//
#define Z_SAFE_HOMING

#if ENABLED(Z_SAFE_HOMING)
  #define Z_SAFE_HOMING_X_POINT (31)  // X point for Z homing
  #define Z_SAFE_HOMING_Y_POINT (9)  // Y point for Z homing
#endif

// Homing speeds (mm/min)
#define HOMING_FEEDRATE_XY (50*60)
#define HOMING_FEEDRATE_Z  (4*60)

// Validate that endstops are triggered on homing moves
#define VALIDATE_HOMING_ENDSTOPS
  Responder
#2
Hola, la configuración de Marlin parece correcta, aunque no entiendo por qué realizas el homing del eje Z en una esquina en lugar de en el centro de la cama.
En relación con el script inicial, te faltaría indicar el valor lógico el parámetro A de la orden G29. En todo caso, solo se aplica cuando no se tiene un sensor (PROBE_MANUALY) , no sé si es tu caso: prueba a dejar solo el G29.
Si se define el parámetro RESTORE_LEVELING_AFTER_G28, se pondrá el autolevel en el estado que se encontraba antes de hacer el home (G28): si estaba activado, se activará, pero si estaba desactivado, se dejará desactivado.
En tu caso, es indiferente si lo tienes habilitado o no, ya que estás colocando después del G28 siempre un G29, que habilita el autolevel al completar las mediciones.
Si no se pone la orden G29, es más seguro indicar la activación de forma expresa, colocando un M420 S1 justo después del G28.
  Responder
#3
Lo tengo en una esquina por copiar a la Prusa I3 mk3s... es mejor q lo haga en el medio de la cama?
Con respecto a lo otro voy a dejar solo G29 o bien el M420 S1 para ver con cual lo hace bien.
Muchas gracias Simemart, como siempre con la respuesta para ayudar, abrazo
  Responder
#4
Dado que casi siempre las piezas se imprimen centradas en la cama, lo más lógico es que la referencia de la altura inicial de impresión (home o punto 0 del eje Z) se realice en el centro de forma que, si la cama está algo deformada, el mejor ajuste se tenga en esa zona.
Independientemente de que se tenga activado algún tipo de autolevel, el punto 0 del eje Z debe ajustarse de la forma más precisa posible, pues las mediciones las toma respecto a ese punto y se obtendrán mejores resultados cuanto menores sean los ajustes que tenga que hacer.
Realizar siempre el G29 al comienzo de la pieza, tiene ventajas e inconvenientes respecto a utilizar el M420 S1: consigue más precisión si tenemos una cama con una superficie desmontable ya que, con la segunda opción, las mediciones que se utilizan son las almacenadas en la memoria EEPROM y pueden variar ligeramente al mover la cama, respecto a cuando se realizaron.
Por contra, aumenta bastante el tiempo de impresión, por lo que si la cama es fija y no varía su posición, es bastante tentador ahorrarse el tiempo que se tarda en hacer las mediciones al comienzo de cada impresión.
Por supuesto, si se utiliza el comando M420 S1, habrá que hacer las mediciones una vez con el comando G29 y almacenar los resultados en la EEPROM con el comando M500 o la opción equivalente del menú: cada vez que se reinicie la impresora, se cargarán en la memoria de trabajo (RAM) y solo habrá que activar el autolevel.
Como es lógico, si no se tiene activado el uso de la EEPROM, habrá que realizar, como mínimo, un G29 en cada arranque de la impresora, antes de poder utilizar el autolevel por lo que, en este caso, lo más cómodo es colocarlo en el script inicial del programa de corte.
  Responder
#5
Ahh, creo q había entendido al revés. Mi cama tiene una superficie desmontable.... y quiero q haga las mediciones antes de cada impresión (no me importa que demore), entonces debería poner G29 (sin la "A") luego del G28 en el G-code incial de PrusaSlicer... ¿estoy en lo correcto?

Y con respecto al homing en la mitad de la cama voy a cambiarlo y ponerlo como dices, así es mas preciso.
  Responder
#6
Correcto, siempre el G28 primero (porque desactiva el autolevel) y después el G29 sin más.
  Responder


Posibles temas similares…
Tema Autor Respuestas Vistas Último mensaje
  Mesh Bed Leveling Julio_Radilov 8 0 02-10-2023, 12:27 PM
Último mensaje: Simemart
  Leveling bed off mariaespi 3 304 14-05-2022, 05:58 PM
Último mensaje: Simemart
Triste CONSULTA Problemas con autoleveling bed, no respeta ningun endstop emiheli 2 890 24-05-2020, 07:04 PM
Último mensaje: emiheli
Triste CONSULTA Problemas con autoleveling bed, no respeta ningun endstop emiheli 1 651 24-05-2020, 03:50 PM
Último mensaje: emiheli
  Error bed thermal runnaway PacoMB 4 1,524 28-10-2019, 11:21 PM
Último mensaje: Simemart