===== case 0000 | clear_z=5.0 clearance=2.0 coolant_type=1 do_finish=1 dwell=0.2 feed_finish=0.05 feed_rough=0.08 finish_dir=0 finish_tool=4 finish_x=0.2 finish_z=0.1 max_rpm=600.0 peck=1.0 peck_retract=1.0 profile=52 -20;44 -23;52 -26 rpm=600.0 sep_finish_tool=0 spindle_mode=0 stock_dia=52.0 surface_speed=120.0 tool=4 tool_r=0.2 tool_width=3.0 =====
!! ValueError: groove: a 3.000 wide tool will not reach - the groove is only 0.000 across at dia 44.000. The widest tool that fits is 0.00
===== case 0001 | clear_z=5.0 clearance=2.0 coolant_type=1 do_finish=1 dwell=0.2 feed_finish=0.05 feed_rough=0.08 finish_dir=1 finish_tool=4 finish_x=0.2 finish_z=0.1 max_rpm=600.0 peck=1.0 peck_retract=1.0 profile=52 -20;46 -20;46 -24;40 -24;40 -30;52 -30 rpm=600.0 sep_finish_tool=0 spindle_mode=0 stock_dia=52.0 surface_speed=120.0 tool=4 tool_r=0.2 tool_width=3.0 =====
!! ValueError: groove: the finish pass would gouge near Z -21.294 dia 45.953 - the back of the 3.000 wide insert is still over higher ground. A form with more than one floor level cannot be finished by one side-feed pass
===== case 0002 | clear_z=5.0 clearance=2.0 coolant_type=1 do_finish=1 dwell=0.2 feed_finish=0.05 feed_rough=0.08 finish_dir=0 finish_tool=4 finish_x=0.2 finish_z=0.1 max_rpm=600.0 peck=1.0 peck_retract=1.0 profile=52 -20;44 -22;44 -24;52 -26 rpm=600.0 sep_finish_tool=0 spindle_mode=0 stock_dia=52.0 surface_speed=120.0 tool=4 tool_r=0.2 tool_width=3.0 =====
!! ValueError: groove: a 3.000 wide tool will not reach - the groove is only 2.000 across at dia 44.000. The widest tool that fits is 2.00
===== case 0003 | clear_z=5.0 clearance=2.0 coolant_type=1 do_finish=1 dwell=0.2 feed_finish=0.05 feed_rough=0.08 finish_dir=0 finish_tool=4 finish_x=0.2 finish_z=0.1 max_rpm=600.0 peck=1.0 peck_retract=1.0 profile=52 -20;40 -19;40 -27;52 -26 rpm=600.0 sep_finish_tool=0 spindle_mode=0 stock_dia=52.0 surface_speed=120.0 tool=4 tool_r=0.2 tool_width=3.0 =====
!! ValueError: point 2: Z must not increase going away from the face (Z -20.000 then -19.000). G71 needs a monotonic Z; a reversal is a re-entrant undercut, not supported.
===== case 0004 | clear_z=5.0 clearance=2.0 coolant_type=1 do_finish=1 dwell=0.2 feed_finish=0.05 feed_rough=0.08 finish_dir=0 finish_tool=4 finish_x=0.2 finish_z=0.1 max_rpm=600.0 peck=1.0 peck_retract=1.0 profile=52 -20;46 -20;46 -24;40 -24;40 -30;52 -30 rpm=600.0 sep_finish_tool=0 spindle_mode=0 stock_dia=52.0 surface_speed=120.0 tool=4 tool_r=0.2 tool_width=3.0 =====
(Lathe groove profile - longhand, generated by the conversational tab)
(Set work zero at the finished face, on the spindle centreline)
(self-contained: no subroutine, no canned cycle)
(Groove Z -20.000 to -30.000, 10.000 wide, cut with a 3.000 tool, corner radius 0.200)
(Tool is referenced on its +Z edge - a plunge at Z cuts back to Z minus the tool width)
(Roughed in 4 plunges to the lower envelope, then side-fed along the contour)
(Dia 52.000 -> 40.000   floor allowance 0.200  wall allowance 0.100)
(Tool T0404   wcs G54  coolant flood)
(rough + finish   peck 1.000  retract 1.000  dwell 0.200)
(CSS 120 m/min  max 600 rpm  feed rough 0.0800 / finish 0.0500 mm-rev)
(=== conversational block - do not edit; lets the panel reload this file ===)
(CONV1 cycle=groove)
(CONV1 tool=4 stock_dia=52 tool_width=3 tool_r=0.2 finish_dir=0 peck=1)
(CONV1 peck_retract=1 dwell=0.2 finish_x=0.2 finish_z=0.1 feed_rough=0.08 feed_finish=0.05)
(CONV1 surface_speed=120 max_rpm=600 spindle_mode=0 rpm=600 do_finish=1 sep_finish_tool=0)
(CONV1 finish_tool=4 clearance=2 clear_z=5 coolant_type=1)
(CONV1 P 52 -20)
(CONV1 P 46 -20)
(CONV1 P 46 -24)
(CONV1 P 40 -24)
(CONV1 P 40 -30)
(CONV1 P 52 -30)
(CONV1 END)
G18 G21 G7 G90 G95 G40
G64 P0.02
G54
G30
T0404
G96 S120 D600 M3
M8
G0 X54.0000
G0 Z-20.1000
G0 X52.0000
G1 X50.0000 F0.0800
G0 X51.0000
G0 X50.0000
G1 X48.0000
G0 X49.0000
G0 X48.0000
G1 X46.4000
G4 P0.200
G0 X54.0000
G0 Z-22.3667
G0 X52.0000
G1 X50.0000 F0.0800
G0 X51.0000
G0 X50.0000
G1 X48.0000
G0 X49.0000
G0 X48.0000
G1 X46.4000
G4 P0.200
G0 X54.0000
G0 Z-24.6333
G0 X52.0000
G1 X50.0000 F0.0800
G0 X51.0000
G0 X50.0000
G1 X48.0000
G0 X49.0000
G0 X48.0000
G1 X46.0000
G0 X47.0000
G0 X46.0000
G1 X44.0000
G0 X45.0000
G0 X44.0000
G1 X42.0000
G0 X43.0000
G0 X42.0000
G1 X40.4000
G4 P0.200
G0 X54.0000
G0 Z-26.9000
G0 X52.0000
G1 X50.0000 F0.0800
G0 X51.0000
G0 X50.0000
G1 X48.0000
G0 X49.0000
G0 X48.0000
G1 X46.0000
G0 X47.0000
G0 X46.0000
G1 X44.0000
G0 X45.0000
G0 X44.0000
G1 X42.0000
G0 X43.0000
G0 X42.0000
G1 X40.4000
G4 P0.200
G0 X54.0000
(near half)
G0 Z-20.0000
G0 X52.0000
G1 X51.6000 Z-20.0000 F0.0500
G1 X46.0000 Z-20.0000
G1 X46.0000 Z-23.8000
G3 X45.6000 Z-24.0000 R0.2000
G1 X40.0000 Z-24.0000
G1 X40.0000 Z-27.0000
G0 X54.0000
(far half)
G0 Z-27.0000
G0 X52.0000
G1 X51.6000 Z-27.0000 F0.0500
G1 X40.0000 Z-27.0000
G1 X40.0000 Z-24.0000
G0 X54.0000
G0 Z5.0000
G97 S600
M5
M9
M30
===== case 0005 | clear_z=5.0 clearance=2.0 coolant_type=1 do_finish=1 dwell=0.2 feed_finish=0.05 feed_rough=0.08 finish_dir=0 finish_tool=4 finish_x=0.2 finish_z=0.1 max_rpm=600.0 peck=1.0 peck_retract=1.0 profile=52 -20;40 -20 rpm=600.0 sep_finish_tool=0 spindle_mode=0 stock_dia=52.0 surface_speed=120.0 tool=4 tool_r=0.2 tool_width=3.0 =====
!! ValueError: groove: needs at least 3 points - a wall, a floor and a wall
===== case 0006 | clear_z=5.0 clearance=2.0 coolant_type=1 do_finish=1 dwell=0.2 feed_finish=0.05 feed_rough=0.08 finish_dir=0 finish_tool=4 finish_x=0.2 finish_z=0.1 max_rpm=600.0 peck=1.0 peck_retract=1.0 profile= rpm=600.0 sep_finish_tool=0 spindle_mode=0 stock_dia=52.0 surface_speed=120.0 tool=4 tool_r=0.2 tool_width=3.0 =====
!! ValueError: profile needs at least 2 points
===== case 0007 | clear_z=5.0 clearance=2.0 coolant_type=1 do_finish=1 dwell=0.2 feed_finish=0.05 feed_rough=0.08 finish_dir=0 finish_tool=4 finish_x=0.2 finish_z=0.1 max_rpm=600.0 peck=1.0 peck_retract=1.0 profile=52 -20;40 -20;40 -26;52 -26 rpm=600.0 sep_finish_tool=0 spindle_mode=0 stock_dia=52.0 surface_speed=120.0 tool=4 tool_r=0.2 tool_width=0.0 =====
!! ValueError: groove: tool width must be greater than 0
===== case 0008 | clear_z=5.0 clearance=2.0 coolant_type=1 do_finish=1 dwell=0.2 feed_finish=0.05 feed_rough=0.08 finish_dir=0 finish_tool=4 finish_x=0.2 finish_z=0.1 max_rpm=600.0 peck=1.0 peck_retract=1.0 profile=52 -20;40 -20;40 -26;52 -26 rpm=600.0 sep_finish_tool=0 spindle_mode=0 stock_dia=52.0 surface_speed=120.0 tool=4 tool_r=0.2 tool_width=-1.0 =====
!! ValueError: groove: tool width must be greater than 0
===== case 0009 | clear_z=5.0 clearance=2.0 coolant_type=1 do_finish=1 dwell=0.2 feed_finish=0.05 feed_rough=0.08 finish_dir=0 finish_tool=4 finish_x=0.2 finish_z=0.1 max_rpm=600.0 peck=1.0 peck_retract=1.0 profile=52 -20;40 -20;40 -26;52 -26 rpm=600.0 sep_finish_tool=0 spindle_mode=0 stock_dia=52.0 surface_speed=120.0 tool=4 tool_r=0.2 tool_width=20.0 =====
!! ValueError: groove: a 20.000 wide tool will not reach - the groove is only 6.000 across at dia 40.000. The widest tool that fits is 6.00
===== case 0010 | clear_z=5.0 clearance=2.0 coolant_type=1 do_finish=1 dwell=0.2 feed_finish=0.05 feed_rough=0.08 finish_dir=0 finish_tool=4 finish_x=0.2 finish_z=0.1 max_rpm=600.0 peck=1.0 peck_retract=1.0 profile=52 -20;52 -26 rpm=600.0 sep_finish_tool=0 spindle_mode=0 stock_dia=52.0 surface_speed=120.0 tool=4 tool_r=0.2 tool_width=3.0 =====
!! ValueError: groove: needs at least 3 points - a wall, a floor and a wall
