Use of STEP-NC with LinuxCNC

More
02 Nov 2015 20:33 #64614 by ArcEye
Replied by ArcEye on topic Use of STEP-NC with LinuxCNC
I am trying to find something simple STEP-NC code wise to test it, but don't have any time to do so for a while.

Please Log in or Create an account to join the conversation.

More
02 Nov 2015 23:23 #64618 by ArcEye
Replied by ArcEye on topic Use of STEP-NC with LinuxCNC
It turns out the interpreter has a sample file hard coded as default choice

The output is pretty identical to canterp.cc for example
/*
  canterp.cc

  Straight-through interpreter of a file of printed canonical interface
  commands like these:

  1 N..... USE_LENGTH_UNITS(CANON_UNITS_MM)
  2 N..... SET_ORIGIN_OFFSETS(0.0000, 0.0000, 0.0000)
  3 N..... SET_FEED_REFERENCE(CANON_XYZ)
  4 N..... COMMENT("Circle Diamond Square Program")
  5 N..... COMMENT("Tom Kramer")
  6 N..... COMMENT("26-Sep-1994")
  7 N..... COMMENT("Assumes 4"x4"x2" finished stock")
  8 N..... COMMENT("Top of stock at Z=2"")
  9 N..... COMMENT("Cutter does not descend more than 0.94" below top")
  10 N0080  MIST_OFF()
  11 N0080  FLOOD_OFF()
  12 N0090  USE_TOOL_LENGTH_OFFSET(1.0000)
  13 N0110  STRAIGHT_TRAVERSE(0.0000, 0.0000, 3.0000)
  14 N0140  SET_FEED_RATE(16.0000)
  15 N0140  SET_SPINDLE_SPEED(3500.0000)
  16 N0140  START_SPINDLE_CLOCKWISE()
  17 N0150  COMMENT("MILLING AN ENCLOSED POCKET")
  18 N0160  STRAIGHT_TRAVERSE(0.0000, 3.9150, 3.0000)
  19 N0170  STRAIGHT_TRAVERSE(0.0000, 3.9150, 2.1000)
  20 N0180  COMMENT("start left circle zigzag")
  21 N0180  STRAIGHT_FEED(0.0000, 3.9150, 1.6875)
  22 N0190  STRAIGHT_FEED(4.0000, 3.9150, 1.6875)
  23 N0200  STRAIGHT_FEED(4.0000, 3.7250, 1.6875)
  24 N0210  STRAIGHT_FEED(0.0000, 3.7250, 1.6875)
  25 N0220  STRAIGHT_FEED(0.0000, 3.5350, 1.6875)
  26 N0230  STRAIGHT_FEED(1.4370, 3.5350, 1.6875)
  27 N0240  ARC_FEED(1.0704, 3.3450, 2.0000, 2.0000, 1, 1.6875)

  which typically come out of one of Tom Kramer's interpreters.
  The first two columns are ignored, the rest is converted to
  equivalent canonical calls.
*/

The test file ex1.stp looks like this
ISO-10303-21;

HEADER;
FILE_DESCRIPTION(('ISO 14649-11 EXAMPLE 1',
          'SIMPLE PROGRAM WITH A PLANAR_FACE, A POCKET, AND A ROUND_HOLE'),
          '1');
FILE_NAME('EXAMPLE1.STP',
          '2002-02-02',
          ('YONG TAK HYUN','JOCHEN WOLF'),
          ('WZL, RWTH-AACHEN'),
          '$',
          'ISO 14649',
          '$');
FILE_SCHEMA(('MACHINING_SCHEMA','MILLING_SCHEMA'));
ENDSEC;

DATA;
#1= PROJECT('EXECUTE EXAMPLE1',#2,(#4),$,$,$);
#2= WORKPLAN('MAIN WORKPLAN',(#10,#11,#12,#13,#14),$,#8,$);
#4= WORKPIECE('SIMPLE WORKPIECE',#6,0.010,$,$,$,(#66,#67,#68,#69));
#6= MATERIAL('ST-50','STEEL',(#7));
#7= DESCRIPTIVE_PARAMETER('E=200000N/M2','mild');
#8= SETUP('SETUP1',#71,#62,(#9));
#9= WORKPIECE_SETUP(#4,#74,$,$,());
#10= MACHINING_WORKINGSTEP('WS FINISH PLANAR FACE1',#62,#16,#19,$);
#11= MACHINING_WORKINGSTEP('WS DRILL HOLE1',#62,#17,#20,$);
#12= MACHINING_WORKINGSTEP('WS REAM HOLE1',#62,#17,#21,$);
#13= MACHINING_WORKINGSTEP('WS ROUGH POCKET1',#62,#18,#22,$);
#14= MACHINING_WORKINGSTEP('WS FINISH POCKET1',#62,#18,#23,$);
#16= PLANAR_FACE('PLANAR FACE1',#4,(#19),#77,#63,#24,#25,$,());
#17= ROUND_HOLE('HOLE1 D=22MM',#4,(#20,#21),#81,#64,#58,$,#26);
#18= CLOSED_POCKET('POCKET1',#4,(#22,#23),#84,#65,(),$,#27,$,#37,#28);
/* #18= CLOSED_POCKET('POCKET1',#4,(#22,#23),#84,#65,(),$,#27,#35,#37,#28); */
#19= PLANE_FINISH_MILLING($,$,'FINISH PLANAR FACE1',10.000,$,#39,#40,#41,$,
     #60,#61,#42,2.500,$);
#20= DRILLING($,$,'DRILL HOLE1',10.000,$,#44,#45,#41,$,$,$,$,$,#46);
#21= REAMING($,$,'REAM HOLE1',10.000,$,#47,#48,#41,$,$,$,$,$,#49,.T.,$,$);
#22= BOTTOM_AND_SIDE_ROUGH_MILLING($,$,'ROUGH POCKET1',15.000,$,#39,#50,#41,
     $,$,$,#51,6.500,5.000,1.000,0.500);
#23= BOTTOM_AND_SIDE_FINISH_MILLING($,$,'FINISH POCKET1',15.000,$,#39,#52,
     #41,$,$,$,#53,2.000,10.000,$,$);
#24= LINEAR_PATH($,#54,#55);
#25= LINEAR_PROFILE($,#57);
#26= THROUGH_BOTTOM_CONDITION();
#27= PLANAR_POCKET_BOTTOM_CONDITION();
#28= RECTANGULAR_CLOSED_PROFILE($, #122, #121);
/* #28= GENERAL_CLOSED_PROFILE($,#59); */ 
#29= TAPERED_ENDMILL(#30,4,.RIGHT.,.F.,$,$);
#30= MILLING_TOOL_DIMENSION(18.000, $,$, 29.0, 0.0, $,$);
/* #30= MILLING_TOOL_DIMENSION(20.000,$,$,$,1.500,$,$); */
#31= TWIST_DRILL(#32,2,.RIGHT.,.F.,0.840);
#32= MILLING_TOOL_DIMENSION(20.000,31.000,0.100,45.000,2.000,5.000,8.000);
#33= TAPERED_REAMER(#34,6,.RIGHT.,.F.,$,$);
#34= MILLING_TOOL_DIMENSION(22.000,$,$,40.0,$,$,$);
/* #34= MILLING_TOOL_DIMENSION(22.000,$,$,$,$,$,$); */
/* #35= TOLERANCED_LENGTH_MEASURE(1.000,#36); */
/* #36= PLUS_MINUS_VALUE(0.100,0.100,3); */
#37= TOLERANCED_LENGTH_MEASURE(10.000,#38);
#38= PLUS_MINUS_VALUE(0.100,0.100,3);
#39= MILLING_CUTTING_TOOL('MILL 18MM',#29,(#125),80.000,$,$);
/* #39= MILLING_CUTTING_TOOL('MILL 20MM',#29,(#125),80.000,$,$); */
#40= MILLING_TECHNOLOGY(0.040,.TCP.,$,-12.000,$,.F.,.F.,.F.,$);
/* #40= MILLING_TECHNOLOGY(0.040,.TCP.,$,12.000,$,.F.,.F.,.F.,$); */
#41= MILLING_MACHINE_FUNCTIONS(.T.,$,$,.F.,$,(),.T.,$,$,());
#42= BIDIRECTIONAL_MILLING(0.05, .T., #43, .LEFT., $);
/* #42= BIDIRECTIONAL_MILLING(5.000,.T.,#43,.LEFT.,$); */
#43= DIRECTION('STRATEGY PLANAR FACE1: 1.DIRECTION',(0.000,1.000,0.000));
#44= MILLING_CUTTING_TOOL('SPIRAL_DRILL_20MM',#31,(#126),90.000,$,$);
#45= MILLING_TECHNOLOGY(0.030,.TCP.,$,-16.000,$,.F.,.F.,.F.,$);
/* #45= MILLING_TECHNOLOGY(0.030,.TCP.,$,16.000,$,.F.,.F.,.F.,$); */
#46= DRILLING_TYPE_STRATEGY(0.75, 0.50, 2.000, 0.50,0.75, 8.000);
/* #46= DRILLING_TYPE_STRATEGY(75.000,50.000,2.000,50.000,75.000,8.000); */
#47= MILLING_CUTTING_TOOL('REAMER_22MM',#33,(#127),100.000,$,$);
#48= MILLING_TECHNOLOGY(0.030,.TCP.,$,-18.000,$,.F.,.F.,.F.,$);
/* #48= MILLING_TECHNOLOGY(0.030,.TCP.,$,18.000,$,.F.,.F.,.F.,$); */
#49= DRILLING_TYPE_STRATEGY($,$,$,$,$,$);
#50= MILLING_TECHNOLOGY(0.040,.TCP.,$,-20.000,$,.F.,.F.,.F.,$);
/* #50= MILLING_TECHNOLOGY($,.TCP.,$,20.000,$,.F.,.F.,.F.,$); */
#51= CONTOUR_PARALLEL($,$,.CW.,.CONVENTIONAL.);
/* #51= CONTOUR_BIDIRECTIONAL($,$,$,$,$,$); */
#52= MILLING_TECHNOLOGY(0.040,.TCP.,$,-20.000,$,.F.,.F.,.F.,$);
/* #52= MILLING_TECHNOLOGY($,.TCP.,$,20.000,$,.F.,.F.,.F.,$); */
#53= CONTOUR_PARALLEL(0.05, .T., .CW., .CONVENTIONAL.);
/* #53= CONTOUR_PARALLEL(5.000,.T.,.CW.,.CONVENTIONAL.); */
#54= TOLERANCED_LENGTH_MEASURE(120.000,#56);
#55= DIRECTION('COURSE OF TRAVEL DIRECTION',(0.000,1.000,0.000));
#56= PLUS_MINUS_VALUE(0.300,0.300,3);
#57= NUMERIC_PARAMETER('PROFILE LENGTH',100.000,'MM');
#58= TOLERANCED_LENGTH_MEASURE(22.000,#56);
/* #59= POLYLINE('CONTOUR OF POCKET1',(#121,#122,#123,#124,#121)); ORIGINAL */
#60= PLUNGE_TOOLAXIS($);
/* #60= PLUNGE_RAMP($,45.000); */
#61= PLUNGE_TOOLAXIS($);
/* #61= PLUNGE_RAMP($,45.000); */
#62= PLANE('SECURITY PLANE',#73);
/* #62= ELEMENTARY_SURFACE('SECURITY PLANE',#73); ORIGINAL */
#63= PLANE('PLANAR FACE1-DEPTH PLANE',#80);
/* #63= ELEMENTARY_SURFACE('PLANAR FACE1-DEPTH PLANE',#80); ORIGINAL */
#64= PLANE('DEPTH SURFACE FOR ROUND HOLE1',#83);
/* #64= ELEMENTARY_SURFACE('DEPTH SURFACE FOR ROUND HOLE1',#83); ORIGINAL */
#65= PLANE('DEPTH SURFACE FOR POCKET1',#94);
/* #65= ELEMENTARY_SURFACE('DEPTH SURFACE FOR POCKET1',#94); ORIGINAL */
#66= CARTESIAN_POINT('CLAMPING_POSITION1',(0.000,20.000,25.000));
#67= CARTESIAN_POINT('CLAMPING_POSITION2',(100.000,20.000,25.000));
#68= CARTESIAN_POINT('CLAMPING_POSITION3',(0.000,100.000,25.000));
#69= CARTESIAN_POINT('CLAMPING_POSITION4',(100.000,100.000,25.000));
#71= AXIS2_PLACEMENT_3D('SETUP1',#95,#96,#97);
#73= AXIS2_PLACEMENT_3D('PLANE1',#98,#99,#100);
#74= AXIS2_PLACEMENT_3D('WORKPIECE',#101,#102,#103);
#77= AXIS2_PLACEMENT_3D('PLANAR FACE1',#104,#105,#106);
#80= AXIS2_PLACEMENT_3D('PLANAR FACE1',#107,#108,#109);
#81= AXIS2_PLACEMENT_3D('HOLE1',#110,#111,#114);
/* #81= AXIS2_PLACEMENT_3D('HOLE1',#110,#111,$); ORIGINAL */
#83= AXIS2_PLACEMENT_3D('HOLE1',#112,#113,#114);
#84= AXIS2_PLACEMENT_3D('POCKET1',#115,#116,#117);
#94= AXIS2_PLACEMENT_3D('POCKET1',#118,#119,#120);
#95= CARTESIAN_POINT('SETUP1: LOCATION ',(0.000,0.000,0.000));
/* #95= CARTESIAN_POINT('SETUP1: LOCATION ',(150.000,90.000,40.000)); ORIGNL */
#96= DIRECTION(' AXIS ',(0.000,0.000,1.000));
#97= DIRECTION(' REF_DIRECTION',(1.000,0.000,0.000));
#98= CARTESIAN_POINT('SECPLANE1: LOCATION ',(0.000,0.000,30.000));
#99= DIRECTION(' AXIS ',(0.000,0.000,1.000));
#100= DIRECTION(' REF_DIRECTION',(1.000,0.000,0.000));
#101= CARTESIAN_POINT('WORKPIECE1:LOCATION ',(0.000,0.000,0.000));
#102= DIRECTION(' AXIS ',(0.000,0.000,1.000));
#103= DIRECTION(' REF_DIRECTION',(1.000,0.000,0.000));
#104= CARTESIAN_POINT('PLANAR FACE1:LOCATION ',(0.000,0.000,5.000));
#105= DIRECTION(' AXIS ',(0.000,0.000,1.000));
#106= DIRECTION(' REF_DIRECTION',(1.000,0.000,0.000));
#107= CARTESIAN_POINT('PLANAR FACE1:DEPTH ',(0.000,0.000,-5.000));
#108= DIRECTION(' AXIS ',(0.000,0.000,1.000));
#109= DIRECTION(' REF_DIRECTION',(1.000,0.000,0.000));
#110= CARTESIAN_POINT('HOLE1: LOCATION ',(20.000,60.000,0.000));
#111= DIRECTION(' AXIS ',(0.000,0.000,1.000));
#112= CARTESIAN_POINT('HOLE1: DEPTH ',(0.000,0.000,-30.000));
#113= DIRECTION(' AXIS ',(0.000,0.000,1.000));
#114= DIRECTION(' REF_DIRECTION',(1.000,0.000,0.000));
/* #115= CARTESIAN_POINT('POCKET1: LOCATION ',(45.000,110.000,0.000)); */
#115= CARTESIAN_POINT('POCKET1: LOCATION ',(70.000, 70.000, 0.000));
#116= DIRECTION(' AXIS ',(0.000,0.000,1.000));
/* #117= DIRECTION(' REF_DIRECTION',(-1.000,0.000,0.000)); */
#117= DIRECTION(' REF_DIRECTION',(0.000, 1.000, 0.000));
#118= CARTESIAN_POINT('POCKET1: DEPTH ',(0.000,0.000,-30.000));
#119= DIRECTION(' AXIS ',(0.000,0.000,1.000));
#120= DIRECTION(' REF_DIRECTION',(1.000,0.000,0.000));

#121= TOLERANCED_LENGTH_MEASURE(80.000,#123);
/* #121= CARTESIAN_POINT('P1',(0.000,0.000,0.000)); ORIGINAL */
/* #122= TOLERANCED_LENGTH_MEASURE(40.000,#124); FOR SEMICIRCLE END TEST */
#122= TOLERANCED_LENGTH_MEASURE(50.000,#124);
/* #122= CARTESIAN_POINT('P2',(0.000,80.000,0.000)); ORIGINAL */
#123= PLUS_MINUS_VALUE(0.100,0.100,3);
/* #123= CARTESIAN_POINT('P3',(-50.000,80.000,0.000)); ORIGINAL */
#124= PLUS_MINUS_VALUE(0.100,0.100,3);
/* #124= CARTESIAN_POINT('P4',(-50.000,0.000,0.000)); ORIGINAL */
#125= CUTTING_COMPONENT(80.000,$,$,$,$);
/* #125= CUTTING_COMPONENT(80.000,$,$,$); ORIGINAL BAD */
#126= CUTTING_COMPONENT(90.000,$,$,$,$);
/* #126= CUTTING_COMPONENT(90.000,$,$,$); ORIGINAL BAD */
#127= CUTTING_COMPONENT(100.000,$,$,$,$);
/* #127= CUTTING_COMPONENT(100.000,$,$,$); ORIGINAL BAD */
ENDSEC;

END-ISO-10303-21;

toolkit interpreter output from test file ex1.stp
1 USE_LENGTH_UNITS(CANON_UNITS_MM)
    2 SET_ORIGIN_OFFSETS(0.0000, 0.0000, 0.0000)
    3 SET_FEED_REFERENCE(CANON_XYZ)
    4 SPINDLE_RETRACT()
    5 STOP_SPINDLE_TURNING()
    6 USE_TOOL_LENGTH_OFFSET(0.0000)
    7 CHANGE_TOOL(MILL 18MM)
    8 USE_TOOL_LENGTH_OFFSET(50.0000)
    9 FLOOD_ON()
   10 SET_SPINDLE_SPEED(720.0000)
   11 START_SPINDLE_CLOCKWISE()
   12 SET_FEED_RATE(2400.0000)
   13 STRAIGHT_TRAVERSE(91.9000, -13.5000, 250.0000)
   14 STRAIGHT_TRAVERSE(91.9000, -13.5000, 15.0000)
   15 STRAIGHT_FEED(91.9000, -13.5000, 2.5000)
   16 STRAIGHT_FEED(91.9000, 133.5000, 2.5000)
   17 STRAIGHT_FEED(74.8000, 133.5000, 2.5000)
   18 STRAIGHT_FEED(74.8000, -13.5000, 2.5000)
   19 STRAIGHT_FEED(57.7000, -13.5000, 2.5000)
   20 STRAIGHT_FEED(57.7000, 133.5000, 2.5000)
   21 STRAIGHT_FEED(40.6000, 133.5000, 2.5000)
   22 STRAIGHT_FEED(40.6000, -13.5000, 2.5000)
   23 STRAIGHT_FEED(23.5000, -13.5000, 2.5000)
   24 STRAIGHT_FEED(23.5000, 133.5000, 2.5000)
   25 STRAIGHT_FEED(6.4000, 133.5000, 2.5000)
   26 STRAIGHT_FEED(6.4000, -13.5000, 2.5000)
   27 STRAIGHT_TRAVERSE(6.4000, -13.5000, 15.0000)
   28 STRAIGHT_TRAVERSE(91.9000, -13.5000, 15.0000)
   29 STRAIGHT_FEED(91.9000, -13.5000, 0.0000)
   30 STRAIGHT_FEED(91.9000, 133.5000, 0.0000)
   31 STRAIGHT_FEED(74.8000, 133.5000, 0.0000)
   32 STRAIGHT_FEED(74.8000, -13.5000, 0.0000)
   33 STRAIGHT_FEED(57.7000, -13.5000, 0.0000)
   34 STRAIGHT_FEED(57.7000, 133.5000, 0.0000)
   35 STRAIGHT_FEED(40.6000, 133.5000, 0.0000)
   36 STRAIGHT_FEED(40.6000, -13.5000, 0.0000)
   37 STRAIGHT_FEED(23.5000, -13.5000, 0.0000)
   38 STRAIGHT_FEED(23.5000, 133.5000, 0.0000)
   39 STRAIGHT_FEED(6.4000, 133.5000, 0.0000)
   40 STRAIGHT_FEED(6.4000, -13.5000, 0.0000)
   41 STRAIGHT_TRAVERSE(6.4000, -13.5000, 15.0000)
   42 STOP_SPINDLE_TURNING()
   43 FLOOD_OFF()
   44 SPINDLE_RETRACT()
   45 USE_TOOL_LENGTH_OFFSET(0.0000)
   46 CHANGE_TOOL(SPIRAL_DRILL_20MM)
   47 USE_TOOL_LENGTH_OFFSET(70.0000)
   48 FLOOD_ON()
   49 START_SPINDLE_CLOCKWISE()
   50 SET_FEED_RATE(900.0000)
   51 STRAIGHT_TRAVERSE(6.4000, -13.5000, 30.0000)
   52 STRAIGHT_TRAVERSE(20.0000, 60.0000, 30.0000)
   53 STRAIGHT_TRAVERSE(20.0000, 60.0000, 10.0000)
   54 STRAIGHT_FEED(20.0000, 60.0000, -9.1378)
   55 SET_SPINDLE_SPEED(960.0000)
   56 SET_FEED_RATE(1800.0000)
   57 STRAIGHT_FEED(20.0000, 60.0000, -15.1378)
   58 SET_SPINDLE_SPEED(480.0000)
   59 SET_FEED_RATE(1350.0000)
   60 STRAIGHT_FEED(20.0000, 60.0000, -37.1378)
   61 SET_FEED_RATE(1800.0000)
   62 STRAIGHT_FEED(20.0000, 60.0000, 10.0000)
   63 STOP_SPINDLE_TURNING()
   64 FLOOD_OFF()
   65 SPINDLE_RETRACT()
   66 USE_TOOL_LENGTH_OFFSET(0.0000)
   67 CHANGE_TOOL(REAMER_22MM)
   68 USE_TOOL_LENGTH_OFFSET(50.0000)
   69 FLOOD_ON()
   70 SET_SPINDLE_SPEED(1080.0000)
   71 START_SPINDLE_CLOCKWISE()
   72 STRAIGHT_FEED(20.0000, 60.0000, -30.0000)
   73 STOP_SPINDLE_TURNING()
   74 SET_SPINDLE_SPEED(0.0000)
   75 STRAIGHT_FEED(20.0000, 60.0000, 10.0000)
   76 FLOOD_OFF()
   77 SPINDLE_RETRACT()
   78 USE_TOOL_LENGTH_OFFSET(0.0000)
   79 CHANGE_TOOL(MILL 18MM)
   80 USE_TOOL_LENGTH_OFFSET(50.0000)
   81 FLOOD_ON()
   82 SET_SPINDLE_SPEED(1200.0000)
   83 START_SPINDLE_CLOCKWISE()
   84 SET_FEED_RATE(2400.0000)
   85 STRAIGHT_TRAVERSE(20.0000, 60.0000, 30.0000)
   86 STRAIGHT_TRAVERSE(64.7540, 50.0685, 30.0000)
   87 STRAIGHT_TRAVERSE(64.7540, 50.0685, 15.0000)
   88 ARC_FEED(77.2000, 55.0000, 70.0000, 55.0000, -3, -5.9000)
   89 ARC_FEED(70.0000, 55.0000, 73.6000, 55.0000, -1, -5.9000)
   90 STRAIGHT_FEED(70.0000, 85.0000, -5.9000)
   91 STRAIGHT_FEED(70.0000, 90.0000, -5.9000)
   92 STRAIGHT_FEED(75.0000, 90.0000, -5.9000)
   93 STRAIGHT_FEED(75.0000, 50.0000, -5.9000)
   94 STRAIGHT_FEED(65.0000, 50.0000, -5.9000)
   95 STRAIGHT_FEED(65.0000, 90.0000, -5.9000)
   96 STRAIGHT_FEED(70.0000, 90.0000, -5.9000)
   97 STRAIGHT_FEED(70.0000, 95.0000, -5.9000)
   98 STRAIGHT_FEED(80.0000, 95.0000, -5.9000)
   99 STRAIGHT_FEED(80.0000, 45.0000, -5.9000)
  100 STRAIGHT_FEED(60.0000, 45.0000, -5.9000)
  101 STRAIGHT_FEED(60.0000, 95.0000, -5.9000)
  102 STRAIGHT_FEED(70.0000, 95.0000, -5.9000)
  103 STRAIGHT_FEED(70.0000, 100.0000, -5.9000)
  104 STRAIGHT_FEED(85.0000, 100.0000, -5.9000)
  105 STRAIGHT_FEED(85.0000, 40.0000, -5.9000)
  106 STRAIGHT_FEED(55.0000, 40.0000, -5.9000)
  107 STRAIGHT_FEED(55.0000, 100.0000, -5.9000)
  108 STRAIGHT_FEED(70.0000, 100.0000, -5.9000)
  109 STRAIGHT_FEED(70.0000, 100.0000, 0.0000)
  110 STRAIGHT_TRAVERSE(69.5317, 47.8152, 0.0000)
  111 STRAIGHT_FEED(69.5317, 47.8152, -5.9000)
  112 ARC_FEED(77.2000, 55.0000, 70.0000, 55.0000, -1, -11.8000)
  113 ARC_FEED(70.0000, 55.0000, 73.6000, 55.0000, -1, -11.8000)
  114 STRAIGHT_FEED(70.0000, 85.0000, -11.8000)
  115 STRAIGHT_FEED(70.0000, 90.0000, -11.8000)
  116 STRAIGHT_FEED(75.0000, 90.0000, -11.8000)
  117 STRAIGHT_FEED(75.0000, 50.0000, -11.8000)
  118 STRAIGHT_FEED(65.0000, 50.0000, -11.8000)
  119 STRAIGHT_FEED(65.0000, 90.0000, -11.8000)
  120 STRAIGHT_FEED(70.0000, 90.0000, -11.8000)
  121 STRAIGHT_FEED(70.0000, 95.0000, -11.8000)
  122 STRAIGHT_FEED(80.0000, 95.0000, -11.8000)
  123 STRAIGHT_FEED(80.0000, 45.0000, -11.8000)
  124 STRAIGHT_FEED(60.0000, 45.0000, -11.8000)
  125 STRAIGHT_FEED(60.0000, 95.0000, -11.8000)
  126 STRAIGHT_FEED(70.0000, 95.0000, -11.8000)
  127 STRAIGHT_FEED(70.0000, 100.0000, -11.8000)
  128 STRAIGHT_FEED(85.0000, 100.0000, -11.8000)
  129 STRAIGHT_FEED(85.0000, 40.0000, -11.8000)
  130 STRAIGHT_FEED(55.0000, 40.0000, -11.8000)
  131 STRAIGHT_FEED(55.0000, 100.0000, -11.8000)
  132 STRAIGHT_FEED(70.0000, 100.0000, -11.8000)
  133 STRAIGHT_FEED(70.0000, 100.0000, -5.9000)
  134 STRAIGHT_TRAVERSE(69.5317, 47.8152, -5.9000)
  135 STRAIGHT_FEED(69.5317, 47.8152, -11.8000)
  136 ARC_FEED(77.2000, 55.0000, 70.0000, 55.0000, -1, -17.7000)
  137 ARC_FEED(70.0000, 55.0000, 73.6000, 55.0000, -1, -17.7000)
  138 STRAIGHT_FEED(70.0000, 85.0000, -17.7000)
  139 STRAIGHT_FEED(70.0000, 90.0000, -17.7000)
  140 STRAIGHT_FEED(75.0000, 90.0000, -17.7000)
  141 STRAIGHT_FEED(75.0000, 50.0000, -17.7000)
  142 STRAIGHT_FEED(65.0000, 50.0000, -17.7000)
  143 STRAIGHT_FEED(65.0000, 90.0000, -17.7000)
  144 STRAIGHT_FEED(70.0000, 90.0000, -17.7000)
  145 STRAIGHT_FEED(70.0000, 95.0000, -17.7000)
  146 STRAIGHT_FEED(80.0000, 95.0000, -17.7000)
  147 STRAIGHT_FEED(80.0000, 45.0000, -17.7000)
  148 STRAIGHT_FEED(60.0000, 45.0000, -17.7000)
  149 STRAIGHT_FEED(60.0000, 95.0000, -17.7000)
  150 STRAIGHT_FEED(70.0000, 95.0000, -17.7000)
  151 STRAIGHT_FEED(70.0000, 100.0000, -17.7000)
  152 STRAIGHT_FEED(85.0000, 100.0000, -17.7000)
  153 STRAIGHT_FEED(85.0000, 40.0000, -17.7000)
  154 STRAIGHT_FEED(55.0000, 40.0000, -17.7000)
  155 STRAIGHT_FEED(55.0000, 100.0000, -17.7000)
  156 STRAIGHT_FEED(70.0000, 100.0000, -17.7000)
  157 STRAIGHT_FEED(70.0000, 100.0000, -11.8000)
  158 STRAIGHT_TRAVERSE(69.5317, 47.8152, -11.8000)
  159 STRAIGHT_FEED(69.5317, 47.8152, -17.7000)
  160 ARC_FEED(77.2000, 55.0000, 70.0000, 55.0000, -1, -23.6000)
  161 ARC_FEED(70.0000, 55.0000, 73.6000, 55.0000, -1, -23.6000)
  162 STRAIGHT_FEED(70.0000, 85.0000, -23.6000)
  163 STRAIGHT_FEED(70.0000, 90.0000, -23.6000)
  164 STRAIGHT_FEED(75.0000, 90.0000, -23.6000)
  165 STRAIGHT_FEED(75.0000, 50.0000, -23.6000)
  166 STRAIGHT_FEED(65.0000, 50.0000, -23.6000)
  167 STRAIGHT_FEED(65.0000, 90.0000, -23.6000)
  168 STRAIGHT_FEED(70.0000, 90.0000, -23.6000)
  169 STRAIGHT_FEED(70.0000, 95.0000, -23.6000)
  170 STRAIGHT_FEED(80.0000, 95.0000, -23.6000)
  171 STRAIGHT_FEED(80.0000, 45.0000, -23.6000)
  172 STRAIGHT_FEED(60.0000, 45.0000, -23.6000)
  173 STRAIGHT_FEED(60.0000, 95.0000, -23.6000)
  174 STRAIGHT_FEED(70.0000, 95.0000, -23.6000)
  175 STRAIGHT_FEED(70.0000, 100.0000, -23.6000)
  176 STRAIGHT_FEED(85.0000, 100.0000, -23.6000)
  177 STRAIGHT_FEED(85.0000, 40.0000, -23.6000)
  178 STRAIGHT_FEED(55.0000, 40.0000, -23.6000)
  179 STRAIGHT_FEED(55.0000, 100.0000, -23.6000)
  180 STRAIGHT_FEED(70.0000, 100.0000, -23.6000)
  181 STRAIGHT_FEED(70.0000, 100.0000, -17.7000)
  182 STRAIGHT_TRAVERSE(69.5317, 47.8152, -17.7000)
  183 STRAIGHT_FEED(69.5317, 47.8152, -23.6000)
  184 ARC_FEED(77.2000, 55.0000, 70.0000, 55.0000, -1, -29.5000)
  185 ARC_FEED(70.0000, 55.0000, 73.6000, 55.0000, -1, -29.5000)
  186 STRAIGHT_FEED(70.0000, 85.0000, -29.5000)
  187 STRAIGHT_FEED(70.0000, 90.0000, -29.5000)
  188 STRAIGHT_FEED(75.0000, 90.0000, -29.5000)
  189 STRAIGHT_FEED(75.0000, 50.0000, -29.5000)
  190 STRAIGHT_FEED(65.0000, 50.0000, -29.5000)
  191 STRAIGHT_FEED(65.0000, 90.0000, -29.5000)
  192 STRAIGHT_FEED(70.0000, 90.0000, -29.5000)
  193 STRAIGHT_FEED(70.0000, 95.0000, -29.5000)
  194 STRAIGHT_FEED(80.0000, 95.0000, -29.5000)
  195 STRAIGHT_FEED(80.0000, 45.0000, -29.5000)
  196 STRAIGHT_FEED(60.0000, 45.0000, -29.5000)
  197 STRAIGHT_FEED(60.0000, 95.0000, -29.5000)
  198 STRAIGHT_FEED(70.0000, 95.0000, -29.5000)
  199 STRAIGHT_FEED(70.0000, 100.0000, -29.5000)
  200 STRAIGHT_FEED(85.0000, 100.0000, -29.5000)
  201 STRAIGHT_FEED(85.0000, 40.0000, -29.5000)
  202 STRAIGHT_FEED(55.0000, 40.0000, -29.5000)
  203 STRAIGHT_FEED(55.0000, 100.0000, -29.5000)
  204 STRAIGHT_FEED(70.0000, 100.0000, -29.5000)
  205 STRAIGHT_FEED(70.0000, 100.0000, 15.0000)
  206 STRAIGHT_TRAVERSE(70.0000, 100.0000, 30.0000)
  207 STRAIGHT_TRAVERSE(74.8901, 60.2846, 30.0000)
  208 STRAIGHT_TRAVERSE(74.8901, 60.2846, 15.0000)
  209 ARC_FEED(77.2000, 55.0000, 70.0000, 55.0000, -3, -2.0000)
  210 ARC_FEED(70.0000, 55.0000, 73.6000, 55.0000, -1, -2.0000)
  211 STRAIGHT_FEED(70.0000, 85.0000, -2.0000)
  212 STRAIGHT_FEED(70.0000, 93.0000, -2.0000)
  213 STRAIGHT_FEED(78.0000, 93.0000, -2.0000)
  214 STRAIGHT_FEED(78.0000, 47.0000, -2.0000)
  215 STRAIGHT_FEED(62.0000, 47.0000, -2.0000)
  216 STRAIGHT_FEED(62.0000, 93.0000, -2.0000)
  217 STRAIGHT_FEED(70.0000, 93.0000, -2.0000)
  218 STRAIGHT_FEED(70.0000, 101.0000, -2.0000)
  219 STRAIGHT_FEED(85.0000, 101.0000, -2.0000)
  220 ARC_FEED(86.0000, 100.0000, 85.0000, 100.0000, -1, -2.0000)
  221 STRAIGHT_FEED(86.0000, 40.0000, -2.0000)
  222 ARC_FEED(85.0000, 39.0000, 85.0000, 40.0000, -1, -2.0000)
  223 STRAIGHT_FEED(55.0000, 39.0000, -2.0000)
  224 ARC_FEED(54.0000, 40.0000, 55.0000, 40.0000, -1, -2.0000)
  225 STRAIGHT_FEED(54.0000, 100.0000, -2.0000)
  226 ARC_FEED(55.0000, 101.0000, 55.0000, 100.0000, -1, -2.0000)
  227 STRAIGHT_FEED(70.0000, 101.0000, -2.0000)
  228 STRAIGHT_FEED(70.0000, 101.0000, 0.0000)
  229 STRAIGHT_TRAVERSE(69.9672, 62.1999, 0.0000)
  230 STRAIGHT_FEED(69.9672, 62.1999, -2.0000)
  231 ARC_FEED(77.2000, 55.0000, 70.0000, 55.0000, -1, -4.0000)
  232 ARC_FEED(70.0000, 55.0000, 73.6000, 55.0000, -1, -4.0000)
  233 STRAIGHT_FEED(70.0000, 85.0000, -4.0000)
  234 STRAIGHT_FEED(70.0000, 93.0000, -4.0000)
  235 STRAIGHT_FEED(78.0000, 93.0000, -4.0000)
  236 STRAIGHT_FEED(78.0000, 47.0000, -4.0000)
  237 STRAIGHT_FEED(62.0000, 47.0000, -4.0000)
  238 STRAIGHT_FEED(62.0000, 93.0000, -4.0000)
  239 STRAIGHT_FEED(70.0000, 93.0000, -4.0000)
  240 STRAIGHT_FEED(70.0000, 101.0000, -4.0000)
  241 STRAIGHT_FEED(85.0000, 101.0000, -4.0000)
  242 ARC_FEED(86.0000, 100.0000, 85.0000, 100.0000, -1, -4.0000)
  243 STRAIGHT_FEED(86.0000, 40.0000, -4.0000)
  244 ARC_FEED(85.0000, 39.0000, 85.0000, 40.0000, -1, -4.0000)
  245 STRAIGHT_FEED(55.0000, 39.0000, -4.0000)
  246 ARC_FEED(54.0000, 40.0000, 55.0000, 40.0000, -1, -4.0000)
  247 STRAIGHT_FEED(54.0000, 100.0000, -4.0000)
  248 ARC_FEED(55.0000, 101.0000, 55.0000, 100.0000, -1, -4.0000)
  249 STRAIGHT_FEED(70.0000, 101.0000, -4.0000)
  250 STRAIGHT_FEED(70.0000, 101.0000, -2.0000)
  251 STRAIGHT_TRAVERSE(69.9672, 62.1999, -2.0000)
  252 STRAIGHT_FEED(69.9672, 62.1999, -4.0000)
  253 ARC_FEED(77.2000, 55.0000, 70.0000, 55.0000, -1, -6.0000)
  254 ARC_FEED(70.0000, 55.0000, 73.6000, 55.0000, -1, -6.0000)
  255 STRAIGHT_FEED(70.0000, 85.0000, -6.0000)
  256 STRAIGHT_FEED(70.0000, 93.0000, -6.0000)
  257 STRAIGHT_FEED(78.0000, 93.0000, -6.0000)
  258 STRAIGHT_FEED(78.0000, 47.0000, -6.0000)
  259 STRAIGHT_FEED(62.0000, 47.0000, -6.0000)
  260 STRAIGHT_FEED(62.0000, 93.0000, -6.0000)
  261 STRAIGHT_FEED(70.0000, 93.0000, -6.0000)
  262 STRAIGHT_FEED(70.0000, 101.0000, -6.0000)
  263 STRAIGHT_FEED(85.0000, 101.0000, -6.0000)
  264 ARC_FEED(86.0000, 100.0000, 85.0000, 100.0000, -1, -6.0000)
  265 STRAIGHT_FEED(86.0000, 40.0000, -6.0000)
  266 ARC_FEED(85.0000, 39.0000, 85.0000, 40.0000, -1, -6.0000)
  267 STRAIGHT_FEED(55.0000, 39.0000, -6.0000)
  268 ARC_FEED(54.0000, 40.0000, 55.0000, 40.0000, -1, -6.0000)
  269 STRAIGHT_FEED(54.0000, 100.0000, -6.0000)
  270 ARC_FEED(55.0000, 101.0000, 55.0000, 100.0000, -1, -6.0000)
  271 STRAIGHT_FEED(70.0000, 101.0000, -6.0000)
  272 STRAIGHT_FEED(70.0000, 101.0000, -4.0000)
  273 STRAIGHT_TRAVERSE(69.9672, 62.1999, -4.0000)
  274 STRAIGHT_FEED(69.9672, 62.1999, -6.0000)
  275 ARC_FEED(77.2000, 55.0000, 70.0000, 55.0000, -1, -8.0000)
  276 ARC_FEED(70.0000, 55.0000, 73.6000, 55.0000, -1, -8.0000)
  277 STRAIGHT_FEED(70.0000, 85.0000, -8.0000)
  278 STRAIGHT_FEED(70.0000, 93.0000, -8.0000)
  279 STRAIGHT_FEED(78.0000, 93.0000, -8.0000)
  280 STRAIGHT_FEED(78.0000, 47.0000, -8.0000)
  281 STRAIGHT_FEED(62.0000, 47.0000, -8.0000)
  282 STRAIGHT_FEED(62.0000, 93.0000, -8.0000)
  283 STRAIGHT_FEED(70.0000, 93.0000, -8.0000)
  284 STRAIGHT_FEED(70.0000, 101.0000, -8.0000)
  285 STRAIGHT_FEED(85.0000, 101.0000, -8.0000)
  286 ARC_FEED(86.0000, 100.0000, 85.0000, 100.0000, -1, -8.0000)
  287 STRAIGHT_FEED(86.0000, 40.0000, -8.0000)
  288 ARC_FEED(85.0000, 39.0000, 85.0000, 40.0000, -1, -8.0000)
  289 STRAIGHT_FEED(55.0000, 39.0000, -8.0000)
  290 ARC_FEED(54.0000, 40.0000, 55.0000, 40.0000, -1, -8.0000)
  291 STRAIGHT_FEED(54.0000, 100.0000, -8.0000)
  292 ARC_FEED(55.0000, 101.0000, 55.0000, 100.0000, -1, -8.0000)
  293 STRAIGHT_FEED(70.0000, 101.0000, -8.0000)
  294 STRAIGHT_FEED(70.0000, 101.0000, -6.0000)
  295 STRAIGHT_TRAVERSE(69.9672, 62.1999, -6.0000)
  296 STRAIGHT_FEED(69.9672, 62.1999, -8.0000)
  297 ARC_FEED(77.2000, 55.0000, 70.0000, 55.0000, -1, -10.0000)
  298 ARC_FEED(70.0000, 55.0000, 73.6000, 55.0000, -1, -10.0000)
  299 STRAIGHT_FEED(70.0000, 85.0000, -10.0000)
  300 STRAIGHT_FEED(70.0000, 93.0000, -10.0000)
  301 STRAIGHT_FEED(78.0000, 93.0000, -10.0000)
  302 STRAIGHT_FEED(78.0000, 47.0000, -10.0000)
  303 STRAIGHT_FEED(62.0000, 47.0000, -10.0000)
  304 STRAIGHT_FEED(62.0000, 93.0000, -10.0000)
  305 STRAIGHT_FEED(70.0000, 93.0000, -10.0000)
  306 STRAIGHT_FEED(70.0000, 101.0000, -10.0000)
  307 STRAIGHT_FEED(85.0000, 101.0000, -10.0000)
  308 ARC_FEED(86.0000, 100.0000, 85.0000, 100.0000, -1, -10.0000)
  309 STRAIGHT_FEED(86.0000, 40.0000, -10.0000)
  310 ARC_FEED(85.0000, 39.0000, 85.0000, 40.0000, -1, -10.0000)
  311 STRAIGHT_FEED(55.0000, 39.0000, -10.0000)
  312 ARC_FEED(54.0000, 40.0000, 55.0000, 40.0000, -1, -10.0000)
  313 STRAIGHT_FEED(54.0000, 100.0000, -10.0000)
  314 ARC_FEED(55.0000, 101.0000, 55.0000, 100.0000, -1, -10.0000)
  315 STRAIGHT_FEED(70.0000, 101.0000, -10.0000)
  316 STRAIGHT_FEED(70.0000, 101.0000, -8.0000)
  317 STRAIGHT_TRAVERSE(69.9672, 62.1999, -8.0000)
  318 STRAIGHT_FEED(69.9672, 62.1999, -10.0000)
  319 ARC_FEED(77.2000, 55.0000, 70.0000, 55.0000, -1, -12.0000)
  320 ARC_FEED(70.0000, 55.0000, 73.6000, 55.0000, -1, -12.0000)
  321 STRAIGHT_FEED(70.0000, 85.0000, -12.0000)
  322 STRAIGHT_FEED(70.0000, 93.0000, -12.0000)
  323 STRAIGHT_FEED(78.0000, 93.0000, -12.0000)
  324 STRAIGHT_FEED(78.0000, 47.0000, -12.0000)
  325 STRAIGHT_FEED(62.0000, 47.0000, -12.0000)
  326 STRAIGHT_FEED(62.0000, 93.0000, -12.0000)
  327 STRAIGHT_FEED(70.0000, 93.0000, -12.0000)
  328 STRAIGHT_FEED(70.0000, 101.0000, -12.0000)
  329 STRAIGHT_FEED(85.0000, 101.0000, -12.0000)
  330 ARC_FEED(86.0000, 100.0000, 85.0000, 100.0000, -1, -12.0000)
  331 STRAIGHT_FEED(86.0000, 40.0000, -12.0000)
  332 ARC_FEED(85.0000, 39.0000, 85.0000, 40.0000, -1, -12.0000)
  333 STRAIGHT_FEED(55.0000, 39.0000, -12.0000)
  334 ARC_FEED(54.0000, 40.0000, 55.0000, 40.0000, -1, -12.0000)
  335 STRAIGHT_FEED(54.0000, 100.0000, -12.0000)
  336 ARC_FEED(55.0000, 101.0000, 55.0000, 100.0000, -1, -12.0000)
  337 STRAIGHT_FEED(70.0000, 101.0000, -12.0000)
  338 STRAIGHT_FEED(70.0000, 101.0000, -10.0000)
  339 STRAIGHT_TRAVERSE(69.9672, 62.1999, -10.0000)
  340 STRAIGHT_FEED(69.9672, 62.1999, -12.0000)
  341 ARC_FEED(77.2000, 55.0000, 70.0000, 55.0000, -1, -14.0000)
  342 ARC_FEED(70.0000, 55.0000, 73.6000, 55.0000, -1, -14.0000)
  343 STRAIGHT_FEED(70.0000, 85.0000, -14.0000)
  344 STRAIGHT_FEED(70.0000, 93.0000, -14.0000)
  345 STRAIGHT_FEED(78.0000, 93.0000, -14.0000)
  346 STRAIGHT_FEED(78.0000, 47.0000, -14.0000)
  347 STRAIGHT_FEED(62.0000, 47.0000, -14.0000)
  348 STRAIGHT_FEED(62.0000, 93.0000, -14.0000)
  349 STRAIGHT_FEED(70.0000, 93.0000, -14.0000)
  350 STRAIGHT_FEED(70.0000, 101.0000, -14.0000)
  351 STRAIGHT_FEED(85.0000, 101.0000, -14.0000)
  352 ARC_FEED(86.0000, 100.0000, 85.0000, 100.0000, -1, -14.0000)
  353 STRAIGHT_FEED(86.0000, 40.0000, -14.0000)
  354 ARC_FEED(85.0000, 39.0000, 85.0000, 40.0000, -1, -14.0000)
  355 STRAIGHT_FEED(55.0000, 39.0000, -14.0000)
  356 ARC_FEED(54.0000, 40.0000, 55.0000, 40.0000, -1, -14.0000)
  357 STRAIGHT_FEED(54.0000, 100.0000, -14.0000)
  358 ARC_FEED(55.0000, 101.0000, 55.0000, 100.0000, -1, -14.0000)
  359 STRAIGHT_FEED(70.0000, 101.0000, -14.0000)
  360 STRAIGHT_FEED(70.0000, 101.0000, -12.0000)
  361 STRAIGHT_TRAVERSE(69.9672, 62.1999, -12.0000)
  362 STRAIGHT_FEED(69.9672, 62.1999, -14.0000)
  363 ARC_FEED(77.2000, 55.0000, 70.0000, 55.0000, -1, -16.0000)
  364 ARC_FEED(70.0000, 55.0000, 73.6000, 55.0000, -1, -16.0000)
  365 STRAIGHT_FEED(70.0000, 85.0000, -16.0000)
  366 STRAIGHT_FEED(70.0000, 93.0000, -16.0000)
  367 STRAIGHT_FEED(78.0000, 93.0000, -16.0000)
  368 STRAIGHT_FEED(78.0000, 47.0000, -16.0000)
  369 STRAIGHT_FEED(62.0000, 47.0000, -16.0000)
  370 STRAIGHT_FEED(62.0000, 93.0000, -16.0000)
  371 STRAIGHT_FEED(70.0000, 93.0000, -16.0000)
  372 STRAIGHT_FEED(70.0000, 101.0000, -16.0000)
  373 STRAIGHT_FEED(85.0000, 101.0000, -16.0000)
  374 ARC_FEED(86.0000, 100.0000, 85.0000, 100.0000, -1, -16.0000)
  375 STRAIGHT_FEED(86.0000, 40.0000, -16.0000)
  376 ARC_FEED(85.0000, 39.0000, 85.0000, 40.0000, -1, -16.0000)
  377 STRAIGHT_FEED(55.0000, 39.0000, -16.0000)
  378 ARC_FEED(54.0000, 40.0000, 55.0000, 40.0000, -1, -16.0000)
  379 STRAIGHT_FEED(54.0000, 100.0000, -16.0000)
  380 ARC_FEED(55.0000, 101.0000, 55.0000, 100.0000, -1, -16.0000)
  381 STRAIGHT_FEED(70.0000, 101.0000, -16.0000)
  382 STRAIGHT_FEED(70.0000, 101.0000, -14.0000)
  383 STRAIGHT_TRAVERSE(69.9672, 62.1999, -14.0000)
  384 STRAIGHT_FEED(69.9672, 62.1999, -16.0000)
  385 ARC_FEED(77.2000, 55.0000, 70.0000, 55.0000, -1, -18.0000)
  386 ARC_FEED(70.0000, 55.0000, 73.6000, 55.0000, -1, -18.0000)
  387 STRAIGHT_FEED(70.0000, 85.0000, -18.0000)
  388 STRAIGHT_FEED(70.0000, 93.0000, -18.0000)
  389 STRAIGHT_FEED(78.0000, 93.0000, -18.0000)
  390 STRAIGHT_FEED(78.0000, 47.0000, -18.0000)
  391 STRAIGHT_FEED(62.0000, 47.0000, -18.0000)
  392 STRAIGHT_FEED(62.0000, 93.0000, -18.0000)
  393 STRAIGHT_FEED(70.0000, 93.0000, -18.0000)
  394 STRAIGHT_FEED(70.0000, 101.0000, -18.0000)
  395 STRAIGHT_FEED(85.0000, 101.0000, -18.0000)
  396 ARC_FEED(86.0000, 100.0000, 85.0000, 100.0000, -1, -18.0000)
  397 STRAIGHT_FEED(86.0000, 40.0000, -18.0000)
  398 ARC_FEED(85.0000, 39.0000, 85.0000, 40.0000, -1, -18.0000)
  399 STRAIGHT_FEED(55.0000, 39.0000, -18.0000)
  400 ARC_FEED(54.0000, 40.0000, 55.0000, 40.0000, -1, -18.0000)
  401 STRAIGHT_FEED(54.0000, 100.0000, -18.0000)
  402 ARC_FEED(55.0000, 101.0000, 55.0000, 100.0000, -1, -18.0000)
  403 STRAIGHT_FEED(70.0000, 101.0000, -18.0000)
  404 STRAIGHT_FEED(70.0000, 101.0000, -16.0000)
  405 STRAIGHT_TRAVERSE(69.9672, 62.1999, -16.0000)
  406 STRAIGHT_FEED(69.9672, 62.1999, -18.0000)
  407 ARC_FEED(77.2000, 55.0000, 70.0000, 55.0000, -1, -20.0000)
  408 ARC_FEED(70.0000, 55.0000, 73.6000, 55.0000, -1, -20.0000)
  409 STRAIGHT_FEED(70.0000, 85.0000, -20.0000)
  410 STRAIGHT_FEED(70.0000, 93.0000, -20.0000)
  411 STRAIGHT_FEED(78.0000, 93.0000, -20.0000)
  412 STRAIGHT_FEED(78.0000, 47.0000, -20.0000)
  413 STRAIGHT_FEED(62.0000, 47.0000, -20.0000)
  414 STRAIGHT_FEED(62.0000, 93.0000, -20.0000)
  415 STRAIGHT_FEED(70.0000, 93.0000, -20.0000)
  416 STRAIGHT_FEED(70.0000, 101.0000, -20.0000)
  417 STRAIGHT_FEED(85.0000, 101.0000, -20.0000)
  418 ARC_FEED(86.0000, 100.0000, 85.0000, 100.0000, -1, -20.0000)
  419 STRAIGHT_FEED(86.0000, 40.0000, -20.0000)
  420 ARC_FEED(85.0000, 39.0000, 85.0000, 40.0000, -1, -20.0000)
  421 STRAIGHT_FEED(55.0000, 39.0000, -20.0000)
  422 ARC_FEED(54.0000, 40.0000, 55.0000, 40.0000, -1, -20.0000)
  423 STRAIGHT_FEED(54.0000, 100.0000, -20.0000)
  424 ARC_FEED(55.0000, 101.0000, 55.0000, 100.0000, -1, -20.0000)
  425 STRAIGHT_FEED(70.0000, 101.0000, -20.0000)
  426 STRAIGHT_FEED(70.0000, 101.0000, -18.0000)
  427 STRAIGHT_TRAVERSE(69.9672, 62.1999, -18.0000)
  428 STRAIGHT_FEED(69.9672, 62.1999, -20.0000)
  429 ARC_FEED(77.2000, 55.0000, 70.0000, 55.0000, -1, -22.0000)
  430 ARC_FEED(70.0000, 55.0000, 73.6000, 55.0000, -1, -22.0000)
  431 STRAIGHT_FEED(70.0000, 85.0000, -22.0000)
  432 STRAIGHT_FEED(70.0000, 93.0000, -22.0000)
  433 STRAIGHT_FEED(78.0000, 93.0000, -22.0000)
  434 STRAIGHT_FEED(78.0000, 47.0000, -22.0000)
  435 STRAIGHT_FEED(62.0000, 47.0000, -22.0000)
  436 STRAIGHT_FEED(62.0000, 93.0000, -22.0000)
  437 STRAIGHT_FEED(70.0000, 93.0000, -22.0000)
  438 STRAIGHT_FEED(70.0000, 101.0000, -22.0000)
  439 STRAIGHT_FEED(85.0000, 101.0000, -22.0000)
  440 ARC_FEED(86.0000, 100.0000, 85.0000, 100.0000, -1, -22.0000)
  441 STRAIGHT_FEED(86.0000, 40.0000, -22.0000)
  442 ARC_FEED(85.0000, 39.0000, 85.0000, 40.0000, -1, -22.0000)
  443 STRAIGHT_FEED(55.0000, 39.0000, -22.0000)
  444 ARC_FEED(54.0000, 40.0000, 55.0000, 40.0000, -1, -22.0000)
  445 STRAIGHT_FEED(54.0000, 100.0000, -22.0000)
  446 ARC_FEED(55.0000, 101.0000, 55.0000, 100.0000, -1, -22.0000)
  447 STRAIGHT_FEED(70.0000, 101.0000, -22.0000)
  448 STRAIGHT_FEED(70.0000, 101.0000, -20.0000)
  449 STRAIGHT_TRAVERSE(69.9672, 62.1999, -20.0000)
  450 STRAIGHT_FEED(69.9672, 62.1999, -22.0000)
  451 ARC_FEED(77.2000, 55.0000, 70.0000, 55.0000, -1, -24.0000)
  452 ARC_FEED(70.0000, 55.0000, 73.6000, 55.0000, -1, -24.0000)
  453 STRAIGHT_FEED(70.0000, 85.0000, -24.0000)
  454 STRAIGHT_FEED(70.0000, 93.0000, -24.0000)
  455 STRAIGHT_FEED(78.0000, 93.0000, -24.0000)
  456 STRAIGHT_FEED(78.0000, 47.0000, -24.0000)
  457 STRAIGHT_FEED(62.0000, 47.0000, -24.0000)
  458 STRAIGHT_FEED(62.0000, 93.0000, -24.0000)
  459 STRAIGHT_FEED(70.0000, 93.0000, -24.0000)
  460 STRAIGHT_FEED(70.0000, 101.0000, -24.0000)
  461 STRAIGHT_FEED(85.0000, 101.0000, -24.0000)
  462 ARC_FEED(86.0000, 100.0000, 85.0000, 100.0000, -1, -24.0000)
  463 STRAIGHT_FEED(86.0000, 40.0000, -24.0000)
  464 ARC_FEED(85.0000, 39.0000, 85.0000, 40.0000, -1, -24.0000)
  465 STRAIGHT_FEED(55.0000, 39.0000, -24.0000)
  466 ARC_FEED(54.0000, 40.0000, 55.0000, 40.0000, -1, -24.0000)
  467 STRAIGHT_FEED(54.0000, 100.0000, -24.0000)
  468 ARC_FEED(55.0000, 101.0000, 55.0000, 100.0000, -1, -24.0000)
  469 STRAIGHT_FEED(70.0000, 101.0000, -24.0000)
  470 STRAIGHT_FEED(70.0000, 101.0000, -22.0000)
  471 STRAIGHT_TRAVERSE(69.9672, 62.1999, -22.0000)
  472 STRAIGHT_FEED(69.9672, 62.1999, -24.0000)
  473 ARC_FEED(77.2000, 55.0000, 70.0000, 55.0000, -1, -26.0000)
  474 ARC_FEED(70.0000, 55.0000, 73.6000, 55.0000, -1, -26.0000)
  475 STRAIGHT_FEED(70.0000, 85.0000, -26.0000)
  476 STRAIGHT_FEED(70.0000, 93.0000, -26.0000)
  477 STRAIGHT_FEED(78.0000, 93.0000, -26.0000)
  478 STRAIGHT_FEED(78.0000, 47.0000, -26.0000)
  479 STRAIGHT_FEED(62.0000, 47.0000, -26.0000)
  480 STRAIGHT_FEED(62.0000, 93.0000, -26.0000)
  481 STRAIGHT_FEED(70.0000, 93.0000, -26.0000)
  482 STRAIGHT_FEED(70.0000, 101.0000, -26.0000)
  483 STRAIGHT_FEED(85.0000, 101.0000, -26.0000)
  484 ARC_FEED(86.0000, 100.0000, 85.0000, 100.0000, -1, -26.0000)
  485 STRAIGHT_FEED(86.0000, 40.0000, -26.0000)
  486 ARC_FEED(85.0000, 39.0000, 85.0000, 40.0000, -1, -26.0000)
  487 STRAIGHT_FEED(55.0000, 39.0000, -26.0000)
  488 ARC_FEED(54.0000, 40.0000, 55.0000, 40.0000, -1, -26.0000)
  489 STRAIGHT_FEED(54.0000, 100.0000, -26.0000)
  490 ARC_FEED(55.0000, 101.0000, 55.0000, 100.0000, -1, -26.0000)
  491 STRAIGHT_FEED(70.0000, 101.0000, -26.0000)
  492 STRAIGHT_FEED(70.0000, 101.0000, -24.0000)
  493 STRAIGHT_TRAVERSE(69.9672, 62.1999, -24.0000)
  494 STRAIGHT_FEED(69.9672, 62.1999, -26.0000)
  495 ARC_FEED(77.2000, 55.0000, 70.0000, 55.0000, -1, -28.0000)
  496 ARC_FEED(70.0000, 55.0000, 73.6000, 55.0000, -1, -28.0000)
  497 STRAIGHT_FEED(70.0000, 85.0000, -28.0000)
  498 STRAIGHT_FEED(70.0000, 93.0000, -28.0000)
  499 STRAIGHT_FEED(78.0000, 93.0000, -28.0000)
  500 STRAIGHT_FEED(78.0000, 47.0000, -28.0000)
  501 STRAIGHT_FEED(62.0000, 47.0000, -28.0000)
  502 STRAIGHT_FEED(62.0000, 93.0000, -28.0000)
  503 STRAIGHT_FEED(70.0000, 93.0000, -28.0000)
  504 STRAIGHT_FEED(70.0000, 101.0000, -28.0000)
  505 STRAIGHT_FEED(85.0000, 101.0000, -28.0000)
  506 ARC_FEED(86.0000, 100.0000, 85.0000, 100.0000, -1, -28.0000)
  507 STRAIGHT_FEED(86.0000, 40.0000, -28.0000)
  508 ARC_FEED(85.0000, 39.0000, 85.0000, 40.0000, -1, -28.0000)
  509 STRAIGHT_FEED(55.0000, 39.0000, -28.0000)
  510 ARC_FEED(54.0000, 40.0000, 55.0000, 40.0000, -1, -28.0000)
  511 STRAIGHT_FEED(54.0000, 100.0000, -28.0000)
  512 ARC_FEED(55.0000, 101.0000, 55.0000, 100.0000, -1, -28.0000)
  513 STRAIGHT_FEED(70.0000, 101.0000, -28.0000)
  514 STRAIGHT_FEED(70.0000, 101.0000, -26.0000)
  515 STRAIGHT_TRAVERSE(69.9672, 62.1999, -26.0000)
  516 STRAIGHT_FEED(69.9672, 62.1999, -28.0000)
  517 ARC_FEED(77.2000, 55.0000, 70.0000, 55.0000, -1, -30.0000)
  518 ARC_FEED(70.0000, 55.0000, 73.6000, 55.0000, -1, -30.0000)
  519 STRAIGHT_FEED(70.0000, 85.0000, -30.0000)
  520 STRAIGHT_FEED(70.0000, 93.0000, -30.0000)
  521 STRAIGHT_FEED(78.0000, 93.0000, -30.0000)
  522 STRAIGHT_FEED(78.0000, 47.0000, -30.0000)
  523 STRAIGHT_FEED(62.0000, 47.0000, -30.0000)
  524 STRAIGHT_FEED(62.0000, 93.0000, -30.0000)
  525 STRAIGHT_FEED(70.0000, 93.0000, -30.0000)
  526 STRAIGHT_FEED(70.0000, 101.0000, -30.0000)
  527 STRAIGHT_FEED(85.0000, 101.0000, -30.0000)
  528 ARC_FEED(86.0000, 100.0000, 85.0000, 100.0000, -1, -30.0000)
  529 STRAIGHT_FEED(86.0000, 40.0000, -30.0000)
  530 ARC_FEED(85.0000, 39.0000, 85.0000, 40.0000, -1, -30.0000)
  531 STRAIGHT_FEED(55.0000, 39.0000, -30.0000)
  532 ARC_FEED(54.0000, 40.0000, 55.0000, 40.0000, -1, -30.0000)
  533 STRAIGHT_FEED(54.0000, 100.0000, -30.0000)
  534 ARC_FEED(55.0000, 101.0000, 55.0000, 100.0000, -1, -30.0000)
  535 STRAIGHT_FEED(70.0000, 101.0000, -30.0000)
  536 STRAIGHT_FEED(70.0000, 101.0000, 15.0000)
  537 PROGRAM_END()

So looks like in theory you could fairly easily substitute one parser / interpreter for another.

But as Andy says, you really need to go on the developers list if you are going to try to do it.

regards

Please Log in or Create an account to join the conversation.

More
03 Nov 2015 04:02 - 03 Nov 2015 04:03 #64643 by andypugh

So looks like in theory you could fairly easily substitute one parser / interpreter for another.


I hadn't noticed before, but look in the configs...

sim->axis->canterp
Last edit: 03 Nov 2015 04:03 by andypugh.

Please Log in or Create an account to join the conversation.

More
03 Nov 2015 17:42 #64672 by ArcEye
Replied by ArcEye on topic Use of STEP-NC with LinuxCNC
I had never noticed that either, receives no explanation in the README.

It loads but errors and you cannot load a file, errors on line 0 trying to read it.
Machine configuration directory is '/usr/src/linuxcnc-dev/configs/sim/axis'
Machine configuration file is 'canterp.ini'
Starting LinuxCNC...
Found file:/usr/src/linuxcnc-dev/lib/hallib/core_sim.hal
Note: Using POSIX realtime
Found file:/usr/src/linuxcnc-dev/lib/hallib/axis_manualtoolchange.hal
Found file:/usr/src/linuxcnc-dev/lib/hallib/simulated_home.hal
interp_from_shlib(libcanterp.so)
interp_from_shlib() -> 0x9dd1a0
Canterp::on_abort reason=6 message=''Canterp::on_abort reason=6 message=''interp_from_shlib(libcanterp.so)
Canterp::on_abort reason=5 message=''Canterp::on_abort reason=5 message=''interp_from_shlib(libcanterp.so)
interp_from_shlib(libcanterp.so)
Shutting down and cleaning up LinuxCNC...

The framework is there in the file tree src/emc/canterp/ complete with Submakefile

You just need to make it work first before trying to substitute for another interpreter

Please Log in or Create an account to join the conversation.

More
03 Nov 2015 17:52 #64674 by ArcEye
Replied by ArcEye on topic Use of STEP-NC with LinuxCNC
Also tried loading the file fragment from the header of the canterp.cc source

Shows it is reading it, even if it says it does not understand it.


Attachments:

Please Log in or Create an account to join the conversation.

More
03 Nov 2015 18:21 #64679 by andypugh

Also tried loading the file fragment from the header of the canterp.cc source
Shows it is reading it, even if it says it does not understand it.


Not the best of signs, that it fails to parse its own example...

Does it work if N.... is edited to be N0001 (ie, an actual number)

Please Log in or Create an account to join the conversation.

More
03 Nov 2015 19:13 #64691 by ArcEye
Replied by ArcEye on topic Use of STEP-NC with LinuxCNC
Already thought of that

No line numbers etc




Just line numbers





So first call is to get existing canterp.so working before even attempting to replace it.

Just a hint, I won't be trying :P
Attachments:

Please Log in or Create an account to join the conversation.

Time to create page: 0.116 seconds
Powered by Kunena Forum