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