i have this script that i want to use with a laser probe, i am trying to scan a kite board, usually with linux cnc, you open this script as a gcode but with mach3, it doesnt like it.

the script generate a text file that i can open in a open source program call boardcad.

here is the script if someone can help me:

g21
f1000

(#1=0) (x start)
(#2=3190) (x end)
#3=20 (nr of segments; 20)
#4=[[#2-#1]/#3] (x step)

#5=-268.5 (y center)
#6=10 (nr of points; 10)
#7=10 (y step)

#8=-36 (z safe)
#9=10 (z probe)

#10=0 (current x)
#11=0 (current y)
#12=0 (current z)

#13=0 (previous z)
#14=0 (step size y)

#15=-100 (y safe)
#16=-100 (z probe outline)

#18=1110 (x-value between support / approximately center of board)



O100 sub (subroutine find apex for cross section scan)

g38.2 z#9

o101 while [0 lt #5070]
g38.4 y#15 f5000
#10=#5061
#11=#5062
#12=#5063
g38.3 z[#12-50] f1000
o101 endwhile

O100 endsub



(search for tail and nose)

g0 z#8 a45
g0 x#18 y#5

g38.2 z#9

o6 while [0 lt #5070]
g38.4 x0 f5000
#10=#5061
#11=#5062
#12=#5063
g38.3 z[#12-50] f1000
o6 endwhile

g0 x[#10-10]
g38.2 x#18

#1=[#10+5]
#17=#5063 (start y, used for outline)

g0 z#8
g0 x#18 y#5
g38.2 z#9

o7 while [0 lt #5070]
g38.4 x3500 f5000
#10=#5061
#11=#5062
#12=#5063
g38.3 z[#12-50] f1000
o7 endwhile

g0 x[#10+10]
g38.2 x#18

#2=[#10-5]

#4=[[#2-#1]/#3] (x step)


#10=#1
g0 z#8
g0 x#1 y#5

(PROBEOPEN bottom_rocker.txt)

g38.2 z#9

g0 z#8
g0 x[#10 + 20]
g38.2 z#9

o1 while [#10 lt [#2-#4/4]]

#10=[#10+#4]
g0 z#8
g0 x#10

g38.2 z#9

o1 endwhile

g0 z#8
g0 x[#10 - 20]
g38.2 z#9


(PROBECLOSE)



g0 z#8
g0 x#1 y#15
g0 z#17

#10=#1

(PROBEOPEN outline.txt)

g38.2 y#5

g0 y#15
g0 x[#10 + 20]
g38.2 y#5

o2 while [#10 lt [#2-#4/4]]

g38.4 z#8 (probe for apex)
#17=#5063

#10=[#10+#4]
g0 y#15

o8 if [#5061 GT #18]
g0 x#10 z[#17-80]
o8 else
g0 x#10 z[#17-40]
o8 endif

g38.2 y#5 (probe for outline)

o2 endwhile

g0 y#15
g0 x[#10 - 20]
g38.2 y#5

(PROBECLOSE)

g0 z#8
g0 x[#1+304.8] y#5

M1 (wait if user wants to prepare board)

O100 call

g0 y[#5062+10]
g38.2 y#5

g0 z#8


#10=#5061
#11=#5062
#12=#5063

#7=[[#11-#5]/#6] (y step)

(PROBEOPEN bottomrail1.txt)
g38.2 z#9

o23 while [ #5062 gt [#11-#7]]
g0 z#8
g0 y[#5062 - 3]
g38.2 z#9
o23 endwhile

o3 while [ [#5+#7/2] lt #11]

#11=[#11-#7]
g0 z#8
g0 y#11

g38.2 z#9

o3 endwhile

(PROBECLOSE)

g0 z#8
g0 x[[#1+#2]/2] y#5

M1 (wait if user wants to prepare board)

O100 call

g0 y[#5062+10]
g38.2 y#5

g0 z#8


#10=#5061
#11=#5062
#12=#5063

#7=[[#11-#5]/#6] (y step)

(PROBEOPEN bottomrail2.txt)

g38.2 z#9

o24 while [ #5062 gt [#11-#7]]
g0 z#8
g0 y[#5062 - 3]
g38.2 z#9
o24 endwhile

o4 while [ [#5+#7/2] lt #11]

#11=[#11-#7]
g0 z#8
g0 y#11

g38.2 z#9

o4 endwhile

(PROBECLOSE)


g0 z#8
g0 x[#2-304.8] y#5

M1 (wait if user wants to prepare board)

O100 call

g0 y[#5062+10]
g38.2 y#5

g0 z#8


#10=#5061
#11=#5062
#12=#5063

#7=[[#11-#5]/#6] (y step)

(PROBEOPEN bottomrail3.txt)

g38.2 z#9

o25 while [ #5062 gt [#11-#7]]
g0 z#8
g0 y[#5062 - 3]
g38.2 z#9
o25 endwhile

o5 while [ [#5+#7/2] lt #11]

#11=[#11-#7]
g0 z#8
g0 y#11

g38.2 z#9

o5 endwhile

(PROBECLOSE)

g0 z#8


(finished scanning bottom)
#8=400 (z safe)
g0 z#8

g0 x#2 y#5 (place probe over nose)
M0 (wait for user to turn board)
g0 x#1 y#5 (place probe over tail)
M0 (wait for user to place board)

g0 x#2 y#5 (place probe over nose)
M1 (optionally wait for fine tuning)
g0 x#1 y#5 (place probe over tail)
M1 (optionally wait for fine tuning)

(scanning deck)

#10=#1
g0 z#8
g0 x#1 y#5

(PROBEOPEN deck_rocker.txt)

g38.2 z#9

g0 z#8
g0 x[#10 + 20]
g38.2 z#9

o11 while [#10 lt [#2-#4/4]]

#10=[#10+#4]
g0 z#8
g0 x#10

g38.2 z#9

o11 endwhile

g0 z#8
g0 x[#10 - 20]
g38.2 z#9

(PROBECLOSE)



g0 z#8
g0 x[#1+304.8] y#5

M1 (wait if user wants to prepare board)

O100 call

g0 y[#5062+10]
g38.2 y#5

g0 z#8


#10=#5061
#11=#5062
#12=#5063

#7=[[#11-#5]/#6] (y step)

(PROBEOPEN deckrail1.txt)
g38.2 z#9

o33 while [ #5062 gt [#11-#7]]
g0 z#8
g0 y[#5062 - 3]
g38.2 z#9
o33 endwhile

o13 while [ [#5+#7/2] lt #11]

#11=[#11-#7]
g0 z#8
g0 y#11

g38.2 z#9

o13 endwhile

(PROBECLOSE)

g0 z#8
g0 x[[#1+#2]/2] y#5
M1 (wait if user wants to prepare board)

O100 call

g0 y[#5062+10]
g38.2 y#5

g0 z#8


#10=#5061
#11=#5062
#12=#5063

#7=[[#11-#5]/#6] (y step)


(PROBEOPEN deckrail2.txt)

g38.2 z#9

o34 while [ #5062 gt [#11-#7]]
g0 z#8
g0 y[#5062 - 3]
g38.2 z#9
o34 endwhile

o14 while [ [#5+#7/2] lt #11]

#11=[#11-#7]
g0 z#8
g0 y#11

g38.2 z#9

o14 endwhile

(PROBECLOSE)


g0 z#8
g0 x[#2-304.8] y#5
M1 (wait if user wants to prepare board)

O100 call

g0 y[#5062+10]
g38.2 y#5

g0 z#8


#10=#5061
#11=#5062
#12=#5063

#7=[[#11-#5]/#6] (y step)


(PROBEOPEN deckrail3.txt)

g38.2 z#9

o35 while [ #5062 gt [#11-#7]]
g0 z#8
g0 y[#5062 - 3]
g38.2 z#9
o35 endwhile

o15 while [ [#5+#7/2] lt #11]

#11=[#11-#7]
g0 z#8
g0 y#11

g38.2 z#9

o15 endwhile

(PROBECLOSE)

g0 z#8

M2