===== case 0000 | dx=0.4 dz=0.1 internal=False nose_r=3.0 profile=24 0;24 -12;44 -12;44 -26;24 -26;24 -40;44 -40;44 -65 =====
points:
   1  Z 0.000000  R 12.000000  -
   2  Z -12.000000  R 12.000000  -
   3  Z -12.000000  R 22.000000  -
   4  Z -26.000000  R 22.000000  -
   5  Z -26.000000  R 12.000000  -
   6  Z -40.000000  R 12.000000  -
   7  Z -40.000000  R 22.000000  -
   8  Z -65.000000  R 22.000000  -
contour:
   1  L  0.000000 12.000000 -> -12.000000 12.000000
   2  L  -12.000000 12.000000 -> -12.000000 22.000000
   3  L  -12.000000 22.000000 -> -26.000000 22.000000
   4  L  -26.000000 22.000000 -> -26.000000 12.000000
   5  L  -26.000000 12.000000 -> -40.000000 12.000000
   6  L  -40.000000 12.000000 -> -40.000000 22.000000
   7  L  -40.000000 22.000000 -> -65.000000 22.000000
rough target dx=0.400000 dz=0.100000 internal=False:
   1  Z 0.000000  R 12.400000  -
   2  Z -11.900000  R 12.400000  -
   3  Z -11.900000  R 22.400000  -
   4  Z -26.100000  R 22.400000  -
   5  Z -26.100000  R 12.400000  -
   6  Z -39.900000  R 12.400000  -
   7  Z -39.900000  R 22.400000  -
   8  Z -65.000000  R 22.400000  -
nose comp R=3.000000 internal=False -> 3 auto fillet(s):
   1  L  -3.000000 12.000000 -> -12.000000 12.000000
   2  L  -12.000000 12.000000 -> -12.000000 19.000000
   3  A  -12.000000 19.000000 -> -15.000000 22.000000  c -15.000000 19.000000  ccw
   4  L  -15.000000 22.000000 -> -29.000000 22.000000
   5  A  -29.000000 22.000000 -> -32.000000 19.000000  c -29.000000 19.000000  ccw
   6  L  -32.000000 19.000000 -> -32.000000 12.000000
   7  L  -32.000000 12.000000 -> -40.000000 12.000000
   8  L  -40.000000 12.000000 -> -40.000000 19.000000
   9  A  -40.000000 19.000000 -> -43.000000 22.000000  c -43.000000 19.000000  ccw
  10  L  -43.000000 22.000000 -> -68.000000 22.000000
===== case 0001 | dx=0.4 dz=0.1 internal=False nose_r=6.0 profile=24 0;24 -12;44 -12;44 -26;24 -26;24 -40;44 -40;44 -65 =====
points:
   1  Z 0.000000  R 12.000000  -
   2  Z -12.000000  R 12.000000  -
   3  Z -12.000000  R 22.000000  -
   4  Z -26.000000  R 22.000000  -
   5  Z -26.000000  R 12.000000  -
   6  Z -40.000000  R 12.000000  -
   7  Z -40.000000  R 22.000000  -
   8  Z -65.000000  R 22.000000  -
contour:
   1  L  0.000000 12.000000 -> -12.000000 12.000000
   2  L  -12.000000 12.000000 -> -12.000000 22.000000
   3  L  -12.000000 22.000000 -> -26.000000 22.000000
   4  L  -26.000000 22.000000 -> -26.000000 12.000000
   5  L  -26.000000 12.000000 -> -40.000000 12.000000
   6  L  -40.000000 12.000000 -> -40.000000 22.000000
   7  L  -40.000000 22.000000 -> -65.000000 22.000000
rough target dx=0.400000 dz=0.100000 internal=False:
   1  Z 0.000000  R 12.400000  -
   2  Z -11.900000  R 12.400000  -
   3  Z -11.900000  R 22.400000  -
   4  Z -26.100000  R 22.400000  -
   5  Z -26.100000  R 12.400000  -
   6  Z -39.900000  R 12.400000  -
   7  Z -39.900000  R 22.400000  -
   8  Z -65.000000  R 22.400000  -
nose comp R=6.000000 internal=False -> 3 auto fillet(s):
   1  L  -6.000000 12.000000 -> -12.000000 12.000000
   2  L  -12.000000 12.000000 -> -12.000000 16.000000
   3  A  -12.000000 16.000000 -> -18.000000 22.000000  c -18.000000 16.000000  ccw
   4  L  -18.000000 22.000000 -> -32.000000 22.000000
   5  A  -32.000000 22.000000 -> -38.000000 16.000000  c -32.000000 16.000000  ccw
   6  L  -38.000000 16.000000 -> -38.000000 12.000000
   7  L  -38.000000 12.000000 -> -40.000000 12.000000
   8  L  -40.000000 12.000000 -> -40.000000 16.000000
   9  A  -40.000000 16.000000 -> -46.000000 22.000000  c -46.000000 16.000000  ccw
  10  L  -46.000000 22.000000 -> -71.000000 22.000000
===== case 0002 | dx=0.4 dz=0.1 internal=False nose_r=12.0 profile=24 0;24 -12;44 -12;44 -26;24 -26;24 -40;44 -40;44 -65 =====
!! ValueError: nose radius 12.000 does not fit the internal corner at Z -12.000 dia 24.000 - shorten it or use a smaller tool
===== case 0003 | dx=0.4 dz=0.1 internal=False nose_r=3.0 profile=20 0;20 -20;40 -20;40 -40;20 -40;20 -50 =====
points:
   1  Z 0.000000  R 10.000000  -
   2  Z -20.000000  R 10.000000  -
   3  Z -20.000000  R 20.000000  -
   4  Z -40.000000  R 20.000000  -
   5  Z -40.000000  R 10.000000  -
   6  Z -50.000000  R 10.000000  -
contour:
   1  L  0.000000 10.000000 -> -20.000000 10.000000
   2  L  -20.000000 10.000000 -> -20.000000 20.000000
   3  L  -20.000000 20.000000 -> -40.000000 20.000000
   4  L  -40.000000 20.000000 -> -40.000000 10.000000
   5  L  -40.000000 10.000000 -> -50.000000 10.000000
rough target dx=0.400000 dz=0.100000 internal=False:
   1  Z 0.000000  R 10.400000  -
   2  Z -19.900000  R 10.400000  -
   3  Z -19.900000  R 20.400000  -
   4  Z -40.100000  R 20.400000  -
   5  Z -40.100000  R 10.400000  -
   6  Z -50.000000  R 10.400000  -
nose comp R=3.000000 internal=False -> 2 auto fillet(s):
   1  L  -3.000000 10.000000 -> -20.000000 10.000000
   2  L  -20.000000 10.000000 -> -20.000000 17.000000
   3  A  -20.000000 17.000000 -> -23.000000 20.000000  c -23.000000 17.000000  ccw
   4  L  -23.000000 20.000000 -> -43.000000 20.000000
   5  A  -43.000000 20.000000 -> -46.000000 17.000000  c -43.000000 17.000000  ccw
   6  L  -46.000000 17.000000 -> -46.000000 10.000000
   7  L  -46.000000 10.000000 -> -53.000000 10.000000
===== case 0004 | dx=0.4 dz=0.1 internal=False nose_r=6.0 profile=20 0;20 -20;40 -20;40 -40;20 -40;20 -50 =====
points:
   1  Z 0.000000  R 10.000000  -
   2  Z -20.000000  R 10.000000  -
   3  Z -20.000000  R 20.000000  -
   4  Z -40.000000  R 20.000000  -
   5  Z -40.000000  R 10.000000  -
   6  Z -50.000000  R 10.000000  -
contour:
   1  L  0.000000 10.000000 -> -20.000000 10.000000
   2  L  -20.000000 10.000000 -> -20.000000 20.000000
   3  L  -20.000000 20.000000 -> -40.000000 20.000000
   4  L  -40.000000 20.000000 -> -40.000000 10.000000
   5  L  -40.000000 10.000000 -> -50.000000 10.000000
rough target dx=0.400000 dz=0.100000 internal=False:
   1  Z 0.000000  R 10.400000  -
   2  Z -19.900000  R 10.400000  -
   3  Z -19.900000  R 20.400000  -
   4  Z -40.100000  R 20.400000  -
   5  Z -40.100000  R 10.400000  -
   6  Z -50.000000  R 10.400000  -
nose comp R=6.000000 internal=False -> 2 auto fillet(s):
   1  L  -6.000000 10.000000 -> -20.000000 10.000000
   2  L  -20.000000 10.000000 -> -20.000000 14.000000
   3  A  -20.000000 14.000000 -> -26.000000 20.000000  c -26.000000 14.000000  ccw
   4  L  -26.000000 20.000000 -> -46.000000 20.000000
   5  A  -46.000000 20.000000 -> -52.000000 14.000000  c -46.000000 14.000000  ccw
   6  L  -52.000000 14.000000 -> -52.000000 10.000000
   7  L  -52.000000 10.000000 -> -56.000000 10.000000
===== case 0005 | dx=0.4 dz=0.1 internal=False nose_r=12.0 profile=20 0;20 -20;40 -20;40 -40;20 -40;20 -50 =====
!! ValueError: nose radius 12.000 does not fit the internal corner at Z -20.000 dia 20.000 - shorten it or use a smaller tool
===== case 0006 | dx=0.4 dz=0.1 internal=False nose_r=3.0 profile=20 0;20 -25 R3;40 -25;40 -60 =====
points:
   1  Z 0.000000  R 10.000000  -
   2  Z -25.000000  R 10.000000  R3.000000
   3  Z -25.000000  R 20.000000  -
   4  Z -60.000000  R 20.000000  -
contour:
   1  L  0.000000 10.000000 -> -22.000000 10.000000
   2  A  -22.000000 10.000000 -> -25.000000 13.000000  c -22.000000 13.000000  cw
   3  L  -25.000000 13.000000 -> -25.000000 20.000000
   4  L  -25.000000 20.000000 -> -60.000000 20.000000
rough target dx=0.400000 dz=0.100000 internal=False:
   1  Z 0.000000  R 10.400000  -
   2  Z -24.900000  R 10.400000  R3.000000
   3  Z -24.900000  R 20.400000  -
   4  Z -60.000000  R 20.400000  -
nose comp R=3.000000 internal=False -> 0 auto fillet(s):
   1  L  -3.000000 10.000000 -> -25.000000 10.000000
   2  L  -25.000000 10.000000 -> -25.000000 17.000000
   3  A  -25.000000 17.000000 -> -28.000000 20.000000  c -28.000000 17.000000  ccw
   4  L  -28.000000 20.000000 -> -63.000000 20.000000
===== case 0007 | dx=0.4 dz=0.1 internal=False nose_r=6.0 profile=20 0;20 -25 R3;40 -25;40 -60 =====
!! ValueError: a concave arc of radius 3.000 is smaller than the 6.000 nose radius - the tool cannot cut it
===== case 0008 | dx=0.4 dz=0.1 internal=False nose_r=12.0 profile=20 0;20 -25 R3;40 -25;40 -60 =====
!! ValueError: a concave arc of radius 3.000 is smaller than the 12.000 nose radius - the tool cannot cut it
