diff --git a/LatheMacro.svg b/LatheMacro.svg
old mode 100755
new mode 100644
index 86674ae726d45cfed573bf30c592926596e9e922..ed0e517555cb52d87071f3aacd463462ab773c4e
--- a/LatheMacro.svg
+++ b/LatheMacro.svg
@@ -14,7 +14,7 @@
viewBox="0 0 888 686.00002"
height="686"
width="888"
- inkscape:version="0.92.2 (5c3e80d, 2017-08-06)"
+ inkscape:version="0.92.0 r15299"
sodipodi:docname="LatheMacro.svg">
+ inkscape:cx="610.67797"
+ inkscape:cy="326.46346"
+ inkscape:window-x="1912"
+ inkscape:window-y="244"
+ inkscape:window-maximized="1"
+ inkscape:current-layer="g6995-7" />
- Zero
-
Angle
- Zero
-
Diameter
- Zero
-
Depth
- Zero
-
- Zero
-
+ y="545.14081" />
Pitch
- Zero
-
+ y="585.67712" />
Feed
+
+
50 -
diff --git a/gmoccapy_postgui.hal b/gmoccapy_postgui.hal
index 3ae46c6a11e591875bfd035727c8786f5af99c3c..3d90ca8dd3b5f17082c1906cdfc8f5a46d79e6fc 100755
--- a/gmoccapy_postgui.hal
+++ b/gmoccapy_postgui.hal
@@ -1,8 +1,3 @@
-loadrt not count=2
-
-addf not.0 servo-thread
-addf not.1 servo-thread
-
net X-homed => halui.joint.0.home
net Z-homed => halui.joint.2.home
net Y-Homed => halui.joint.1.home
@@ -11,47 +6,42 @@ net Home-All <= gmoccapy.joint.all.home
net Home-X <= gmoccapy.joint.0.home
net Home-Z <= gmoccapy.joint.2.home
-net ToolChangeFailed halui.program.stop
+net ToolChangeFailed halui.program.stop
-net SpindleNormal halui.spindle.0.forward
-net SpindleOff halui.spindle.0.stop
-net SpindleReverse halui.spindle.0.reverse
+net SpindleNormal halui.spindle.0.forward
+net SpindleOff halui.spindle.0.stop
+net SpindleReverse halui.spindle.0.reverse
-net CoolantBtnOn halui.flood.on
-net CoolantBtnOff halui.flood.off
-net CoolantPumpOnLamp halui.flood.is-on
+net CoolantOn halui.flood.on
+net CoolantOff halui.flood.off
+net CoolantPump halui.flood.is-on
-net CycleStart halui.program.run
-net ProgramPause halui.program.pause
-net ProgramResume halui.program.resume
-net ProgramStep halui.program.step
+net CycleStartBtn halui.program.run
+net FeedHoldBtn halui.program.pause
-net FeedHoldLamp halui.program.is-paused
-net CycleStartLamp halui.program.is-running
+net XSelect halui.axis.x.select
+net ZSelect halui.axis.z.select
+net XJogPlus gmoccapy.jog.axis.jog-x-plus
+net XJogMinus gmoccapy.jog.axis.jog-x-minus
+net ZJogPlus gmoccapy.jog.axis.jog-z-plus
+net ZJogMinus gmoccapy.jog.axis.jog-z-minus
-net XSelect halui.axis.x.select
-net ZSelect halui.axis.z.select
-net XJogPlus gmoccapy.jog.axis.jog-x-plus
-net XJogMinus gmoccapy.jog.axis.jog-x-minus
-net ZJogPlus gmoccapy.jog.axis.jog-z-plus
-net ZJogMinus gmoccapy.jog.axis.jog-z-minus
-
-net XZeroed halui.joint.0.is-homed
-net ZZeroed halui.joint.2.is-homed
-net MachineIsOn halui.machine.is-on
-net MachineOn halui.machine.on
-#net ModeManual halui.mode.is−manual
+net XZeroed halui.joint.0.is-homed
+net ZZeroed halui.joint.2.is-homed
+net MachineIsOn halui.machine.is-on
+net MachineOn halui.machine.on
+#net ModeManual halui.mode.is−manual
#net ToolChangeRequest iocontrol.0.tool-change
#net ToolPrepPrepPocket iocontrol.0.tool-prep-pocket
#net ToolChangeOk iocontrol.0.tool-changed
-net ModeAuto halui.mode.auto
-net ModeMDI halui.mode.mdi
-net ModeMan halui.mode.manual
+net ModeAuto halui.mode.auto
+net ModeMDI halui.mode.mdi
+net ModeMan halui.mode.manual
-net ManualTC halui.mdi-command-00
+net ManualTC halui.mdi-command-00
#net ManualTC2 => halui.mdi−command−02
#net ManualTC3 => halui.mdi−command−03
#net ManualTC4 => halui.mdi−command−04
@@ -60,28 +50,21 @@ net ManualTC halui.mdi-command-00
#net ManualTC7 => halui.mdi−command−07
#net ManualTC8 => halui.mdi−command−08
-############################################################
-#Mode modifiers
-############################################################
+setp gmoccapy.feed.feed-override.analog-enable true
+net FeedOverride gmoccapy.feed.feed-override.direct-value
+setp gmoccapy.jog.jog-velocity.analog-enable true
+net FeedOverride gmoccapy.jog.jog-velocity.direct-value
+
+setp gmoccapy.rapid.rapid-override.analog-enable true
+net RapidOverride gmoccapy.rapid.rapid-override.direct-value
-net BlockDeleteBtn halui.program.block-delete.on
-net BlockDeleteBtn not.0.in
-net BlockDeleteBtn_not not.0.out
-net BlockDeleteBtn_not halui.program.block-delete.off
+setp gmoccapy.spindle.spindle-override.analog-enable true
+net SpindleOverride gmoccapy.spindle.spindle-override.direct-value
-net OptstopBtn halui.program.optional-stop.on
-net OptstopBtn not.1.in
-net OptstopBtn_not not.1.out
-net OptstopBtn_not halui.program.optional-stop.off
+net spindle-vel-fb-rpm-abs gmoccapy.spindle_feedback_bar
-############################################################
-#Overrides
-############################################################
+net PanelKey gmoccapy.unlock-settings
-setp gmoccapy.feed.feed-override.analog-enable true
-net FeedOverride gmoccapy.feed.feed-override.direct-value
-setp gmoccapy.jog.jog-velocity.analog-enable true
-net FeedOverride gmoccapy.jog.jog-velocity.direct-value
+net RapidJog gmoccapy.jog.turtle-jog
-setp gmoccapy.rapid.rapid-override.analog-enable true
-net RapidOverride gmoccapy.rapid.rapid-override.direct-value
+#net CycleStartBtn gladevcp.cycle-start
diff --git a/lathemacro/boring.ngc b/lathemacro/boring.ngc
deleted file mode 100755
index 37356833b19f7c8855ebd5e4c2a56026de4aa0be..0000000000000000000000000000000000000000
--- a/lathemacro/boring.ngc
+++ /dev/null
@@ -1,92 +0,0 @@
-;boring
-O sub
-
-# = #<_ccomp>
-# = #<_metric>
-# = #<_absolute>
-# = #<_feed>
-# = #<_coord_system>
-# = #<_lathe_diameter_mode>
-# = #<_ijk_absolute_mode>
-
-G8 ; Lathe radius Mode
-G90 ; Absolute Distance
-G91.1 ; but not for arcs
-
-; #1 X coord
-; #2 surface speed
-; #3 cut size
-; #4 feed/rpm
-; #5 Z coord
-; #6 radius
-; #7 angle
-; #8 tool number
-; #9 coolant
-
- O10 if [#9 EQ 1]
- M8
- O10 endif
-
-;M6 T#8 G43
- O100 if [#8 NE #<_current_tool>]
- (MSG, ERROR : Set tool before use macro)
- O call [#] [#] [#] [#] [#] [#] [#]
- O100 return [-2] ; indicate failure to epilog
- O100 endif
-
-#1 = [#1 / 2] ; because of radius mode
-
-#14 = [#<_x>] (startinG X)
-#13 = #<_z> (startinG Z)
-
-#20 = [#6 * SIN[#7]]
-#21 = [-#6 * COS[#7]]
-#22 = [#6 / COS[#7]]
-#23 = [#5 + #6 - #20]
-#24 = [[#23 - #13] * TAN[#7]]
-
-G96 D2500 S#2 ; Constant Surface Speed Mode
-M3 ;Start Spindle
-G95 F#4 ; Feed-Per-Rev Mode
-G4P1 ; Wait to reach speed
-
-(debuG, TurninG finish dia #1 start dia #14 start lenGth #13 finish lenGth #5)
- O101 WHILE [#14 LT [#1 - #3]]
- G0 X #14
- #14=[#14 + #3]
- G1 X #14
- G1 Z #23 X[#14 + #24]
-
- o102 IF [#6 GT 0]
- G3 Z#5 X[#14 + #24 + #21] I#21 K#20
- G1 X[#14 + #24 + #21 - #3]
- o102 ELSE
- G1 X[#14 + #24 - [#3 * 1.5]]
- o102 ENDIF
-
- G0 Z[#13]
- O101 ENDWHILE
-
-G0 X#1
-G1 Z#23 X[#1 + #24]
-
- O103 IF [#6 GT 0]
- G3 Z#5 X[#1 + #24 + #21] I#21 K#20
- G1 X[#1 + #24 + #21 - #3]
- O103 ELSE
- G1 X[#1 + #24 - #3]
- O103 ENDIF
-
-G0 Z#13
-G0 X#1 ; For touch-off
-
-M5
-M9
-
-; restore g20/21, g90/g91, feed
- O call [#] [#] [#] [#] [#] [#] [#]
-
-O endsub
-
-M2
-%
diff --git a/lathemacro/chamfer.ngc b/lathemacro/chamfer.ngc
deleted file mode 100755
index 9069fe39ddebafddc9a9188bbc3378df3e0fc025..0000000000000000000000000000000000000000
--- a/lathemacro/chamfer.ngc
+++ /dev/null
@@ -1,108 +0,0 @@
-;chamfer
-O sub
-
-# = #<_ccomp>
-# = #<_metric>
-# = #<_absolute>
-# = #<_feed>
-# = #<_coord_system>
-# = #<_lathe_diameter_mode>
-# = #<_ijk_absolute_mode>
-
-G8 ; Lathe radius Mode
-G90 ; Absolute Distance
-
-; #1 X coord
-; #2 feed/rpm
-; #3 0.5 ?
-; #4 0 ?
-; #5 Z coord
-; #6 tool number
-; #7 0 ?
-; #8 chamfer size
-; #9 exterior front
-; #10 interior
-; #11 exterior rear
-; #12 coolant
-
- O10 if [#12 EQ 1]
- M8
- O10 endif
-
-
-;M6 T#6 G43
- O100 if [#6 NE #<_current_tool>]
- (MSG, ERROR : Set tool before use macro)
- O call [#] [#] [#] [#] [#] [#] [#]
- O100 return [-2] ; indicate failure to epilog
- O100 endif
-
-#1 = [#1 / 2] ; because of radius mode
-
-#14 = [#<_x>] (starting X)
-#13 = [#<_z>] (starting Z)
-
-G96 D2500 S#2 ; Constant Surface Speed Mode
-M3
-G95 F0.1 ; Feed-Per-Rev Mode
-
-#20 = 0
- O101 if [#9 GT 0.5] ; front outside
- o102 while [[#20 + #3] lt #8]
- #20 = [#20 + #3]
- G0 x[#1 - #20] z#13
- G1 z#5
- G1 x#1 z[#5 - #20]
- G1 x #14
- G0 z#13
- o102 endwhile
- G0 x#14 z#13
- G0 x[#1 - #8]
- G1 z#5
- G1 x#1 z[#5 - #8]
- G1 x #14
- G0 z#13
- O101 elseif [#10 GT 0.5] ; front inside
- o103 while [[#20 + #3] lt #8]
- #20 = [#20 + #3]
- G0 x[#1 + #20] z#13
- G1 z#5
- G1 x#1 z[#5 - #20]
- G1 x #14
- G0 z#13
- o103 endwhile
-
- G0 x#14 z#13
- G0 x[#1 + #8]
- G1 z#5
- G1 x#1 z[#5 - #8]
- G1 x #14
- G0 z#13
- O101 elseif [#11 GT 0.5] ; back outside
- o104 while [[#20 + #3] lt #8]
- #20 = [#20 + #3]
- G0 x[#1 - #20] z#13
- G1 z#5
- G1 x#1 z[#5 + #20]
- G1 x #14
- G0 z#13
- o104 endwhile
-
- G0 x#14 z#13
- G0 x[#1 - #8]
- G1 z#5
- G1 x#1 z[#5 + #8]
- G1 x #14
- G0 z#13
- O101 endif
-
-M5
-M9
-
-; restore g20/21, g90/g91, feed
- O call [#] [#] [#] [#] [#] [#] [#]
-
-O endsub
-
-M2
-%
diff --git a/lathemacro/drill.ngc b/lathemacro/drill.ngc
deleted file mode 100755
index 2a9934d4f62cd21abf5c11207cdac27371ee0e9d..0000000000000000000000000000000000000000
--- a/lathemacro/drill.ngc
+++ /dev/null
@@ -1,62 +0,0 @@
-;drill
-O sub
-
-# = #<_ccomp>
-# = #<_metric>
-# = #<_absolute>
-# = #<_feed>
-# = #<_coord_system>
-# = #<_lathe_diameter_mode>
-# = #<_ijk_absolute_mode>
-
-G7 ; diameter mode
-G90 ; Absolute Distance
-
-; #1 drill diameter
-; #2 ydepth
-; #3 speed
-; #4 feed/rpm
-; #5 tool number
-; #6 peck amount
-; #7 retract amount
-; #8 coolant
-
- O10 if [#8 EQ 1]
- M8
- O10 endif
-
-#9 = #<_y> (starting Y)
-
-;M6 T#5 G43
- O100 if [#5 NE #<_current_tool>]
- (MSG, ERROR : Set tool before use macro)
- O call [#] [#] [#] [#] [#] [#] [#]
- O100 return [-2] ; indicate failure to epilog
- O100 endif
-
-#7 = [[1000 * #3] / [3.1415 * #1]] ; metric mode RPM
-
-G97 S#7 ; Constant RPM mode
-M3 ;Start Spindle
-G95 F#4 ; Feed-Per-Rev Mode
-G4 P1 ; Wait to reach speed
-
-(debug, Drilling dia #1 depth #2 asked-speed #3 feed/rpm #4 tool #5 peck dist #6 calculated-rpm #7 start-Y #9)
-(MSG, ERROR : TODO must retract the X axis to home position)
-; G0 X0 ; TODO must retract the X axis to home position
-;G0 Y#9
-G98
-G83 Y#2 R#9 Q#6
-G80
-;G0 Y#9
-
-M5
-M9
-
-; restore g20/21, g90/g91, feed
- O call [#] [#] [#] [#] [#] [#] [#]
-
-O endsub
-
-M2
-%
diff --git a/lathemacro/facing.ngc b/lathemacro/facing.ngc
deleted file mode 100755
index 58e39e6568c278de4d2d814f1ec30e5313bfe0a7..0000000000000000000000000000000000000000
--- a/lathemacro/facing.ngc
+++ /dev/null
@@ -1,71 +0,0 @@
-;Facing
-O sub
-
-# = #<_ccomp>
-# = #<_metric>
-# = #<_absolute>
-# = #<_feed>
-# = #<_coord_system>
-# = #<_lathe_diameter_mode>
-# = #<_ijk_absolute_mode>
-
-G7 ; diameter mode
-G90 ; Absolute Distance
-
-; #1 X coord
-; #2 surface speed
-; #3 cut size
-; #4 feed/rpm
-; #5 Z coord
-; #6 angles
-; #7 tool number
-; #8 coolant
-
- O10 if [#8 EQ 1]
- M8
- O10 endif
-
- O20 IF [#6 NE 0]
- (MSG, Angled facing isn't supported yet)
- O20 ENDIF
-
-;M6 T#7 G43
- O100 if [#7 NE #<_current_tool>]
- (MSG, ERROR : Set tool before use macro)
- O call [#] [#] [#] [#] [#] [#] [#]
- O100 return [-2] ; indicate failure to epilog
- O100 endif
-
-#14 = [#<_x> * 2] (starting X)
-#13 = #<_z> (starting Z)
-
-G96 D2500 S#2 ; Constant Surface Speed Mode
-M3
-G95 F#4 ; Feed-Per-Rev Mode
-G4P1 ; Wait to reach speed
-
- O200 WHILE [#13 GT #5 + #3]
- #13=[#13-#3]
- G1 Z#13
- G1 X#1
- G0 Z[#13+#3]
- G0 X#14
- G0 Z#13
- O200 ENDWHILE
-
-G1 Z#5
-G1 X#1
-G0 Z[#13+#3]
-G0 X[#14+#3]
-G0 Z#5 ; For touch-off
-
-M5
-M9
-
-; restore g20/21, g90/g91, feed
- O call [#] [#] [#] [#] [#] [#] [#]
-
-O endsub
-
-M2
-%
diff --git a/lathemacro/radius.ngc b/lathemacro/radius.ngc
deleted file mode 100755
index 5bdf44ad95cd4cdc502e4b98c50bf56b59b88404..0000000000000000000000000000000000000000
--- a/lathemacro/radius.ngc
+++ /dev/null
@@ -1,109 +0,0 @@
-;radius
-O sub
-
-# = #<_ccomp>
-# = #<_metric>
-# = #<_absolute>
-# = #<_feed>
-# = #<_coord_system>
-# = #<_lathe_diameter_mode>
-# = #<_ijk_absolute_mode>
-
-G7 ; diameter mode
-G90 ; Absolute Distance
-
-; #1 X coord
-; #2 feed/rpm
-; #3 0.5 ?
-; #4 0 ?
-; #5 Z coord
-; #6 tool number
-; #7 0 ?
-; #8 radius size
-; #9 exterior front
-; #10 interior
-; #11 exterior rear
-; #12 coolant
-
- O10 if [#12 EQ 1]
- M8
- O10 endif
-
-;M6 T#6 G43
- O100 if [#6 NE #<_current_tool>]
- (MSG, ERROR : Set tool before use macro)
- O call [#] [#] [#] [#] [#] [#] [#]
- O100 return [-2] ; indicate failure to epilog
- O100 endif
-
-#1 = [#1 / 2] ; because of radius mode
-#14 = [#<_x>] (starting X)
-#13 = [#<_z>] (starting Z)
-
-G96 D2500 S#2 ; Constant Surface Speed Mode
-M3
-G95 F0.1 ; Feed-Per-Rev Mode
-G4P1 ; Wait to reach speed
-
-#20 = 0
- O101 if [#9 GT 0.5] ; Front outside
- o102 while [[#20 + #3] lt #8]
- #20 = [#20 + #3]
- G0 x[#1 - #20] z#13
- G1 z#5
- G3 x#1 z[#5 - #20] K[-#20]
- G1 x #14
- G0 z#13
- o102 endwhile
- G0 x#14 z#13
- G0 x[#1 - #8]
- G1 z#5
- G3 x#1 z[#5 - #8] K[-#8]
- G1 x #14
- G0 z#13
- O101 elseif [#10 GT 0.5] ; front inside
- o103 while [[#20 + #3] lt #8]
- #20 = [#20 + #3]
- G0 x[#1 + #20] z#13
- G1 z#5
- G2 x#1 z[#5 - #20] K[-#20]
- G1 x #14
- G0 z#13
- o103 endwhile
-
- G0 x#14 z#13
- G0 x[#1 + #8]
- G1 z#5
- G2 x#1 z[#5 - #8] K[-#8]
- G1 x #14
- G0 z#13
-
- O101 elseif [#11 GT 0.5] ; back outside
- o104 while [[#20 + #3] lt #8]
- #20 = [#20 + #3]
- G0 x[#1 - #20] z#13
- G1 z#5
- G2 x#1 z[#5 + #20] K#20
- G1 x #14
- G0 z#13
- o104 endwhile
-
- G0 x#14 z#13
- G0 x[#1 - #8]
- G1 z#5
- G2 x#1 z[#5 + #8] K#8
- G1 x #14
- G0 z#13
-
- O101 endif
-
-M5
-M9
-
-; restore g20/21, g90/g91, feed
- O call [#] [#] [#] [#] [#] [#] [#]
-
-O endsub
-
-M2
-%
diff --git a/lathemacro/restore.ngc b/lathemacro/restore.ngc
deleted file mode 100755
index 3c2b5838c6f3a2cacfe369ef77e607e2893612f4..0000000000000000000000000000000000000000
--- a/lathemacro/restore.ngc
+++ /dev/null
@@ -1,93 +0,0 @@
-; restore metric/inch absolute/relative, feed as per paramter values
-; call as 'O call [originalmetric] [originalabs] [originalfeed] [originalcomp]
-;
-;[#] [#] [#] [#] [#] [#] [#]
-;
-O sub
-O100 if [#1 NE #<_metric>]
-O200 if [#1]
- G21
-O200 else
- G20
-O200 endif
-O100 endif
-
-O300 if [#2 NE #<_absolute>]
-O400 if [#2]
- G90
-O400 else
- G91
-O400 endif
-O300 endif
-
-O500 if [#3 NE #<_feed>]
- F[#3]
-O500 endif
-
-
-O600 if [#4 NE #<_ccomp>]
- O601 if [#4 EQ 400]
- G40
- O601 endif
- O602 if [#4 EQ 411]
- G41.1
- O602 endif
- O603 if [#4 EQ 420]
- G42
- O603 endif
- O604 if [#4 EQ 421]
- G42.1
- O604 endif
-O600 endif
-
-
-O700 if [#5 NE #<_coord_system>]
- O701 if [#5 EQ 540]
- G54
- O701 endif
- O702 if [#5 EQ 550]
- G55
- O702 endif
- O703 if [#5 EQ 560]
- G56
- O703 endif
- O704 if [#5 EQ 570]
- G57
- O704 endif
- O705 if [#5 EQ 580]
- G58
- O705 endif
- O706 if [#5 EQ 590]
- G59
- O706 endif
- O707 if [#5 EQ 591]
- G59.1
- O707 endif
- O708 if [#5 EQ 592]
- G59.2
- O708 endif
- O709 if [#5 EQ 593]
- G59.3
- O709 endif
-O700 endif
-
-
-O800 if [#6 NE #<_lathe_diameter_mode>]
- O801 if [#6]
- G7
- O801 else
- G8
- O801 endif
-O800 endif
-
-
-O900 if [#7 NE #<_ijk_absolute_mode>]
- O901 if [#7]
- G90.1
- O901 else
- G91.1
- O901 endif
-O900 endif
-
-O endsub
-M2
diff --git a/lathemacro/threading.ngc b/lathemacro/threading.ngc
deleted file mode 100755
index 81e567e1bd7aa2d6c38f2647000e990038235f4c..0000000000000000000000000000000000000000
--- a/lathemacro/threading.ngc
+++ /dev/null
@@ -1,96 +0,0 @@
-;threading
-O sub
-
-; #1=thread.x, #2=thread.sf, #3=thread.tool-s, #4=thread.pitch-f, #5=thread.z-f, #6=thread.internal #7=thread.external
-
-# = #<_ccomp>
-# = #<_metric>
-# = #<_absolute>
-# = #<_feed>
-# = #<_coord_system>
-# = #<_lathe_diameter_mode>
-# = #<_ijk_absolute_mode>
-
-G8 ; Lathe radius Mode
-G90 ; Absolute Distance
-
-; #1 X coord
-; #2 feed/rpm
-; #3 tool number
-; #4 pitch
-; #5 Z coord
-; #6 interior
-; #7 exterior
-; #8 coolant
-
- O10 if [#8 EQ 1]
- M8
- O10 endif
-;M6 T#3 G43
- O100 if [#3 NE #<_current_tool>]
- (MSG, ERROR : Set tool before use macro)
- O call [#] [#] [#] [#] [#] [#] [#]
- O100 return [-2] ; indicate failure to epilog
- O100 endif
-
-#1 = [#1 / 2.0]
-#14 = [#<_x> * 2] (starting X)
-#13 = #<_z> (starting Z)
-G96 D2500 S#2 ; Constant Surface Speed Mode
-M3
-G4 P1 ; Wait to reach speed
-
-# = [0.86603 * #4]
-# = [# * 0.125]
-# = [# * 0.250]
-# = [# * 0.625]
-;(debug, #40 # # #)
-
- O101 IF [#<_metric>]
- # = 0.2
- # = 0.1
- O101 ELSE
- # = 0.007
- # = 0.004
- O101 ENDIF
-
-G95 F# ; Feed-Per-Rev Mode
-
-;Threading
- O102 IF [#6 GT 0.5] ;internal
- ;cut the minor flat diameter
- ;(debug, INTERNAL Threading thread dia-#1 start-#13 finish-#5 Pitch-#4 Depth-#3)
- G0 Z #13
- G0 X [#1 + # - #]
- G1 Z #5
- G0 X [#1 - #]
- G0 Z #13
- G96 D600 S#2 ; limit RPM in threading mode
- G76 P#4 Z#5 i# j# k# H3 R1.5 Q29.5 E0 L0
- G0 X [#1 - 0.5]
- O102 ELSE ;external
- ; cut the major diameter
- ;(debug, EXTERNAL Threading thread dia-#1 start-#13 finish-#5 Pitch-#4 Depth-#3 MF #)
- G0 Z #13
- G0 X #1
- G1 X [#1 - #]
- G1 Z #5
- G0 X #1
- G0 Z #13
- G96 D600 S#2 ; limit RPM in threading mode
- G76 P#4 Z#5 i[-#] j# k# H3 R1.5 Q29.5 E0 L0
- G0 X [#1 + 0.5]
- O102 ENDIF
-
-G0 Z#13
-
-M5
-M9
-
-; restore g20/21, g90/g91, feed
- O call [#] [#] [#] [#] [#] [#] [#]
-
-O endsub
-
-M2
-%
diff --git a/lathemacro/turning.ngc b/lathemacro/turning.ngc
deleted file mode 100755
index 6507f1b14886685294cf2cf446ec97638e979c1a..0000000000000000000000000000000000000000
--- a/lathemacro/turning.ngc
+++ /dev/null
@@ -1,102 +0,0 @@
-;Turning
-O sub
-
-# = #<_ccomp>
-# = #<_metric>
-# = #<_absolute>
-# = #<_feed>
-# = #<_coord_system>
-# = #<_lathe_diameter_mode>
-# = #<_ijk_absolute_mode>
-
-G8 ; Lathe radius Mode
-G90 ; Absolute Distance
-G91.1 ; but not for arcs
-
-; #1 X coord
-; #2 surface speed
-; #3 cut size
-; #4 feed/rpm
-; #5 Z coord
-; #6 radius
-; #7 angle
-; #8 tool number
-; #9 coolant
-
- O10 if [#9 EQ 1]
- M8
- O10 endif
-
-;M6 T#8 G43
- O100 if [#8 NE #<_current_tool>]
- (MSG, ERROR : Set tool before use macro)
- O call [#] [#] [#] [#] [#] [#] [#]
- O100 return [-2] ; indicate failure to epilog
- O100 endif
-
-#1 = [#1 / 2] ; because of radius mode
-#14 = [#<_x>] (starting X)
-#13 = #<_z> (starting Z)
-
-#20 = [#6 * SIN[#7]]
-#21 = [#6 * COS[#7]]
-#22 = [#6 / COS[#7]]
-#23 = [#5 + #6 - #20]
-#24 = [[#13 - #23] * TAN[#7]]
-
-G96 D2500 S#2 ; Constant Surface Speed Mode
-M3 ;Start Spindle
-G95 F#4 ; Feed-Per-Rev Mode
-G4P1 ; Wait to reach speed
-
-(debug, Turning finish rad #1 start rad #14 start length #13 finish length #5)
-
-;[${turn.x-f}] [${turn.sf-f}] [${turn.cut-f}] [${turn.feed-f}] [${turn.z-f}] [${turn.rad-f}] [${turn.angle-f}] [${turn.tool-s}]
-
- O101 WHILE [#14 GT [#1 + #3 / 2]]
- G0 X #14
- #14=[#14-#3 / 2]
- G1 X #14
- G1 Z #23 X[#14 + #24]
-
- o102 IF [#6 GT 0]
- G2 Z#5 X[#14 + #24 + #21] I#21 K#20
- G1 X[#14 + #24 + #21 + #3/2]
- o102 ELSE
- G1 X[#14 + #24 + [#3 * .6]]
- o102 ENDIF
-
- o103 IF [#7 LT 0]
- G0 X#14
- o103 ENDIF
-
- G0 Z[#13]
- O101 ENDWHILE
-
-G0 X#1
-G1 Z #23 X[#1 + #24]
-
- O104 IF [#6 GT 0]
- G2 Z#5 X[#1 + #24 + #21] I#21 K#20
- G1 X[#1 + #24 + #21 + #3]
- O104 ELSE
- G1 X[#1 + #24 + #3]
- O104 ENDIF
-
- O105 IF [#7 LT 0]
- G0 X#14
- O105 ENDIF
-
-G0 Z#13
-G0 X#1 ; For touch-off
-
-M5
-M9
-
-; restore g20/21, g90/g91, feed
- O call [#] [#] [#] [#] [#] [#] [#]
-
-O endsub
-
-M2
-%
diff --git a/lathemacro_postgui.hal b/lathemacro_postgui.hal
new file mode 100644
index 0000000000000000000000000000000000000000..721888388b5a41c361ce98b9b52710aea8aefc3e
--- /dev/null
+++ b/lathemacro_postgui.hal
@@ -0,0 +1,3 @@
+## For use clear axis notification You also need to add this or for general use add a POSTGUI_HALFILE file or add this is your postgui.hal
+net clear-axis-message <= motion.digital-out-00
+net clear-axis-message => axisui.notifications-clear-info
diff --git a/lathemacros/backup_restore.ngc b/lathemacros/backup_restore.ngc
new file mode 100644
index 0000000000000000000000000000000000000000..7a545e26486ee12bc72679eaf9dac022362f8867
--- /dev/null
+++ b/lathemacros/backup_restore.ngc
@@ -0,0 +1,172 @@
+; backup_restore metric/inch absolute/relative, feed as per paramter values
+; call as o call ; backup_restore g20/21, g90/g91, feedrate cuter-comp and other using now global _backup_var
+;
+o sub
+;
+;RS274NGC_STARTUP_CODE = G7 G18 G21 G40 G49 G54 G64 P0.001 G80 G90 G90.1 G92.1 G94 G97 G99 M5 M9 M53
+;for a complete restore according to what is configured in my ini
+G64P0.001 G97 G99 M5 M9
+
+
+
+o1 if [EXISTS [#<_backup_metric>]]
+
+ (DEBUG,RESTORE MODAL STATUS USING _BACKUP_VAR)
+
+ o10 if [#<_backup_metric> NE #<_metric>]
+ o11 if [#<_backup_metric>]
+ G21
+ o11 else
+ G20
+ o11 endif
+ o10 endif
+
+
+ o20 if [#<_backup_absolute> NE #<_absolute>]
+ o21 if [#<_backup_absolute>]
+ G90
+ o21 else
+ G91
+ o21 endif
+ o20 endif
+
+
+ o30 if [#<_backup_feed> NE #<_feed>]
+ F[#<_backup_feed>]
+ o30 endif
+
+
+ o40 if [#<_backup_ccomp> NE #<_ccomp>]
+ o41 if [#<_backup_ccomp> EQ 400]
+ G40
+ o41 elseif [#<_backup_ccomp> EQ 410]
+ G41
+ o41 elseif [#<_backup_ccomp> EQ 411]
+ G41.1
+ o41 elseif [#<_backup_ccomp> EQ 420]
+ G42
+ o41 elseif [#<_backup_ccomp> EQ 421]
+ G42.1
+ o41 endif
+ o40 endif
+
+
+ o50 if [#<_backup_tool_offset> NE #<_tool_offset>]
+ o51 if [#<_backup_tool_offset> EQ 490]
+ G49
+ o51 elseif [#<_backup_tool_offset> EQ 430]
+ G43
+ o51 elseif [#<_backup_tool_offset> EQ 431]
+ G43.1
+ o51 elseif [#<_backup_tool_offset> EQ 432]
+ G43.2
+ o51 endif
+ o50 endif
+
+
+ o60 if [#<_backup_coord_system> NE #<_coord_system>]
+ o61 if [#<_backup_coord_system> EQ 540]
+ G54
+ o61 elseif [#<_backup_coord_system> EQ 550]
+ G55
+ o61 elseif [#<_backup_coord_system> EQ 560]
+ G56
+ o61 elseif [#<_backup_coord_system> EQ 570]
+ G57
+ o61 elseif [#<_backup_coord_system> EQ 580]
+ G58
+ o61 elseif [#<_backup_coord_system> EQ 590]
+ G59
+ o61 elseif [#<_backup_coord_system> EQ 591]
+ G59.1
+ o61 elseif [#<_backup_coord_system> EQ 592]
+ G59.2
+ o61 elseif [#<_backup_coord_system> EQ 593]
+ G59.3
+ o61 endif
+ o60 endif
+
+
+ o70 if [#<_backup_ijk_abs_mode> NE #<_ijk_absolute_mode>]
+ o71 if [#<_backup_ijk_abs_mode>]
+ G90.1
+ o71 else
+ G91.1
+ o71 endif
+ o70 endif
+
+
+ ;o80 if [#<_backup_lathe_mode>}
+ o81 if [#<_backup_lathe_diam_mode> NE #<_lathe_diameter_mode>]
+ o82 if [#<_backup_lathe_diam_mode>]
+ G7 (lathe diameter mode)
+ o82 else
+ G8
+ o82 endif
+ o81 endif
+ ;o80 endif
+
+
+ o90 if [#<_backup_plane> NE #<_plane>]
+ o91 if [#<_backup_plane> EQ 170]
+ G17
+ o91 elseif [#<_backup_plane> EQ 180]
+ G18
+ o91 elseif [#<_backup_plane> EQ 190]
+ G19
+ o91 elseif [#<_backup_plane> EQ 171]
+ G17.1
+ o91 elseif [#<_backup_plane> EQ 181]
+ G18.1
+ o91 else if [#<_backup_plane> EQ 191]
+ G19.1
+ o91 endif
+ o90 endif
+
+
+ o100 if [#<_backup_units_per_min> NE #<_units_per_minute>]
+ o101 if [#<_backup_units_per_min> EQ 1]
+ G94
+ o101 else
+ G95
+ o101 endif
+ o100 endif
+
+
+ o110 if [#<_backup_retract_old_z> NE #<_retract_old_z>]
+ o111 if [#<_backup_retract_old_z> EQ 1]
+ G99
+ o111 else
+ G98
+ o111 endif
+ o110 endif
+
+o1 else
+
+ (DEBUG,RESTORE MODAL STATUS USING FIXED VALUE)
+
+ ; FULL STATRUP LIST FROM CONFIG
+ ;G7 G18 G21 G40 G49 G54 G64P0.001 G80 G90 G90.1 G92.1 G94 G97 G99 M5 M9 M53
+
+ ; o1 if [#<_ini[DISPLAY]LATHE> EQ 1]
+ ; G7 (lathe diameter mode)
+ ; o1 endif
+
+ G21 (metric)
+ G40 (cutter compensation off)
+ G54 (origin offsets are set to the default)
+ G64 P0.001 (Path Blending)
+ G80 (cancel canned cycle)
+ G90 (absolute)
+ G90.1 (Arc Distance mode)
+ G92.1
+ G94 (feed mode: units/minute)
+ G97 (spindle rpm mode)
+ G99 (canned cycle return mode)
+ M48 (set feed and speed overrides)
+ M53 (feed Stop Control)
+
+o1 endif
+
+o endsub
+M2
diff --git a/lathemacros/backup_status.ngc b/lathemacros/backup_status.ngc
new file mode 100644
index 0000000000000000000000000000000000000000..9bbd10f1d47ca57d2fd1d1830844c48b1938bd2e
--- /dev/null
+++ b/lathemacros/backup_status.ngc
@@ -0,0 +1,21 @@
+o sub
+
+#<_backup_retract_old_z> = #<_retract_old_z>
+#<_backup_units_per_min> = #<_units_per_minute>
+#<_backup_plane> = #<_plane>
+#<_backup_metric> = #<_metric>
+#<_backup_absolute> = #<_absolute>
+#<_backup_feed> = #<_feed>
+#<_backup_ccomp> = #<_ccomp>
+#<_backup_tool_offset> = #<_tool_offset>
+#<_backup_coord_system> = #<_coord_system>
+#<_backup_ijk_abs_mode> = #<_ijk_absolute_mode>
+;o10 if [#<_ini[DISPLAY]LATHE> EQ 1]
+ #<_backup_lathe_diam_mode> = #<_lathe_diameter_mode>
+; #<_backup_lathe_mode> = 1
+;o10 else
+; #<_backup_lathe_mode> = 0
+;o10 endif
+
+o endsub
+M2
diff --git a/lathemacros/boring.ngc b/lathemacros/boring.ngc
new file mode 100644
index 0000000000000000000000000000000000000000..cd744d7b63deeb05da7deaf00ecad6341dda93a2
--- /dev/null
+++ b/lathemacros/boring.ngc
@@ -0,0 +1,86 @@
+;boring
+o sub
+
+ o call
+ o call
+
+# = #1
+# = #2
+# = #3
+# = #4
+# = #5
+# = #6
+# = #7
+# = #8
+# = #9
+
+ O100 if [# NE #<_current_tool>]
+ (MSG,ERROR : Set tool before use macro)
+ O100 return [-2] ; indicate failure to epilog
+ O100 endif
+
+G8 ; Lathe radius Mode
+G18 ; XZ Plane
+G21 ; Metric Units
+G90 ; Absolute Distance
+G91.1 ; but not for arcs
+
+# = [# / 2] ; because of radius mode
+# = [#<_x>] (startinG X)
+# = #<_z> (startinG Z)
+
+#20 = [# * SIN[#]]
+#21 = [-# * COS[#]]
+#22 = [# / COS[#]]
+#23 = [# + # - #20]
+#24 = [[#23 - #] * TAN[#]]
+
+G96 D2500 S# ; Constant Surface Speed Mode
+M3 ; Start Spindle
+G95 F# ; Feed-Per-Rev Mode
+G4P1 ; Wait to reach speed
+
+ O110 if [#]
+ M8
+ O110 endif
+
+(DEBUG,Turning finish dia-# start rad-# start length-# finish length-#)
+
+ O200 while [# LT [# - #