<LinuxCNC-Features>
  <feature src="gcode/gcode.ini" expanded="False" help="Flat Gcode&#10;&#9;\n can be used to split lines&#10;&#9;lines will be parsed as usual so you can use &amp;lt;eval&amp;gt;&amp;lt;/eval&amp;gt;" icon="icons/gcode.png" image="images/simp.png" after="" order="['PARAM_1', 'PARAM_2', 'PARAM_3', 'PARAM_4', 'PARAM_5']" call="&#10;(Gcode lines)&#10; #param_1&#10; #param_2&#10; #param_3&#10; #param_4&#10; #param_5&#10;(Gcode lines end)" selected="False" path="0" definitions="&#10;" before="&#10;" type="Gcode" id="Gcode-0001" name="Gcode 0001">
    <param tool_tip="Gcode line" expanded="False" name="Line 1" selected="False" value="#&lt;diam&gt;=25" call="#param_1" path="0:0" type="string"/>
    <param tool_tip="Gcode line" expanded="False" name="Line 2" selected="False" value="" call="#param_2" path="0:1" type="string"/>
    <param tool_tip="Gcode line" expanded="False" name="Line 3" selected="False" value="" call="#param_3" path="0:2" type="string"/>
    <param tool_tip="Gcode line" expanded="False" name="Line 4" selected="False" value="" call="#param_4" path="0:3" type="string"/>
    <param tool_tip="Gcode line" expanded="False" name="Line 5" selected="False" value="" call="#param_5" path="0:4" type="string"/>
  </feature>
  <feature src="lathe/lathe-cutting-params.ini" expanded="False" help="Sets global cutting depth, depth step, surface origin, and rappid distance." icon="icons/lathe-tool.png" image="images/lathe-tool.png" after="" order="['PARAM_SURFACE', 'PARAM_DEPTH', 'PARAM_DEPTH_STEP', 'PARAM_FEED', 'PARAM_RAPPID', 'PARAM_RAPPID_ID', 'PARAM_RAPPID_Z', 'PARAM_FINAL', 'PARAM_FINAL_NUM', 'PARAM_FINAL_FEED']" call="&#10;&#9;#&lt;_global_surface&gt; = [#param_surface]&#10;&#9;#&lt;_global_depth&gt; = [#param_depth]&#10;&#9;#&lt;_global_depth_step&gt; = [#param_depth_step]&#10;&#9;#&lt;_global_rappid&gt; = [#param_rappid]&#10;&#9;#&lt;_global_rappid_id&gt; = [#param_rappid_id]&#10;&#9;#&lt;_global_rappid_z&gt; = [#param_rappid_z]&#10;&#9;#&lt;_global_final&gt; = [#param_final]&#10;&#9;#&lt;_global_final_num&gt; = [#param_final_num]&#10;&#9;#&lt;_global_final_feed&gt; = [#param_final_feed]&#10;&#9;#&lt;_global_feed&gt; = [#param_feed]&#10;" selected="False" path="1" definitions="" before="&#10;" type="Set cutting params" id="Set-cutting-params-0001" name="Set cutting params 0001">
    <param tool_tip="Surface" expanded="False" name="Surface" selected="False" value="#&lt;diam&gt;" call="#param_surface" path="1:0" type="float" icon="icons/surface.png"/>
    <param tool_tip="Depth" expanded="False" name="Depth" selected="False" value="1" call="#param_depth" path="1:1" type="float" icon="icons/depth.png"/>
    <param tool_tip="Depth step" expanded="False" name="Depth step" selected="False" value="4" call="#param_depth_step" path="1:2" type="float" icon="icons/tool-depth.png"/>
    <param tool_tip="Feed" expanded="False" name="Feed" selected="False" value="10000" call="#param_feed" path="1:3" type="float" icon="icons/tool-feed.png"/>
    <param tool_tip="Rappid distance" expanded="False" name="Rappid" selected="False" value="30" call="#param_rappid" path="1:4" type="float" icon="icons/rappid.png"/>
    <param tool_tip="Rappid distance for inner cuts" expanded="False" name="Rappid for inner cuts" selected="False" value="0" call="#param_rappid_id" path="1:5" type="float" icon="icons/rappid.png"/>
    <param tool_tip="Rappid to switch ID-OD" expanded="False" name="Rappid Z to go to ID" selected="False" value="10" call="#param_rappid_z" path="1:6" type="float" icon="icons/rappid.png"/>
    <param tool_tip="Final cut depth step" expanded="False" name="Final cut" selected="False" value=".2" call="#param_final" path="1:7" type="float" icon="icons/dz.png"/>
    <param tool_tip="Num of final cuts" expanded="False" name="Num of final cuts" selected="False" value="2" call="#param_final_num" path="1:8" type="float" icon="icons/dz.png"/>
    <param tool_tip="Final cut Feed" expanded="False" name="Final cut feed" selected="False" value="1000" call="#param_final_feed" path="1:9" type="float" icon="icons/tool-feed.png"/>
  </feature>
  <feature src="lathe/od.ini" after="" help="&lt;big&gt;OD/OD tapper&lt;/big&gt;&#10;Use #&lt;D0&gt; to refer to starting D&#10;" name="OD 0001" image="images/od.png" expanded="False" id="OD-0001" call="&#10;#&lt;D0&gt; = #param_d0&#10;O&lt;lathe-multipass&gt; CALL [#&lt;_od-sub&gt;]  [#&lt;_global_surface&gt;] [#param_z] [#param_d0] [#param_z]  [#&lt;_global_depth_step&gt;] [#&lt;_global_feed&gt;] [#&lt;_global_rappid&gt;] [#&lt;_global_final&gt;] [#&lt;_global_final_num&gt;] [#&lt;_global_final_feed&gt;] [57]  [#param_d0] [#param_d1] [-[#param_l]]&#10;&#10;" selected="False" definitions="&#10;&lt;eval&gt;self.include_once(&quot;draw/draw.ngc&quot;)&lt;/eval&gt;&#10;&lt;eval&gt;self.include_once(&quot;get-offsets.ngc&quot;)&lt;/eval&gt;&#10;&lt;eval&gt;self.include_once(&quot;lathe/lathe-multipass.ngc&quot;)&lt;/eval&gt;&#10;(OD sub)&#10;#&lt;_od-sub&gt; = &lt;eval&gt;self.get_unique_id()&lt;/eval&gt;&#10;O#&lt;_od-sub&gt; SUB&#10;&#9;G91&#10;&#9;O&lt;line-to&gt; CALL [#2-#1] [#3] ([#param_d1-#param_d0] [-[#param_l]])&#10;&#9;G90&#10;O#&lt;_od-sub&gt; ENDSUB&#10;" path="2" before="&#10;" type="OD" order="['PARAM_D0', 'PARAM_D1', 'PARAM_L', 'PARAM_Z', 'PARAM_SURFACE', 'PARAM_STEP', 'PARAM_FEED', 'PARAM_RAPPID', 'PARAM_FINAL', 'PARAM_FINAL_NUM', 'PARAM_FINAL_FEED', 'PARAM_COORD', 'PARAM_ITEMS']" icon="icons/od.png">
    <param tool_tip="X" expanded="False" name="D0" selected="False" value="0" call="#param_d0" path="2:0" type="float" icon="icons/line.png"/>
    <param tool_tip="X" expanded="False" name="D1" selected="False" value="#&lt;D0&gt;" call="#param_d1" path="2:1" type="float" icon="icons/line.png"/>
    <param tool_tip="Length" expanded="False" name="L" selected="False" value="0" call="#param_l" path="2:2" type="float" icon="icons/line.png"/>
    <param tool_tip="Z" expanded="False" name="Z" image="images/line.png" selected="False" value="#&lt;_z&gt;" call="#param_z" path="2:3" type="float" icon="icons/line.png"/>
  </feature>
  <feature src="lathe/od.ini" after="" help="&lt;big&gt;OD/OD tapper&lt;/big&gt;&#10;Use #&lt;D0&gt; to refer to starting D&#10;" name="OD 0001" image="images/od.png" expanded="False" id="OD-0001" call="&#10;#&lt;D0&gt; = #param_d0&#10;O&lt;lathe-multipass&gt; CALL [#&lt;_od-sub&gt;]  [#&lt;_global_surface&gt;] [#param_z] [#param_d0] [#param_z]  [#&lt;_global_depth_step&gt;] [#&lt;_global_feed&gt;] [#&lt;_global_rappid&gt;] [#&lt;_global_final&gt;] [#&lt;_global_final_num&gt;] [#&lt;_global_final_feed&gt;] [57]  [#param_d0] [#param_d1] [-[#param_l]]&#10;&#10;" selected="False" definitions="&#10;&lt;eval&gt;self.include_once(&quot;draw/draw.ngc&quot;)&lt;/eval&gt;&#10;&lt;eval&gt;self.include_once(&quot;get-offsets.ngc&quot;)&lt;/eval&gt;&#10;&lt;eval&gt;self.include_once(&quot;lathe/lathe-multipass.ngc&quot;)&lt;/eval&gt;&#10;(OD sub)&#10;#&lt;_od-sub&gt; = &lt;eval&gt;self.get_unique_id()&lt;/eval&gt;&#10;O#&lt;_od-sub&gt; SUB&#10;&#9;G91&#10;&#9;O&lt;line-to&gt; CALL [#2-#1] [#3] ([#param_d1-#param_d0] [-[#param_l]])&#10;&#9;G90&#10;O#&lt;_od-sub&gt; ENDSUB&#10;" path="3" before="&#10;" type="OD" order="['PARAM_D0', 'PARAM_D1', 'PARAM_L', 'PARAM_Z', 'PARAM_SURFACE', 'PARAM_STEP', 'PARAM_FEED', 'PARAM_RAPPID', 'PARAM_FINAL', 'PARAM_FINAL_NUM', 'PARAM_FINAL_FEED', 'PARAM_COORD', 'PARAM_ITEMS']" icon="icons/od.png">
    <param tool_tip="X" expanded="False" name="D0" selected="False" value="15" call="#param_d0" path="3:0" type="float" icon="icons/line.png"/>
    <param tool_tip="X" expanded="False" name="D1" selected="False" value="#&lt;D0&gt;" call="#param_d1" path="3:1" type="float" icon="icons/line.png"/>
    <param tool_tip="Length" expanded="False" name="L" selected="False" value="23" call="#param_l" path="3:2" type="float" icon="icons/line.png"/>
    <param tool_tip="Z" expanded="False" name="Z" image="images/line.png" selected="False" value="#&lt;_z&gt;" call="#param_z" path="3:3" type="float" icon="icons/line.png"/>
  </feature>
  <feature src="lathe/od.ini" after="" help="&lt;big&gt;OD/OD tapper&lt;/big&gt;&#10;Use #&lt;D0&gt; to refer to starting D&#10;" name="OD 0002" image="images/od.png" expanded="False" id="OD-0002" call="&#10;#&lt;D0&gt; = #param_d0&#10;O&lt;lathe-multipass&gt; CALL [#&lt;_od-sub&gt;]  [#&lt;_global_surface&gt;] [#param_z] [#param_d0] [#param_z]  [#&lt;_global_depth_step&gt;] [#&lt;_global_feed&gt;] [#&lt;_global_rappid&gt;] [#&lt;_global_final&gt;] [#&lt;_global_final_num&gt;] [#&lt;_global_final_feed&gt;] [57]  [#param_d0] [#param_d1] [-[#param_l]]&#10;&#10;" selected="False" definitions="&#10;&lt;eval&gt;self.include_once(&quot;draw/draw.ngc&quot;)&lt;/eval&gt;&#10;&lt;eval&gt;self.include_once(&quot;get-offsets.ngc&quot;)&lt;/eval&gt;&#10;&lt;eval&gt;self.include_once(&quot;lathe/lathe-multipass.ngc&quot;)&lt;/eval&gt;&#10;(OD sub)&#10;#&lt;_od-sub&gt; = &lt;eval&gt;self.get_unique_id()&lt;/eval&gt;&#10;O#&lt;_od-sub&gt; SUB&#10;&#9;G91&#10;&#9;O&lt;line-to&gt; CALL [#2-#1] [#3] ([#param_d1-#param_d0] [-[#param_l]])&#10;&#9;G90&#10;O#&lt;_od-sub&gt; ENDSUB&#10;" path="4" before="&#10;" type="OD" order="['PARAM_D0', 'PARAM_D1', 'PARAM_L', 'PARAM_Z', 'PARAM_SURFACE', 'PARAM_STEP', 'PARAM_FEED', 'PARAM_RAPPID', 'PARAM_FINAL', 'PARAM_FINAL_NUM', 'PARAM_FINAL_FEED', 'PARAM_COORD', 'PARAM_ITEMS']" icon="icons/od.png">
    <param tool_tip="X" expanded="False" name="D0" selected="False" value="17" call="#param_d0" path="4:0" type="float" icon="icons/line.png"/>
    <param tool_tip="X" expanded="False" name="D1" selected="False" value="#&lt;D0&gt;" call="#param_d1" path="4:1" type="float" icon="icons/line.png"/>
    <param tool_tip="Length" expanded="False" name="L" selected="False" value="53" call="#param_l" path="4:2" type="float" icon="icons/line.png"/>
    <param tool_tip="Z" expanded="False" name="Z" image="images/line.png" selected="False" value="#&lt;_z&gt;" call="#param_z" path="4:3" type="float" icon="icons/line.png"/>
  </feature>
  <feature src="lathe/thread.ini" expanded="False" help="&lt;big&gt;Create thread&lt;/big&gt;" icon="icons/threading.png" image="images/threading.png" after="" order="['PARAM_D', 'PARAM_P', 'PARAM_Z0', 'PARAM_L']" call="&#10;(Thread feature START)&#10;&lt;eval&gt;self.include_once(&quot;draw/draw.ngc&quot;)&lt;/eval&gt;&#10;&lt;eval&gt;self.include_once(&quot;get-offsets.ngc&quot;)&lt;/eval&gt;&#10;&lt;eval&gt;self.include_once(&quot;lathe/lathe-multipass.ngc&quot;)&lt;/eval&gt;&#10;&#10;#&lt;p&gt; = [#param_p]&#10;#&lt;z&gt; = [#param_l+#param_z0]&#10;&#10;#&lt;i&gt; = [#param_d - #&lt;_global_rappid&gt;]&#10;#&lt;k&gt; = [#&lt;p&gt;*SQRT[3]/2]&#10;#&lt;j&gt; = #&lt;_global_thread_j&gt;&#10;#&lt;if&gt; = &lt;eval&gt;self.get_unique_id()&lt;/eval&gt;&#10;O#&lt;if&gt; IF [#&lt;j&gt; GT #&lt;k&gt;]&#10;&#9;#&lt;j&gt; = [#&lt;k&gt;*0.95]&#10;O#&lt;if&gt; ENDIF&#10;&#10;#&lt;r&gt; = #&lt;_global_thread_r&gt;&#10;#&lt;q&gt; = #&lt;_global_thread_q&gt;&#10;#&lt;h&gt; = #&lt;_global_thread_h&gt;&#10;#&lt;e&gt; = #&lt;_global_thread_e&gt;&#10;#&lt;l&gt; = #&lt;_global_thread_l&gt;&#10;&#10;G0 X#&lt;_global_rappid&gt;&#10;G0 Z[#param_z0]&#10;F#&lt;_global_feed&gt;&#10;&#10;G76 P[#&lt;p&gt;] Z[#&lt;z&gt;] I[#&lt;i&gt;] J[#&lt;j&gt;] R[#&lt;r&gt;] K[#&lt;k&gt;] Q[#&lt;q&gt;] H[#&lt;h&gt;] E[#&lt;e&gt;] L[#&lt;l&gt;]&#10;&#10;(Thread feature END)" selected="False" path="5" definitions="" before="" type="Lathe thread" id="Lathe-thread-0001" name="Lathe thread 0001">
    <param tool_tip="The thread peak offset from the drive line.&#10;&#9;Negative I values are external threads, and positive I values are internal threads.&#10;&#9;Generally the material has been turned to this size before the G76 cycle." selected="False" name="Thread diameter (D)" expanded="False" value="17" call="#param_d" path="5:0" type="float" icon="icons/dx.png"/>
    <param tool_tip="The thread pitch in distance per revolution." selected="False" name="Thread pitch (P)" expanded="False" value="1" call="#param_p" path="5:1" type="float" icon="icons/thread-pitch.png"/>
    <param tool_tip="Thread will be cut from this point, will G0 to that point before G76 cutting." selected="False" name="Start point Z" expanded="False" value="-18" call="#param_z0" path="5:2" type="float"/>
    <param tool_tip="The final position of threads. At the end of the cycle the tool will be at this Z position." selected="False" name="Thread length (L)" expanded="False" value="-27" call="#param_l" path="5:3" type="float" icon="icons/dy.png"/>
  </feature>
</LinuxCNC-Features>
