===== case 0000 | clear_z=5.0 clearance=2.0 coolant_type=1 do_finish=1 doc=2.0 feed_finish=0.12 feed_first=0.0 feed_rough=0.3 finish_nose_r=0.4 finish_tool=2 finish_x=0.4 finish_z=0.1 max_rpm=600.0 nose_r=0.8 profile=12 0;12 -8 C1;28 -8;28 -30 R4;50 -45;50 -80 prog=0 retract=1.0 rpm=600.0 sep_finish_tool=0 spindle_mode=0 stock_dia=52.0 stock_z=1.0 surface_speed=180.0 tool=1 =====
!! ValueError: profile sub number must be 1..99998
===== case 0001 | clear_z=5.0 clearance=2.0 coolant_type=1 do_finish=1 doc=2.0 feed_finish=0.12 feed_first=0.0 feed_rough=0.3 finish_nose_r=0.4 finish_tool=2 finish_x=0.4 finish_z=0.1 max_rpm=600.0 nose_r=0.8 profile=12 0;12 -8 C1;28 -8;28 -30 R4;50 -45;50 -80 prog=99999 retract=1.0 rpm=600.0 sep_finish_tool=0 spindle_mode=0 stock_dia=52.0 stock_z=1.0 surface_speed=180.0 tool=1 =====
!! ValueError: profile sub number must be 1..99998
===== case 0002 | clear_z=5.0 clearance=2.0 coolant_type=1 do_finish=1 doc=2.0 feed_finish=0.12 feed_first=0.0 feed_rough=0.3 finish_nose_r=0.4 finish_tool=2 finish_x=0.4 finish_z=0.1 max_rpm=600.0 nose_r=0.8 profile=12 0;12 -8 C1;28 -8;28 -30 R4;50 -45;50 -80 prog=-1 retract=1.0 rpm=600.0 sep_finish_tool=0 spindle_mode=0 stock_dia=52.0 stock_z=1.0 surface_speed=180.0 tool=1 =====
!! ValueError: profile sub number must be 1..99998
===== case 0003 | clear_z=5.0 clearance=2.0 coolant_type=1 do_finish=1 doc=0.0 feed_finish=0.12 feed_first=0.0 feed_rough=0.3 finish_nose_r=0.4 finish_tool=2 finish_x=0.4 finish_z=0.1 max_rpm=600.0 nose_r=0.8 profile=12 0;12 -8 C1;28 -8;28 -30 R4;50 -45;50 -80 prog=1000 retract=1.0 rpm=600.0 sep_finish_tool=0 spindle_mode=0 stock_dia=52.0 stock_z=1.0 surface_speed=180.0 tool=1 =====
!! ValueError: depth of cut must be greater than 0, got 0.000
===== case 0004 | clear_z=5.0 clearance=2.0 coolant_type=1 do_finish=1 doc=-1.0 feed_finish=0.12 feed_first=0.0 feed_rough=0.3 finish_nose_r=0.4 finish_tool=2 finish_x=0.4 finish_z=0.1 max_rpm=600.0 nose_r=0.8 profile=12 0;12 -8 C1;28 -8;28 -30 R4;50 -45;50 -80 prog=1000 retract=1.0 rpm=600.0 sep_finish_tool=0 spindle_mode=0 stock_dia=52.0 stock_z=1.0 surface_speed=180.0 tool=1 =====
!! ValueError: depth of cut must be greater than 0, got -1.000
===== case 0005 | clear_z=5.0 clearance=2.0 coolant_type=1 do_finish=1 doc=2.0 feed_finish=0.12 feed_first=0.0 feed_rough=0.3 finish_nose_r=0.4 finish_tool=2 finish_x=0.4 finish_z=0.1 max_rpm=600.0 nose_r=0.8 profile=12 0;12 -8 C1;28 -8;28 -30 R4;50 -45;50 -80 prog=1000 retract=1.0 rpm=600.0 sep_finish_tool=0 spindle_mode=0 stock_dia=0.0 stock_z=1.0 surface_speed=180.0 tool=1 =====
!! ValueError: stock diameter must be greater than 0 - it is the stock to cut from, got 0.000
===== case 0006 | clear_z=5.0 clearance=2.0 coolant_type=1 do_finish=1 doc=2.0 feed_finish=0.12 feed_first=0.0 feed_rough=0.3 finish_nose_r=0.4 finish_tool=2 finish_x=0.4 finish_z=0.1 max_rpm=600.0 nose_r=0.8 profile=12 0;12 -8 C1;28 -8;28 -30 R4;50 -45;50 -80 prog=1000 retract=1.0 rpm=600.0 sep_finish_tool=0 spindle_mode=0 stock_dia=-10.0 stock_z=1.0 surface_speed=180.0 tool=1 =====
!! ValueError: stock diameter must be greater than 0 - it is the stock to cut from, got -10.000
===== case 0007 | clear_z=5.0 clearance=2.0 coolant_type=1 do_finish=1 doc=2.0 feed_finish=0.12 feed_first=0.0 feed_rough=0.0 finish_nose_r=0.4 finish_tool=2 finish_x=0.4 finish_z=0.1 max_rpm=600.0 nose_r=0.8 profile=12 0;12 -8 C1;28 -8;28 -30 R4;50 -45;50 -80 prog=1000 retract=1.0 rpm=600.0 sep_finish_tool=0 spindle_mode=0 stock_dia=52.0 stock_z=1.0 surface_speed=180.0 tool=1 =====
!! ValueError: roughing feed must be greater than 0, got 0.0000
===== case 0008 | clear_z=5.0 clearance=2.0 coolant_type=1 do_finish=1 doc=2.0 feed_finish=0.12 feed_first=0.0 feed_rough=0.3 finish_nose_r=0.4 finish_tool=2 finish_x=0.4 finish_z=0.1 max_rpm=0.0 nose_r=0.8 profile=12 0;12 -8 C1;28 -8;28 -30 R4;50 -45;50 -80 prog=1000 retract=1.0 rpm=600.0 sep_finish_tool=0 spindle_mode=0 stock_dia=52.0 stock_z=1.0 surface_speed=180.0 tool=1 =====
!! ValueError: CSS G96 needs a max RPM above 0 - it is the D word, the cap the spindle may run up to, and D0 caps it at a standstill
===== case 0009 | clear_z=5.0 clearance=2.0 coolant_type=1 do_finish=2 doc=0.0 feed_finish=0.12 feed_first=0.0 feed_rough=0.3 finish_nose_r=0.4 finish_tool=2 finish_x=0.4 finish_z=0.1 max_rpm=600.0 nose_r=0.8 profile=12 0;12 -8 C1;28 -8;28 -30 R4;50 -45;50 -80 prog=1000 retract=1.0 rpm=600.0 sep_finish_tool=0 spindle_mode=0 stock_dia=52.0 stock_z=1.0 surface_speed=180.0 tool=1 =====
(Lathe OD profile - LONGHAND expansion of G71/G70 - same toolpath)
(Set work zero at the finished face, on the spindle centreline)
(self-contained: no subroutine, no canned cycle)
(Stock dia 52.000  face Z 1.000  ->  profile dia 50.000  Z -80.000)
(Tool T0101   wcs G54  coolant flood)
(finish only - rough DOC 0.000  retract 1.000  finish allowance X 0.400 rad / Z 0.100)
(CSS 180 m/min  max 600 rpm  feed rough 0.3000 / finish 0.1200 mm-rev)
(=== conversational block - do not edit; lets the panel reload this file ===)
(CONV1 cycle=od_profile)
(CONV1 prog=1000 tool=1 stock_dia=52 stock_z=1 doc=0 finish_x=0.4)
(CONV1 finish_z=0.1 nose_r=0.8 retract=1 surface_speed=180 max_rpm=600 spindle_mode=0)
(CONV1 rpm=600 feed_rough=0.3 feed_first=0 feed_finish=0.12 do_finish=2 sep_finish_tool=0)
(CONV1 finish_tool=2 finish_nose_r=0.4 clearance=2 clear_z=5 coolant_type=1)
(CONV1 P 12 0)
(CONV1 P 12 -8 C1)
(CONV1 P 28 -8)
(CONV1 P 28 -30 R4)
(CONV1 P 50 -45)
(CONV1 P 50 -80)
(CONV1 END)
G18 G21 G7 G90 G95 G40
G64 P0.02
G54
G30
T0101
G96 S180 D600 M3
M8
G0 X52.0000 Z1.0000
G0 X12.0000 Z0.2000
G1 X12.0000 Z-0.8000 F0.1200
G1 X12.0000 Z-7.4686
G1 X13.0626 Z-8.0000
G1 X26.4000 Z-8.0000
G3 X28.0000 Z-8.8000 R0.8000
G1 X28.0000 Z-29.4905
G2 X29.2390 Z-31.3829 R3.2000
G1 X49.6902 Z-45.3269
G3 X50.0000 Z-45.8000 R0.8000
G1 X50.0000 Z-80.8000
G0 X54.0000 Z-80.8000
G0 X54.0000 Z5.0000
G97 S600
M5
M9
M30
===== case 0010 | clear_z=5.0 clearance=2.0 coolant_type=1 do_finish=2 doc=2.0 feed_finish=0.12 feed_first=0.0 feed_rough=0.0 finish_nose_r=0.4 finish_tool=2 finish_x=0.4 finish_z=0.1 max_rpm=600.0 nose_r=0.8 profile=12 0;12 -8 C1;28 -8;28 -30 R4;50 -45;50 -80 prog=1000 retract=1.0 rpm=600.0 sep_finish_tool=0 spindle_mode=0 stock_dia=52.0 stock_z=1.0 surface_speed=180.0 tool=1 =====
(Lathe OD profile - LONGHAND expansion of G71/G70 - same toolpath)
(Set work zero at the finished face, on the spindle centreline)
(self-contained: no subroutine, no canned cycle)
(Stock dia 52.000  face Z 1.000  ->  profile dia 50.000  Z -80.000)
(Tool T0101   wcs G54  coolant flood)
(finish only - rough DOC 2.000  retract 1.000  finish allowance X 0.400 rad / Z 0.100)
(CSS 180 m/min  max 600 rpm  feed rough 0.0000 / finish 0.1200 mm-rev)
(=== conversational block - do not edit; lets the panel reload this file ===)
(CONV1 cycle=od_profile)
(CONV1 prog=1000 tool=1 stock_dia=52 stock_z=1 doc=2 finish_x=0.4)
(CONV1 finish_z=0.1 nose_r=0.8 retract=1 surface_speed=180 max_rpm=600 spindle_mode=0)
(CONV1 rpm=600 feed_rough=0 feed_first=0 feed_finish=0.12 do_finish=2 sep_finish_tool=0)
(CONV1 finish_tool=2 finish_nose_r=0.4 clearance=2 clear_z=5 coolant_type=1)
(CONV1 P 12 0)
(CONV1 P 12 -8 C1)
(CONV1 P 28 -8)
(CONV1 P 28 -30 R4)
(CONV1 P 50 -45)
(CONV1 P 50 -80)
(CONV1 END)
G18 G21 G7 G90 G95 G40
G64 P0.02
G54
G30
T0101
G96 S180 D600 M3
M8
G0 X52.0000 Z1.0000
G0 X12.0000 Z0.2000
G1 X12.0000 Z-0.8000 F0.1200
G1 X12.0000 Z-7.4686
G1 X13.0626 Z-8.0000
G1 X26.4000 Z-8.0000
G3 X28.0000 Z-8.8000 R0.8000
G1 X28.0000 Z-29.4905
G2 X29.2390 Z-31.3829 R3.2000
G1 X49.6902 Z-45.3269
G3 X50.0000 Z-45.8000 R0.8000
G1 X50.0000 Z-80.8000
G0 X54.0000 Z-80.8000
G0 X54.0000 Z5.0000
G97 S600
M5
M9
M30
===== case 0011 | clear_z=5.0 clearance=2.0 coolant_type=1 do_finish=0 doc=2.0 feed_finish=0.0 feed_first=0.0 feed_rough=0.3 finish_nose_r=0.4 finish_tool=2 finish_x=0.4 finish_z=0.1 max_rpm=600.0 nose_r=0.8 profile=12 0;12 -8 C1;28 -8;28 -30 R4;50 -45;50 -80 prog=1000 retract=1.0 rpm=600.0 sep_finish_tool=0 spindle_mode=0 stock_dia=52.0 stock_z=1.0 surface_speed=180.0 tool=1 =====
(Lathe OD profile - LONGHAND expansion of G71/G70 - same toolpath)
(Set work zero at the finished face, on the spindle centreline)
(self-contained: no subroutine, no canned cycle)
(Stock dia 52.000  face Z 1.000  ->  profile dia 50.000  Z -80.000)
(Tool T0101   wcs G54  coolant flood)
(rough only - rough DOC 2.000  retract 1.000  finish allowance X 0.400 rad / Z 0.100)
(CSS 180 m/min  max 600 rpm  feed rough 0.3000 / finish 0.0000 mm-rev)
(=== conversational block - do not edit; lets the panel reload this file ===)
(CONV1 cycle=od_profile)
(CONV1 prog=1000 tool=1 stock_dia=52 stock_z=1 doc=2 finish_x=0.4)
(CONV1 finish_z=0.1 nose_r=0.8 retract=1 surface_speed=180 max_rpm=600 spindle_mode=0)
(CONV1 rpm=600 feed_rough=0.3 feed_first=0 feed_finish=0 do_finish=0 sep_finish_tool=0)
(CONV1 finish_tool=2 finish_nose_r=0.4 clearance=2 clear_z=5 coolant_type=1)
(CONV1 P 12 0)
(CONV1 P 12 -8 C1)
(CONV1 P 28 -8)
(CONV1 P 28 -30 R4)
(CONV1 P 50 -45)
(CONV1 P 50 -80)
(CONV1 END)
G18 G21 G7 G90 G95 G40
G64 P0.02
G54
G30
T0101
G96 S180 D600 M3
M8
G0 X52.0000 Z1.0000
G1 X52.0000 Z-80.8000 F0.3000
G0 X54.0000 Z-79.8000
G0 X54.0000 Z0.0000
G0 X52.0000 Z1.0000
G0 X48.0000 Z0.9184
G1 X48.0000 Z-43.5290
G0 X50.0000 Z-42.5290
G0 X50.0000 Z-0.0816
G0 X48.0000 Z0.9184
G0 X44.0000 Z0.8367
G1 X44.0000 Z-40.8018
G0 X46.0000 Z-39.8018
G0 X46.0000 Z-0.1633
G0 X44.0000 Z0.8367
G0 X40.0000 Z0.7551
G1 X40.0000 Z-38.0745
G0 X42.0000 Z-37.0745
G0 X42.0000 Z-0.2449
G0 X40.0000 Z0.7551
G0 X36.0000 Z0.6735
G1 X36.0000 Z-35.3472
G0 X38.0000 Z-34.3472
G0 X38.0000 Z-0.3265
G0 X36.0000 Z0.6735
G0 X32.0000 Z0.5918
G1 X32.0000 Z-32.6199
G0 X34.0000 Z-31.6199
G0 X34.0000 Z-0.4082
G0 X32.0000 Z0.5918
G0 X28.0000 Z0.5102
G1 X28.0000 Z-8.0072
G0 X30.0000 Z-7.0072
G0 X30.0000 Z-0.4898
G0 X28.0000 Z0.5102
G0 X24.0000 Z0.4286
G1 X24.0000 Z-7.9000
G0 X26.0000 Z-6.9000
G0 X26.0000 Z-0.5714
G0 X24.0000 Z0.4286
G0 X20.0000 Z0.3469
G1 X20.0000 Z-7.9000
G0 X22.0000 Z-6.9000
G0 X22.0000 Z-0.6531
G0 X20.0000 Z0.3469
G0 X16.0000 Z0.2653
G1 X16.0000 Z-7.9000
G0 X18.0000 Z-6.9000
G0 X18.0000 Z-0.7347
G0 X16.0000 Z0.2653
G0 X12.8000 Z0.2000
G1 X12.8000 Z-0.8000
G1 X12.8000 Z-7.3686
G1 X13.8628 Z-7.9000
G1 X27.2000 Z-7.9000
G3 X28.8000 Z-8.7000 R0.8000
G1 X28.8000 Z-29.3905
G2 X30.0390 Z-31.2829 R3.2000
G1 X50.4902 Z-45.2269
G3 X50.8000 Z-45.7000 R0.8000
G1 X50.8000 Z-80.8000
G1 X52.0000 Z-80.8000
G0 X54.0000 Z-80.8000
G0 X54.0000 Z5.0000
G97 S600
M5
M9
M30
===== case 0012 | clear_z=5.0 clearance=2.0 coolant_type=1 do_finish=1 doc=2.0 feed_finish=0.0 feed_first=0.0 feed_rough=0.3 finish_nose_r=0.4 finish_tool=2 finish_x=0.4 finish_z=0.1 max_rpm=600.0 nose_r=0.8 profile=12 0;12 -8 C1;28 -8;28 -30 R4;50 -45;50 -80 prog=1000 retract=1.0 rpm=600.0 sep_finish_tool=0 spindle_mode=0 stock_dia=52.0 stock_z=1.0 surface_speed=180.0 tool=1 =====
!! ValueError: finishing feed must be greater than 0, got 0.0000
===== case 0013 | clear_z=5.0 clearance=2.0 coolant_type=1 do_finish=1 doc=2.0 feed_finish=0.12 feed_first=0.0 feed_rough=0.3 finish_nose_r=0.4 finish_tool=2 finish_x=0.4 finish_z=0.1 max_rpm=0.0 nose_r=0.8 profile=12 0;12 -8 C1;28 -8;28 -30 R4;50 -45;50 -80 prog=1000 retract=1.0 rpm=600.0 sep_finish_tool=0 spindle_mode=1 stock_dia=52.0 stock_z=1.0 surface_speed=180.0 tool=1 =====
(Lathe OD profile - LONGHAND expansion of G71/G70 - same toolpath)
(Set work zero at the finished face, on the spindle centreline)
(self-contained: no subroutine, no canned cycle)
(Stock dia 52.000  face Z 1.000  ->  profile dia 50.000  Z -80.000)
(Tool T0101   wcs G54  coolant flood)
(rough + finish - rough DOC 2.000  retract 1.000  finish allowance X 0.400 rad / Z 0.100)
(G97 constant 600 rpm  feed rough 0.3000 / finish 0.1200 mm-rev)
(=== conversational block - do not edit; lets the panel reload this file ===)
(CONV1 cycle=od_profile)
(CONV1 prog=1000 tool=1 stock_dia=52 stock_z=1 doc=2 finish_x=0.4)
(CONV1 finish_z=0.1 nose_r=0.8 retract=1 surface_speed=180 max_rpm=0 spindle_mode=1)
(CONV1 rpm=600 feed_rough=0.3 feed_first=0 feed_finish=0.12 do_finish=1 sep_finish_tool=0)
(CONV1 finish_tool=2 finish_nose_r=0.4 clearance=2 clear_z=5 coolant_type=1)
(CONV1 P 12 0)
(CONV1 P 12 -8 C1)
(CONV1 P 28 -8)
(CONV1 P 28 -30 R4)
(CONV1 P 50 -45)
(CONV1 P 50 -80)
(CONV1 END)
G18 G21 G7 G90 G95 G40
G64 P0.02
G54
G30
T0101
G97 S600 M3
M8
G0 X52.0000 Z1.0000
G1 X52.0000 Z-80.8000 F0.3000
G0 X54.0000 Z-79.8000
G0 X54.0000 Z0.0000
G0 X52.0000 Z1.0000
G0 X48.0000 Z0.9184
G1 X48.0000 Z-43.5290
G0 X50.0000 Z-42.5290
G0 X50.0000 Z-0.0816
G0 X48.0000 Z0.9184
G0 X44.0000 Z0.8367
G1 X44.0000 Z-40.8018
G0 X46.0000 Z-39.8018
G0 X46.0000 Z-0.1633
G0 X44.0000 Z0.8367
G0 X40.0000 Z0.7551
G1 X40.0000 Z-38.0745
G0 X42.0000 Z-37.0745
G0 X42.0000 Z-0.2449
G0 X40.0000 Z0.7551
G0 X36.0000 Z0.6735
G1 X36.0000 Z-35.3472
G0 X38.0000 Z-34.3472
G0 X38.0000 Z-0.3265
G0 X36.0000 Z0.6735
G0 X32.0000 Z0.5918
G1 X32.0000 Z-32.6199
G0 X34.0000 Z-31.6199
G0 X34.0000 Z-0.4082
G0 X32.0000 Z0.5918
G0 X28.0000 Z0.5102
G1 X28.0000 Z-8.0072
G0 X30.0000 Z-7.0072
G0 X30.0000 Z-0.4898
G0 X28.0000 Z0.5102
G0 X24.0000 Z0.4286
G1 X24.0000 Z-7.9000
G0 X26.0000 Z-6.9000
G0 X26.0000 Z-0.5714
G0 X24.0000 Z0.4286
G0 X20.0000 Z0.3469
G1 X20.0000 Z-7.9000
G0 X22.0000 Z-6.9000
G0 X22.0000 Z-0.6531
G0 X20.0000 Z0.3469
G0 X16.0000 Z0.2653
G1 X16.0000 Z-7.9000
G0 X18.0000 Z-6.9000
G0 X18.0000 Z-0.7347
G0 X16.0000 Z0.2653
G0 X12.8000 Z0.2000
G1 X12.8000 Z-0.8000
G1 X12.8000 Z-7.3686
G1 X13.8628 Z-7.9000
G1 X27.2000 Z-7.9000
G3 X28.8000 Z-8.7000 R0.8000
G1 X28.8000 Z-29.3905
G2 X30.0390 Z-31.2829 R3.2000
G1 X50.4902 Z-45.2269
G3 X50.8000 Z-45.7000 R0.8000
G1 X50.8000 Z-80.8000
G1 X52.0000 Z-80.8000
G0 X52.0000 Z1.0000
G0 X12.0000 Z0.2000
G1 X12.0000 Z-0.8000 F0.1200
G1 X12.0000 Z-7.4686
G1 X13.0626 Z-8.0000
G1 X26.4000 Z-8.0000
G3 X28.0000 Z-8.8000 R0.8000
G1 X28.0000 Z-29.4905
G2 X29.2390 Z-31.3829 R3.2000
G1 X49.6902 Z-45.3269
G3 X50.0000 Z-45.8000 R0.8000
G1 X50.0000 Z-80.8000
G0 X54.0000 Z-80.8000
G0 X54.0000 Z5.0000
M5
M9
M30
===== case 0014 | clear_z=5.0 clearance=2.0 coolant_type=1 do_finish=1 doc=2.0 feed_finish=0.12 feed_first=0.0 feed_rough=0.3 finish_nose_r=0.4 finish_tool=2 finish_x=0.4 finish_z=0.1 max_rpm=600.0 nose_r=0.8 profile=12 0;12 -8 C1;28 -8;28 -30 R4;50 -45;50 -80 prog=1000 retract=1.0 rpm=600.0 sep_finish_tool=0 spindle_mode=0 stock_dia=52.0 stock_z=1.0 surface_speed=0.0 tool=1 =====
!! ValueError: CSS G96 needs a surface speed above 0 - select Constant RPM G97 for a fixed spindle speed
===== case 0015 | clear_z=5.0 clearance=2.0 coolant_type=1 do_finish=1 doc=2.0 feed_finish=0.12 feed_first=0.0 feed_rough=0.3 finish_nose_r=0.4 finish_tool=2 finish_x=0.4 finish_z=0.1 max_rpm=600.0 nose_r=0.8 profile=12 0;12 -8 C1;28 -8;28 -30 R4;50 -45;50 -80 prog=1000 retract=1.0 rpm=600.0 sep_finish_tool=0 spindle_mode=0 stock_dia=52.0 stock_z=1.0 surface_speed=-10.0 tool=1 =====
!! ValueError: CSS G96 needs a surface speed above 0 - select Constant RPM G97 for a fixed spindle speed
===== case 0016 | clear_z=5.0 clearance=2.0 coolant_type=1 do_finish=1 doc=2.0 feed_finish=0.12 feed_first=0.0 feed_rough=0.3 finish_nose_r=0.4 finish_tool=2 finish_x=0.4 finish_z=0.1 max_rpm=600.0 nose_r=0.8 profile=12 0;12 -8 C1;28 -8;28 -30 R4;50 -45;50 -80 prog=1000 retract=1.0 rpm=0.0 sep_finish_tool=0 spindle_mode=1 stock_dia=52.0 stock_z=1.0 surface_speed=180.0 tool=1 =====
!! ValueError: constant rpm G97 needs an rpm above 0
===== case 0017 | clear_z=5.0 clearance=2.0 coolant_type=1 do_finish=1 doc=2.0 feed_finish=0.12 feed_first=0.0 feed_rough=0.3 finish_nose_r=0.4 finish_tool=2 finish_x=0.4 finish_z=0.1 max_rpm=600.0 nose_r=0.8 profile=12 0;12 -8 C1;28 -8;28 -30 R4;50 -45;50 -80 prog=1000 retract=1.0 rpm=-100.0 sep_finish_tool=0 spindle_mode=1 stock_dia=52.0 stock_z=1.0 surface_speed=180.0 tool=1 =====
!! ValueError: constant rpm G97 needs an rpm above 0
