Znaleziono 2 wyniki

autor: freakolot
06 sty 2011, 19:11
Forum: LinuxCNC (dawniej EMC2)
Temat: Podprogram w EMC2
Odpowiedzi: 27
Odsłony: 8501

pixes2 pisze: #1=0
o100while[#1 gt -10]
#1=[#1-3]
g1 z#1 f1000
g2 x50 y50 i20 j0
o100endwhile
Głębokość na którą chcesz zjechać to -10
więc należy przed zjazdem w dół:
g1 z#1 f1000
sprawdzić czy nie jesteś już za nisko,
czyli wstawić:
o110 if [#1 lt -10]
#1 = -10
o110 endif

oczywiście zdarzy się tak za czwartym razem, kiedy #1 = -9
wiec warunek do while jest spełniony,
ale #1 = [#1 -3]
spowoduje, że zjedziesz Z na -12 czyli za głęboko.
Dlatego potrzebny jest ten if który to sprawdzi.

pozdrawiam,
F.
autor: freakolot
04 sty 2011, 23:11
Forum: LinuxCNC (dawniej EMC2)
Temat: Podprogram w EMC2
Odpowiedzi: 27
Odsłony: 8501

pixes2 pisze: Wrzuciłem, jak pisałeś, te kółka z Twojego pierwszego postu i wszystko działa fajnie(przeedytowałem trochę prędkości), ale nie wiem dlaczego :roll:
Gapię się w kod od tego i dochodzę do wniosku, że... jestem prostym człowiekiem.
Widzę podprogram, póżniej.. nie wiem co widzę i zakończenie podprogramu i całości.
Nie widzę wywołania podprogramu. Ponadto jakiś tajemniczy "if" :shock: .
To może ja się lekko wtrącę.. bo z tego co ja widze to tutaj:
o<okrag> sub
..
..
o<okrag> endsub

masz program, a przed samym m30 masz:
o<okrag> call [+parametry] - czyli wywołanie.
A potem drugie z innymi parametrami.

A if jest po to żebyś nie zjechał ponizej założonej wartości.
Czyli jeśli kopiesz to kółko na głębokość -10 a dobierasz np po 3 milimetry
to za trzecim wykonaniem pętli bedizesz na Z-9 a za czwartym
byłbyś na Z-12 - więc za głęboko.
Dlatego masz if'a - który mówi, że jeśli przy kolejnym
wykonaniu pętli (czyli zjechaniu po Z z aktualnej wysokości w dół o skok - czyli #5)
aktualna głębokość będzie niższa (lt) niż założona parametrem #4 - to
ma na to nie pozwolić tylko przypisać jej taką głębokość jaka była założona (#4)

Tak to na moje chłopskie oko wygląda :)

pozdrawiam,
F.

Wróć do „Podprogram w EMC2”