Strona 1 z 1

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

: 06 paź 2013, 11:15
autor: noel20
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.

: 06 paź 2013, 12:00
autor: kamar
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 :)

: 06 paź 2013, 12:17
autor: MlKl
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

: 06 paź 2013, 21:37
autor: noel20
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?

: 07 paź 2013, 11:15
autor: MlKl

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.

: 07 paź 2013, 12:18
autor: noel20
Interesujące. Sprawdzę po południu. Jak się w ogóle ten język programowania nazywa?

: 07 paź 2013, 12:32
autor: MlKl
It's 'python' language with 'tkinter' libraries used.

: 07 paź 2013, 18:18
autor: noel20
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.

: 07 paź 2013, 18:32
autor: MlKl

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".

: 07 paź 2013, 18:35
autor: noel20
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.