Znaleziono 3 wyniki

autor: MlKl
28 maja 2014, 11:03
Forum: LinuxCNC (dawniej EMC2)
Temat: Suby NGCGUI nie działają
Odpowiedzi: 16
Odsłony: 2055

Wersja ósemki ciut rozbudowana:

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
Do skończenia jej jeszcze daleko, ale już robi to, co potrzebowałem.

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: MlKl
27 maja 2014, 19:25
Forum: LinuxCNC (dawniej EMC2)
Temat: Suby NGCGUI nie działają
Odpowiedzi: 16
Odsłony: 2055

Te "oryginalne" w większości są do d... Pisali je programiści z powiedzmy: Nikłym pojęciem o obróbce. Hole_circle.py u mnie w ogóle nie odpala, chyba wersja Pythona mu nie pasi.

Obrazek


Na fotce masz procedurkę do robienia tzw ósemek do wiartrówki, można wykorzystać np do robienia kieszeni na przekładnię pasową o różnych kołach po małej modyfikacji.

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)

o<osemka> sub
#<sr_lufy> = #1 (=11 Średnica lufy)
#<sr_kartusza> = #2 (=22 Ś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 (=0 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)


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)
(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>]


o<helix> call [1][#<rpm>][#<posuw>][2][1][abs[#<z_koncowe>]][#<przybranie_materialu>][#<z_safe>][0][0][#<sr_lufy>][0][0][#<z_pocz>][0][1][0][0]
o<helix> call [1][#<rpm>][#<posuw>][2][1][abs[#<z_koncowe>]][#<przybranie_materialu>][#<z_safe>][#<x>][0][#<sr_kartusza>][0][0][#<z_pocz>][0][1][0][0]
g41 
g0 x-2 y[#<sr_lufy>/2+#<warstwa_zewn>]
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]
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

Procedurka nieco partyzancka, na maszynie mam nieco lepiej rozwiniętą, akurat dziś jej używam.

W treści dwa razy wywołuję procedurę helix_ngc, za każdym razem wprowadzając do niej dane z tabelki, a potem dookoła robię taką obwódkę z trzech łuków i dwóch odcinków.

Brakuje tu jeszcze wyboru freza i dojazdu z uwzględnieniem połowy jego średnicy.

[ Dodano: 2014-05-27, 19:48 ]
Obrazek
autor: MlKl
26 maja 2014, 13:52
Forum: LinuxCNC (dawniej EMC2)
Temat: Suby NGCGUI nie działają
Odpowiedzi: 16
Odsłony: 2055

pliki procedur nie siedzą tam, gdzie wskazałeś w .ini

Popraw ścieżki dostępu.

Wróć do „Suby NGCGUI nie działają”