Procedura cięcia okręgu z wejściem narzedzia dla NGCGUI

Dyskusje dotyczące działania obsługi programu LinuxCNC
Awatar użytkownika

Autor tematu
jarenio
Specjalista poziom 3 (min. 600)
Specjalista poziom 3 (min. 600)
Posty w temacie: 2
Posty: 672
Rejestracja: 06 paź 2008, 22:48
Lokalizacja: TJE/KR
Kontakt:

Procedura cięcia okręgu z wejściem narzedzia dla NGCGUI

#1

Post napisał: jarenio » 29 sie 2012, 00:25

Witam
Wie może krórys z kolegów jak napisać uniwersalna procedurę do cięcia okręgu z wejściem dla narzedzia (palnika)
w sumie to 2 procedury by mnie interesowały, jedna na wycinanie kółka, druga otworu :)


Pozdrawiam; Jarek

Tagi:


kamar
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 3
Posty: 16240
Rejestracja: 18 wrz 2010, 06:17
Lokalizacja: Kozienice
Kontakt:

#2

Post napisał: kamar » 29 sie 2012, 13:08

Zamówiłem :) Jak to powinno być - punkt przebicia w jakiej zależności od średnicy ?
Do fajrantu ma być.
I przypomnij w którą stronę otwór a w którą kontur ?

Awatar użytkownika

ArturM
Specjalista poziom 1 (min. 100)
Specjalista poziom 1 (min. 100)
Posty w temacie: 1
Posty: 160
Rejestracja: 12 kwie 2008, 07:53
Lokalizacja: Kozienice
Kontakt:

#3

Post napisał: ArturM » 29 sie 2012, 13:44

kamar pisze:Zamówiłem :)
Do fajrantu ma być.
Gotowe.
Czyli do fajrantu mam wolne :D

Zrobiłem tak, że palnik ucieka o 1/4 promienia w bok i do góry, zapala łuk i potem łukiem najeżdża na pozycję palenia.

Podprogram do NCGGUI i wywołujący na początku suba touchoff.ngc

Kod: Zaznacz cały

( --------------------------------- ) 
(  W Y P A L A N I E   O T W O R U  ) 
(                                   ) 
( --------------------------------- ) 
( Kamar                             ) 
( Time-stamp: <2012-08-29 13:26>    ) 
( --------------------------------- ) 

(info: Wypalanie otworu) 

o<pl_otwor> sub

#<wys_przepalania> = #1 (=3 Wysokość przepalania) 
#<czas_przepalania> = #2 (=3 Czas przepalania) 
#<wys_palenia> = #3 (=3 Wysokość palenia) 
#<sr_otworu> = #4 (=20 śr. otworu) 
#<rodzaj> = #5 (=0 0 - otwór, 1 - koło) 
#<predkosc> = #6 (=200 Prędkość) 

( ------------------------------ ) 

#<promien> = [#<sr_otworu> / 2] ( promien otworu ) 

g17 G21 G61

g0 x0 y0

o100 if[#<rodzaj> eq 0] 
(otwór) 
  g0 X[#<promien> / 4] Y[#<promien> / 4] 
  o<touchoff> call [#<wys_przepalania>] [#<czas_przepalania>] [#<wys_przepalania>] 
  G3 X0 Y0 I0 J[-1 * [#<promien> / 4]] 
  G2 X0 Y0 I#<promien> J0 F#<predkosc> 
o100 else
(koło) 
  g0 X[-1 * [#<promien> / 4]] Y[#<promien> / 4] 
  o<touchoff> call [#<wys_przepalania>] [#<czas_przepalania>] [#<wys_przepalania>] 
  G2 X0 Y0 I0 J[-1 * [#<promien> / 4]] 
  G3 X0 Y0 I#<promien> J0 F#<predkosc> 
o100 endif

m5

o<pl_otwor> endsub
Ostatnio zmieniony 29 sie 2012, 14:23 przez ArturM, łącznie zmieniany 1 raz.


kamar
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 3
Posty: 16240
Rejestracja: 18 wrz 2010, 06:17
Lokalizacja: Kozienice
Kontakt:

#4

Post napisał: kamar » 29 sie 2012, 14:20

Niby działa chociaż przy małych srednicach odsunięcie trochę małe. Potestujcie i uwagi będą nanoszone :)

Awatar użytkownika

Autor tematu
jarenio
Specjalista poziom 3 (min. 600)
Specjalista poziom 3 (min. 600)
Posty w temacie: 2
Posty: 672
Rejestracja: 06 paź 2008, 22:48
Lokalizacja: TJE/KR
Kontakt:

#5

Post napisał: jarenio » 29 sie 2012, 17:13

moja wersja na bazie waszej :)
zroche zmieniłem 0,0 , dodałem kompensację narzędzia i wyjście po cięciu

Kod: Zaznacz cały

o<kolo> sub

#<wys_przepalania> = #1 (=3 Wysokość przepalania) 
#<czas_przepalania> = #2 (=3 Czas przepalania) 
#<wys_palenia> = #3 (=3 Wysokość palenia) 
#<sr_otworu> = #4 (=20 śr. otworu) 
#<pr_wpalenia> =#5 (=4 promień wpalenia) 
#<rodzaj> = #6 (=0 0 - otwór, 1 - koło) 
#<predkosc> = #7 (=200 Prędkość) 
#<srednica_dyszy> = #8 (=1.1 Srednica dyszy) 

( ------------------------------ ) 

#<promien> = [#<sr_otworu> / 2] ( promien otworu ) 
#<promien_dyszy> = [#<srednica_dyszy> / 2] 

g17 G21 G61 G40
G10 L1 P1 R#<promien_dyszy> 
T1M6 (Tool change to T1) 
g0 x0 y0
o100 if[#<rodzaj> eq 0] 
(otwór) 
  g0 X[#<pr_wpalenia>] Y[#<pr_wpalenia>+#<promien>] 

  o<touchoff> call [#<wys_przepalania>] [#<czas_przepalania>] [#<wys_przepalania>] 

  G41
   G3 X0 Y#<promien> I0 J[-1 * #<pr_wpalenia>] 
  G3 X0 Y#<promien> I#<promien> J0 F#<predkosc> 
  G3 X#<pr_wpalenia> Y[#<promien>-#<pr_wpalenia>] I #<pr_wpalenia> J0
  G40
o100 else
(koło) 
  g0 X[-1 * [#<pr_wpalenia>]] Y[#<promien>-#<pr_wpalenia>] 
  o<touchoff> call [#<wys_przepalania>] [#<czas_przepalania>] [#<wys_przepalania>] 
  G41
  G3 X0 Y#<promien> I0 J#<pr_wpalenia> 
  G2 X0 Y#<promien> I#<promien> J0 F#<predkosc> 
  G3 X[-1 * #<pr_wpalenia>] Y[#<promien>+#<pr_wpalenia>] I-[#<pr_wpalenia>] J0
  G40
o100 endif

m5

o<kolo> endsub 
Pozdrawiam; Jarek


kamar
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 3
Posty: 16240
Rejestracja: 18 wrz 2010, 06:17
Lokalizacja: Kozienice
Kontakt:

#6

Post napisał: kamar » 29 sie 2012, 18:33

Wolnoć Tomku w swoim domku :)
My z założenia nie używamy kompensacji narzędzia nigdzie w subach, a już na plażmie to dubelt. Zbyt nieprzewidywalna szerokość wypałki.
Nie korzystamy również z magazynu narzędzi.
Za to promień wejścia i wyjścia jest dobrym pomysłem :)
jarenio pisze:

Kod: Zaznacz cały

 o<touchoff> call [#<wys_przepalania>] [#<czas_przepalania>][#<wys_przepalania>]
oba błędziarze :)

ODPOWIEDZ Poprzedni tematNastępny temat

Wróć do „LinuxCNC (dawniej EMC2)”