#<_z_clearance> = 0.2 # = 4 #<_zd> = 0.6 o sub G90.1 # = [1.720/2] # = 0.5 # = 0.25 ;# = [SQRT[[#**2-[#+#]**2] # = [SQRT[#**2-[#]**2] G40 G41 D1 G0 X[#1+[#]/SQRT[2]] Y[#2+[#]/SQRT[2]] G1 Z#<_zd> ; NE corner G1 X[#1+[+#+# ]/SQRT[2]] Y[#2+[#+# ]/SQRT[2]] G1 X[#1+[+#+#-#]/SQRT[2]] Y[#2+[#+#+#]/SQRT[2]] G1 X[#1+[+#-# ]/SQRT[2]] Y[#1+[#+#]/SQRT[2]] ; NW corner G3 X[#1+[-#+# ]/SQRT[2]] Y[#1+[#+#]/SQRT[2]] G1 X[#1+[-#-#+#]/SQRT[2]] Y[#2+[#+#+#]/SQRT[2]] G1 X[#1+[-#-#-#]/SQRT[2]] Y[#2+[#+#-#]/SQRT[2]] G1 X[#1+[-#-# ]/SQRT[2]] Y[#1+[#-#]/SQRT[2]] ; SW corner G3 X[#1+[-#-# ]/SQRT[2]] Y[#1+[-#+#]/SQRT[2]] R# G1 X[#1+[-#-#-#]/SQRT[2]] Y[#2+[-#-#+#]/SQRT[2]] G1 X[#1+[-#-#+#]/SQRT[2]] Y[#2+[-#-#-#]/SQRT[2]] G1 X[#1+[-#+# ]/SQRT[2]] Y[#1+[#+#]/SQRT[2]] ; SE corner G3 X[#1+[+#-# ]/SQRT[2]] Y[#1+[-#+#]/SQRT[2]] G1 X[#1+[+#+#-#]/SQRT[2]] Y[#2+[-#-#-#]/SQRT[2]] G1 X[#1+[+#+#+#]/SQRT[2]] Y[#2+[-#-#+#]/SQRT[2]] G1 X[#1+[+#+# ]/SQRT[2]] Y[#1+[-#-#]/SQRT[2]] ; back to NE G3 X[#1+[+#+# ]/SQRT[2]] Y[#1+[+#-#]/SQRT[2]] G1 X[#1+[+#+#+#]/SQRT[2]] Y[#2+[+#+#-#]/SQRT[2]] G1 X[#1+[+#+#-#]/SQRT[2]] Y[#2+[+#+#+#]/SQRT[2]] o endsub o call [1.375][-1.875] # = 0.315 #<_z_top> = 0.02 #<_z_bot> = #<_zd> o call [0] [0.550][-0.446] [#] o call [0] [0.550][-3.304] [#] o call [0] [3.025][-1.875] [#] # = 0.20 #<_z_top> = 0.1 #<_z_bot> = -0.6 o call [0] [5.625][-0.375] [#] o call [0] [5.125][-1.125] [#] o call [0] [5.625][-1.875] [#] o call [0] [5.125][-2.625] [#] o call [0] [5.625][-3.375] [#] M05 G0 Z#<_z_clearance> G0 X-0.5 Y0.5 M30