Środek w Axis

Opisywałem kiedyś jak zrobić własny przycisk i okienko zmiany narzędzia w Axis. Dziś trochę mniej niszowe zastosowanie.

Wyobrażmy sobie że 'łapiemy środek’ otworu czy średnicę zewnętrzną zamocowanego elementu. W naszym przypadku to leci jakoś tak:

  1. Dojedź X na minus do kontaktu
  2. Wyzeruj X
  3. Dojedź X na plus do kontaku
  4. Ustaw offset X na to-co-widzisz/2
  5. Przejedź X na zero
  6. Dojedź Y na plus do kontaktu
  7. Wyzeruj Y
  8. Dojedź Y na minus do kontaktu
  9. Ustaw offset Y na to-co-widzisz/2
  10. Przejedź Y na zero

i start programu.

Długo i niewygodnie. No to ojciec wymyślił usprawnienie.

Dopisałem do Axisa funkcję half_distance(). Po wywołaniu tej funkcji maszyna jedzie na połowę aktualnej wartości danej osi i ustawia offest na 0. Podpięliśmy to do Ctrl+OŚ czyli mamy tak:

  1. Dojedź X na minus do kontaktu
  2. Wyzeruj X
  3. Dojedź X na plus do kontaktu
  4. Wciśnij Ctrl+X

i tak samo z Y i Z.

Jak takie cudo zrobić u siebie?

Ano trzeba napisać funkcję która wywoła komunikat: 'Czy jesteś pewien’ a potem podzieli aktualną wartość danej osi przez dwa, przejedzie i wyzeruje. Jeżeli ktoś ciekawy to mogę opisać co i jak – ale to wszystko widać w pliku .patch – dodałem klase i dwie funkcje – nic skomplikowanego.

Instalacja

Ściągamy plik axis_srodek.zip i rozpakowujemy. Na komputerze z Axisem jako root klepiemy:

patch --dry-run -p0 -i axis_srodek.patch 

Jeżeli nie sypnęło błędami tylko napisało: patching file /usr/bin/axis to robimy tak:

patch -p0 -i axis_srodek.patch 

Oczywiście te zmiany znikną po aktualizacji LinuxCNC i trzeba będzie 'paczować’ od nowa.

Przypisanie do klawiszy

Zmieniamy plik konfiguracyjny Axis – ~/.axisrc

Dodajemy 3 linie:

root_window.bind("", lambda event: commands.half_distance(0))
root_window.bind("", lambda event: commands.half_distance(1))
root_window.bind("", lambda event: commands.half_distance(2))