Znaleziono 2 wyniki

autor: kris79
15 paź 2022, 14:24
Forum: LinuxCNC (dawniej EMC2)
Temat: Suby ngcgui
Odpowiedzi: 301
Odsłony: 27233

Re: Suby ngcgui

Dzięki. Już sobie poradziłem. Ale twój sobie też fajny, może go zaadoptuje do mojej nua 25 :)
autor: kris79
25 mar 2022, 18:27
Forum: LinuxCNC (dawniej EMC2)
Temat: Suby ngcgui
Odpowiedzi: 301
Odsłony: 27233

Re: Suby ngcgui

Witam.
Chcialem sobie napisać subik do szlifowania na szlifierce do płaszczyzn ale napotkałem problem.
Przy próbie wykonania tego suba zawiesza mi aplikację.
po usunięciu linii #<kierunek> = 0 i #<kierunek> = 1 program działa ale wtedy wchodzi tylko w jednego ifa, a chciałbym żeby raz wchodził w jednego a w nastepnej iteracji w drugiego żeby szlifowanie odbywało się raz od operatora do tyłu, a po obniżeniu zetki od tyłu do operatora. Wie ktoś może gdzie leży problem i dlaczego się zawiesza?

Kod: Zaznacz cały

( ------------------------------ )
(       PRZEJAZD I PLANOWANIE    )
( ------------------------------ )
( KW                             )
( Time-stamp: <2022-03-25 17:09> )
( ------------------------------ )

(info: Przejazd)
o<przejazd> sub

#<X0> = #1 (=0 X początkowy)
#<X1> = #2 (=10 X końcowy)
#<Y0> = #3 (=0 Y początkowy)
#<Y1> = #4 (=10 Y końcowy)
#<glebokosc> = #5  (=0.05 głębokość)
#<glebokosc_poczatkowa> = #6  (=0 głębokość początkowa )
#<skok> = #7 (=0.01 skok)
#<predkosc_bok> = #8 (=1000 prędkość bok)
#<predkosc_dol> = #9 (=1000 prędkość dół)
#<kopanie_szybkie> = #10 (=0 <> szybki wjazd)
#<szlifowanie_dwustronne> = #11 (=1 szlifowanie w dwie strony)
#<woda> = #12 (=1 <> chłodzenie)
#<frez> = #13   (=20 sciernica)
#<planowanie> = #14 (=1 planowanie powierzchni)
#<nachodzenie> = #15 (=15 zachodzenie sciernicy w mm)
#<kierunek> = #16 (=1 <> kierunek)

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

g17 g21 g61
g0 z5
g0 x#<X0> y#<Y0>
m3 s1
o1 if [#<woda> eq 1]
m8
o1 endif

#<przyrost> = [#<frez> - #<nachodzenie>]
#<x_pocz> = #<X0>
#<x_kon> = #<X1>
#<y_pocz> = #<Y0>
#<y_kon> = #<Y1>

#<glebokosc> = [#<glebokosc> * -1] ( koncowy Z )
#<akt_glebokosc> = #<glebokosc_poczatkowa> ( aktualna glebokosc )


o100 while [#<akt_glebokosc> GT #<glebokosc>]
     #<akt_glebokosc> = [#<akt_glebokosc> - #<skok>] ( ustalenie glebokosci )

     ( jezeli nizej limitu to jade max )
     o110 if [#<akt_glebokosc> LT #<glebokosc>] 
     	  #<akt_glebokosc> = #<glebokosc>
     o110 endif

     o115 if [#<kopanie_szybkie>]
       G0 z[#<glebokosc>]
     o115 else
       G0 z[#<akt_glebokosc> + #<skok> + 1]
       G1 z[#<akt_glebokosc>] f[#<predkosc_dol>]
     o115 endif
	 
	 o116 if[#<planowanie>]
	     o118 if[#<szlifowanie_dwustronne>] (szlifowanie od y zera do y koncowego i spowrotem)
		 #<kierunek_szlifu> = #<kierunek>
		 o140 if[#<kierunek_szlifu>]
		 	#<y_pocz> = #<Y0>
                        G1 y#<y_pocz> F#<predkosc_bok> 
			G1 x#<x_kon> F#<predkosc_bok> 
			G1 x#<x_pocz> F#<predkosc_bok>
			o150 while [#<y_pocz> LT #<Y1>]
				#<y_pocz> = [#<y_pocz> + #<przyrost>]
				o160 if [#<y_pocz> GT #<Y1>]
					#<y_pocz> = #<Y1>>
				o160 endif
	
				(frezowanie)
	                        G1 y#<y_pocz> F#<predkosc_bok> 
				G1 x#<x_kon> F#<predkosc_bok>            
				(powrot)
				G1 x#<x_pocz> F#<predkosc_bok> 
			o150 endwhile
		 	G0 x#<X0> y#<Y0>
			#<kierunek> = 0	
		 o140 else
			#<y_kon> = #<Y1>
			G1 y#<y_kon> F#<predkosc_bok> 
			G1 x#<x_kon> F#<predkosc_bok> 
			G1 x#<x_pocz> F#<predkosc_bok>
			o151 while [#<y_kon> GT #<Y0>]
				#<y_kon> = [#<y_kon> - #<przyrost>]
				o161 if [#<y_kon> LT #<y_pocz>]
					#<y_kon> = #<y_pocz>
				o161 endif
	
				(szlifowanie)
	                        G1 y#<y_kon> F#<predkosc_bok> 
				G1 x#<x_kon> F#<predkosc_bok>            
				(powrot)
				G1 x#<x_pocz> F#<predkosc_bok> 
			o151 endwhile
		 	G0 x#<X0> y#<Y1>
			#<kierunek> = 1		
		 o140 endif	
		 
             o118 else (szlifowanie od y zera do y koncowego)
		#<y_pocz> = #<Y0>
		 G1 x#<x_kon> F#<predkosc_bok> 
		 G1 x#<x_pocz> F#<predkosc_bok>
		 o121 while [#<y_pocz> LT #<y_kon>]
			#<y_pocz> = [#<y_pocz> + #<przyrost>]
			o122 if [#<y_pocz> GT #<y_kon>]
				#<y_pocz> = #<y_kon>
			o122 endif

			(szlifowanie)
                        G1 y#<y_pocz>
			G1 x#<x_kon> F#<predkosc_bok>            
			(powrot)
			G1 x#<x_pocz> F#<predkosc_bok> 
		 o121 endwhile
		 G0 x#<X0> y#<Y0>
             o118 endif
	o116 else
		G1 x#<X1> y#<Y1> F#<predkosc_bok> ( przejazd )
		(sprawdzam czy to szlifowanie w dwie strony)
		o120 if[#<szlifowanie_dwustronne>]
		  G1 x#<X0> y#<Y0> F#<predkosc_bok> ( przejazd w druga strone)
		o120 else
		(sprawdzam czy to koncowa glebokosc czy wracac)
		o130 if[#<akt_glebokosc> GT #<glebokosc>]
		  G0 z[#<glebokosc_poczatkowa> + 2]
		  G0 x#<X0> y#<Y0>
		o130 endif
	o116 endif
o100 endwhile

o<przejazd> endsub

Wróć do „Suby ngcgui”