U mnie krzyczy że za dużo procedur i coś tam jeszcze. Na symulatorze to samo.kamar pisze:działa , działa.
Suby ngcgui
-
Autor tematu - ELITA FORUM (min. 1000)
- Posty w temacie: 101
- Posty: 1473
- Rejestracja: 25 maja 2006, 14:39
- Lokalizacja: koło.wlkp
Tak, to był problem nazwy. Już działakamar pisze:Pewnie żle przepisałeś nazwęSub musi się nazywać identycznie jak jest w ostatniej linijce
[ Dodano: 2015-02-22, 12:53 ]
Pomóżcie mi to ubrać w pętlę. Nie mogę sobie z tym poradzić.
G0 x20.1 z-10
G1 x20 f20
G1 z-8 f20
G1 z-10 f20
G1 x19,9 f20
G1 z-8 f20
G1 z-10 f20
etc. do średnicy 18mm co 0.1mm . Jeden przykład i załapie o co chodzi.
-
- Lider FORUM (min. 2000)
- Posty w temacie: 2
- Posty: 3705
- Rejestracja: 15 sie 2010, 13:44
- Lokalizacja: Błonie
- Kontakt:
senio pisze: Pomóżcie mi to ubrać w pętlę. Nie mogę sobie z tym poradzić.
G0 x20.1 z-10
G1 x20 f20
G1 z-8 f20
G1 z-10 f20
G1 x19,9 f20
G1 z-8 f20
G1 z-10 f20
etc. do średnicy 18mm co 0.1mm . Jeden przykład i załapie o co chodzi.
Kod: Zaznacz cały
( ------------------------------ )
( czop )
( ------------------------------ )
( Z. Maciej Miki Bajkowski)
( Time-stamp: <2012-04-14 00:39> )
(info: Czop )
o<czop> sub
( ------------------------------ )
( Zmienne do tabelki )
( ------------------------------ )
(wszystkie wartosci w milimetrach)
#<srednica_surowego_walka> = #1 (=23 Średnica surowego wałka)
#<dlugosc_detalu> = #2 (=15 Długość gotowego detalu)
#<srednica_walka> = #3 (=22 Średnica gotowego detalu)
#<srednica_czopu> = #4 (=19 Średnica czopu)
#<dlugosc_czopu> = #5 (=10 Długość czopu)
#<glebokosc_fazki_czopu> = #6 (=1 Głębokość fazki czopu)
#<szerokosc_fazki_czopu> = #7 (=1 Szerokość fazki czopu, zero wyłącza)
#<promien_fazki_czopu> = #8 (=0 Promień fazki czopu, zero wyłącza)
#<glebokosc_fazki_walka> = #9 (=0 Głebokość fazki wałka)
#<szerokosc_fazki_walka> = #10 (=0 Szerokość fazki wałka, zero wyłącza)
#<promien_fazki_walka> = #11 (=0 Promień fazki wałka, zero wyłącza)
#<planowanie_czola> =#12 (=0 O ile mm splanować czoło, zero wyłącza)
#<poczatek_z>=#13 (=0 Początek na osi Z)
#<szybkosc_posuwu> = #14 (=120 Posuw)
#<obroty_wrzeciona> = #15 (=1000 Obroty)
#<przybranie_materialu> = #16 (=0.3 Przybranie)
#<odjazd_z> =#17 (=2 odjazd od materiału w osi Z)
(koniec zmiennych)
#<baza_x> = [#<srednica_walka> + 2] (tu zjedzie w osi x noz po pracy, ustawić tyle, by można swobodnie zmierzyć, czy wyjąć materiał)
#<srednica_walka_do_fazki> = #<srednica_walka> (zmienna #<srednica_walka> zmniejsza się w trakcie wykonywania programu, zapamietuję ją więec w zmiennej do późniejszego fazowania)
M3 s#<obroty_wrzeciona> (wlaczamy wrzeciono)
(Planowanie powierzchni)
G0 X[#<srednica_surowego_walka>+2] Z[#<poczatek_z>+#<odjazd_z>]
X#<srednica_surowego_walka>
#<Current_Dia>=#<srednica_surowego_walka>
o60 while [#<Current_Dia> gt #<srednica_walka>]
o61 if [#<Current_Dia>-#<przybranie_materialu> gt #<srednica_walka>]
#<Current_Dia>=[#<Current_Dia>-#<przybranie_materialu>]
o61 else
#<Current_Dia>=#<srednica_walka>
o61 endif
X#<Current_Dia>
Z#<poczatek_z>
G1 Z-[#<dlugosc_detalu>] F#<szybkosc_posuwu>
G0 X[#<Current_Dia>+2]
Z[#<poczatek_z>+#<odjazd_z>]
o60 endwhile
(Koniec planowania powierzchni)
(Planowanie czoła)
g0 z[#<poczatek_z> + #<odjazd_z>]
g0 x[#<srednica_walka> + 2]
#<akt_pozycja> = #<poczatek_z>
o50 while [#<akt_pozycja> gt -[#<planowanie_czola>]]
#<akt_pozycja> = [#<akt_pozycja> - #<przybranie_materialu>]
o52 if [#<akt_pozycja> lt -[#<planowanie_czola>]]
#<akt_pozycja> = -[#<planowanie_czola>]
o52 endif
g0 z#<akt_pozycja>
g1 x0 f[#<szybkosc_posuwu>/3]
g0 z[#<akt_pozycja> + #<odjazd_z>]
g0 x[#<srednica_walka> + 2]
o50 endwhile
(Koniec planowania czoła)
(Toczenie czopa)
G0 z[#<odjazd_z>-[#<planowanie_czola>+#<poczatek_z>]]
o100 while [#<srednica_walka> gt #<srednica_czopu>] ( wykonuj dopoki #<srednica_walka> wiekszy od #<srednica_czopu> )
#<srednica_walka>=[#<srednica_walka>-#<przybranie_materialu>] ( deklarowane zmniejszenie)
o102 if [#<srednica_walka> lt #<srednica_czopu>]
#<srednica_walka> = #<srednica_czopu>
o102 endif
G0 x[#<srednica_walka>+2] (ustawienie noza na pozycji )
x[#<srednica_walka>]
z-[#<planowanie_czola>]
g1 z[[-#<dlugosc_czopu>]-[#<planowanie_czola>+#<poczatek_z>]] f#<szybkosc_posuwu> ( toczenie )
G0 x[#<srednica_walka>+2] ( odjazd od materialu)
z[#<odjazd_z>-[#<planowanie_czola>+#<poczatek_z>]] ( powrot na poczatek i wykonywanie ponowne )
o100 endwhile ( koniec toczenia czopa)
o110 if [#<szerokosc_fazki_czopu> gt 0] (procedura wykonania fazki na wytoczonym czopie, wykonywana tylko, gdy zadeklarowana szerokość fazki jest większa od zera)
#<szerokosc_fazki_czopu_1> = 0
#<glebokosc_fazki_czopu_1> = 0
z[[#<poczatek_z>]-[#<planowanie_czola>]+#<odjazd_z>]
o111 while [#<szerokosc_fazki_czopu_1> lt #<szerokosc_fazki_czopu>] ( wykonuj dopoki #<szerokosc_fazki_czopu_1> wiekszy od zera)
#<szerokosc_fazki_czopu_1>=[#<szerokosc_fazki_czopu_1>+#<przybranie_materialu>] ( deklarowane zmniejszenie)
#<glebokosc_fazki_czopu_1>=[#<glebokosc_fazki_czopu_1>+[#<glebokosc_fazki_czopu>*#<przybranie_materialu>/#<szerokosc_fazki_czopu>]]
o112 if [#<szerokosc_fazki_czopu_1> gt #<szerokosc_fazki_czopu>]
#<szerokosc_fazki_czopu_1> = #<szerokosc_fazki_czopu>
o112 endif
o113 if [#<glebokosc_fazki_czopu_1> gt #<glebokosc_fazki_czopu>]
#<glebokosc_fazki_czopu_1> = #<glebokosc_fazki_czopu>
o113 endif
x[#<srednica_czopu>-#<glebokosc_fazki_czopu_1>*2] ( wjazd do fazki na fi #<srednica_czopu>)
z[[#<poczatek_z>]-[#<planowanie_czola>]]
o114 if [#<promien_fazki_czopu> lt 1]
g1 x[#<srednica_czopu>] z-[[#<szerokosc_fazki_czopu_1>]+[#<planowanie_czola>]] f[#<szybkosc_posuwu>] ( toczenie fazki na fi #<srednica_czopu>)
o114 endif
o115 if [#<promien_fazki_walka> gt 0]
g3 x[#<srednica_czopu>] z-[[#<szerokosc_fazki_czopu_1>]+[#<planowanie_czola>]] r[#<promien_fazki_czopu>] f[#<szybkosc_posuwu>]
o115 endif
g0 x[[#<srednica_czopu>]+2]
z[[#<poczatek_z>]-[#<planowanie_czola>]+#<odjazd_z>]
o111 endwhile ( koniec pętli czopa)
o110 endif (koniec procedury fazowania krawędzi czopa)
o120 if [#<szerokosc_fazki_walka> gt 0] (procedura wykonania fazki na pozostałej krawędzi wałka, wykonywana tylko, gdy zadeklarowana szerokość fazki jest większa od zera)
#<szerokosc_fazki_walka_1> = 0
#<glebokosc_fazki_walka_1> = 0
g0 z-[[#<dlugosc_czopu>]+[#<planowanie_czola>]] x[#<srednica_walka_do_fazki> - #<glebokosc_fazki_walka>*2] ( dojazd do fazki na fi #<srednica_walka_do_fazki>)
o121 while [#<szerokosc_fazki_walka_1> lt #<szerokosc_fazki_walka>] ( wykonuj dopoki #<szerokosc_fazki_walka_1> wiekszy od zera)
#<szerokosc_fazki_walka_1>=[#<szerokosc_fazki_walka_1>+#<przybranie_materialu>] ( deklarowane zmniejszenie)
#<glebokosc_fazki_walka_1>=[#<glebokosc_fazki_walka_1>+[#<glebokosc_fazki_walka>*#<przybranie_materialu>/#<szerokosc_fazki_walka>]]
o122 if [#<szerokosc_fazki_walka_1> gt #<szerokosc_fazki_walka>]
#<szerokosc_fazki_walka_1> = #<szerokosc_fazki_walka>
o122 endif
o123 if [#<glebokosc_fazki_walka_1> gt #<glebokosc_fazki_walka>]
#<glebokosc_fazki_walka_1> = #<glebokosc_fazki_walka>
o123 endif
x[#<srednica_walka_do_fazki>-#<glebokosc_fazki_walka_1>*2] ( wjazd do fazki na fi #<srednica_czopu>)
z-[[#<dlugosc_czopu>]+[#<planowanie_czola>]] x[#<srednica_walka_do_fazki> - #<glebokosc_fazki_walka_1>*2]
o124 if [#<promien_fazki_walka> lt 1]
g1 x[#<srednica_walka_do_fazki>] z-[[#<szerokosc_fazki_walka_1>]+[#<planowanie_czola>]+#<dlugosc_czopu>] f[#<szybkosc_posuwu>] ( toczenie fazki na fi #<srednica_czopu>)
o124 endif
o125 if [#<promien_fazki_walka> gt 0]
g3 x[#<srednica_walka_do_fazki>] z-[[#<szerokosc_fazki_walka_1>]+[#<planowanie_czola>]+#<dlugosc_czopu>] r[#<promien_fazki_walka>] f[#<szybkosc_posuwu>]
o125 endif
g0 x[[#<srednica_walka_do_fazki>]+2]
z-[[#<dlugosc_czopu>]+[#<planowanie_czola>]]
o121 endwhile ( koniec pętli czopa)
o120 endif (koniec procedury fazowania pozostałej krawędzi wałka)
g0 x[[#<srednica_walka_do_fazki>]+2]
G0 z0
M30
o<czop> endsub
Przykład pętli w tym subie:
Kod: Zaznacz cały
o60 while [#<Current_Dia> gt #<srednica_walka>] (dopóki wartość zmiennej #<Current_Dia> czyli aktualna średnica - przybranie jest większa od podanej w tabelce #<srednica_walka> wykonuj poniższe linie)
o61 if [#<Current_Dia>-#<przybranie_materialu> gt #<srednica_walka>] (jeżeli warunek jest prawdziwy wykonaj)
#<Current_Dia>=[#<Current_Dia>-#<przybranie_materialu>]
o61 else (lub)
#<Current_Dia>=#<srednica_walka> (wykonaj to)
o61 endif ( koniec procedury inkrementacji licznika)
X#<Current_Dia>
Z#<poczatek_z>
G1 Z-[#<dlugosc_detalu>] F#<szybkosc_posuwu>
G0 X[#<Current_Dia>+2]
Z[#<poczatek_z>+#<odjazd_z>]
o60 endwhile
while - zaczynamy pętlę, będzie się wykonywała, dopóki wielkość licznika nie przekroczy zakresu podanego w funkcji logicznej.
if - warunek, który musi być spełniony, żeby pętla wykonała w danym obiegu polecenie za nim stojące.
[/code]
-
Autor tematu - ELITA FORUM (min. 1000)
- Posty w temacie: 101
- Posty: 1473
- Rejestracja: 25 maja 2006, 14:39
- Lokalizacja: koło.wlkp
Miki nie o to mi chodziło. Chodziło o takie ruchy w pętli jak w tym kodzie niżej. Po to żeby zmieniać ewentualnie szybko parametry. Wrzuć to w symulator i zobaczysz o co chodzi
Kod: Zaznacz cały
g61 g7
G00 x20.3 z0
G01 x19.9 F2
G01 z1.5 F5
G00 z0 F5
G01 x19.8 F2
G01 z1.5 F5
G00 z0 F5
G01 x19.7 F2
G01 z1.5 F5
G00 z0 F5
G01 x19.6 F2
G01 z1.5 F5
G00 z0 F5
G01 x19.5 F2
G01 z1.5 F5
G00 z0 F5
G01 x19.4 F2
G01 z1.5 F5
G00 z0 F5
G01 x19.3 F2
G01 z1.5 F5
G00 z0 F5
G01 x19.2 F2
G01 z1.5 F5
G00 z0 F5
G01 x19.1 F2
G01 z1.5 F5
G00 z0 F5
G01 x19.05 F2
G01 z1.5 F5
G00 z0 F5
G01 x19 F2
G01 z1.5 F5
G00 z0 F5
G01 x18.95 F2
G01 z1.5 F5
G00 z0 F5
G01 x18.90 F2
G01 z1.5 F5
G00 z0 F5
G01 x18.85 F2
G01 z1.5 F5
G00 z0 F5
G00 x21
G00 z10
m30
-
- Lider FORUM (min. 2000)
- Posty w temacie: 2
- Posty: 3705
- Rejestracja: 15 sie 2010, 13:44
- Lokalizacja: Błonie
- Kontakt:
senio pisze:Miki nie o to mi chodziło. Chodziło o takie ruchy w pętli jak w tym kodzie niżej. Po to żeby zmieniać ewentualnie szybko parametry. Wrzuć to w symulator i zobaczysz o co chodzi
Kod: Zaznacz cały
g61 g7 Tu wstawiasz deklaracje zmiennych do tabelki G00 x20.3 z0 - to jest dojazd na pozycję startową - przed pętlą tu wstawiasz procedurę pętli analogicznie jak w mojej procedurze tu wstawiasz inkrementację licznika pętli G01 x19.9 F2 G01 z1.5 F5 G00 z0 F5 tu kończysz pętlę G00 x21 odjazd od materiału po x G00 z10 j.w. tylko po z z odjazdem o 10 mm od czoła m30
-
Autor tematu - ELITA FORUM (min. 1000)
- Posty w temacie: 101
- Posty: 1473
- Rejestracja: 25 maja 2006, 14:39
- Lokalizacja: koło.wlkp
Suby te podstawowe do prostych rzeczy używam ze strony Kamarajarucki pisze:senio
jakby Ci się chciało zebrać wszystkie SUBY i zapodać w pierwszym poście to powstałaby fajna baza dla potomnych
http://kamar-cnc.pl/?page_id=620
Coś bardziej zaawansowanego wolę w jakimś programie cam sobie narysować. Tak jest dla mnie łatwiej i szybciej, a dodatkowo mam obróbkę zgrubną i wykańczającą od razu naniesioną.