Suby ngcgui

Dyskusje dotyczące działania obsługi programu LinuxCNC

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

Re: Suby ngcgui

#151

Post napisał: kamar » 25 sie 2019, 12:42

Tak szczerze to po urlopie uszami mi wypływa :)



Tagi:

Awatar użytkownika

Autor tematu
senio
ELITA FORUM (min. 1000)
ELITA FORUM (min. 1000)
Posty w temacie: 98
Posty: 1459
Rejestracja: 25 maja 2006, 14:39
Lokalizacja: koło.wlkp

Re: Suby ngcgui

#152

Post napisał: senio » 16 wrz 2019, 22:36

@kamar

Jest jakiś sub to by frezem palcowym wycinał kwadrat czy prostokąt ?


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

Re: Suby ngcgui

#153

Post napisał: kamar » 17 wrz 2019, 06:12

Mam coś takiego ale bez gwarancji bo nieużywany u mnie :)

Kod: Zaznacz cały

( ---------------------------------- )
(         P R O S T O K A T          )
( ---------------------------------- )
( Kamar                              )
( Time-stamp: <2017-10-18 09:48>     )
( ---------------------------------- )

(info: Wycinanie konturu prostokątnego)

o<prostokat> sub

#<obr> = #1 (=1500 obroty)
#<frez> = #2 (=6 frez)
#<rozmiarX> = #3 (=100 wymiar X)
#<rozmiarY> = #4 (=100 wymiar Y)
#<glebokosc> = #5 (=-2 głębokość)
#<akt_glebokosc> = #6 (=0 głębokość startowa)
#<skok> = #7 (=2 dobieranie)
#<strona> = #8 (=0 <> wewnętrzny)
#<zero> = #9 (=1 pozycja zera [1-4])
#<pozycja_x> = #10 (=0 X początkowy)
#<pozycja_y> = #11 (=0 Y początkowy)
#<predkosc_bok> = #12 (=80 prędkość bok)
#<predkosc_dol> = #13 (=30 prędkość dół)
#<woda> = #14 (=1 <> woda)
#<w_z> = #15 (wyjazd Z)
#<w_x> = #16 (wyjazd X)
#<w_y> = #17 (wyjazd Y)

(#<polowa> = 1)

#<startXst0> = 0
#<startYst0> = 0
#<startXst1> = 0
#<startYst1> = 0
#<bokA> = 0
#<bokB> = 0
#<bokC> = 0
#<bokD> = 0

o80 if [#<zero> eq 1]
#<startXst0> = [#<pozycja_x>-[#<frez>/2]]
#<startYst0> = [#<pozycja_y>-[#<frez>/2]]
#<startXst1> = [#<pozycja_x>+[#<frez>/2]]
#<startYst1> = [#<pozycja_y>+[#<frez>/2]]
#<bokA> = [#<rozmiarX> + #<frez>]
#<bokB> = [#<rozmiarY> + #<frez>]
#<bokC> = [#<rozmiarX> - #<frez>]
#<bokD> = [#<rozmiarY> - #<frez>]
o80 endif

o81 if [#<zero> eq 2]
#<startXst0> = [#<pozycja_x>+[#<frez>/2]]
#<startYst0> = [#<pozycja_y>-[#<frez>/2]]
#<startXst1> = [#<pozycja_x>-[#<frez>/2]]
#<startYst1> = [#<pozycja_y>+[#<frez>/2]]
#<bokA> = [#<rozmiarX> + #<frez>]
#<bokB> = [#<rozmiarY> + #<frez>]
#<bokC> = [#<rozmiarX> - #<frez>]
#<bokD> = [#<rozmiarY> - #<frez>]
o81 endif

o82 if [#<zero> eq 3]
#<startXst0> = [#<pozycja_x>+[#<frez>/2]]
#<startYst0> = [#<pozycja_y>+[#<frez>/2]]
#<startXst1> = [[#<pozycja_x>+[#<frez>/2]]+#<rozmiarX>]
#<startYst1> = [#<pozycja_y>+[#<frez>/2]]
#<bokA> = [#<rozmiarX> + #<frez>]
#<bokB> = [#<rozmiarY> + #<frez>]
#<bokC> = [#<rozmiarX> - #<frez>]
#<bokD> = [#<rozmiarY> - #<frez>]
o82 endif

o83 if [#<zero> eq 4]
#<startXst0> = [#<pozycja_x>-[#<frez>/2]]
#<startYst0> = [#<pozycja_y>+[#<frez>/2]]
#<startXst1> = [[#<pozycja_x>+[#<frez>/2]]+#<rozmiarX>]
#<startYst1> = [#<pozycja_y>+[#<frez>/2]]
#<bokA> = [#<rozmiarX> + #<frez>]
#<bokB> = [#<rozmiarY> + #<frez>]
#<bokC> = [#<rozmiarX> - #<frez>]
#<bokD> = [#<rozmiarY> - #<frez>]
o83 endif


(zewnetrzny)
o100 if [#<strona> eq 0]
	( ------------------------------ )
	(	#<rozmiarX> = [#<rozmiarX> + #<frez>])
	(	#<rozmiarY> = [#<rozmiarY> + #<frez>])
	( ------------------------------ )
	g61
	m3 s1
	o1 if [#<woda> eq 1]
	m8
	o1 endif
	G0 Z5
	g0 X[#<startXst0>] Y[#<startYst0>]
	G92 X0 Y0
	G0 Z2
	#<akt_glebokosc> = 0
	o101 while [#<akt_glebokosc> gt #<glebokosc>]
  	#<akt_glebokosc> = [#<akt_glebokosc> - #<skok>]
  	o110 if [#<akt_glebokosc> lt #<glebokosc>]
  	#<akt_glebokosc> = #<glebokosc>
  	o110 endif
	g1 z#<akt_glebokosc> f#<predkosc_dol>

		o120 if [#<zero> eq 1]
			g1 x#<bokA> f#<predkosc_bok> 
			g1 y#<bokB>
			g1 x0 
			g1 y0 
		o120 endif

 		o121 if [#<zero> eq 2]
			g1 Y#<bokB> f#<predkosc_bok>
			g1 X[#<bokA> * -1]
			g1 Y0
			g1 X0
		o121 endif

		o122 if [#<zero> eq 3]
			g1 X[#<bokA> * -1] f#<predkosc_bok>
			g1 Y[#<bokB> * -1]
			g1 X0
			g1 Y0
		o122 endif

		o123 if [#<zero> eq 4]
			g1 Y[#<bokB> * -1] f#<predkosc_bok>
			g1 X#<bokA>
			g1 Y0
			g1 X0
		o123 endif

	o101 endwhile
	g0 z5
	G92 X[#<startXst0>] Y[#<startYst0>]


	o100 else
	(wewnetrzny)
	( ------------------------------ )
	#<rozmiarX> = [#<rozmiarX> - #<frez>]
	#<rozmiarY> = [#<rozmiarY> - #<frez>]
	( ------------------------------ )
	g61
	m3 s1 m8
	G0 Z5
	g0 X[#<startXst1>] Y[#<startYst1>]
	G92 X0 Y0
	G0 Z2
	#<akt_glebokosc> = 0
	o201 while [#<akt_glebokosc> gt #<glebokosc>]
  	#<akt_glebokosc> = [#<akt_glebokosc> - #<skok>]
  	o210 if [#<akt_glebokosc> lt #<glebokosc>]
  	#<akt_glebokosc> = #<glebokosc>
  	o210 endif

	g1 z#<akt_glebokosc> f#<predkosc_dol>
		o220 if [#<zero> eq 1]
			g1 x#<bokC> f#<predkosc_bok> 
			g1 y#<bokD>
			g1 x0 
			g1 y0 
		o220 endif

 		o221 if [#<zero> eq 2]
			g1 Y#<bokC> f#<predkosc_bok>
			g1 X[#<bokD> * -1]
			g1 Y0
			g1 X0
		o221 endif

		o222 if [#<zero> eq 3]
			g1 X[#<bokC> * -1] f#<predkosc_bok>
			g1 Y[#<bokD> * -1]
			g1 X0
			g1 Y0
		o222 endif

		o223 if [#<zero> eq 4]
			g1 Y[#<bokC> * -1] f#<predkosc_bok>
			g1 X#<bokD>
			g1 Y0
			g1 X0
		o223 endif

	( g1 z#<akt_glebokosc> f#<predkosc_dol> )
	( g1 y#<rozmiarY> f#<predkosc_bok> )
	( g1 x#<rozmiarX> )
	( g1 y0 )
	( g1 x0 )

	o201 endwhile
	g0 z5
	G92 X[#<startXst1>] Y[#<startYst1>]
	o100 endif
o80 endif

g0 z#<w_z>
g0 x#<w_x>
g0 y#<w_y>

o<prostokat> endsub

Awatar użytkownika

Autor tematu
senio
ELITA FORUM (min. 1000)
ELITA FORUM (min. 1000)
Posty w temacie: 98
Posty: 1459
Rejestracja: 25 maja 2006, 14:39
Lokalizacja: koło.wlkp

Re: Suby ngcgui

#154

Post napisał: senio » 17 wrz 2019, 09:33

Będę dzisiaj wycinał otwory pod wyłączniki w plastikach obudowy do sterowania to go przetestuję. Strat nie narobię żadnych w razie "W", ale musi być dobrze. Dzięki. Napisze po wycinaniu jak idzie.

Dodane 1 godzina 10 minuty 38 sekundy:
Na symulatorze jest generalnie OK. Tylko rysuje wymiary X i Y odwrotnie. Zamieniłem literki w tabelkach jak niżej i jest OK. Znaczenia chyba żadnego to nie ma na pracę a robotę robi OK :).

Kod: Zaznacz cały

#<rozmiarX> = #3 (=100 wymiar Y)
#<rozmiarY> = #4 (=50 wymiar X) 


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

Re: Suby ngcgui

#155

Post napisał: kamar » 24 wrz 2019, 10:52

Dla potrzebujących trochę inny subik frezowania po obwodzie.

Kod: Zaznacz cały

( ------------------------------ )
(    FREZOWANIE PO OBWODZIE      )
( ------------------------------ )
( Kamar                          )
( Time-stamp: <2019-09-24 10:22> )
( ------------------------------ )

o<frezowanie_po_obwodzie_a_cykl> sub

#<kat_poczatkowy> = #1 (=45 kąt początkowy)
#<kat_koncowy> = #2 (=90 kąt końcowy)
#<liczba_operacji> = #3 (=1 liczba operacji)
#<odstep> = #4 (=30 odstęp między operacjami)
#<x_poczatkowy> = #5 (=0 X początkowy)
#<x_koncowy> = #6 (=-10 X końcowy)
#<skok> = #7 (=2 skok A)
#<z_poczatkowy> = #8 (=0 Z początkowy)
#<z_koncowy> = #9 (=-0.5 Z końcowy)
#<skok_z> = #10 (=0.1 skok Z)
#<predkosc> = #11 (=200 prędkość)
#<woda> = #12 (=0 <> chłodzenie)

m3 s1
o1 if [#<woda> eq 1]
m8
o1 endif

g0 z[#<z_poczatkowy> + 1]
g0 a#<kat_poczatkowy>
g0 x#<x_poczatkowy> y0 
g1 z#<z_poczatkowy> f#<predkosc>

#<akt_z> = #<z_poczatkowy>
#<akt_operacja> = 0

o1000 while [#<akt_operacja> LT #<liczba_operacji>]

o100 while [#<akt_z> gt #<z_koncowy>]
  #<akt_z> = [#<akt_z> - #<skok_z>]
  o110 if [#<akt_z> lt #<z_koncowy>]
    #<akt_z> = #<z_koncowy>
  o110 endif
  
  #<akt_x> = #<x_poczatkowy>
  #<akt_a> = [#<kat_poczatkowy> - #<skok>]

  o200 while [#<akt_a> lt #<kat_koncowy>]
    #<akt_a> = [#<akt_a> + #<skok>]
    o210 if [#<akt_a> gt #<kat_koncowy>]
      #<akt_a> = #<kat_koncowy>
    o210 endif

    g0 a#<akt_a>
    g1 z#<akt_z> f#<predkosc>
    g1 x#<x_koncowy>

    #<akt_a> = [#<akt_a> + #<skok>]
    o220 if [#<akt_a> gt #<kat_koncowy>]
      #<akt_a> = #<kat_koncowy>
    o220 endif

    g0 a[#<akt_a>]
    g1 x#<x_poczatkowy> f#<predkosc>

  o200 endwhile
  g0 z[#<z_poczatkowy> + 1]
  (g0 a#<kat_poczatkowy>)

o100 endwhile

  #<akt_operacja> = [#<akt_operacja> + 1]
  #<kat_poczatkowy> = [#<kat_poczatkowy> + #<odstep>]
  #<kat_koncowy> = [#<kat_koncowy> + #<odstep>]

g0 a#<kat_poczatkowy>
g0 x#<x_poczatkowy> y0 
g0 z[#<z_poczatkowy> + 1]
g1 z#<z_poczatkowy> f#<predkosc>
#<akt_z> = #<z_poczatkowy>
o1000 endwhile

o<frezowanie_po_obwodzie_a_cykl> endsub
I subik w akcji :)



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

Re: Suby ngcgui

#156

Post napisał: kamar » 21 lis 2019, 15:55

Świeżutki subik na kanał smarujący panewki.
Przelotowy da się zrobić gwintem na tokarce ale ze ślepym jest kłopot.

Obrazek Obrazek

Kod: Zaznacz cały

( ------------------------------ )
(  Kanał  spiralny               )
( ------------------------------ )
( Kamar                          )
( Time-stamp: <2019-11-21 13:54> )

( ------------------------------ )
(          USTAWIENIA            )
( ------------------------------ )

(info: Spiralny kanal smarujący)

o<kanal_spirala> sub

#<obr> = #1 (=1500 obroty)
#<frez> = #2 (=8 frez)
#<sr_otworu> = #3 (=20 średnica otworu)
#<gl_kanalu> = #4 (=2 głębokość kanału)
#<dobieranie> = #5 (=1 dobieranie)
#<glebokosc_pocz> = #6 (=-2 głębokość początkowa)
#<glebokosc_koncowa> = #7 (=-60 głębokość końcowa)
#<predkosc> = #8 (=60 prędkość)
#<liczba_zwojow> = #9 (=2 liczba zwojów)
#<woda> = #10 (=1 <> chlodzenie)
#<w_z> = #11 (wyjazd Z)
#<w_x> = #12 (wyjazd X)
#<w_y> = #13 (wyjazd Y)

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

#<skok> = ABS[#<skok>]
#<promien_freza> = [#<frez> / 2] ( promien freza )
#<promien_otworu> = [#<sr_otworu> / 2] ( promien otworu )
#<promien> = [#<promien_otworu>  - #<promien_freza>] ( dojazd )
#<gl_kanalu> = ABS[#<gl_kanalu>]

g0 z5
g0 x0 y0 
m3 s#<obr>

o1 if [#<woda> eq 1]
m8
o1 endif


#1 = 0
g0 Z#<glebokosc_pocz> F#<predkosc>
G0 X[-1 * [#<promien> -1]] F#<predkosc>
#<akt_glebokosc> = 0

o100 while [#<akt_glebokosc> LT #<gl_kanalu>]

  #<akt_glebokosc> = [#<akt_glebokosc> + #<dobieranie>]
  o110 if[#<akt_glebokosc> GT #<gl_kanalu>]
	  #<akt_glebokosc> = #<gl_kanalu>
  o110 endif

  G1 X[[-1 * #<promien>] - #<akt_glebokosc>] F#<predkosc>
	G2 X[[-1 * #<promien>] - #<akt_glebokosc>] I[#<promien> + #<akt_glebokosc>] J0 Z#<glebokosc_koncowa> P#<liczba_zwojow>

  g0 X[-1 * [#<promien> - 1]] 
	g0 Z#<glebokosc_pocz> 
o100 endwhile


m5
g0 x#<w_x> y#<w_y>
g0 z#<w_z>


o<kanal_spirala> endsub 

Awatar użytkownika

Autor tematu
senio
ELITA FORUM (min. 1000)
ELITA FORUM (min. 1000)
Posty w temacie: 98
Posty: 1459
Rejestracja: 25 maja 2006, 14:39
Lokalizacja: koło.wlkp

Re: Suby ngcgui

#157

Post napisał: senio » 21 lis 2019, 17:26

Prawie można by sobie obliczyć i tym gwintować. Ale nie wszystko się da. Nie przyjmuje ułamków. Np. 9 mm gwintu fi 30 o skoku 1.25. Trzeba by zrobić od 0 do -9 i wychodzi 7.2 zwojów. Krzyczy wartość P nie jest całkowita :). Ale i tak plusik leci :). Może kiedyś taki gwint powstanie. A przydał by się czasami.


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

Re: Suby ngcgui

#158

Post napisał: kamar » 21 lis 2019, 17:43

Cudów ni ma :) Nie da się zrobić gwintu nawet na tokarce jak nie masz wolnego wjazdu. Tylko po co Ci ślepy gwint :)

Awatar użytkownika

Autor tematu
senio
ELITA FORUM (min. 1000)
ELITA FORUM (min. 1000)
Posty w temacie: 98
Posty: 1459
Rejestracja: 25 maja 2006, 14:39
Lokalizacja: koło.wlkp

Re: Suby ngcgui

#159

Post napisał: senio » 21 lis 2019, 18:01

kamar pisze:
21 lis 2019, 17:43
Cudów ni ma :) Nie da się zrobić gwintu nawet na tokarce jak nie masz wolnego wjazdu.
Znaczy inaczej. Da się tym subem teoretycznie gwintować. Tylko trzeba tak obliczyć żeby wyszło na liczby całkowite. I np . ten gwint da się zrobić na 9 mm głęboko tylko trzeba zaczynać od +1 do -9. Wtedy 10/1.25 wyjdzie 8 zwojów i na 9 mm wyjda prawidłowe. To samo z innymi tylko w powietrzu trzeba zaczynać jak nie pasuje do liczb całkowitych. Cudaków nie zrobi typu 1.35 czy inne bzdury, ale to pomijalne. Podstawowe rzeczy ogarnie ten subik i w gwintowaniu na upartego.
kamar pisze:
21 lis 2019, 17:43
Tylko po co Ci ślepy gwint :)
No jest np. tuleja z denkiem i trzeba nagwintować. Czysto teoretycznie :) ale raz na x lat może się przytrafić :).

Edit.

Da się wszystko nawet zwariowane robić. Tylko trzeba przeliczyć i dać zetkę odpowiednio w górze na plusie :)


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

Re: Suby ngcgui

#160

Post napisał: kamar » 22 lis 2019, 06:28

I subik w akcji.


ODPOWIEDZ Poprzedni tematNastępny temat

Wróć do „LinuxCNC (dawniej EMC2)”