Kieszeń w jedną stronę masz tu, litery były chyba w przykładach.
[ Dodano: 2012-09-09, 19:26 ]
Tu masz kontur prostokątny ale jeszcze mało testowany.
Kod: Zaznacz cały
( ---------------------------------- )
( K O N T U R P R O S T O K A T N Y )
( wewnetrzny i zewnetrzny )
( ---------------------------------- )
( Kamar )
( Time-stamp: <2012-08-28 14:00> )
( ---------------------------------- )
(info: Wycinanie konturu prostokątnego)
o<kontur_pr> sub
#<frez> = #1 (frez =6)
#<rozmiarX> = #2 (wymiar X =100)
#<rozmiarY> = #3 (wymiar Y =100)
#<glebokosc> = #4 (głębokość ABS =10)
#<akt_glebokosc> = #5 (głębokość startowa =0)
#<skok> = #6 (skok =3)
#<strona> = #7 (=0 0 - zew, 1 - wew )
#<zero> = #8 (zero =1)
#<pozycja_x> = #9 (pozycja X =0)
#<pozycja_y> = #10 (pozycja y =0)
#<predkosc_bok> = #11 (prędkość bok =80)
#<predkosc_dol> = #12 (prędkość dół =30)
#<woda> = #13 (=1 Woda: 1 - wł, 0 - wył)
(#<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> * -1]]
#<akt_glebokosc> = [#<akt_glebokosc> - #<skok>]
o110 if [#<akt_glebokosc> lt [#<glebokosc> * -1]]
#<akt_glebokosc> = [#<glebokosc> * -1]
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> * -1]]
#<akt_glebokosc> = [#<akt_glebokosc> - #<skok>]
o210 if [#<akt_glebokosc> lt [#<glebokosc> * -1]]
#<akt_glebokosc> = [#<glebokosc> * -1]
o210 endif
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
o<kontur_pr> endsub