Suby NGCGUI nie działają
-
Autor tematu - Specjalista poziom 2 (min. 300)
- Posty w temacie: 9
- Posty: 390
- Rejestracja: 15 lut 2011, 19:07
- Lokalizacja: Zielona Góra
Dziękuję kolego Miki. Już nie pierwszy raz mi pomagasz i już jakoś to moje Linuxowanie zaczyna wyglądać. Zaczynam coraz wiecej z tego rozumieć.
Czytałem, że w którymś wątku (przez google nie znalazłem który to ) ktoś wrzucił kilka ciekawych subów, właśnie do popularnych zadań. Typu wiercenie otworow na okregu, kieszen itp. Czy każdy sub musi mieć rozszerzenie ngc? Mam sporo tych oryginalnych ngc. Ale nic mi z tego nie chodzi. Parametry mogę wpisać ale co mi z tego skoro mi to makro nawet kodu nie wygeneruje. Fajny jest jeden z tych oryginalnych ngc gdzie podajesz x,y poczatku rowka x,y końca, szerokość i jednym kliknięciem robi rowek. Ale ten ciul też nie śmiga :/
Czytałem, że w którymś wątku (przez google nie znalazłem który to ) ktoś wrzucił kilka ciekawych subów, właśnie do popularnych zadań. Typu wiercenie otworow na okregu, kieszen itp. Czy każdy sub musi mieć rozszerzenie ngc? Mam sporo tych oryginalnych ngc. Ale nic mi z tego nie chodzi. Parametry mogę wpisać ale co mi z tego skoro mi to makro nawet kodu nie wygeneruje. Fajny jest jeden z tych oryginalnych ngc gdzie podajesz x,y poczatku rowka x,y końca, szerokość i jednym kliknięciem robi rowek. Ale ten ciul też nie śmiga :/
Tagi:
-
Autor tematu - Specjalista poziom 2 (min. 300)
- Posty w temacie: 9
- Posty: 390
- Rejestracja: 15 lut 2011, 19:07
- Lokalizacja: Zielona Góra
-
- Lider FORUM (min. 2000)
- Posty w temacie: 5
- Posty: 16281
- Rejestracja: 18 wrz 2010, 06:17
- Lokalizacja: Kozienice
- Kontakt:
Kod: Zaznacz cały
( ------------------------------ )
( Frezowanie po obwodzie )
( ------------------------------ )
( Kamar )
( Time-stamp: <2013-07-24 12:40> )
( ------------------------------ )
o<frezowanie_po_obwodzie> sub
#<obr> = #1 (=1500 obroty)
#<liczba_operacji> = #2 (=20 liczba operacji)
#<kat> = #3 (=-17 kąt)
#<predkosc> = #4 (=100 prędkość)
#<a_poczatkowe> = #5 (=0 A początkowe)
#<xpocz> = #6 (=0 X poczatkowy)
#<xkonc> = #7 (=57 X końcowy)
#<ypocz> = #8 (=0 Y początkowy)
#<ykonc> = #9 (=0 Y końcowy)
#<glebokosc> = #10 (=-2 głębokość)
#<skok> = #11 (=0.5 skok)
#<zpocz> = #12 (=0 Z początkowy)
#<woda> = #13 (=1 <> chłodzenie)
#<w_z> = #14 (wyjazd Z)
#<w_x> = #15 (wyjazd X)
#<w_y> = #16 (wyjazd Y)
( ------------------------------ )
#<operacja> = 0
g0 z5
g0 x#<xpocz> y#<ypocz>
m3 s#<obr>
o1 if [#<woda> eq 1]
m8
o1 endif
o100 while [#<operacja> lt #<liczba_operacji>]
g0 a[#<a_poczatkowe> + [#<operacja> * #<kat>]]
( --- tu operacja --- )
#<akt_z> = #<zpocz>
o200 while [#<akt_z> gt #<glebokosc>]
#<akt_z> = [#<akt_z> - #<skok>]
o210 if [#<akt_z> lt #<glebokosc>]
#<akt_z> = #<glebokosc>
o210 endif
g0 z#<akt_z>
g1 x#<xkonc> y#<ykonc> f#<predkosc>
g0 z5
g0 x#<xpocz> y#<ypocz>
o200 endwhile
( --- koniec operacji --- )
#<operacja> = [#<operacja> + 1]
o100 endwhile
g0 z#<w_z>
g0 x#<w_x>
g0 y#<w_y>
o<frezowanie_po_obwodzie> endsub
[ Dodano: 2014-05-27, 21:51 ]
Kod: Zaznacz cały
( ------------------------------ )
( O T W O R Y P O O K R E G U )
( ------------------------------ )
( Kamar )
( Time-stamp: <2013-08-09 13:59> )
( ------------------------------ )
( USTAWIENIA )
( ------------------------------ )
(info: Wycinanie otworów po okręgu)
o<otwory_po_okregu> sub
#<obr> = #1 (=1500 obroty)
#<frez> = #2 (=6 frez)
#<sr_otworu> = #3 (=6 średnica otworu)
#<srednica> = #4 (=100 średnica podziału)
#<il_otworow> = #5 (=5 ilosc otworow )
#<kat_poczatkowy> = #6 (=0 kąt początkowy)
#<glebokosc> = #7 (=-10 glebokosc )
#<skok> = #8 (=2 skok)
#<wyjazd> = #9 (=5 wyjazd)
#<predkosc_bok> = #10 (=60 prędkość bok)
#<predkosc_dol> = #11 (=30 prędkosć dół)
#<glebokosc_lba> = #12 (=0 głębokość łba)
#<srednica_lba> = #13 (=0 średnica łba)
#<woda> = #14 (=1 <> chłodzenie)
#<pompowanie> = #15 (=2 pompowanie)
#<wyjazd_wiertla> = #16 (=2 wyjazd wiertła)
#<w_z> = #17 (wyjazd Z)
#<w_x> = #18 (wyjazd X)
#<w_y> = #19 (wyjazd Y)
( ------------------------------ )
#<promien> = [#<srednica> / 2] ( promien )
#<kat> = [360 / #<il_otworow>] ( kat )
#<akt_otwor> = 0 ( aktualny otwor - od 0)
#<przesuniecie> = [[#<sr_otworu > / 2] - [#<frez> / 2]]
#<przesuniecie_lba> = [[#<srednica_lba> / 2] - [#<frez> / 2]]
( ustawiam pozycję startowa )
( G0 X#<promien> Y0 Z#<wyjazd> )
o100 while [#<akt_otwor> LT #<il_otworow>]
#<akt_kat> = [[#<akt_otwor> * #<kat>] + #<kat_poczatkowy>] ( kat * otwor )
#<poz_x> = [COS[#<akt_kat>] * #<promien>] ( X to RcosA )
#<poz_y> = [SIN[#<akt_kat>] * #<promien>] ( Y to RsinA )
g17 G21 G61
G0 Z#<wyjazd>
G0 X#<poz_x> Y#<poz_y> ( ustawiam pozycje )
g0 z1
( ------------------------------ )
( OPERACJA )
( ------------------------------ )
m3 s#<obr>
o1 if [#<woda> eq 1]
m8
o1 endif
o105 if [#<sr_otworu> gt #<frez>]
( frezuję )
#<akt_glebokosc> = 0
g0 z[#<akt_glebokosc>+1]
o20 while [#<akt_glebokosc> GT #<glebokosc>]
#<akt_glebokosc> = [#<akt_glebokosc> - #<skok>] ( ustalenie glebokosci )
( jezeli nizej limitu to jade max )
o30 if [#<akt_glebokosc> LT #<glebokosc>]
#<akt_glebokosc> = #<glebokosc>
o30 endif
g0 x[#<poz_x>] y[#<poz_y> + #<przesuniecie>]
g1 z[#<akt_glebokosc>] F#<predkosc_dol>
g2 x[#<poz_x>] y[[#<poz_y> + #<przesuniecie>]] i0 j[#<przesuniecie> * -1] F#<predkosc_bok>
(g0 y[#<poz_y>])
o20 endwhile
o105 else
G83 X#<poz_x> Y#<poz_y> Z#<glebokosc> R#<wyjazd_wiertla> Q#<pompowanie> F#<predkosc_dol>
o105 endif
G0 Z#<wyjazd>
( wybieram leb )
#<akt_glebokosc_lba> = 0
o110 if [#<glebokosc_lba> LT 0]
#<akt_glebokosc_lba> = 0
g0 z0
o120 while [#<akt_glebokosc_lba> GT #<glebokosc_lba>]
#<akt_glebokosc_lba> = [#<akt_glebokosc_lba> - #<skok>] ( ustalenie glebokosci )
( jezeli nizej limitu to jade max )
o130 if [#<akt_glebokosc_lba> LT #<glebokosc_lba>]
#<akt_glebokosc_lba> = #<glebokosc_lba>
o130 endif
g0 x[#<poz_x>] y[#<poz_y> + #<przesuniecie_lba>] F#<predkosc_bok>
g1 z#<akt_glebokosc_lba> F#<predkosc_dol>
g2 x[#<poz_x>] y[[#<poz_y> + #<przesuniecie_lba>]] i0 j[#<przesuniecie_lba> * -1] F#<predkosc_bok>
(g0 y[#<poz_y>] )
o120 endwhile
( g0 y[#<poz_y>])
g0 z#<wyjazd>
o110 endif
( ------------------------------ )
( ------------------------------ )
#<akt_otwor> = [#<akt_otwor> + 1] ( nastepny otwor )
o100 endwhile
g0 z#<wyjazd>
g0 z#<w_z>
g0 x#<w_x>
g0 y#<w_y>
o<otwory_po_okregu> endsub
-
Autor tematu - Specjalista poziom 2 (min. 300)
- Posty w temacie: 9
- Posty: 390
- Rejestracja: 15 lut 2011, 19:07
- Lokalizacja: Zielona Góra
-
- Lider FORUM (min. 2000)
- Posty w temacie: 3
- Posty: 3705
- Rejestracja: 15 sie 2010, 13:44
- Lokalizacja: Błonie
- Kontakt:
Wersja ósemki ciut rozbudowana:
Do skończenia jej jeszcze daleko, ale już robi to, co potrzebowałem.
Kod: Zaznacz cały
; Author: Z. Maciej "Miki" Bajkowski
; time stamp: 25.05.2014 12:37
; logiczny operator "lub" (OR)
; alternatywa wykluczająca (XOR) prawdziwe, gdy nieparzysta liczba argumentów jest prawdziwa
; logiczny operator "i" (AND)
; równe (EQ)
; nierówne (NE)
; większe od (GT)
; większe lub równe (GE)
; mniejsze (LT)
; mniejsze lub równe (LE)
;
; ATAN[Y]/[X] Four quadrant inverse tangent
; ABS[arg] wartość absolutna
; ACOS[arg] Inverse cosine
; ASIN[arg] Inverse sine
; COS[arg] cosinus
; EXP[arg] e raised to the given power
; FIX[arg] zaokrąglenie w dół
; FUP[arg] zaokrąglenie w górę
; ROUND[arg] zaokrąglenie
; LN[arg] logarytm
; SIN[arg] sinus
; SQRT[arg] Pierwiastek kwadratowy
; TAN[arg] Tangens
; EXISTS[arg] szuka zmiennej
(info: Ósemka crosman)
o<osemka> sub
#<sr_lufy> = #1 (=11.1 Średnica lufy)
#<sr_kartusza> = #2 (=22.4 Średnica kartusza)
#<odstep_lufa_kartusz> =#3 (=2 Odstęp między lufą a kartuszem)
#<warstwa_zewn> =#4 (=3 Grubość warstwy zewnetrznej)
#<z_pocz> = #5 (=0 Punkt początkowy na osi Z)
#<z_koncowe> = #6 (=-11 Punkt końcowy na osi Z)
#<przybranie_materialu> = #7 (=0.5 Przybranie)
#<odjazd_z> =#8 (=0.25 odjazd od mat. w osi Z)
#<posuw> = #9 (=100 Posuw roboczy)
#<posuw_koncowy> = #10 (=80 Posuw kończący)
#<woda> = #11 (=1 <> Chłodziwo)
#<g5x> = #12 (=54 Układ odniesienia G5x)
#<m> = #13 (=0 <> lewe obroty)
#<rpm> = #14 (=720 obroty)
#<max_rpm> = #15 (=1500 obroty maksymalne)
#<z_safe> = #16 (=1 Bezpieczne Z)
#<toolno> = #17 (=6 frez)
#<pomijaj_lufe> = #18 (=0 <> Pomijaj lufe)
#<pomijaj_kartusz> = #19 (=0 <> Pomijaj kartusz)
#<tooldiam> = [#5410]
g17 (xy plane)
g21 (mm)
g40 (cancel cutter radius compensation)
g49 (cancel tool lengthoffset)
g90 (absolute distance mode)
g94 (units/min feedrate)
g54 (Coordinate system 1 default)
#<tol> = 0.001
;g64 p#<tol> (path control stop)
g64 (wyłączona kontrola tolerancji, zakręty ścinane)
;g61 (dokładna jazda od punktu do punktu)
(ngcgui: Wywołaj plik procedury: /home/miki/linuxcnc-dev/nc_files/ngcgui_lib/helix.ngc)
(ngcgui: positional parameters:)
( #1 = toolno = 1)
( #2 = rpm = 720)
( #3 = feedrate = 10)
( #4 = dir = 3)
( #5 = inside = 1)
( #6 = cutdepth = 2)
( #7 = zincr = 1)
( #8 = zsafe = 0.5)
( #9 = x = 20)
( #10 = y = 0)
( #11 = hdiam = 11)
( #12 = faceangle = 0)
( #13 = d_angle = 0)
( #14 = zstart = 0)
( #15 = spin_notify = 0)
( #16 = use_g43 = 1)
( #17 = h_for_g43 = 0)
( #18 = verbose = 0)
#<x> =[[[#<sr_lufy>+#<sr_kartusza>]/2]+#<odstep_lufa_kartusz>]
o200 if [#<pomijaj_lufe> eq 0]
o<helix> call [#<toolno>][#<rpm>][#<posuw>][2][1][abs[#<z_koncowe>]][#<przybranie_materialu>][#<z_safe>][0][0][#<sr_lufy>][0][0][#<z_pocz>][0][1][0][0]
o200 endif
o205 if [#<pomijaj_kartusz> eq 0]
o<helix> call [#<toolno>][#<rpm>][#<posuw>][2][1][abs[#<z_koncowe>]][#<przybranie_materialu>][#<z_safe>][#<x>][0][#<sr_kartusza>][0][0][#<z_pocz>][0][1][0][0]
o205 endif
g41 d#<toolno> g0 x-2 y[#<sr_lufy>/2+#<warstwa_zewn>+#<tooldiam>]
g0 z#<z_pocz>
#<i>=0
o<2000> while [#<i> gt #<z_koncowe>]
g1 x[#<x>-2] y[#<sr_kartusza>/2+#<warstwa_zewn>] z[#<i>-#<przybranie_materialu>/4] f#<posuw>
g2 x[#<x>+#<sr_kartusza>/2+#<warstwa_zewn>] y0 z[#<i>-#<przybranie_materialu>/8*3] r[#<sr_kartusza>/2+#<warstwa_zewn>-0.4]
g2 x[#<x>-2] y-[#<sr_kartusza>/2+#<warstwa_zewn>] z[#<i>-#<przybranie_materialu>/2] r[#<sr_kartusza>/2+#<warstwa_zewn>-0.4]
g1 x-2 y-[#<sr_lufy>/2+#<warstwa_zewn>] z[#<i>-#<przybranie_materialu>/4*3]
g2 x-2 y[#<sr_lufy>/2+#<warstwa_zewn>] z[#<i>-#<przybranie_materialu>] r[#<sr_lufy>/2+#<warstwa_zewn>+0.4]
#<i>=[#<i>-#<przybranie_materialu>]
o<2000> endwhile
g40
o<osemka> endsub
Kod: Zaznacz cały
( ------------------------------ )
( Wiercenie )
( ------------------------------ )
( Miki )
( Time-stamp: <09-09-2013 17:31> )
( ------------------------------ )
(info: Wiercenie )
; Author: Z. Maciej "Miki" Bajkowski
; time stamp: 03.02.2013 21:37
; logiczny operator "lub" (OR)
; alternatywa wykluczająca (XOR) prawdziwe, gdy nieparzysta liczba argumentów jest prawdziwa
; logiczny operator "i" (AND)
; równe (EQ)
; nierówne (NE)
; większe od (GT)
; większe lub równe (GE)
; mniejsze (LT)
; mniejsze lub równe (LE)
;
; ATAN[Y]/[X] Four quadrant inverse tangent
; ABS[arg] wartość absolutna
; ACOS[arg] Inverse cosine
; ASIN[arg] Inverse sine
; COS[arg] cosinus
; EXP[arg] e raised to the given power
; FIX[arg] zaokrąglenie w dół
; FUP[arg] zaokrąglenie w górę
; ROUND[arg] zaokrąglenie
; LN[arg] logarytm
; SIN[arg] sinus
; SQRT[arg] Pierwiastek kwadratowy
; TAN[arg] Tangens
; EXISTS[arg] szuka zmiennej
o<wiercenie> sub
#<x_pocz> = #1 (=0 początek X)
#<y_pocz> = #2 (=0 początek Y)
#<z_pocz> = #3 (=0 początek Z)
#<glebokosc> = #4 (=10 glebokosc)
#<skok> = #5 (=2 skok)
#<ilosc_rzedow> = #6 (=1 ilosc rzedow)
#<ilosc_otworow> = #7 (=1 ilosc otworow)
#<szybkosc_posuwu> = #8 (=50 Posuw)
#<odstep_x> = #9 (=10 odstep X)
#<odstep_y> =#10 (=10 odstep Y)
#<odjazd_z> =#11 (=4 odjazd Z)
g8
m3 s1
#<ilosc_otworow_1>=#<ilosc_otworow>
#<ilosc_rzedow_1>=#<ilosc_rzedow>
o200 while [#<ilosc_rzedow_1> gt 0]
o110 while [#<ilosc_otworow_1> gt 0]
#<akt_glebokosc>=0
g0 z[#<z_pocz>+#<odjazd_z>]
g0 x[[#<x_pocz>]+[#<odstep_x>*#<ilosc_otworow_1>]-#<odstep_x>+0.1] y[[#<y_pocz>]+[#<odstep_y>*#<ilosc_rzedow_1>]-#<odstep_y>]
x[[#<x_pocz>]+[#<odstep_x>*#<ilosc_otworow_1>]-#<odstep_x>]
o100 while [#<akt_glebokosc> lt #<glebokosc>]
o5 if [[#<glebokosc>-#<akt_glebokosc>]gt #<skok>]
#<akt_glebokosc>=[#<akt_glebokosc>+#<skok>]
o5 else
#<akt_glebokosc> = #<glebokosc>
o5 endif
g0 z[#<z_pocz>-#<akt_glebokosc>+#<skok>+0.1]
g1 z[#<z_pocz>-[#<akt_glebokosc>]] f#<szybkosc_posuwu>
g0 z[#<z_pocz>+#<odjazd_z>]
o100 endwhile
g0 z[#<z_pocz>+#<odjazd_z>]
#<ilosc_otworow_1>=[#<ilosc_otworow_1>-1]
o1 if [#<ilosc_otworow_1> eq 0]
#<ilosc_rzedow_1>=[#<ilosc_rzedow_1>-1]
o1 endif
o2 if [#<ilosc_rzedow_1> eq 0]
#<ilosc_otworow>=0
o2 endif
o110 endwhile
#<ilosc_otworow_1>=#<ilosc_otworow>
o200 endwhile
o<wiercenie> endsub
-
Autor tematu - Specjalista poziom 2 (min. 300)
- Posty w temacie: 9
- Posty: 390
- Rejestracja: 15 lut 2011, 19:07
- Lokalizacja: Zielona Góra