Klipper pradinė ašių kalibracija

Mano spausdintuvo konstrukcija tokia, kad galva Y ašimi gali išvažiuoti iš spausdinimo platformos ribų į neigiamų koordinačių pusę. Patys galinukai padaryti naudojant holo daviklius, X ir Y ašims jie suveikia netoli nulinių koordinačių, bet fiziškai ašis dar kelis centimetrus gali varyti į minusą, ir visą tą laiką nulinukas būna įjungtas. Jei hominimą daryti kai galinukai jau įjungti gaunam galvos atsitrenkinus į rėmą, jeigu prieš kalibraciją atsitraukti nuo nulinių koordinačių kai galva jau prie maksimalių vėl gaunam atsiternkimus į rėmą.

Kilpperyje yra nustatymas homing_retract_dist:, kuris teoriškai turėtų atsitraukti nuo nulinuko jeigu jis jau suveikęs. Praktiškai jis atsitraukia tik tada kai matavimas pradedamas dar su neįsijungusiu galinuku, jei galinukas prieš matavimą jau įjungtas galva vistiek važiuoja link rėmo. Tokiai situacijai suvaldyti teko parašyti savo hominimo seką, kuri sprendžia šias problemas. Prieš judinant galvą bet kuria ašimi patikriname jos galinuką, jei jis įsijungęs atsitraukiame galva nuo galinuko saugiu atstumu ir tik po to kalibruojame atitinkamą ašį. Dar mano spausdintuve kai Y koordinatė mažesnė už 0, tai X negali būti mažesnis už 10, nes tame kampe galva užklius už laidų. Kai Y koordinatė neigiama, spausdinimo galva išeina iš spausdinimo platformos ribų, ten sumontuotas silikoninis galvos valiklis ir Z_OFFSET jutiklis. O sliceryje ribos nurodytos nuo nulio, todėl per klaidą, spausdinimo metu, galva neišvažiuotų už stalo ribų.

[duplicate_pin_override]
pins: EBBCan: PB6, PF4

[gcode_button x_endstop_check]
pin: !EBBCan: PB6  
press_gcode:
  M117 x on
release_gcode:
  M117 x off
  
[gcode_button y_endstop_check]
pin: !PF4  
press_gcode:
  M117 y on
release_gcode:
  M117 y off

[gcode_button z_endstop_check]
pin: !PF5  
press_gcode:
  M117 z on
release_gcode:
  M117 z off
  
[gcode_arcs]

[force_move]
enable_force_move: True

[homing_override]
axes: xyz
gcode:
  {% if printer["gcode_button z_endstop_check"].state == "PRESSED" %}
    
    SET_KINEMATIC_POSITION Z=0
    G91
    G1 Z10 F600
    G90
  {% else %}
    
    SET_KINEMATIC_POSITION Z=15 
  {% endif %}

  
  {% if printer["gcode_button x_endstop_check"].state == "PRESSED" %}
    
    SET_KINEMATIC_POSITION X=0
    G91
    G1 X50 F3000
    G90
  {% endif %}

  # Tikriname Y
  {% if printer["gcode_button y_endstop_check"].state == "PRESSED" %}
    
    SET_KINEMATIC_POSITION Y=0
    G91
    G1 Y50 F3000
    G90
  {% endif %}

  M400 # Palaukiame kol atsitraukimai baigsis
  
  G28 X
  G1 X20 F3000
  G28 Y
  G1 X175 Y140 F6000 
  G28 Z
  G1 Z5 F600
  Z_TILT_ADJUST

Parašykite komentarą

El. pašto adresas nebus skelbiamas. Būtini laukeliai pažymėti *

This site uses Akismet to reduce spam. Learn how your comment data is processed.