Ś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:

  • Dojedź X na minus do kontaktu
  • Wyzeruj X
  • Dojedź X na plus do kontaku
  • Ustaw offset X na to-co-widzisz/2
  • Przejedź X na zero
  • Dojedź Y na plus do kontaktu
  • Wyzeruj Y
  • Dojedź Y na minus do kontaktu
  • Ustaw offset Y na to-co-widzisz/2
  • 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:

  • Dojedź X na minus do kontaktu
  • Wyzeruj X
  • Dojedź X na plus do kontaktu
  • 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 axissrodek.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))