Welcome, guest! Login / Register - Why register?
Psst.. new poll here.
Psst.. new forums here.
Microsoft is blocking us again (TY IP Reputation!) so dont bother with any of their useless mail servers here and just use oauth login instead. Thank the nice Russians for causing that. :)

Paste

Pasted as C++ by piasdom ( 16 years ago )
O100 sub (square [x0] [y0] [z0] [zr] [f1] [f2])
        (cut a 1x1 square)
        (#1 = z0 = depth of cut)
        (#2 = zr = retract after cut)
        (#3 = f1 = feed to cutting depth)
        (#4 = f2 = feed for square)
        (assumes already at safety height)
G0 X0 Y0
        (Can replace the following 4-6 lines with custon code)
G1 Z#1 F#3
G1 X1 F#4
G1 Y1
G1 X0
G1 Y0
G0 Z#2

O100 endsub

O200 sub (l2r [x0] [y0] [dx] [count] [z0] [zr] [f1] [f2])
        (#1 = x0 = least x coordinate)
        (#2 = y0 = common y coordinate for all squares)
        (#3 = dx = increment between x coordinates)
        (#4 = count = number of squares in row)
        (#5 = z0 = depth of cut)
        (#6 = zr = retract after cut)
        (#7 = f1 = feed to cutting depth)
        (#8 = f2 = feed for square)
        (cut squares from left to right at constant Y)
(#9 = temporary for count of squares in row)
#9=0
O210 while [#9 LT #4]

G0 X[#1+#9*#3] Y#2
G92 X0 Y0
O100 call [#5] [#6] [#7] [#8]
G92.1

#9=[#9+1]
O210 endwhile
O200 endsub

O300 sub (r2l [x0] [y0] [dx] [count] [z0] [zr] [f1] [f2])
        (parameters as for O200 sub)
        (cut squares from right to left at constant Y)
#9=[#4-1]
O310 while [#9 GE 0]

G0 X[#1+#9*#3] Y#2
G92 X0 Y0
O100 call [#5] [#6] [#7] [#8]
G92.1

#9=[#9-1]
O310 endwhile
O300 endsub

O400 sub (squares [x0] [y0] [dx] [dy] [xcount] [ycount] [z0] [zr] [f1] [f2])
        (#1 = x0 = least x coordinate)
        (#2 = y0 = least y coordinate)
        (#3 = dx = increment between x coordinates)
        (#4 = dy = increment between y coordinates)
        (#5 = xcount = number of squares in row)
        (#6 = ycount = number of rows)
        (#7 = z0 = depth of cut)
        (#8 = zr = retract after cut)
        (#9 = f1 = feed to cutting depth)
       (#10 = f2 = feed for square)
(#11 = temporary for count of rows)
#11=0
O410 while [#11 LE #6]
O420 if [[#11 MOD 2] EQ 0]
O200 call [#1] [#2+#11*#4] [#3] [#5] [#7] [#8] [#9] [#10]
O420 else
O300 call [#1] [#2+#11*#4] [#3] [#5] [#7] [#8] [#9] [#10]
O420 endif
#11=[#11+1]
O410 endwhile
O400 endsub

G92.1

G20
M3 S1000
O400 call [0] [0] [1.5] [1.5] [4] [5] [-1] [1] [12] [30]
M2

 

Revise this Paste

Your Name: Code Language: