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ę:
Ciekawe, kompilator na to:
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
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.