Znaleziono 3 wyniki

autor: gluk
28 lip 2021, 22:18
Forum: LinuxCNC (dawniej EMC2)
Temat: Suby ngcgui
Odpowiedzi: 309
Odsłony: 32154

Re: Suby ngcgui

IMPULS3 pisze:można by wtedy mieć uniwersalnego suba na wszelkie regulacje kątowe. :)

Kod to g68 ale jakiś Linux nie za bardzo chce współpracować.


faktycznie wygląda że G68 nie zaimplementowano w LinuxCNC, jedyna możliwość uniwersalnego obrotu w osi Z to G10 L2 . Z ciekawości zrobiłem takiego suba z obrotem (powinien się nadawać jako uniwersalny szablon :) ), jedyna wada jaką na razie widzę, to że w przypadku awaryjnego przerwania suba układ pozostanie obrócony.

Kod: Zaznacz cały

o<szablon_alfa> sub

(szablon testujacy obrot aktualnego ukladu G5x o zadany kat)

#<alfa>        = #1 (=0 kat obrotu w stopniach )

(___przykladowe zmienne___)
#<posuw_z>     = #2 (=200 posuw w osi Z )
#<posuw>       = #3 (=300 posuw w osach X Y )
#<glebokosc>   = #4 (=-2 współrzędna Z )
#<s>           = #5 (=1 skala )
(___koniec przykladowych zmiennych___)

#<akt_uklad>        = #5220
#<obrot_akt_ukladu> = #[5210 + 20 * #<akt_uklad> ]

G10 L2 P0 R#<alfa> (ustawienie obrotu aktualnego układu G5x)

(___przykładowe komendy do obrotu___)
G0 Z5.000
G0 X0.000 Y0.000
G1 Z#<glebokosc> F#<posuw_z>
G5 I[6.825*#<s>] J[-0.590*#<s>] P[-7.017*#<s>] Q[0.00*#<s>] X[18.80*#<s>] Y[-8.500*#<s>] F#<posuw>
G5 I[-5.417*#<s>] J[2.467*#<s>] P[1.883*#<s>] Q[-3.783*#<s>] X[8.00*#<s>] Y[1.60*#<s>] F#<posuw>
G5 I[6.883*#<s>] J[-1.933*#<s>] P[-14.076*#<s>] Q[0.00*#<s>] X[32.40*#<s>] Y[-2.50*#<s>] F#<posuw>
G5 I[6.595*#<s>] J[0.00*#<s>] P[-5.415*#<s>] Q[-3.838*#<s>] X[50.00*#<s>] Y[3.300*#<s>] F#<posuw>
G5 I[0.00*#<s>] J[-12.180*#<s>] P[14.100*#<s>] Q[0.00*#<s>] X[26.500*#<s>] Y[-17.000*#<s>] F#<posuw>
G5 I[-10.560*#<s>] J[0.000*#<s>] P[7.873*#<s>] Q[-9.099*#<s>] X[0.000*#<s>] Y[0.000*#<s>] F#<posuw>
G1 Z0.000 F#<posuw_z>
G0 Z5.000
(___koniec przykładowych komend do obrotu___)

G10 L2 P0 R#<obrot_akt_ukladu> (przywracanie obrotu aktualnego układu G5x )

o<szablon_alfa> endsub


Obrazek
autor: gluk
28 lip 2021, 00:20
Forum: LinuxCNC (dawniej EMC2)
Temat: Suby ngcgui
Odpowiedzi: 309
Odsłony: 32154

Re: Suby ngcgui

IMPULS3 pisze: Ajakby ktoś jeszcze wiedział co dopisać aby się to mogło obrócić o dany kąt to można by wtedy mieć uniwersalnego suba na wszelkie regulacje kątowe

mówisz, masz. Poniżej przeróbka suba z dodanym kątem. Kąt w stopniach, 0° jak w dotychczasowym subie w osi X, kąt dodatni przeciwnie do wskazówek zegara (czyli 90° w kierunku Y):

o<polkula> sub

#<zero>= #1 (=0 zero)
#<promien> = #2 (=30 promien)
#<posuw roboczy> = #3 (=150 posuw roboczy)
#<srednica freza> = #4 (=8 srednica freza)
#<glebokosc>=#5 (=12 glebokosc)
#<przybranie>=#6 (=3 przybranie)
#<posuw dol>=#7 (=200 posuw dol)
#<alfa>=#8 (=0 kat w stopniach)

g80 g61

#<r> = [#<promien>+ #<srednica freza>/2]
#<s_x> = [ #<r> * COS[#<alfa>-180] ]
#<s_y> = [ #<r> * SIN[#<alfa>-180] ]
#<temp_x1> =[ #<s_x>+#<r> * COS[#<alfa>+90] ]
#<temp_y1> =[ #<s_y>+#<r> * SIN[#<alfa>+90] ]
#<temp_x2> =[ #<s_x>+#<r> * COS[#<alfa>+270] ]
#<temp_y2> =[ #<s_y>+#<r> * SIN[#<alfa>+270] ]

G0 z3
x#<temp_x1> y#<temp_y1>
#1=0
g0 z3
o10 while [#1 gt -#5]
#1=[#1- #6]
o11 if [#1 lt -#5]
#1=-#5
o11 endif
g1 z#1 f#7
g17
x#<temp_x1> y#<temp_y1>
g2f#3 y0 x0 r#<r>
y#<temp_y2> x#<temp_x2> r#<r>
g0 z3
y#<temp_y1> x#<temp_x1>


o10 endwhile
g0 z12
o<polkula> endsub
autor: gluk
27 lip 2021, 21:58
Forum: LinuxCNC (dawniej EMC2)
Temat: Suby ngcgui
Odpowiedzi: 309
Odsłony: 32154

Re: Suby ngcgui

IMPULS3 pisze:Coś tylko mało precyzyjnie działa głebokoś

to będzie działać mało precyzyjnie, bo nie do końca dobrze jest przemyślana pętla :)
ale tak na szybko dodanie jednego if-a w pętli powinno rozwiązać sprawę.

o<polkula> sub

#<zero>= #1 (=0 zero)
#<promien> = #2 (=30 promien)
#<posuw roboczy> = #3 (=150 posuw roboczy)
#<srednica freza> = #4 (=8 srednica freza)
#<glebokosc>=#5 (=12 glebokosc)
#<przybranie>=#6 (=3 przybranie)
#<posuw dol>=#7 (=200 posuw dol)
g80 g61

G0 z3
y[#2+#4/2] x-[#2+#4/2]
#1=0
g0 z3
o10 while [#1 gt -#5]
#1=[#1- #6 ]
o11 if [#1 lt -#5]
#1=-#5
o11 endif
g1 z#1 f#7
g17
y[#2+#4/2] x-[#2+#4/2]
g2f#3 y0 x0 r[#2+#4/2]
y-[#2+#4/2] x-[#2+#4/2] r[#2+#4/2]
g0 z3
y[#2+#4/2] x-[#2+#4/2]

o10 endwhile
g0 z12
o<polkula> endsub

Wróć do „Suby ngcgui”