Hello Guest it is April 16, 2024, 08:42:38 AM

Author Topic: converting conventional gcode in vbscript, help for linuxcnc probing script.  (Read 2070 times)

0 Members and 1 Guest are viewing this topic.

Offline ronny

*
  •  17 17
    • View Profile
i just learned that mach3 doesnt use conventional gcode...

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