Znaleziono 10 wyników

autor: pixes2
06 sty 2011, 21:00
Forum: LinuxCNC (dawniej EMC2)
Temat: Podprogram w EMC2
Odpowiedzi: 27
Odsłony: 8568

freakolot pisze: 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.
Dzięki za podpowiedż. Celowo dałem pogłębianie co 3mm, aby zaszła konieczność zastosowania "if". Gdyby nie było "if" to poleciałoby na 12mm ? Muszę to sprawdzić.

Pozdrawiam.
Tomek.
autor: pixes2
06 sty 2011, 18:05
Forum: LinuxCNC (dawniej EMC2)
Temat: Podprogram w EMC2
Odpowiedzi: 27
Odsłony: 8568

ArturM pisze:Zamorduję!
Jeżelli musisz, to tak, żeby nie bolało... :lol:
ArturM pisze:Spacja Ci się zepsuła?
Sprwdzę. To możliwe, bo jej się najczęściej obrywa, gdy mi coś nie idzie-w końcu jest największa :mrgreen: .
Zaoszczędziłem po kilka kliknięć w każdej linii-w sumie będzie z 5 sekund, a na przejżystości faktycznie dużo straciło. Mówią, że oszczędzać trzeba z głową...

Po Twojej ingerencji program stał się zdecydowanie mniejszy i wreszcie wiem, o co w tym chodzi.
Próbowałem jeszcze zapisać program do wycięcia większego otworu tak, aby frez zaczął od wycinania okręgu o r=1 , potem r=5, r=... (to idzie w pętli), po czym zagłębił się o wartość kolejnej zmiennej i powtarzał tą czynność aż do osiągnięcia zadanej głębokości. Pierwsza część zadania się powiodła, ale przy pogłębianiu poległem.
Po godzince kombinowania wywiesiłem białą szmatę :sad: . Da się to jakoś prosto zapisać?

Mam jeszczy pytanie odnośnie tego "if" Jak to zastosować w takim np. zapisie :
#1=0
o100while [#1 gt -10]
#1=[#1-3]
g2 x50 y50 i20 j0
o100endwhile

Dzięki i pozdrawiam.
Tomek.

ps. masz jeszcze odrobinę cierpliwości ? :wink:

[ Dodano: 2011-01-06, 18:38 ]
#1=0
o100while[#1 gt -10]
#1=[#1-3]
g1 z#1 f1000
g2 x50 y50 i20 j0
o100endwhile

Zapomniałem o jednej linijce :???:
autor: pixes2
05 sty 2011, 16:39
Forum: LinuxCNC (dawniej EMC2)
Temat: Podprogram w EMC2
Odpowiedzi: 27
Odsłony: 8568

markcomp77 pisze:aż korci sprawdzić czy da się zrobić rekurencję?
Kiedyś coś obiło mi się o uszy o ciągu rekurencyjnym :?: , ale nie mam pojęcia co to jest.

Pozdrawiam.
Tomek.
autor: pixes2
05 sty 2011, 12:20
Forum: LinuxCNC (dawniej EMC2)
Temat: Podprogram w EMC2
Odpowiedzi: 27
Odsłony: 8568

freakolot pisze: masz program, a przed samym m30 masz:
o<okrag> call [+parametry] - czyli wywołanie.
A potem drugie z innymi parametrami.
Masz rację. Ostatnio noce zarywam, aby pobawić się cnc i chyba myślenie mi się wyłącza. Niestety nie rozumiem, jak spreparować kod na początku, aby póżniej móc wywoływać podprogram z tymi pięcioma parametrami.
Tymczasem napisałem coś takieg :
g90
g21
m3s1
g4p4
g0x30y40z2
#1=0
o100while[#1gt-10]
#1=[#1-2]
g1z#1f1000
g2x30y40i10j0
o100endwhile
g0z2
g0x70y40
#1=0
o200while[#1gt-10]
#1=[#1-2]
g1z#1f1000
g2x70y40i10j0
o200endwhile
g0z2
g0x19y20
#1=0
o300while[#1gt-10]
#1=[#1-2]
g1z#1f1000
g2x19y20i1j0
o300endwhile
g0z2
g0x99y20
#1=0
o400while[#1gt-10]
#1=[#1-2]
g1z#1f1000
g2x99y20i1j0
o400endwhile
g0z2
g0x99y60
#1=0
o500while[#1gt-10]
#1=[#1-2]
g1z#1f1000
g2x99y60i1j0
o500endwhile
g0z2
g0x19y60
#1=0
o600while[#1gt-10]
#1=[#1-2]
g1z#1f1000
g2x19y60i1j0
o600endwhile
g0z2
g0x10y10
#1=0
o700while[#1gt-10]
#1=[#1-2]
g1z#1f1000
x110
y70
x10
y10
o700endwhile
g0z40
g0x0y0
m30

Okazało się to proste, ale pewnie, w myśl tego co piasł Artur, można to znacznie uprościć. Do tej pory umiałem napisać jedną warstewkę, więc i tak jest mocno do przodu. A będzie jeszcze lepiej, gdy spokojnie przeanalizuję wszystkie odpowiedzi z tego tematu. Niestety najwięcej wolnego czasu mam w nocy, a kiedyś trzeba spać :cry: .
Dzięki i pozdrawiam.
Tomek. :wink:
autor: pixes2
04 sty 2011, 18:18
Forum: LinuxCNC (dawniej EMC2)
Temat: Podprogram w EMC2
Odpowiedzi: 27
Odsłony: 8568

ArturM pisze: Poknociłeś
Nie wiem co masz w podprogramie - ale ja nic takiego u siebie nie robiłem.
Robiłem to na szybko, próbując kierować się Twoimi wskazówkami. Następnym razem będzie lepiej. :wink: .
ArturM pisze:masz zmianę układu współrzędnych (G54-G59)
Chyba nie... jedyne, co zmieniałem, to offsety w G54. Pozostałe G..-G59 nawet nie wiem ,co oznaczają, dlateg profilaktycznie tego nie ruszam (może mnie oświecisz).

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: .
Za dużo szczęścia (zmiennych) na raz :grin:

Swietny natomiast jest sposób wycinania np. kółek z tymi parametrami w o<sub>call...
Czy mógłbys pokazać przykładowy, prosty program do wycięcia kilku różnych okręgów z kilkoma parametrami ? Chodzi oto, aby zobaczyć jak to powinno wyglądać w całości. Jestem zaskoczony, że można takie rzeczy robić "z palca"-myślałem, że od tego są postprocesory.

Długo już bawisz się tym softem? Zakładam, że od urodzenia :grin:...

Pozdrawiam.
Tomek.
autor: pixes2
03 sty 2011, 14:13
Forum: LinuxCNC (dawniej EMC2)
Temat: Podprogram w EMC2
Odpowiedzi: 27
Odsłony: 8568

Dzięki za odpowiedż.
syntetyczny pisze:ArturM, jesteś wielki
Oj tak...
ArturM pisze:No mam nadzieję, że inni tez skorzystają.
Temat kilka razy był wyświetlany, więc z pewnością kilka osób skorzystało.
Kawał wiedzy, podany w prosty i przejżysty sposób- pewnie wielu użytkowników emc2 się dokształciło.
Byłbym niepocieszony, gdyby się okazało, że tylko ja mam takie zaległości :???: .


Wczoraj (a może już dzisiaj?) próbowałem prostych wycinanek z wielokrotnym użyciem tego samego podprogramu. Wyszło mi, że w podprogramie muszę użyć wymiarowania G91, bo inaczej wychodziły jakieś cuda. To normalne, czy coś poknociłem?

Teraz muszę ogarnąć to, co napisałeś w ostatnim swoim poście. Pewnie pojawią się kolejne niejasności i ponownie trzeba będzie zawracać Ci głowę. Ale zobaczymy...
Jeszcze raz dzięki i pozdrawiam.
Tomek. :grin:
autor: pixes2
02 sty 2011, 20:26
Forum: LinuxCNC (dawniej EMC2)
Temat: Podprogram w EMC2
Odpowiedzi: 27
Odsłony: 8568

Ale się kolega napracował :shock: . Serdeczne dzięki za to. Punkciki oczywiście dodałem. Może kiedyś będę miał okazję, w podobnie wyczerpujący sposób, pomóc Tobie. Teraz pozostaje tylko sobie to przyswoić.
Mam jeszcze tylko jedno pytanie odnośnie konstrukcji programu.
Czy podprogram (kilka podprogramów) można wielokrotnie wywoływać w czasie programu?
Pozdrawiam.
Tomek. :wink:
autor: pixes2
02 sty 2011, 17:45
Forum: LinuxCNC (dawniej EMC2)
Temat: Podprogram w EMC2
Odpowiedzi: 27
Odsłony: 8568

Czyli bez gledzenia to wygląda tak:

Kod:

#1 = 0
o100 while [#1 gt -10]
#1 = [#1 - 1]
g1 z#1

(tu kod wycinania)

o100 endwhile

Dzięki za odpowiedż.
Teraz jest o wiele jaśniej :wink: . Zaraz lecę to przetrenować.
ArturM pisze: M98 to właśnie wywołanie podprogramu - ale w tym kodzie co podałeś brakuje własciwego porprogramu - po M30 powinnien być blok 'O'
Po M30 dopisałem podprogram, ale emc nie rozpoznaje polecenia M98. Wczytanie całego programu zaowocowało tym, że w oknie na dole jest kod, ale w podglądzie nic nie widać (jest widok rysunku testowego). Maszyna mimo wszystko zaczyna realizować program, dojeżdża do trzeciej linii kodu i wywala komunikat "nieznany kod M". Może w emc podprogram wywołuje się inaczej, może nie obsługuje wszystkich komend? Zastanawia mnie to, że w zakładce MDI jest wyświetlona lista aktywnych kodów i nie ma na niej M98. Chyba, że nie ma to znaczenia.
ArturM pisze: Jaśniej? Zmienne i pętle z grubsza rozumiesz czy też spróbować jakoś opisać?
Z grubsza....rozumiem, ale z pewnością byłoby to jaśniejsze, gdybyś coś o tym napisał. Może się okazać, że tylko mi się wydaje z tym "z grubsza".
Jeszcze raz serdeczne dzięki i pozdrawiam.

Tomek. :wink:
autor: pixes2
01 sty 2011, 21:39
Forum: LinuxCNC (dawniej EMC2)
Temat: Podprogram w EMC2
Odpowiedzi: 27
Odsłony: 8568

Dzięki za odpowiedż. Rozumiem, że Twoje przykłady dotyczą zastosowania zmiennej?
Sądziłem, że zmienna w tym przykładzie będzie dotyczyć tylko osi Z i cały zapis nie będzie taki rozbudowany. Muszę się spokojnie temu przyjżeć i przeanalizować, jakby to miało działać. Póki co nie jarzę o co biega w tych zmiennych. Może masz pomysł, jak to łopatologicznie opisać ?

Tymczasem pozwoliłem sobie na mały cytat z tematu kolegi Gaspar :

F1000
G1 X0 Y0
M98 P100 Q200
G0 Z1
M30

Ten sposób wydaje się dardzo prosty, ale w emc nie działa. Problem jest w trzeciej linii kodu-nieznane polecenie M. Czyli problemem jest wywołanie podprogramu(p100), a gdyby to już się powiodło, to gdzie wpisać sam podprogram? Inna sprawa, że nie wiem co oznacza M98 :oops: -nigdzie nie znalazłem polskiego opisu wszystkich komend.

Pozdrawiam.
Tomek.
autor: pixes2
01 sty 2011, 19:22
Forum: LinuxCNC (dawniej EMC2)
Temat: Podprogram w EMC2
Odpowiedzi: 27
Odsłony: 8568

Podprogram w EMC2

Czy jest możliwe w emc2 wykonywanie programu z wywołaniem podprogramów ?
Chodzi mi o wycinanie kształtu z wielokrotnym pogłębianiem. Można to oczywiście napisać, ale w innym dziale wyczytałem, że można wykorzystać podprogram+ilość powtórzeń lub zmienne :?: . Niestety nic z tego nie udało mi się zastosować praktycznie.
Może ktoś mógłby napisać prosty programik do wycięcia choćby kwadracika w kilku przejściach z zagłębieniem co 1mm.
Dałoby to pogląd, jak powinien być skonstruowany taki program.
Metodą prób i błędów zejdzie mi się z takimi drobiazgami chyba do emerytury :sad: .
Z góry dzięki za pomoc.

Pozdrawiam.
Tomek. :???:

Wróć do „Podprogram w EMC2”