Przypisanie klawiszon 1,2,3... innych prędkości niż domyślne

Dyskusje dotyczące działania obsługi programu LinuxCNC
Awatar użytkownika

Autor tematu
noel20
ELITA FORUM (min. 1000)
ELITA FORUM (min. 1000)
Posty w temacie: 5
Posty: 1395
Rejestracja: 02 lip 2010, 07:15
Lokalizacja: Białystok

Przypisanie klawiszon 1,2,3... innych prędkości niż domyślne

#1

Post napisał: noel20 » 06 paź 2013, 11:15

Witam, trochę nie pasuje mi szybkie ustawienie prędkości przyciskami. Po naciśnięciu 3 jest 30%, po naciśnięciu 4 40% itd. Używam głównie albo 80-100% do przejazdów, albo precyzyjnie, żeby gdzieś dojechać bardzo małych. Wtedy trzeba myszką suwak przestawić. Ale zaświtało w pamięci, że gdzieś czytałem jak to zmienić. No i znalazłem post ArturaM, żeby w pliku .axisrc wpisać:

Kod: Zaznacz cały

def activate_axis_or_set_feedrate(n): 
     if n < 4: 
         set_feedrate(2*n) 
     else: 
         set_feedrate(10*n)
Tak też zrobiłem i działa teraz tak, że po naciśnięciu 1 jest 2%, 2-4%, aż do 4. 4 to już 40%, 5 to 50% itd.
Jest o wiele wygodniej, ale byłoby lepiej gdybym mógł dowolnie przypisać prędkości do klawiszy. Nie wiem niestety jak to zrobić. O ile pomysł na algorytm to nie problem to składnia języka już tak. Wprowadziłem kilka zmian i za każdym razem wyrzuca linux błąd przy uruchomieniu. Cóż to za język programowania? python? C++?
Dzięki i pozdrawiam.



Tagi:


kamar
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 1
Posty: 16239
Rejestracja: 18 wrz 2010, 06:17
Lokalizacja: Kozienice
Kontakt:

#2

Post napisał: kamar » 06 paź 2013, 12:00

noel20 pisze:ale byłoby lepiej gdybym mógł dowolnie przypisać prędkości do klawiszy. .
Lepiej w czym ? Chcesz powiedzieć że zapamiętasz dziewięć prędkości przypisanych do klawiszy czy wydrukujesz sobie tabelkę i przykleisz do maszyny :)

Awatar użytkownika

MlKl
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 4
Posty: 3706
Rejestracja: 15 sie 2010, 13:44
Lokalizacja: Błonie
Kontakt:

#3

Post napisał: MlKl » 06 paź 2013, 12:17

Powinno zadziałać

Kod: Zaznacz cały


def activate_axis_or_set_feedrate(n): 
     if n < 2: 
         set_feedrate 100
     elseif n < 3: 
         set_feedrate 200
     elseif n < 4: 
         set_feedrate 300
     else: 
         set_feedrate(10*n) 


Wartość fedrate trzeba dobrać doświadczalnie, jak ma być na sztywno, a nie w stosunku do parametru n

Awatar użytkownika

Autor tematu
noel20
ELITA FORUM (min. 1000)
ELITA FORUM (min. 1000)
Posty w temacie: 5
Posty: 1395
Rejestracja: 02 lip 2010, 07:15
Lokalizacja: Białystok

#4

Post napisał: noel20 » 06 paź 2013, 21:37

kamar pisze:Lepiej w czym ? Chcesz powiedzieć że zapamiętasz dziewięć prędkości przypisanych do klawiszy czy wydrukujesz sobie tabelkę i przykleisz do maszyny
Nie no bardziej chciałem ustawić sobie coś al'a logarytmiczny układ. Powiedzmy 1%, 2%, 5%, 10%, 20%, 40%, 60%, 80%, 100%.
MlKl pisze:Powinno zadziałać
No niestety miki. To działa:

Kod: Zaznacz cały

def activate_axis_or_set_feedrate(n): 
     if n < 2: 
         set_feedrate(1*n) 
     else: 
         set_feedrate(10*n
a to już nie:

Kod: Zaznacz cały

def activate_axis_or_set_feedrate(n): 
     if n < 2: 
         set_feedrate(1*n) 
     elseif n < 3: 
	set_feedrate(2*n) 
     else: 
         set_feedrate(10*n)
Program wskazuje błąd na tą linię:

Kod: Zaznacz cały

elseif n < 3:
Ciekawe, kompilator na to:

Kod: Zaznacz cały

if n = 1:
też krzyczy. = nie rozumie?

Awatar użytkownika

MlKl
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 4
Posty: 3706
Rejestracja: 15 sie 2010, 13:44
Lokalizacja: Błonie
Kontakt:

#5

Post napisał: MlKl » 07 paź 2013, 11:15

Kod: Zaznacz cały

def activate_axis_or_set_feedrate(n): 
     if n ==1: 
         set_feedrate(1*n)     
     if n ==2: 
         set_feedrate(2*n) 
     if n == 3: 
         set_feedrate(3*n) 
     if n ==4: 
         set_feedrate(4*n)     
     if n ==5: 
         set_feedrate(5*n) 
     if n == 6: 
         set_feedrate(6*n) 
     if n ==7: 
         set_feedrate(7*n)     
     if n ==8: 
         set_feedrate(8*n) 
     if n == 9: 
         set_feedrate(9*n)
Tak działa.

Istotne jest, żeby wszystkie instrukcje pisane były z takim samym odstępem od lewego marginesu - program jest na to wrażliwy.

Wartość w nawiasie po set_fedrate można wpisywać po prostu liczbą z zakresu od 1 do 100. Nie da się dać więcej niż 100% - mimo iż myszką można suwak przesunąć dalej.

W programowaniu znak równości przypisuje wartość zmiennej, jeżeli chcemy porównywać wielkości używamy podwójnego znaku równości.

Awatar użytkownika

Autor tematu
noel20
ELITA FORUM (min. 1000)
ELITA FORUM (min. 1000)
Posty w temacie: 5
Posty: 1395
Rejestracja: 02 lip 2010, 07:15
Lokalizacja: Białystok

#6

Post napisał: noel20 » 07 paź 2013, 12:18

Interesujące. Sprawdzę po południu. Jak się w ogóle ten język programowania nazywa?

Awatar użytkownika

MlKl
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 4
Posty: 3706
Rejestracja: 15 sie 2010, 13:44
Lokalizacja: Błonie
Kontakt:

#7

Post napisał: MlKl » 07 paź 2013, 12:32

It's 'python' language with 'tkinter' libraries used.

Awatar użytkownika

Autor tematu
noel20
ELITA FORUM (min. 1000)
ELITA FORUM (min. 1000)
Posty w temacie: 5
Posty: 1395
Rejestracja: 02 lip 2010, 07:15
Lokalizacja: Białystok

#8

Post napisał: noel20 » 07 paź 2013, 18:18

Ok, działa :) dzięki serdeczne.
W prawdzie 9 to 90% ale to już nie jest problemem. Znalazłem kilka spacji w tym kodzie co podałeś, myślałem, że to to, ale nie pomogło. Może ostatnia linia nie działa, bo jakoś całą tą komendę trzeba zamknąć, np. else, ale jak dodałem to całość w ogóle przestaje działać, choć błędu żadnego nie wyrzuca.

Awatar użytkownika

MlKl
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 4
Posty: 3706
Rejestracja: 15 sie 2010, 13:44
Lokalizacja: Błonie
Kontakt:

#9

Post napisał: MlKl » 07 paź 2013, 18:32

Kod: Zaznacz cały

if n == 9: 
         set_feedrate(9*n)
Jak masz wpisane, że 90, to i jest 90.

n to wartość wcisniętego klawisza. Ten fragment kodu należy czytać:

Jeżeli wciśnięto klawisz "9" ustaw prędkość posuwu roboczego na 9*9 procent

Sto procent jest na sztywno przypisane do klawisza "0".

Awatar użytkownika

Autor tematu
noel20
ELITA FORUM (min. 1000)
ELITA FORUM (min. 1000)
Posty w temacie: 5
Posty: 1395
Rejestracja: 02 lip 2010, 07:15
Lokalizacja: Białystok

#10

Post napisał: noel20 » 07 paź 2013, 18:35

Jak masz wpisane, że 90, to i jest 90.
Mam wpisane jak podaleś, czyli 9*9=81. Wstawiam tam nawet inną cyfrę, to i tak wskakuje 90.

ODPOWIEDZ Poprzedni tematNastępny temat

Wróć do „LinuxCNC (dawniej EMC2)”