pętla programowa
-
- Specjalista poziom 1 (min. 100)
- Posty w temacie: 6
- Posty: 101
- Rejestracja: 25 lis 2004, 13:22
- Lokalizacja: Bialystok
Witam,
Język techniczny jest bardzo zwięzły, być może powinienem to bardziej opisać. W każdym razie proszę zastosować wariant 1 z postu ze ślimaka, czyli prosty gwint z formatem bloku: G33 Z=l_skrawania K=skok SF=kat_wejscia (0-359st 59'). Do tego niepotrzebny jest ShopTurn. Sinumerik 810D jest bardzo dobrym sterowaniem, używanie parametrów R jest proste, np: N010 G1 X=R1 Y=R2 F=R3, gdzie w R1, R2, R3 będą wpisane odpowiednie wartości. W przypadku kolegi, R1 będzie zawierał średnicę, R2 skok. Całe obliczenia będą w programie, do napisania którego zachęcam kolegę. Całość tzw. "wiedzy teoretycznej" kolega już ma. Gwint wewnętrzny różni się od zewnętrznego kierunkiem przyrostu X i nie ma to wielkiego znaczenia.
Pozdrawiam
Język techniczny jest bardzo zwięzły, być może powinienem to bardziej opisać. W każdym razie proszę zastosować wariant 1 z postu ze ślimaka, czyli prosty gwint z formatem bloku: G33 Z=l_skrawania K=skok SF=kat_wejscia (0-359st 59'). Do tego niepotrzebny jest ShopTurn. Sinumerik 810D jest bardzo dobrym sterowaniem, używanie parametrów R jest proste, np: N010 G1 X=R1 Y=R2 F=R3, gdzie w R1, R2, R3 będą wpisane odpowiednie wartości. W przypadku kolegi, R1 będzie zawierał średnicę, R2 skok. Całe obliczenia będą w programie, do napisania którego zachęcam kolegę. Całość tzw. "wiedzy teoretycznej" kolega już ma. Gwint wewnętrzny różni się od zewnętrznego kierunkiem przyrostu X i nie ma to wielkiego znaczenia.
Pozdrawiam
Technologia CNC od 1979r.
Programowanie technologiczne
SINUMERIK Operate
Programowanie technologiczne
SINUMERIK Operate
-
- Specjalista poziom 1 (min. 100)
- Posty w temacie: 3
- Posty: 168
- Rejestracja: 17 wrz 2012, 08:59
- Lokalizacja: POLSKA
postaram coś zdziałać .....ale szczerze to nie ogarniam tego hmmm, bo zależy mi na tym żeby narzędzie przeskakiwało po zboczach gwintu z zagłębianiem powiedzmy 0.05mm i program był stosunkowo krótki, bo robota jednostkowa i zakres duży począwszy od średnic do skoku a tym sposobem rozumiem że muszę pisać linijkami im lepsza powierzchnia tym więcej bloków czy się mylę ? dodam załącznik następnego gwintu który muszę wykonać
skok 14mm D 125
[img]
skok 14mm D 125

-
- Specjalista poziom 1 (min. 100)
- Posty w temacie: 6
- Posty: 101
- Rejestracja: 25 lis 2004, 13:22
- Lokalizacja: Bialystok
Witam,
Na uwarunkowania fizyczne nie ma rady. Tak czy inaczej naddatek do skrawania należy usunąć. Można to zrobić narzędziem typu przecinak, narzędziem kształtowym lub zestawem narzędzi, od prostego i zgrubnego wybierania po kształtujące docięcie też nożem kształtowym. Trzeba przyjąć kryterium ekonomiczne.
Pozdrawiam
Na uwarunkowania fizyczne nie ma rady. Tak czy inaczej naddatek do skrawania należy usunąć. Można to zrobić narzędziem typu przecinak, narzędziem kształtowym lub zestawem narzędzi, od prostego i zgrubnego wybierania po kształtujące docięcie też nożem kształtowym. Trzeba przyjąć kryterium ekonomiczne.
Długością programu bym się nie sugerował, bo akurat nie jest ona krytyczna w tym przypadku, tym bardziej, że to jest produkcja jednostkowa. Będzie potrzebny chyba model odpowiednio zredukowany, aby sprawdzić zachowanie napisanego programu.DRAGOO pisze:z zagłębianiem powiedzmy 0.05mm i program był stosunkowo krótki, bo robota jednostkowa
Nie myli się kolega. Położenie sąsiednie noża na obwiedni zarysu będzie wyznaczała chropowatość powierzchni. Najważniejszą sprawą jest wyliczenie punktów granicznych, które mają styk z zarysem gwintu, i jeżeli przyjmiemy te 0.05mm (może być za mało do normalnego skrawania, może nastąpić gniecenie materiału przy tak małym naddatku, zależy to od stanu ostrza, jego geometrii), to linii będzie 7.7/0.05=154, oczywiście program będzie korzystał z pętli czytającej tablice. Tu przyjąłbym wariant 2 etapów, przejścia zgrubnego z powiedzmy 0.5mm naddatku w samej masie obszaru i zmniejszenie naddatku przy przejściu po samej obwiedni zarysu. Teraz pozostaje wyliczenie kątów wejścia w zależności od położenia noża w linijce dla danego X. Dla jednej linijki będzie to kąt od 0 do max 360 (bo od początku skoku do jego końca) przy średnicy minimalnej i jedno przejście (w punkcie stycznym do okręgu dna zarysu i średnicy maksymalnej gwintu). Samo wyliczenie punktów można zrobić poprzez pomocniczy kontur o zarysie podanym przez kolegę i programowe rejestrowanie położenia współrzędnych X i Z w położeniach granicznych. Po zrobieniu tego pozostaje tylko podzielenie linijki na ilość przejść w zakresie dla X i Zmin i Zmax danej linijki. Sprawa jest dość złożona, proponuję kontakt z kolegą, który wykonywał ślimak, z pewnością będzie miał więcej praktycznych uwag.DRAGOO pisze:a tym sposobem rozumiem że muszę pisać linijkami im lepsza powierzchnia tym więcej bloków czy się mylę ?
Pozdrawiam
Technologia CNC od 1979r.
Programowanie technologiczne
SINUMERIK Operate
Programowanie technologiczne
SINUMERIK Operate
-
- Sympatyk forum poziom 1 (min. 40)
- Posty w temacie: 4
- Posty: 46
- Rejestracja: 02 lis 2012, 15:38
- Lokalizacja: Stalowa Wola
witam probelm z manual turn.
R1=20
R2=0.4
WHILE R1>0.5
G0 Z5
PLAN1:
IF R1>5 GOTOF PLAN2
G0 X=600-R1
G3 X=590-R1 Z0 CR=5 F=R2
G2 X=570-R1 Z-10 CR=10
PLAN2:
G0 Z1
G41
G1 X=570-R1 F=R2
G1 Z-60 ANG=180 RND=25
G1 X=535-R1 Z-2154 RND=25
G1Z-230
G0 Z=IC(-1)
R1=R1-3
KPLAN1
ENDWHILE
R1=0
R2=O.1
REPEAT PLAN1 KPLAN1
PYTANIE BRZMI CZEMU !!! CZEMU NIE CHCE MI POWRÓRZYC TYLKO JEDZIE W MATERIAŁ JAK BY MIAŁA BYC KOLIZJA
[ Dodano: 2013-03-02, 13:01 ]
jak powtorzyc te atykiey bez repeat? jest jakaś inna funkcja?
R1=20
R2=0.4
WHILE R1>0.5
G0 Z5
PLAN1:
IF R1>5 GOTOF PLAN2
G0 X=600-R1
G3 X=590-R1 Z0 CR=5 F=R2
G2 X=570-R1 Z-10 CR=10
PLAN2:
G0 Z1
G41
G1 X=570-R1 F=R2
G1 Z-60 ANG=180 RND=25
G1 X=535-R1 Z-2154 RND=25
G1Z-230
G0 Z=IC(-1)
R1=R1-3
KPLAN1
ENDWHILE
R1=0
R2=O.1
REPEAT PLAN1 KPLAN1
PYTANIE BRZMI CZEMU !!! CZEMU NIE CHCE MI POWRÓRZYC TYLKO JEDZIE W MATERIAŁ JAK BY MIAŁA BYC KOLIZJA
[ Dodano: 2013-03-02, 13:01 ]
jak powtorzyc te atykiey bez repeat? jest jakaś inna funkcja?
-
- Specjalista poziom 1 (min. 100)
- Posty w temacie: 4
- Posty: 271
- Rejestracja: 09 lut 2010, 19:40
- Lokalizacja: SE
Anderk, Zdecyduj się albo WHILE albo REPEAT
IF–ELSE–ENDIF
LOOP–ENDLOOP
FOR–ENDFOR
WHILE–ENDWHILE
REPEAT–UNTIL
Nie powinieneś odwoływać się do wnętrza jednej pętli z drugiej.
Gdy używasz obliczeń z parametrami R dobrze jest użyć STOPRE aby sterowanie zaczekało na aktualne wartości parametrów (standardowo program jest wczytywany ileś bloków do przodu a wtedy wartości R mogą być nieaktualne).
N80 T36 ;FREZ 20MM
N90 M6
N100 G0 B0
N110 G17 G55 X=-XPOS Y=YSRO+YPOS Z=WYS+80 S4300 M3
N320 R10=GLP
N330 REPEAT
N340 G0 X=-XPOS Y=YSRO+YPOS
N350 Z=(WYS+2)-R10
N360 R10=R10+DEP
N370 IF ABS(R10)>ABS(GLR) ;jesli za glemboko
N380 R10=GLR ; ostateczna glembokosc
N390 ENDIF
N400 G1 Z=WYS-R10 F1200
N410 X0. Y=YSRO+YPOS3 F2570
N420 X=-(PROM/2)
N430 G2 I=AC(0) J=AC(YSRO+YPOS3) AR=180
N440 G1 X=PROM
N450 X=IC(2.) Y=IC(-2.)
N460 X=PROM Y=YSRO+YPOS3
N470 G3 I=AC(0) J=AC(YSRO+YPOS3) AR=180
N480 G1 X=IC(-2.) Y=IC(-2.)
N490 G0 Z=(WYS+2)-R10
N500 STOPRE
N510 UNTIL ABS(R10)>=ABS(GLR)
N520 G0 G40 Z320. M9
IF–ELSE–ENDIF
LOOP–ENDLOOP
FOR–ENDFOR
WHILE–ENDWHILE
REPEAT–UNTIL
Nie powinieneś odwoływać się do wnętrza jednej pętli z drugiej.
Gdy używasz obliczeń z parametrami R dobrze jest użyć STOPRE aby sterowanie zaczekało na aktualne wartości parametrów (standardowo program jest wczytywany ileś bloków do przodu a wtedy wartości R mogą być nieaktualne).
N80 T36 ;FREZ 20MM
N90 M6
N100 G0 B0
N110 G17 G55 X=-XPOS Y=YSRO+YPOS Z=WYS+80 S4300 M3
N320 R10=GLP
N330 REPEAT
N340 G0 X=-XPOS Y=YSRO+YPOS
N350 Z=(WYS+2)-R10
N360 R10=R10+DEP
N370 IF ABS(R10)>ABS(GLR) ;jesli za glemboko
N380 R10=GLR ; ostateczna glembokosc
N390 ENDIF
N400 G1 Z=WYS-R10 F1200
N410 X0. Y=YSRO+YPOS3 F2570
N420 X=-(PROM/2)
N430 G2 I=AC(0) J=AC(YSRO+YPOS3) AR=180
N440 G1 X=PROM
N450 X=IC(2.) Y=IC(-2.)
N460 X=PROM Y=YSRO+YPOS3
N470 G3 I=AC(0) J=AC(YSRO+YPOS3) AR=180
N480 G1 X=IC(-2.) Y=IC(-2.)
N490 G0 Z=(WYS+2)-R10
N500 STOPRE
N510 UNTIL ABS(R10)>=ABS(GLR)
N520 G0 G40 Z320. M9
-
- Specjalista poziom 1 (min. 100)
- Posty w temacie: 4
- Posty: 271
- Rejestracja: 09 lut 2010, 19:40
- Lokalizacja: SE
Podałem Ci przykład, w bloki N400-N490 wstawiasz swój kod i praktycznie gotowe. N370-N390 specjalnie dopisałem komentarz, to może być twoje przejście wykańczające (sprawdzasz czy R10 jest mniejsze lub równe twojemu 0.5).
Twojego przykładu nie "rozumiem". Zaczynasz gez G41, w połowie załączasz G41 a nigdzie nie ma G40 (przy kolejnym obiegu pętli wszystko będzie z G41).
Z-230 i jeszcze -1 na G0 ?
Nie możesz tego zrobić przy użyciu cykli toczenia ?
[ Dodano: 2013-03-07, 20:20 ]
Pewnie jeszcze będzie trzeba coś poprawić:
R1=20
R2=0.4
R3=3 ;KROK
REPEAT
G0 Z5.
PLAN1:
IF R1<5
G0 X=600-R1
G3 X=590-R1 Z0 CR=5 F=R2
G2 X=570-R1 Z-10 CR=10
G0 Z2.
ENDIF
PLAN2:
G1 G41 X=570-R1 Z1. F=R2
G1 Z-60 ANG=180 RND=25
G1 X=535-R1 Z-2154 RND=25
G1 Z-230
G0 G40 X=IC(-2.) Z5.
R1=R1-R3
STOPRE
IF R1<=R3 ;OSTATNIE PRZEJSCIE ?
IF (R1==(0.5-R3)) ; JESLI BYL NADDATEK
R1=0 ; PRZEJSCIE WYK.
ELSE
IF R1>0 ;JESLI MNIEJSZE OD ZERA TO BEDZIE KONEC PETLI
R1=0.5 ; ZOSTAW NADDATEK
ENDIF
ENDIF
UNTIL R1>=0
Twojego przykładu nie "rozumiem". Zaczynasz gez G41, w połowie załączasz G41 a nigdzie nie ma G40 (przy kolejnym obiegu pętli wszystko będzie z G41).
G1Z-230
G0 Z=IC(-1)
Z-230 i jeszcze -1 na G0 ?
Nie możesz tego zrobić przy użyciu cykli toczenia ?
[ Dodano: 2013-03-07, 20:20 ]
Pewnie jeszcze będzie trzeba coś poprawić:
R1=20
R2=0.4
R3=3 ;KROK
REPEAT
G0 Z5.
PLAN1:
IF R1<5
G0 X=600-R1
G3 X=590-R1 Z0 CR=5 F=R2
G2 X=570-R1 Z-10 CR=10
G0 Z2.
ENDIF
PLAN2:
G1 G41 X=570-R1 Z1. F=R2
G1 Z-60 ANG=180 RND=25
G1 X=535-R1 Z-2154 RND=25
G1 Z-230
G0 G40 X=IC(-2.) Z5.
R1=R1-R3
STOPRE
IF R1<=R3 ;OSTATNIE PRZEJSCIE ?
IF (R1==(0.5-R3)) ; JESLI BYL NADDATEK
R1=0 ; PRZEJSCIE WYK.
ELSE
IF R1>0 ;JESLI MNIEJSZE OD ZERA TO BEDZIE KONEC PETLI
R1=0.5 ; ZOSTAW NADDATEK
ENDIF
ENDIF
UNTIL R1>=0
-
- Specjalista poziom 1 (min. 100)
- Posty w temacie: 4
- Posty: 271
- Rejestracja: 09 lut 2010, 19:40
- Lokalizacja: SE
Uważaj na te warunki IF, jak coś sknociłem to program może się zapętlić. To samo może nastąpić przy "nieodpowiedniej" wartości początkowej R1.Anderk pisze:Sprawdze jutro w pracy jak bedzie to wyglądało na maszynie
Sprawdzaj w trakcie wykonywania programu aktualne wartości parametrów R i czy IF robi to co powinno.
-
- Sympatyk forum poziom 1 (min. 40)
- Posty w temacie: 4
- Posty: 46
- Rejestracja: 02 lis 2012, 15:38
- Lokalizacja: Stalowa Wola
Siemka:)
Wyskoczył mi błąd brak celu szukania.
Myślę że chodzi o Repeat.-
Robi do R1=R1-3 I TU WYSKAKUJE BŁĄD.
nie powinno być żadnych etykiet przy repeat?
może po R1=R1-3???
NIE MAM POMYSŁU
[ Dodano: 2013-03-09, 13:52 ]
Masz może jakieś fajne opisy tych funkcji jakie podałeś
IF–ELSE–ENDIF
LOOP–ENDLOOP
FOR–ENDFOR
WHILE–ENDWHILE
REPEAT–UNTIL
STOPRE
co oznaczają i w ogóle tak fajnie wytłumaczone na przykładach .?
Wyskoczył mi błąd brak celu szukania.
Myślę że chodzi o Repeat.-
Robi do R1=R1-3 I TU WYSKAKUJE BŁĄD.
nie powinno być żadnych etykiet przy repeat?
może po R1=R1-3???
NIE MAM POMYSŁU
[ Dodano: 2013-03-09, 13:52 ]
Masz może jakieś fajne opisy tych funkcji jakie podałeś
IF–ELSE–ENDIF
LOOP–ENDLOOP
FOR–ENDFOR
WHILE–ENDWHILE
REPEAT–UNTIL
STOPRE
co oznaczają i w ogóle tak fajnie wytłumaczone na przykładach .?