<lcnc-ncam>
  <feature src="mill/material.cfg" expanded="False" help="&lt;b&gt;Workpiece or Raw material used&lt;/b&gt;" name="Workpiece" old-selected="False" after="" order="['PARAM_SH', 'PARAM_H1', 'PARAM_L', 'PARAM_W', 'PARAM_D', 'PARAM_H2', 'PARAM_X', 'PARAM_ALX', 'PARAM_Y', 'PARAM_ALY', 'PARAM_Z', 'PARAM_ALZ', 'PARAM_H4', 'PARAM_CR', 'PARAM_WT', 'PARAM_CL', 'PARAM_H3', 'PARAM_ZCL', 'PARAM_RAP', 'PARAM_TH']" new-selected="False" hidden_count="0" path="0" call="&#10;(begin #sub_name)&#10;(workpiece definition author : Fernand Veilleux)&#10;&#10;#&lt;wp_width&gt;         = [#&lt;_units_width&gt; * #param_w]&#10;#&lt;wp_length&gt;        = [#&lt;_units_width&gt; * #param_l]&#10;#&lt;wp_depth&gt;         = [#&lt;_units_width&gt; * #param_d]&#10;#&lt;wp_wall&gt;          = [#&lt;_units_width&gt; * #param_wt]&#10;#&lt;wp_corner_radius&gt; = [#&lt;_units_width&gt; * #param_cr]&#10;#&lt;wp_inside_width&gt;  = [#&lt;wp_width&gt; - #&lt;wp_wall&gt; * 2]&#10;#&lt;wp_inside_length&gt; = [#&lt;wp_length&gt; - #&lt;wp_wall&gt; * 2]&#10;&#10;#&lt;wp_x&gt; = #param_x&#10;#&lt;wp_y&gt; = #param_y&#10;&#10;o&lt;select&gt; CALL [31] [#param_alx] [#param_x] [#param_x - #&lt;wp_length&gt; / 2] [#param_x - #&lt;wp_length&gt;]&#10;#&lt;wp_left&gt;  = #31&#10;#&lt;wp_right&gt; = [#&lt;wp_left&gt; + #&lt;wp_length&gt;]&#10;&#10;o&lt;select&gt; CALL [31] [#param_aly] [#param_y - #&lt;wp_width&gt;] [#param_y - #&lt;wp_width&gt; / 2] [#param_y]&#10;#&lt;wp_front&gt; = #31&#10;#&lt;wp_rear&gt;  = [#&lt;wp_front&gt; + #&lt;wp_width&gt;]&#10;&#10;o&lt;select&gt; CALL [31] [#param_alz] [#param_z] [#param_z + #&lt;wp_depth&gt; / 2] [#param_z + #&lt;wp_depth&gt;]&#10;#&lt;surface&gt;  = #31&#10;&#10;#&lt;_z_clear&gt;       = #param_zcl&#10;#&lt;_rapid_z&gt;       = [#&lt;surface&gt; + #&lt;_z_clear&gt; + #param_rap]&#10;&#10;#&lt;bottom&gt;         = [#&lt;surface&gt; - #&lt;wp_depth&gt;]&#10;#&lt;bottom_through&gt; = [#&lt;bottom&gt; + #param_th]&#10;&#10;/&#9;o&lt;#self_id_active&gt; if [#param_sh] (show enabled)&#10;/&#9;&#9;o&lt;stock&gt; CALL [#&lt;wp_left&gt;] [#&lt;wp_right&gt;] [#&lt;wp_front&gt;] [#&lt;wp_rear&gt;] [#&lt;surface&gt;] [#&lt;bottom&gt;] [#param_cl] [#&lt;wp_corner_radius&gt;] [#&lt;wp_wall&gt;]&#10;/&#9;&#9;G0 X#param_x Y#param_y Z#&lt;surface&gt;&#10;/&#9;o&lt;#self_id_active&gt; endif&#10;&#10;(end #sub_name)" definitions="" icon="stock.png" type="workpiece" id="workpiece_001" before="">
    <param old_type="bool" name="Show workpiece" value="1" call="#param_sh" path="0:0" type="bool" icon="glasses.png"/>
    <param type="sub-header" old_type="sub-header" call="#param_h1" name="Size" path="0:1"/>
    <param tool_tip="X axis" no_zero="1" old_type="float" name="Width (X)" metric_value="100" value="100.0" header="h1" call="#param_l" path="0:1:0" icon="width.png" type="float" minimum_value="0.0"/>
    <param tool_tip="Y axis" no_zero="1" old_type="float" name="Height (Y)" metric_value="50" value="100.0" header="h1" call="#param_w" path="0:1:1" icon="height.png" type="float" minimum_value="0.0"/>
    <param tool_tip="Z axis" no_zero="1" old_type="float" name="Depth (Z)" metric_value="25.0" value="1.0" header="h1" call="#param_d" path="0:1:2" icon="depth.png" type="float" minimum_value="0.0"/>
    <param type="sub-header" old_type="sub-header" call="#param_h2" name="Coords" path="0:2"/>
    <param tool_tip="X0" old_type="float" name="X" metric_value="0.0" value="0.0" header="h2" call="#param_x" path="0:2:0" type="float" icon="x.png"/>
    <param tool_tip="Define X reference" old_type="combo" name="X axis align" value="1" header="h2" call="#param_alx" path="0:2:1" type="combo" options="Left=0:Center=1:Right=2" icon="align-x.png"/>
    <param tool_tip="Y0" old_type="float" name="Y" metric_value="0.0" value="0.0" header="h2" call="#param_y" path="0:2:2" type="float" icon="y.png"/>
    <param tool_tip="Define Y reference" old_type="combo" name="Y axis align" value="1" header="h2" call="#param_aly" path="0:2:3" type="combo" options="Top=0:Center=1:Bottom=2" icon="align-y.png"/>
    <param tool_tip="Surface" old_type="float" name="Z" metric_value="0.0" value="0.0" header="h2" call="#param_z" path="0:2:4" type="float" icon="z.png"/>
    <param tool_tip="Define Z reference" old_type="combo" name="Z axis align" value="0" header="h2" call="#param_alz" path="0:2:5" type="combo" options="Top=0:Center=1:Bottom=2" icon="align-z.png"/>
    <param type="sub-header" old_type="sub-header" call="#param_h4" name="Options" path="0:3"/>
    <param tool_tip="Define radius" old_type="float" name="Corner radius" metric_value="0.0" value="0.0" header="h4" call="#param_cr" path="0:3:0" minimum_value="0.0" type="float" icon="corner-radius.png"/>
    <param tool_tip="Define if hollow" old_type="float" name="Wall thickness" metric_value="0.0" value="0.0" header="h4" call="#param_wt" path="0:3:1" minimum_value="0.0" type="float" icon="wall-thickness.png"/>
    <param tool_tip="Define orientation of centerline" old_type="combo" name="Centerline align" value="1" header="h4" call="#param_cl" path="0:3:2" type="combo" options="X axis=0:Y axis=1:Z axis=2" icon="cl-align.png"/>
    <param type="sub-header" old_type="sub-header" call="#param_h3" name="Milling params" path="0:4"/>
    <param tool_tip="Above surface or cut start" no_zero="1" old_type="float" name="Z clear" metric_value="2.0" value="2.0" header="h3" call="#param_zcl" path="0:4:0" icon="safe-z.png" type="float" minimum_value="0.0"/>
    <param tool_tip="Above Z clear" no_zero="1" old_type="float" name="Rapid (Z)" metric_value="10.0" value="2.0" header="h3" call="#param_rap" path="0:4:1" icon="rapid.png" type="float" minimum_value="0.0"/>
    <param tool_tip="Past bottom" old_type="float" name="Clear through" metric_value="-1.25" maximum_value="0.0" value="-1.27" header="h3" call="#param_th" path="0:4:2" type="float" icon="through.png"/>
  </feature>
  <feature src="mill/tool-change.cfg" after="" help="&lt;b&gt;Change Tool and/or settings&lt;/b&gt;&amp;#10;Changes setting accordingly even if disabled&amp;#10;&lt;span style='oblique'&gt;&lt;b&gt;Message possible in terminal window&lt;/b&gt;&lt;/span&gt;" old-selected="False" before="" expanded="False" id="tool_change_001" definitions="" new-selected="False" path="1" call="&#10;(begin #sub_name)&#10;(tool change params and changing code author : Fernand Veilleux)&#10;&#10;#&lt;_drill_feed&gt;       =  #param_v_feed&#10;#&lt;_drill_retract&gt;    =  #param_retract&#10;#&lt;_drill_mode&gt;       =  #param_dm&#10;#&lt;_drill_dwell&gt;      =  #param_dw&#10;#&lt;_drill_q&gt;          =  #param_dq&#10;#&lt;_drill_rpm&gt;        =  #param_speed&#10;#&lt;_spindle_dir&gt;      =  #param_spindle_dir&#10;#&lt;_cooling_mode&gt;     =  #param_cooling&#10;&#10;#&lt;_feed_normal&gt;      =  #param_feed&#10;#&lt;_rpm_normal&gt;       =  #param_speed&#10;#&lt;_feed_vertical&gt;    =  #param_v_feed&#10;#&lt;_penetration_mode&gt; =  #param_pen&#10;#&lt;_depth_step&gt;       =  #param_stp&#10;#&lt;_ramp_down_ratio&gt;  = [#param_pr / 100]&#10;#&lt;_tool_usage&gt;       =  #param_us&#10;#&lt;_stepover_min&gt;     =  #param_so_m&#10;#&lt;_stepover_normal&gt;  = [#param_so_n / 100]&#10;#&lt;_thread_cut_depth&gt; =  #param_cut_depth&#10;#&lt;_thread_cut_teeth&gt; =  #param_cut_teeth&#10;#&lt;_thread_lead_in&gt;   =  #param_lead_clearance&#10;#&lt;_tool_dynamic_dia&gt; =  #param_dd&#10;&#10;o&lt;#self_id_usage&gt; if [#&lt;_tool_usage&gt; EQ 3]&#10;&#9;o&lt;select&gt; CALL [31] [#param_drill] [#param_d_usr] [#param_d_fra] [#param_d_met] [#param_d_num] [#param_d_let] [#param_d_usrg]&#10;&#9;#&lt;drill_diameter&gt; = #31&#10;&#9;o&lt;#self_id_metric&gt; if [[#&lt;_metric&gt; EQ 1] AND [#param_drill NE 0]]&#10;&#9;&#9;#&lt;drill_diameter&gt; = [#&lt;drill_diameter&gt; * 25.4]&#10;&#9;o&lt;#self_id_metric&gt; endif&#10;&#10;&#9;#&lt;drill_point_len&gt; = [[#&lt;drill_diameter&gt; / 2] / TAN[#param_tip / 2]]&#10;&#9;(print,Drill info : diameter = #&lt;drill_diameter&gt;, point angle = #param_tip &amp;#176;, point length = #&lt;drill_point_len&gt;)&#10;o&lt;#self_id_usage&gt; endif&#10;&#10;o&lt;#self_id_act&gt; if [#param_act AND [#param_dnum NE #5400]]&#10;&#9;M9&#10;&#9;T#param_dnum M6&#10;o&lt;#self_id_act&gt; endif&#10;&#10;o&lt;#self_id_lc&gt; if [#param_tlc GE 1]&#10;&#9;G43 H#param_dnum&#10;o&lt;#self_id_lc&gt; endif&#10;&#10;o&lt;#self_id_01&gt; if [#&lt;_spindle_dir&gt; GT 0]&#10;&#9;o&lt;#self_id_02&gt; if [#param_us EQ 3]&#10;&#9;&#9;o&lt;set_spindle_rpm&gt; CALL [#&lt;_drill_rpm&gt;]&#10;&#9;&#9;F#&lt;_drill_feed&gt;&#10;&#9;o&lt;#self_id_02&gt; else&#10;&#9;&#9;o&lt;set_feed_rate_and_speed&gt; CALL [1]&#10;&#9;o&lt;#self_id_02&gt; endif&#10;&#10;o&lt;#self_id_01&gt; endif&#10;(end #sub_name)" hidden_count="10" icon="tool-change.png" type="tool_change" order="['PARAM_ACT', 'PARAM_H1', 'PARAM_DNUM', 'PARAM_US', 'PARAM_DD', 'PARAM_TLC', 'PARAM_SPINDLE_DIR', 'PARAM_COOLING', 'PARAM_H4', 'PARAM_FEED', 'PARAM_V_FEED', 'PARAM_SPEED', 'PARAM_H6', 'PARAM_SO_N', 'PARAM_SO_M', 'PARAM_H5', 'PARAM_PEN', 'PARAM_STP', 'PARAM_PR', 'PARAM_H8', 'PARAM_H3', 'PARAM_DM', 'PARAM_RETRACT', 'PARAM_DW', 'PARAM_DQ', 'PARAM_H2', 'PARAM_DRILL', 'PARAM_D_FRA', 'PARAM_D_MET', 'PARAM_D_NUM', 'PARAM_D_LET', 'PARAM_D_USR', 'PARAM_D_USRG', 'PARAM_TIP', 'PARAM_H7', 'PARAM_TEETH', 'PARAM_LEAD_CLEARANCE', 'PARAM_CUT_DEPTH']" name="Tool Change">
    <param tool_tip="Params will be set even if disabled" name="Active" value="1" call="#param_act" path="1:0" type="bool" icon="enable.png"/>
    <param call="#param_h1" type="sub-header" name="Tool and usage" path="1:1"/>
    <param tool_tip="Select from tool table" name="Tool number" value="0" header="h1" call="#param_dnum" path="1:1:0" type="tool" icon="tool.png"/>
    <param tool_tip="Select usage for this tool" name="Usage" value="0" header="h1" call="#param_us" path="1:1:1" hidden="2" type="combo" options="Roughing and finishing=0:Roughing=1:Finishing=2:Drilling=3:Threading=4" icon="tool-usage.png"/>
    <param tool_tip="Only for dynamic compensation, 0.0 to use diameter from table" name="Dynamic diameter" metric_value="0.0" value="0.0" header="h1" call="#param_dd" path="1:1:2" hidden="2" icon="tool-d.png" type="float" minimum_value="0.0"/>
    <param tool_tip="Use G43 and probe if setup" name="Use length comp" value="1" header="h1" call="#param_tlc" path="1:1:3" hidden="2" type="combo" options="No=0:From tool table=1:Table and probe=2" icon="comp-l.png"/>
    <param tool_tip="Select drill rotation" name="Start spindle" value="3" header="h1" call="#param_spindle_dir" path="1:1:4" hidden="2" type="combo" options="No=0:Clockwise=3:Counter-clockwise=4" icon="spindle-start.png"/>
    <param tool_tip="Use flood, mist or none" name="Use cooling" value="8" header="h1" call="#param_cooling" path="1:1:5" hidden="2" type="combo" options="None=9:Flood=8:Mist=7" icon="snowflake.png"/>
    <param call="#param_h4" hidden="2" type="sub-header" name="Feed and speed" path="1:2"/>
    <param tool_tip="Feed at 100% engagement" no_zero="1" name="Feed" metric_value="250" value="10" header="h4" call="#param_feed" path="1:2:0" icon="tool-feed.png" type="float" minimum_value="0.0"/>
    <param tool_tip="Plunge or drill feed" no_zero="1" name="Vertical" metric_value="200" value="8" header="h4" call="#param_v_feed" path="1:2:1" minimum_value="0.0" type="float" icon="tool-vertical-feed.png"/>
    <param tool_tip="Set spindle speed" name="Spindle speed" value="1000" header="h4" call="#param_speed" path="1:2:2" minimum_value="100" type="int" icon="tool-spindle.png"/>
    <param tool_tip="Step over for pocketing" name="Milling step over" call="#param_h6" path="1:3" hidden="2" type="sub-header"/>
    <param tool_tip="Not to exceed for pocketing" suffix="%" maximum_value="100" value="60" name="Expanding engagement" header="h6" call="#param_so_n" path="1:3:0" minimum_value="10" type="int" icon="rect-pocket.png"/>
    <param digits="3" name="Minimum" metric_value="0.4" value="0.015" header="h6" call="#param_so_m" path="1:3:1" minimum_value="0.010" type="float" icon="rect-pocket.png"/>
    <param call="#param_h5" hidden="2" type="sub-header" name="Milling penetration" path="1:4"/>
    <param tool_tip="How Z position is attained" name="Mode" value="0" header="h5" call="#param_pen" path="1:4:0" type="combo" options="Ramp down=0:Plunge=1" icon="pen-mode.png"/>
    <param tool_tip="Step down on each pass" name="Step down" metric_value="-3" maximum_value="0.0" value="-0.125" header="h5" call="#param_stp" path="1:4:1" type="float" icon="tool-depth.png"/>
    <param tool_tip="Z versus XY move" suffix="%" maximum_value="100" value="25" name="Ramp down rate" header="h5" call="#param_pr" path="1:4:2" minimum_value="0" type="int" icon="ramp-down-rate.png"/>
    <param tool_tip="Set these when usage is drilling" name="Drilling" call="#param_h8" path="1:5" hidden="2" type="sub-header"/>
    <param call="#param_h3" header="h8" type="sub-header" name="Drilling params" path="1:5:0"/>
    <param tool_tip="G73 requires Q&gt;0 and R&amp;#10;G81 requires R&amp;#10;G82 requires R and P&amp;#10;G83 requires Q&gt;0 and R" name="Mode" value="81" header="h3" call="#param_dm" path="1:5:0:0" type="combo" options="Manual=0:With Chip Breaking - G73=73:Standard - G81=81:Dwell at bottom - G82=82:Peck Drilling Cycle - G83=83" icon="drill-mode.png"/>
    <param tool_tip="Retract height" name="Retract (R)" metric_value="0.5" value="0.02" header="h3" call="#param_retract" path="1:5:0:1" type="float" icon="drill-retract.png"/>
    <param tool_tip="Dwell in seconds" name="Dwell (P)" value="2" header="h3" call="#param_dw" path="1:5:0:2" minimum_value="0" type="float" icon="drill-dwell.png"/>
    <param name="Delta (Q)" metric_value="5" value="0.2" header="h3" call="#param_dq" path="1:5:0:3" minimum_value="0.001" type="float" icon="delta.png"/>
    <param call="#param_h2" header="h8" type="sub-header" name="Drill info" path="1:5:1"/>
    <param tool_tip="Select defined drill or enter size" name="Select drill size" links="d_usr=0:d_fra=1:d_met=2:d_let=3:d_num=4:d_usrg=5" value="1" header="h2" call="#param_drill" path="1:5:1:0" type="combo-user" options="User defined=0:Fractional=1:Metric=2:Letter=3:Wire gauge=4:G-Code=5" icon="drill.png"/>
    <param name="Fractional drill" value="0.3125" header="h2" call="#param_d_fra" path="1:5:1:1" hidden="1" type="list" options="1/64=0.0156:1/32=0.0312:3/64=0.0469:1/16=0.0625:5/64=0.0781:3/32=0.0938:7/64=0.1094:1/8=0.125:9/64=0.1406:5/32=0.1563:11/64=0.1719:3/16=0.1875:13/64=0.2031:7/32=0.2187:15/64=0.2344:1/4=0.25:17/64=0.2656:9/32=0.2812:19/64=0.2969:5/16=0.3125:21/64=0.3281:11/32=0.3438:23/64=0.3594:3/8=0.375:25/64=0.3906:13/32=0.413:27/64=0.4219:7/16=0.4375:29/64=0.4531:15/32=0.4688:31/64=0.4844:1/2=0.5:33/64=0.5156:17/32=0.5312:35/64=0.5469:9/16=0.5625:37/64=0.5781:19/32=0.5938:39/64=0.6094:5/8=0.625:41/64=0.6406:21/32=0.6562:43/64=0.6719:11/16=0.6875:45/64=0.7031:23/32=0.7188:47/64=0.7344:3/4=0.75:49/64=0.7031:25/32=0.7812:51/64=0.7969:13/16=0.8125:53/64=0.8281:27/32=0.8438:55/64=0.8594:7/8=0.875:57/64=0.8906:29/32=0.9062:59/64=0.9219:15/16=0.9375:61/64=0.9531:31/32=0.9688:63/64=0.9844:1=1" suffix="inch"/>
    <param name="Metric drill" value="0.2362" header="h2" call="#param_d_met" path="1:5:1:2" hidden="1" type="list" options="1.00=0.0394:1.10=0.0433:1.20=0.0472:1.30=0.0512:1.40=0.0551:1.50=0.0591:1.60=0.063:1.70=0.0669:1.80=0.0709:1.90=0.0748:2.00=0.0787:2.10=0.0827:2.20=0.0866:2.30=0.0906:2.40=0.0945:2.50=0.0984:2.60=0.1024:2.70=0.1063:2.80=0.1102:2.90=0.1142:3.00=0.1181:3.10=0.0220:3.20=0.126:3.30=0.1299:3.40=0.1339:3.50=0.1378:3.60=0.1417:3.70=0.1457:3.80=0.1496:3.90=0.1535:4.00=0.1575:4.10=0.1614:5.00=0.1969:5.10=0.2008:5.20=0.2047:5.30=0.2087:5.40=0.2126:5.50=0.2165:5.60=0.2205:5.70=0.2244:5.80=0.2283:5.90=0.2323:6.00=0.2362:6.10=0.2402:6.20=0.2441:6.30=0.2480:6.40=0.252:6.50=0.2559:6.60=0.2598:6.70=0.2638:6.80=0.2677:6.90=0.2717:7.00=0.2756:7.10=0.2795:7.20=0.2835:7.30=0.2874:7.40=0.2913:7.50=0.2953:7.60=0.2992:7.70=0.3031:7.80=0.3071:7.90=0.311:8.00=0.315:8.10=0.3189:8.20=0.3228:8.30=0.3268:8.40=0.3307:8.50=0.3346:8.60=0.3386:8.70=0.3425:8.80=0.3465:8.90=0.3504:9.00=0.3543:9.10=0.3583:9.20=0.3622:9.30=0.3661:9.40=0.3701:9.50=0.374:9.60=0.378:9.70=0.3819:9.80=0.3858:9.90=0.3898:10.00=0.3937:10.50=0.4134:11.00=0.4331:11.50=0.4528:12.00=0.4724:12.50=0.4921:13.00=0.5118:13.50=0.5315:14.00=0.5512:14.50=0.5709:15.00=0.5906:15.50=0.6102:16.00=0.6299:16.50=0.6496:17.00=0.6693:17.50=0.6890:18.00=0.7087:18.50=0.7283:19.00=0.748:19.50=0.7677:20.00=0.7879:20.50=0.8071:21.00=0.8465:21.50=0.8465:22.00=0.8661:22.50=0.8858:23.00=0.9055:23.50=0.9252:24.00=0.9449:24.50=0.9646:25.00=0.9843" suffix="mm"/>
    <param name="Wire gauge drill" value="0.1285" header="h2" prefix="#" call="#param_d_num" path="1:5:1:3" hidden="1" type="list" options="1=0.228:2=0.221:3=0.213:4=0.209:5=0.2055:6=0.204:7=0.201:8=0.199:9=0.196:10=0.1935:11=0.191:12=0.189:13=0.185:14=0.182:15=0.18:16=0.177:17=0.173:18=0.1695:19=0.166:20=0.161:21=0.159:22=0.157:23=0.154:24=0.152:25=0.1495:26=0.147:27=0.144:28=0.1405:29=0.136:30=0.1285:31=0.12:32=0.116:33=0.113:34=0.111:35=0.11:36=0.1065:37=0.104:38=0.1015:39=0.0995:40=0.098:41=0.096:42=0.0935:43=0.089:44=0.086:45=0.082:46=0.081:47=0.0785:48=0.076:49=0.073:50=0.07:51=0.067:52=0.0635:53=0.0595:54=0.055:55=0.052:56=0.0465:57=0.043:58=0.042:59=0.041:60=0.04"/>
    <param name="Lettered drill" value="0.257" header="h2" call="#param_d_let" path="1:5:1:4" hidden="1" type="list" options="A=0.234:B=0.238:C=0.242:D=0.246:E=0.25:F=0.257:G=0.261:H=0.266:I=0.272:J=0.277:K=0.281:L=0.29:M=0.295:N=0.302:O=0.316:P=0.323:Q=0.332:R=0.339:S=0.348:T=0.358:U=0.368:V=0.377:W=0.386:X=0.397:Y=0.404:Z=0.413"/>
    <param name="User defined size" metric_value="8.0" value="0.375" header="h2" call="#param_d_usr" path="1:5:1:5" hidden="1" type="float" minimum_value="0.0"/>
    <param name="User defined size" value="" header="h2" call="#param_d_usrg" path="1:5:1:6" hidden="1" type="gcode"/>
    <param tool_tip="Drill point angle" name="Point angle" value="118" header="h2" call="#param_tip" path="1:5:1:7" type="combo" options="118&amp;#176; Medium hard material=118:135&amp;#176; Hard material=135:90&amp;#176; Plastic=90:60&amp;#176; Plastic=60:Flat end=180" icon="drill-point.png"/>
    <param call="#param_h7" hidden="2" type="sub-header" name="Threading" path="1:6"/>
    <param tool_tip="Distance from face in machine units before engaging cutter" no_zero="1" name="Lead-in clearance" metric_value="1" value="0.040" header="h7" call="#param_lead_clearance" path="1:6:0" type="float" icon="lead-in-thread.png"/>
    <param tool_tip="Depth of cutter engagment in machine units per pass" no_zero="1" name="Cutter engagement" metric_value="0.5" value="0.2" header="h7" call="#param_cut_depth" path="1:6:1" icon="thread-eng.png" type="float" minimum_value="0.1"/>
    <param tool_tip="Number of cutter teeth" name="Cutter teeth" value="1" header="h7" call="#param_cut_teeth" path="1:6:2" icon="cutter-teeth.png" type="int" minimum_value="1"/>
  </feature>
  <feature src="rectangular-array.cfg" expanded="True" indent="1" help="&lt;b&gt;Create a Rectangular Array of items&lt;/b&gt;" short_id="23" old-selected="False" name="Rectangular Array" after="&#10;&#9;&#9;&#9;(end #sub_name items)&#10;&#10;&#9;&#9;&#9;#&lt;start_x#ID&gt;  = [#&lt;start_x#ID&gt;  + #param_dx]&#10;&#9;&#9;&#9;#&lt;items_xr#ID&gt; = [#&lt;items_xr#ID&gt; + #param_xr]&#10;&#9;&#9;o&lt;#self_id_loop_X&gt; endrepeat&#10;&#10;&#9;&#9;#&lt;start_y#ID&gt;  = [#&lt;start_y#ID&gt;  + #param_dy]&#10;&#9;&#9;#&lt;items_yr#ID&gt; = [#&lt;items_yr#ID&gt; + #param_yr]&#10;&#9;o&lt;#self_id_loop_Y&gt; endrepeat&#10;&#10;&#9;(restore coordinate system)&#10;&#9;G#&lt;old_coord_system#ID&gt;&#10;&#9;o&lt;#self_id_restore_coords&gt; if [#&lt;_has_z_axis&gt;]&#10;&#9;&#9;G10 L2 P#5220 X#&lt;offset_x#ID&gt; Y#&lt;offset_y#ID&gt; Z#&lt;offset_z#ID&gt; R#&lt;offset_r#ID&gt;&#10;&#9;o&lt;#self_id_restore_coords&gt; else&#10;&#9;&#9;G10 L2 P#5220 X#&lt;offset_x#ID&gt; Y#&lt;offset_y#ID&gt; R#&lt;offset_r#ID&gt;&#10;&#9;o&lt;#self_id_restore_coords&gt; endif&#10;&#10;o&lt;#self_id_active&gt; endif&#10;(end #sub_name)" order="['PARAM_ACT', 'PARAM_H1', 'PARAM_X', 'PARAM_ALX', 'PARAM_Y', 'PARAM_ALY', 'PARAM_Z', 'PARAM_H2', 'PARAM_NUMX', 'PARAM_DX', 'PARAM_NUMY', 'PARAM_DY', 'PARAM_H3', 'PARAM_R', 'PARAM_XR', 'PARAM_YR', 'PARAM_ITEMS']" definitions="" new-selected="False" path="2" call="" hidden_count="1" icon="rect-array.png" type="rect-array" id="rect-array_001" before="&#10;(begin #sub_name)&#10;(rectangular array author : Fernand Veilleux)&#10;&#10;o&lt;#self_id_active&gt; if [#param_act]&#10;&#9;o&lt;select&gt; CALL [31] [#param_alx] [#param_x] [#param_x - [#param_numx - 1] * #param_dx / 2] [#param_x - [#param_numx - 1] * #param_dx]&#10;&#9;#&lt;first_x#ID&gt; = #31&#10;&#10;&#9;o&lt;select&gt; CALL [31] [#param_aly] [#param_y - [#param_numy - 1] * #param_dy] [#param_y - [#param_numy - 1] * #param_dy / 2] [#param_y]&#10;&#9;#&lt;first_y#ID&gt; = #31&#10;&#10;&#9;(get and save current coords system offsets)&#10;&#9;#&lt;old_coord_system#ID&gt; = [#&lt;_coord_system&gt; / 10]&#10;&#9;o&lt;get_offsets&gt; CALL&#10;&#9;#&lt;offset_x#ID&gt; = #&lt;_offsets_x&gt;&#10;&#9;#&lt;offset_y#ID&gt; = #&lt;_offsets_y&gt;&#10;&#9;#&lt;offset_z#ID&gt; = #&lt;_offsets_z&gt;&#10;&#9;#&lt;offset_r#ID&gt; = #&lt;_offsets_r&gt;&#10;&#10;&#9;(change coords system)&#10;&#9;G#&lt;_off_rot_coord_system&gt;&#10;&#10;&#9;#&lt;start_y#ID&gt;  = [#&lt;offset_y#ID&gt; + #&lt;first_y#ID&gt;]&#10;&#9;#&lt;items_yr#ID&gt; = 0&#10;&#9;o&lt;#self_id_loop_Y&gt; repeat [#param_numy]&#10;&#9;&#9;#&lt;start_x#ID&gt;  = [#&lt;offset_x#ID&gt; + #&lt;first_x#ID&gt;]&#10;&#9;&#9;#&lt;items_xr#ID&gt; = 0&#10;&#9;&#9;o&lt;#self_id_loop_X&gt; repeat [#param_numx]&#10;&#9;&#9;&#9;(get rotated coordinates then apply to new coords)&#10;&#9;&#9;&#9;#&lt;rot#ID&gt; = [#&lt;offset_r#ID&gt; + #param_r + #&lt;items_xr#ID&gt; + #&lt;items_yr#ID&gt;]&#10;&#9;&#9;&#9;o&lt;rotate_xy&gt; CALL [#&lt;start_x#ID&gt;] [#&lt;start_y#ID&gt;] [#&lt;offset_x#ID&gt; + #param_x] [#&lt;offset_y#ID&gt; + #param_y] [#&lt;offset_r#ID&gt; + #param_r]&#10;&#9;&#9;&#9;o&lt;#self_id_change_coords&gt; if [#&lt;_has_z_axis&gt;]&#10;&#9;&#9;&#9;&#9;G10 L2 P#5220 X[#&lt;_rotated_x&gt;] Y[#&lt;_rotated_y&gt;] Z#&lt;offset_z#ID&gt; R[#&lt;rot#ID&gt;]&#10;&#9;&#9;&#9;o&lt;#self_id_change_coords&gt; else&#10;&#9;&#9;&#9;&#9;G10 L2 P#5220 X[#&lt;_rotated_x&gt;] Y[#&lt;_rotated_y&gt;] R[#&lt;rot#ID&gt;]&#10;&#9;&#9;&#9;o&lt;#self_id_change_coords&gt; endif&#10;&#10;&#9;&#9;&#9;(begin #sub_name items)">
    <param tool_tip="Disabling will disable ALL items" name="Active" value="1" call="#param_act" path="2:0" type="bool" icon="enable.png"/>
    <param tool_tip="Origin" type="sub-header" call="#param_h1" name="Coords" path="2:1"/>
    <param tool_tip="Origin X" name="X" metric_value="0" value="0.0" header="h1" call="#param_x" path="2:1:0" type="float" icon="x.png"/>
    <param tool_tip="Define X reference" name="X axis align" value="1" header="h1" call="#param_alx" path="2:1:1" type="combo" options="Left=0:Center=1:Right=2" icon="align-x.png"/>
    <param tool_tip="Origin Y" name="Y" metric_value="0" value="0.0" header="h1" call="#param_y" path="2:1:2" type="float" icon="y.png"/>
    <param tool_tip="Define Y reference" name="Y axis align" value="2" header="h1" call="#param_aly" path="2:1:3" type="combo" options="Top=0:Center=1:Bottom=2" icon="align-y.png"/>
    <param name="Z" metric_value="0" value="0.0" header="h1" call="#param_z" path="2:1:4" hidden="1" type="float"/>
    <param type="sub-header" call="#param_h2" name="Size and offsets" path="2:2"/>
    <param tool_tip="Number of copies" name="X axis copies" value="1" header="h2" call="#param_numx" path="2:2:0" icon="copies.png" type="int" minimum_value="1"/>
    <param tool_tip="X step" name="dX" metric_value="25" value="25.0" header="h2" call="#param_dx" path="2:2:1" type="float" icon="dx.png"/>
    <param tool_tip="Number of copies" name="Y axis copies" value="3" header="h2" call="#param_numy" path="2:2:2" icon="copies.png" type="int" minimum_value="1"/>
    <param tool_tip="Y step" name="dY" metric_value="25" value="153.5" header="h2" call="#param_dy" path="2:2:3" type="float" icon="dy.png"/>
    <param type="sub-header" hidden="2" call="#param_h3" name="Rotation" path="2:3"/>
    <param digits="2" tool_tip="Rotation of array" suffix="&amp;#176;" value="0" header="h3" call="#param_r" path="2:3:0" icon="angle.png" type="float" name="Array rotation"/>
    <param digits="2" tool_tip="Relative to previous one" suffix="&amp;#176;" value="0" header="h3" call="#param_xr" path="2:3:1" icon="angle.png" type="float" name="X items rotation"/>
    <param digits="2" tool_tip="Relative to previous one" suffix="&amp;#176;" value="0" header="h3" call="#param_yr" path="2:3:2" icon="angle.png" type="float" name="Y items rotation"/>
    <param tool_tip="Items to copy" name="Items" old-selected="False" expanded="True" new-selected="False" call="#param_items" path="2:4" type="items" icon="items.png">
      <feature src="mill/polyline.cfg" after="&#10;&#9;(end #sub_name items)&#10;&#9;#&lt;in_polyline&gt; = 0&#10;&#10;&#9;o&lt;#self_id_end&gt; if [#5000 GT 0]&#10;&#10;&#9;&#9;(return to origin w/ either a line 1 or an arc 5)&#10;&#9;&#9;o&lt;select&gt; CALL [31] [#param_ted] [#&lt;poly_global_engagement&gt;] [#param_te]&#10;&#9;&#9;o&lt;#self_id_end0&gt; if [#param_cdir GT 1]&#10;&#9;&#9;&#9;o&lt;poly_add_item&gt; CALL [5] [#param_x] [#param_y] [#param_cdir] [#param_orcs] [#param_orcr] [#param_orrev] [#31] [#param_height] [#param_atype] [#param_rev2]&#10;&#9;&#9;o&lt;#self_id_end0&gt; else&#10;&#9;&#9;&#9;o&lt;poly_add_item&gt; CALL [1] [#param_x] [#param_y] [#param_cdir] [#param_orcs] [#param_orcr] [#param_orrev] [#31]&#10;&#9;&#9;o&lt;#self_id_end0&gt; endif&#10;&#10;&#9;&#9;o&lt;poly_create&gt; CALL&#10;&#10;&#9;&#9;o&lt;#self_id_rev&gt; if [#param_dir]&#10;&#9;&#9;&#9;o&lt;poly_reverse&gt; CALL&#10;&#9;&#9;o&lt;#self_id_rev&gt; endif&#10;&#10;&#9;&#9;o&lt;poly_copy_mill&gt; CALL&#10;&#10;&#9;&#9;o&lt;optimize&gt; CALL [#&lt;_mill_data_start&gt;] [#param_comp] [0] [#&lt;poly_global_engagement&gt; * #5410 / 100]&#10;&#10;&#9;&#9;o&lt;select&gt; CALL [31] [#param_s] [#param_u_s * #&lt;_units_cut_depth&gt;] [#&lt;surface&gt;] [#&lt;surface&gt; - #&lt;wp_depth&gt; / 2] [#&lt;surface&gt; - #&lt;wp_depth&gt; / 4] [#&lt;bottom&gt; + #&lt;wp_depth&gt; / 4] [#param_ugc]&#10;&#9;&#9;o&lt;select&gt; CALL [32] [#param_dpt] [#param_u_dpt * #&lt;_units_cut_depth&gt;] [#&lt;bottom_through&gt;] [#&lt;bottom&gt;] [#&lt;surface&gt; - #&lt;wp_depth&gt; / 2] [#&lt;surface&gt; - #&lt;wp_depth&gt; / 4] [#&lt;bottom&gt; + #&lt;wp_depth&gt; / 4] [#param_ugcd]&#10;&#10;&#9;&#9;o&lt;poly_mill&gt; CALL [#&lt;_mill_data_start&gt;] [#31] [#32] [#param_comp] [#param_fcut] [#param_dx] [#param_dy] [#param_rot] [#&lt;poly_global_engagement&gt;]&#10;&#10;&#9;o&lt;#self_id_end&gt; endif&#10;&#10;o&lt;#self_id_active&gt; endif&#10;(end #sub_name)" help="&lt;b&gt;Create a closed or open Polyline&lt;/b&gt;&amp;#10;&lt;span foreground='blue' style='oblique'&gt;&lt;b&gt;Message possible in terminal window&lt;/b&gt;&lt;/span&gt;" old-selected="False" before="&#10;(begin #sub_name)&#10;(polyline author : Fernand Veilleux)&#10;&#10;o&lt;#self_id_active&gt; if [#param_act AND [#&lt;in_polyline&gt; EQ 0]]&#10;&#9;#&lt;poly_global_engagement&gt; = [#param_gte / 100]&#10;&#10;&#9;(init and set origin)&#10;&#9;o&lt;poly_add_item&gt; CALL [-1] [#param_x] [#param_y]&#10;&#10;&#9;#&lt;in_polyline&gt; = 1&#10;&#9;(begin #sub_name items)" expanded="True" id="polyline_001" definitions="" hidden_count="4" path="2:4:0" call="" new-selected="False" icon="polyline.png" type="polyline" order="['PARAM_ACT', 'PARAM_FCUT', 'PARAM_H2', 'PARAM_X', 'PARAM_Y', 'PARAM_H1', 'PARAM_DX', 'PARAM_DY', 'PARAM_ROT', 'PARAM_H6', 'PARAM_GTE', 'PARAM_COMP', 'PARAM_DIR', 'PARAM_S', 'PARAM_U_S', 'PARAM_UGC', 'PARAM_DPT', 'PARAM_U_DPT', 'PARAM_UGCD', 'PARAM_ITEMS', 'PARAM_H7', 'PARAM_CDIR', 'PARAM_H5', 'PARAM_ORCS', 'PARAM_ORCR', 'PARAM_ORREV', 'PARAM_H3', 'PARAM_ATYPE', 'PARAM_HEIGHT', 'PARAM_REV2', 'PARAM_H9', 'PARAM_TED', 'PARAM_TE']" name="Polyline">
        <param name="Active" value="1" call="#param_act" path="2:4:0:0" type="bool" icon="enable.png"/>
        <param name="Show design" value="1" call="#param_fcut" path="2:4:0:1" type="bool" icon="glasses.png"/>
        <param call="#param_h2" type="sub-header" name="Origin" path="2:4:0:2"/>
        <param tool_tip="Origin X" name="X" metric_value="0.0" value="0" header="h2" call="#param_x" path="2:4:0:2:0" type="float" icon="x.png"/>
        <param tool_tip="Origin Y" name="Y" metric_value="0.0" value="0" header="h2" call="#param_y" path="2:4:0:2:1" type="float" icon="y.png"/>
        <param call="#param_h1" hidden="2" type="sub-header" name="Offsets, rotation" path="2:4:0:3"/>
        <param tool_tip="Offset origin" name="dX" metric_value="0.0" value="0" header="h1" call="#param_dx" path="2:4:0:3:0" type="float" icon="dx.png"/>
        <param tool_tip="Offset origin" name="dY" metric_value="0.0" value="0" header="h1" call="#param_dy" path="2:4:0:3:1" type="float" icon="dy.png"/>
        <param digits="2" tool_tip="Rotation around offsets" suffix="&amp;#176;" value="0.0" name="Rotation" header="h1" call="#param_rot" path="2:4:0:3:2" type="float" icon="angle.png"/>
        <param call="#param_h6" type="sub-header" name="Milling" path="2:4:0:4"/>
        <param suffix="%" name="Global tool engagement" maximum_value="100" value="100" header="h6" call="#param_gte" path="2:4:0:4:0" hidden="1" minimum_value="0" type="int" icon="tool-eng.png"/>
        <param tool_tip="Which side cutter will travel" name="Tool compensation" value="40" header="h6" call="#param_comp" path="2:4:0:4:1" hidden="2" type="combo" options="None=40:Left=41:Right=42" icon="g4x.png"/>
        <param tool_tip="Mill as designed or in reverse" name="Direction" value="0" header="H6" call="#param_dir" path="2:4:0:4:2" hidden="2" type="combo" options="Designed=0:Reverse=1" icon="cw-ccw.png"/>
        <param tool_tip="Pre or user defined" name="Cut start" links="u_s=0:ugc=5" value="1" header="h6" call="#param_s" path="2:4:0:4:3" type="combo-user" options="User defined=0:Surface=1:Half=2:One quarter=3:Three quarter=4:G-Code=5" icon="surface.png"/>
        <param name="User start" metric_value="0.0" value="0.0" header="h6" call="#param_u_s" path="2:4:0:4:4" hidden="1" type="float"/>
        <param name="User gcode" value="" header="h6" call="#param_ugc" path="2:4:0:4:5" hidden="1" type="gcode"/>
        <param tool_tip="Pre or user defined" name="Cut down to" links="u_dpt=0:ugcd=6" value="1" header="h6" call="#param_dpt" path="2:4:0:4:6" type="combo-user" options="User defined=0:Through=1:Bottom=2:Half=3:One quarter=4:Three quarter=5:G-Code=6" icon="depth.png"/>
        <param name="User depth" metric_value="-12.0" value="-0.5" header="h6" call="#param_u_dpt" path="2:4:0:4:7" hidden="1" type="float"/>
        <param name="User depth gcode" value="" header="h6" call="#param_ugcd" path="2:4:0:4:8" hidden="1" type="gcode"/>
        <param tool_tip="Add polyline items here" name="Items" old-selected="False" expanded="True" call="#param_items" path="2:4:0:5" new-selected="False" type="items" icon="items.png">
          <feature src="mill/polyline-to.cfg" expanded="False" help="&lt;b&gt;Create a line to X, Y&lt;/b&gt;&amp;#10;Absolute or Relative with optional styled corner" name="Line To" old-selected="True" after="" order="['PARAM_ACT', 'PARAM_H2', 'PARAM_CS', 'PARAM_CR', 'PARAM_REV', 'PARAM_H1', 'PARAM_TYPE', 'PARAM_X', 'PARAM_Y', 'PARAM_H3', 'PARAM_TED', 'PARAM_TE']" hidden_count="1" new-selected="False" path="2:4:0:5:0" call="&#10;(begin #sub_name)&#10;(line to absolute or relative position author : Fernand Veilleux)&#10;&#10;o&lt;#self_id_active&gt; if [#param_act AND #&lt;in_polyline&gt;]&#10;&#9;o&lt;select&gt; CALL [31] [#param_ted] [#&lt;poly_global_engagement&gt;] [#param_te]&#10;&#10;&#9;o&lt;poly_add_item&gt; CALL [#param_type] [#param_x] [#param_y] [1] [#param_cs] [#param_cr] [#param_rev] [#31]&#10;&#10;o&lt;#self_id_active&gt; endif&#10;(end #sub_name)" definitions="" icon="line-to.png" type="poly-line-to" id="poly-line-to_001" before="">
            <param name="Active" value="1" call="#param_act" path="2:4:0:5:0:0" type="bool" icon="enable.png"/>
            <param tool_tip="Link style with previous item" name="Link" call="#param_h2" path="2:4:0:5:0:1" hidden="2" type="sub-header"/>
            <param tool_tip="Select link type" name="Type" value="0" header="h2" call="#param_cs" path="2:4:0:5:0:1:0" type="combo" options="None=0:Rounded=1:Beveled=2:Inverted Round=3" icon="corner-style.png"/>
            <param tool_tip="Radius for rounded or distance from apex" name="Radius" metric_value="6" value="0.3" header="h2" call="#param_cr" path="2:4:0:5:0:1:1" icon="corner-radius.png" type="float" minimum_value="0.0"/>
            <param tool_tip="Reverse direction of tool path for rounded or inverted round" name="Complement" value="0" header="h2" call="#param_rev" path="2:4:0:5:0:1:2" type="bool" icon="complement.png"/>
            <param tool_tip="Relative or absolute position" type="sub-header" call="#param_h1" name="Coords" path="2:4:0:5:0:2"/>
            <param tool_tip="Select Relative or Absolute" name="Option" value="1" header="h1" call="#param_type" path="2:4:0:5:0:2:0" type="combo" options="Relative=0:Absolute=1:X relative, Y absolute=10:X absolute, Y relative=11" icon="line-rel.png"/>
            <param tool_tip="Destination X" name="X" metric_value="30" value="-50.0" header="h1" call="#param_x" path="2:4:0:5:0:2:1" type="float" icon="x.png"/>
            <param tool_tip="Destination Y" name="Y" metric_value="25" value="-10.0" header="h1" call="#param_y" path="2:4:0:5:0:2:2" type="float" icon="y.png"/>
            <param type="sub-header" hidden="1" call="#param_h3" name="Milling" path="2:4:0:5:0:3"/>
            <param tool_tip="Tool engagement for this segment" name="Tool engagement" links="te=1" value="0" header="h3" call="#param_ted" path="2:4:0:5:0:3:0" type="combo-user" options="Global=0:Specific=1" icon="tool-eng.png"/>
            <param name="Tool engagement" maximum_value="100" value="100" header="h3" call="#param_te" path="2:4:0:5:0:3:1" hidden="1" minimum_value="0" type="int" suffix="%"/>
          </feature>
        </param>
        <param name="Closing" old-selected="True" expanded="False" new-selected="False" call="#param_h7" path="2:4:0:6" hidden="2" type="header" icon="close.png"/>
        <param tool_tip="Closed or not and direction of closing line" name="Closing item" value="0" header="h7" call="#param_cdir" path="2:4:0:6:0" type="combo" options="None=0:Straight line=1:Arc clockwise=2:Arc counter-clockwise=3" icon="close.png"/>
        <param tool_tip="Link style with previous item" name="Link" header="h7" call="#param_h5" path="2:4:0:6:1" type="sub-header"/>
        <param tool_tip="Select link type" name="Type" value="0" header="h5" call="#param_orcs" path="2:4:0:6:1:0" type="combo" options="None=0:Rounded=1:Beveled=2:Inverted Round=3" icon="corner-style.png"/>
        <param tool_tip="Radius for rounded or distance from apex" name="Radius" metric_value="5" value="0.3" header="h5" call="#param_orcr" path="2:4:0:6:1:1" minimum_value="0.0" type="float" icon="corner-radius.png"/>
        <param tool_tip="Reverse direction of tool path for rounded or inverted round" name="Complement" value="0" header="h5" call="#param_orrev" path="2:4:0:6:1:2" type="bool" icon="complement.png"/>
        <param tool_tip="Define arc" name="Arc definition" header="h7" call="#param_h3" path="2:4:0:6:2" type="sub-header"/>
        <param tool_tip="Select value defined" name="Option" value="0" header="h3" call="#param_atype" path="2:4:0:6:2:0" type="combo" options="Radius=0:Arc height=1" icon="rad-arc-opt.png"/>
        <param no_zero="1" name="Size" metric_value="25" value="1" header="h3" call="#param_height" path="2:4:0:6:2:1" minimum_value="0" type="float" icon="line-len.png"/>
        <param tool_tip="Center opposite side of chord" name="Flip center" value="0" header="h3" call="#param_rev2" path="2:4:0:6:2:2" type="bool" icon="swap-side.png"/>
        <param name="Milling" header="h7" call="#param_h9" path="2:4:0:6:3" hidden="1" type="sub-header"/>
        <param tool_tip="Tool engagement for this segment" name="Tool engagement" links="te=1" value="0" header="h9" call="#param_ted" path="2:4:0:6:3:0" hidden="1" type="combo-user" options="Global=0:Specific=1" icon="tool-eng.png"/>
        <param suffix="%" name="Tool engagement" maximum_value="100" value="100" header="h9" call="#param_te" path="2:4:0:6:3:1" hidden="1" minimum_value="0" type="int" icon="tool-eng.png"/>
      </feature>
    </param>
  </feature>
  <feature src="mill/tool-change.cfg" after="" help="&lt;b&gt;Change Tool and/or settings&lt;/b&gt;&amp;#10;Changes setting accordingly even if disabled&amp;#10;&lt;span style='oblique'&gt;&lt;b&gt;Message possible in terminal window&lt;/b&gt;&lt;/span&gt;" old-selected="False" before="" expanded="False" id="tool_change_002" definitions="" new-selected="False" path="3" call="&#10;(begin #sub_name)&#10;(tool change params and changing code author : Fernand Veilleux)&#10;&#10;#&lt;_drill_feed&gt;       =  #param_v_feed&#10;#&lt;_drill_retract&gt;    =  #param_retract&#10;#&lt;_drill_mode&gt;       =  #param_dm&#10;#&lt;_drill_dwell&gt;      =  #param_dw&#10;#&lt;_drill_q&gt;          =  #param_dq&#10;#&lt;_drill_rpm&gt;        =  #param_speed&#10;#&lt;_spindle_dir&gt;      =  #param_spindle_dir&#10;#&lt;_cooling_mode&gt;     =  #param_cooling&#10;&#10;#&lt;_feed_normal&gt;      =  #param_feed&#10;#&lt;_rpm_normal&gt;       =  #param_speed&#10;#&lt;_feed_vertical&gt;    =  #param_v_feed&#10;#&lt;_penetration_mode&gt; =  #param_pen&#10;#&lt;_depth_step&gt;       =  #param_stp&#10;#&lt;_ramp_down_ratio&gt;  = [#param_pr / 100]&#10;#&lt;_tool_usage&gt;       =  #param_us&#10;#&lt;_stepover_min&gt;     =  #param_so_m&#10;#&lt;_stepover_normal&gt;  = [#param_so_n / 100]&#10;#&lt;_thread_cut_depth&gt; =  #param_cut_depth&#10;#&lt;_thread_cut_teeth&gt; =  #param_cut_teeth&#10;#&lt;_thread_lead_in&gt;   =  #param_lead_clearance&#10;#&lt;_tool_dynamic_dia&gt; =  #param_dd&#10;&#10;o&lt;#self_id_usage&gt; if [#&lt;_tool_usage&gt; EQ 3]&#10;&#9;o&lt;select&gt; CALL [31] [#param_drill] [#param_d_usr] [#param_d_fra] [#param_d_met] [#param_d_num] [#param_d_let] [#param_d_usrg]&#10;&#9;#&lt;drill_diameter&gt; = #31&#10;&#9;o&lt;#self_id_metric&gt; if [[#&lt;_metric&gt; EQ 1] AND [#param_drill NE 0]]&#10;&#9;&#9;#&lt;drill_diameter&gt; = [#&lt;drill_diameter&gt; * 25.4]&#10;&#9;o&lt;#self_id_metric&gt; endif&#10;&#10;&#9;#&lt;drill_point_len&gt; = [[#&lt;drill_diameter&gt; / 2] / TAN[#param_tip / 2]]&#10;&#9;(print,Drill info : diameter = #&lt;drill_diameter&gt;, point angle = #param_tip &amp;#176;, point length = #&lt;drill_point_len&gt;)&#10;o&lt;#self_id_usage&gt; endif&#10;&#10;o&lt;#self_id_act&gt; if [#param_act AND [#param_dnum NE #5400]]&#10;&#9;M9&#10;&#9;T#param_dnum M6&#10;o&lt;#self_id_act&gt; endif&#10;&#10;o&lt;#self_id_lc&gt; if [#param_tlc GE 1]&#10;&#9;G43 H#param_dnum&#10;o&lt;#self_id_lc&gt; endif&#10;&#10;o&lt;#self_id_01&gt; if [#&lt;_spindle_dir&gt; GT 0]&#10;&#9;o&lt;#self_id_02&gt; if [#param_us EQ 3]&#10;&#9;&#9;o&lt;set_spindle_rpm&gt; CALL [#&lt;_drill_rpm&gt;]&#10;&#9;&#9;F#&lt;_drill_feed&gt;&#10;&#9;o&lt;#self_id_02&gt; else&#10;&#9;&#9;o&lt;set_feed_rate_and_speed&gt; CALL [1]&#10;&#9;o&lt;#self_id_02&gt; endif&#10;&#10;o&lt;#self_id_01&gt; endif&#10;(end #sub_name)" hidden_count="10" icon="tool-change.png" type="tool_change" order="['PARAM_ACT', 'PARAM_H1', 'PARAM_DNUM', 'PARAM_US', 'PARAM_DD', 'PARAM_TLC', 'PARAM_SPINDLE_DIR', 'PARAM_COOLING', 'PARAM_H4', 'PARAM_FEED', 'PARAM_V_FEED', 'PARAM_SPEED', 'PARAM_H6', 'PARAM_SO_N', 'PARAM_SO_M', 'PARAM_H5', 'PARAM_PEN', 'PARAM_STP', 'PARAM_PR', 'PARAM_H8', 'PARAM_H3', 'PARAM_DM', 'PARAM_RETRACT', 'PARAM_DW', 'PARAM_DQ', 'PARAM_H2', 'PARAM_DRILL', 'PARAM_D_FRA', 'PARAM_D_MET', 'PARAM_D_NUM', 'PARAM_D_LET', 'PARAM_D_USR', 'PARAM_D_USRG', 'PARAM_TIP', 'PARAM_H7', 'PARAM_TEETH', 'PARAM_LEAD_CLEARANCE', 'PARAM_CUT_DEPTH']" name="Tool Change">
    <param tool_tip="Params will be set even if disabled" name="Active" value="1" call="#param_act" path="3:0" type="bool" icon="enable.png"/>
    <param call="#param_h1" type="sub-header" name="Tool and usage" path="3:1"/>
    <param tool_tip="Select from tool table" name="Tool number" value="0" header="h1" call="#param_dnum" path="3:1:0" type="tool" icon="tool.png"/>
    <param tool_tip="Select usage for this tool" name="Usage" value="0" header="h1" call="#param_us" path="3:1:1" hidden="2" type="combo" options="Roughing and finishing=0:Roughing=1:Finishing=2:Drilling=3:Threading=4" icon="tool-usage.png"/>
    <param tool_tip="Only for dynamic compensation, 0.0 to use diameter from table" name="Dynamic diameter" metric_value="0.0" value="0.0" header="h1" call="#param_dd" path="3:1:2" hidden="2" icon="tool-d.png" type="float" minimum_value="0.0"/>
    <param tool_tip="Use G43 and probe if setup" name="Use length comp" value="1" header="h1" call="#param_tlc" path="3:1:3" hidden="2" type="combo" options="No=0:From tool table=1:Table and probe=2" icon="comp-l.png"/>
    <param tool_tip="Select drill rotation" name="Start spindle" value="3" header="h1" call="#param_spindle_dir" path="3:1:4" hidden="2" type="combo" options="No=0:Clockwise=3:Counter-clockwise=4" icon="spindle-start.png"/>
    <param tool_tip="Use flood, mist or none" name="Use cooling" value="8" header="h1" call="#param_cooling" path="3:1:5" hidden="2" type="combo" options="None=9:Flood=8:Mist=7" icon="snowflake.png"/>
    <param call="#param_h4" hidden="2" type="sub-header" name="Feed and speed" path="3:2"/>
    <param tool_tip="Feed at 100% engagement" no_zero="1" name="Feed" metric_value="250" value="10" header="h4" call="#param_feed" path="3:2:0" icon="tool-feed.png" type="float" minimum_value="0.0"/>
    <param tool_tip="Plunge or drill feed" no_zero="1" name="Vertical" metric_value="200" value="8" header="h4" call="#param_v_feed" path="3:2:1" minimum_value="0.0" type="float" icon="tool-vertical-feed.png"/>
    <param tool_tip="Set spindle speed" name="Spindle speed" value="1000" header="h4" call="#param_speed" path="3:2:2" minimum_value="100" type="int" icon="tool-spindle.png"/>
    <param tool_tip="Step over for pocketing" name="Milling step over" call="#param_h6" path="3:3" hidden="2" type="sub-header"/>
    <param tool_tip="Not to exceed for pocketing" suffix="%" maximum_value="100" value="60" name="Expanding engagement" header="h6" call="#param_so_n" path="3:3:0" minimum_value="10" type="int" icon="rect-pocket.png"/>
    <param digits="3" name="Minimum" metric_value="0.4" value="0.015" header="h6" call="#param_so_m" path="3:3:1" minimum_value="0.010" type="float" icon="rect-pocket.png"/>
    <param call="#param_h5" hidden="2" type="sub-header" name="Milling penetration" path="3:4"/>
    <param tool_tip="How Z position is attained" name="Mode" value="0" header="h5" call="#param_pen" path="3:4:0" type="combo" options="Ramp down=0:Plunge=1" icon="pen-mode.png"/>
    <param tool_tip="Step down on each pass" name="Step down" metric_value="-3" maximum_value="0.0" value="-0.125" header="h5" call="#param_stp" path="3:4:1" type="float" icon="tool-depth.png"/>
    <param tool_tip="Z versus XY move" suffix="%" maximum_value="100" value="25" name="Ramp down rate" header="h5" call="#param_pr" path="3:4:2" minimum_value="0" type="int" icon="ramp-down-rate.png"/>
    <param tool_tip="Set these when usage is drilling" name="Drilling" call="#param_h8" path="3:5" hidden="2" type="sub-header"/>
    <param call="#param_h3" header="h8" type="sub-header" name="Drilling params" path="3:5:0"/>
    <param tool_tip="G73 requires Q&gt;0 and R&amp;#10;G81 requires R&amp;#10;G82 requires R and P&amp;#10;G83 requires Q&gt;0 and R" name="Mode" value="81" header="h3" call="#param_dm" path="3:5:0:0" type="combo" options="Manual=0:With Chip Breaking - G73=73:Standard - G81=81:Dwell at bottom - G82=82:Peck Drilling Cycle - G83=83" icon="drill-mode.png"/>
    <param tool_tip="Retract height" name="Retract (R)" metric_value="0.5" value="0.02" header="h3" call="#param_retract" path="3:5:0:1" type="float" icon="drill-retract.png"/>
    <param tool_tip="Dwell in seconds" name="Dwell (P)" value="2" header="h3" call="#param_dw" path="3:5:0:2" minimum_value="0" type="float" icon="drill-dwell.png"/>
    <param name="Delta (Q)" metric_value="5" value="0.2" header="h3" call="#param_dq" path="3:5:0:3" minimum_value="0.001" type="float" icon="delta.png"/>
    <param call="#param_h2" header="h8" type="sub-header" name="Drill info" path="3:5:1"/>
    <param tool_tip="Select defined drill or enter size" name="Select drill size" links="d_usr=0:d_fra=1:d_met=2:d_let=3:d_num=4:d_usrg=5" value="1" header="h2" call="#param_drill" path="3:5:1:0" type="combo-user" options="User defined=0:Fractional=1:Metric=2:Letter=3:Wire gauge=4:G-Code=5" icon="drill.png"/>
    <param name="Fractional drill" value="0.3125" header="h2" call="#param_d_fra" path="3:5:1:1" hidden="1" type="list" options="1/64=0.0156:1/32=0.0312:3/64=0.0469:1/16=0.0625:5/64=0.0781:3/32=0.0938:7/64=0.1094:1/8=0.125:9/64=0.1406:5/32=0.1563:11/64=0.1719:3/16=0.1875:13/64=0.2031:7/32=0.2187:15/64=0.2344:1/4=0.25:17/64=0.2656:9/32=0.2812:19/64=0.2969:5/16=0.3125:21/64=0.3281:11/32=0.3438:23/64=0.3594:3/8=0.375:25/64=0.3906:13/32=0.413:27/64=0.4219:7/16=0.4375:29/64=0.4531:15/32=0.4688:31/64=0.4844:1/2=0.5:33/64=0.5156:17/32=0.5312:35/64=0.5469:9/16=0.5625:37/64=0.5781:19/32=0.5938:39/64=0.6094:5/8=0.625:41/64=0.6406:21/32=0.6562:43/64=0.6719:11/16=0.6875:45/64=0.7031:23/32=0.7188:47/64=0.7344:3/4=0.75:49/64=0.7031:25/32=0.7812:51/64=0.7969:13/16=0.8125:53/64=0.8281:27/32=0.8438:55/64=0.8594:7/8=0.875:57/64=0.8906:29/32=0.9062:59/64=0.9219:15/16=0.9375:61/64=0.9531:31/32=0.9688:63/64=0.9844:1=1" suffix="inch"/>
    <param name="Metric drill" value="0.2362" header="h2" call="#param_d_met" path="3:5:1:2" hidden="1" type="list" options="1.00=0.0394:1.10=0.0433:1.20=0.0472:1.30=0.0512:1.40=0.0551:1.50=0.0591:1.60=0.063:1.70=0.0669:1.80=0.0709:1.90=0.0748:2.00=0.0787:2.10=0.0827:2.20=0.0866:2.30=0.0906:2.40=0.0945:2.50=0.0984:2.60=0.1024:2.70=0.1063:2.80=0.1102:2.90=0.1142:3.00=0.1181:3.10=0.0220:3.20=0.126:3.30=0.1299:3.40=0.1339:3.50=0.1378:3.60=0.1417:3.70=0.1457:3.80=0.1496:3.90=0.1535:4.00=0.1575:4.10=0.1614:5.00=0.1969:5.10=0.2008:5.20=0.2047:5.30=0.2087:5.40=0.2126:5.50=0.2165:5.60=0.2205:5.70=0.2244:5.80=0.2283:5.90=0.2323:6.00=0.2362:6.10=0.2402:6.20=0.2441:6.30=0.2480:6.40=0.252:6.50=0.2559:6.60=0.2598:6.70=0.2638:6.80=0.2677:6.90=0.2717:7.00=0.2756:7.10=0.2795:7.20=0.2835:7.30=0.2874:7.40=0.2913:7.50=0.2953:7.60=0.2992:7.70=0.3031:7.80=0.3071:7.90=0.311:8.00=0.315:8.10=0.3189:8.20=0.3228:8.30=0.3268:8.40=0.3307:8.50=0.3346:8.60=0.3386:8.70=0.3425:8.80=0.3465:8.90=0.3504:9.00=0.3543:9.10=0.3583:9.20=0.3622:9.30=0.3661:9.40=0.3701:9.50=0.374:9.60=0.378:9.70=0.3819:9.80=0.3858:9.90=0.3898:10.00=0.3937:10.50=0.4134:11.00=0.4331:11.50=0.4528:12.00=0.4724:12.50=0.4921:13.00=0.5118:13.50=0.5315:14.00=0.5512:14.50=0.5709:15.00=0.5906:15.50=0.6102:16.00=0.6299:16.50=0.6496:17.00=0.6693:17.50=0.6890:18.00=0.7087:18.50=0.7283:19.00=0.748:19.50=0.7677:20.00=0.7879:20.50=0.8071:21.00=0.8465:21.50=0.8465:22.00=0.8661:22.50=0.8858:23.00=0.9055:23.50=0.9252:24.00=0.9449:24.50=0.9646:25.00=0.9843" suffix="mm"/>
    <param name="Wire gauge drill" value="0.1285" header="h2" prefix="#" call="#param_d_num" path="3:5:1:3" hidden="1" type="list" options="1=0.228:2=0.221:3=0.213:4=0.209:5=0.2055:6=0.204:7=0.201:8=0.199:9=0.196:10=0.1935:11=0.191:12=0.189:13=0.185:14=0.182:15=0.18:16=0.177:17=0.173:18=0.1695:19=0.166:20=0.161:21=0.159:22=0.157:23=0.154:24=0.152:25=0.1495:26=0.147:27=0.144:28=0.1405:29=0.136:30=0.1285:31=0.12:32=0.116:33=0.113:34=0.111:35=0.11:36=0.1065:37=0.104:38=0.1015:39=0.0995:40=0.098:41=0.096:42=0.0935:43=0.089:44=0.086:45=0.082:46=0.081:47=0.0785:48=0.076:49=0.073:50=0.07:51=0.067:52=0.0635:53=0.0595:54=0.055:55=0.052:56=0.0465:57=0.043:58=0.042:59=0.041:60=0.04"/>
    <param name="Lettered drill" value="0.257" header="h2" call="#param_d_let" path="3:5:1:4" hidden="1" type="list" options="A=0.234:B=0.238:C=0.242:D=0.246:E=0.25:F=0.257:G=0.261:H=0.266:I=0.272:J=0.277:K=0.281:L=0.29:M=0.295:N=0.302:O=0.316:P=0.323:Q=0.332:R=0.339:S=0.348:T=0.358:U=0.368:V=0.377:W=0.386:X=0.397:Y=0.404:Z=0.413"/>
    <param name="User defined size" metric_value="8.0" value="0.375" header="h2" call="#param_d_usr" path="3:5:1:5" hidden="1" type="float" minimum_value="0.0"/>
    <param name="User defined size" value="" header="h2" call="#param_d_usrg" path="3:5:1:6" hidden="1" type="gcode"/>
    <param tool_tip="Drill point angle" name="Point angle" value="118" header="h2" call="#param_tip" path="3:5:1:7" type="combo" options="118&amp;#176; Medium hard material=118:135&amp;#176; Hard material=135:90&amp;#176; Plastic=90:60&amp;#176; Plastic=60:Flat end=180" icon="drill-point.png"/>
    <param call="#param_h7" hidden="2" type="sub-header" name="Threading" path="3:6"/>
    <param tool_tip="Distance from face in machine units before engaging cutter" no_zero="1" name="Lead-in clearance" metric_value="1" value="0.040" header="h7" call="#param_lead_clearance" path="3:6:0" type="float" icon="lead-in-thread.png"/>
    <param tool_tip="Depth of cutter engagment in machine units per pass" no_zero="1" name="Cutter engagement" metric_value="0.5" value="0.2" header="h7" call="#param_cut_depth" path="3:6:1" icon="thread-eng.png" type="float" minimum_value="0.1"/>
    <param tool_tip="Number of cutter teeth" name="Cutter teeth" value="1" header="h7" call="#param_cut_teeth" path="3:6:2" icon="cutter-teeth.png" type="int" minimum_value="1"/>
  </feature>
  <feature src="rectangular-array.cfg" expanded="True" indent="1" help="&lt;b&gt;Create a Rectangular Array of items&lt;/b&gt;" short_id="24" old-selected="False" name="Rectangular Array" after="&#10;&#9;&#9;&#9;(end #sub_name items)&#10;&#10;&#9;&#9;&#9;#&lt;start_x#ID&gt;  = [#&lt;start_x#ID&gt;  + #param_dx]&#10;&#9;&#9;&#9;#&lt;items_xr#ID&gt; = [#&lt;items_xr#ID&gt; + #param_xr]&#10;&#9;&#9;o&lt;#self_id_loop_X&gt; endrepeat&#10;&#10;&#9;&#9;#&lt;start_y#ID&gt;  = [#&lt;start_y#ID&gt;  + #param_dy]&#10;&#9;&#9;#&lt;items_yr#ID&gt; = [#&lt;items_yr#ID&gt; + #param_yr]&#10;&#9;o&lt;#self_id_loop_Y&gt; endrepeat&#10;&#10;&#9;(restore coordinate system)&#10;&#9;G#&lt;old_coord_system#ID&gt;&#10;&#9;o&lt;#self_id_restore_coords&gt; if [#&lt;_has_z_axis&gt;]&#10;&#9;&#9;G10 L2 P#5220 X#&lt;offset_x#ID&gt; Y#&lt;offset_y#ID&gt; Z#&lt;offset_z#ID&gt; R#&lt;offset_r#ID&gt;&#10;&#9;o&lt;#self_id_restore_coords&gt; else&#10;&#9;&#9;G10 L2 P#5220 X#&lt;offset_x#ID&gt; Y#&lt;offset_y#ID&gt; R#&lt;offset_r#ID&gt;&#10;&#9;o&lt;#self_id_restore_coords&gt; endif&#10;&#10;o&lt;#self_id_active&gt; endif&#10;(end #sub_name)" order="['PARAM_ACT', 'PARAM_H1', 'PARAM_X', 'PARAM_ALX', 'PARAM_Y', 'PARAM_ALY', 'PARAM_Z', 'PARAM_H2', 'PARAM_NUMX', 'PARAM_DX', 'PARAM_NUMY', 'PARAM_DY', 'PARAM_H3', 'PARAM_R', 'PARAM_XR', 'PARAM_YR', 'PARAM_ITEMS']" definitions="" new-selected="False" path="4" call="" hidden_count="1" icon="rect-array.png" type="rect-array" id="rect-array_002" before="&#10;(begin #sub_name)&#10;(rectangular array author : Fernand Veilleux)&#10;&#10;o&lt;#self_id_active&gt; if [#param_act]&#10;&#9;o&lt;select&gt; CALL [31] [#param_alx] [#param_x] [#param_x - [#param_numx - 1] * #param_dx / 2] [#param_x - [#param_numx - 1] * #param_dx]&#10;&#9;#&lt;first_x#ID&gt; = #31&#10;&#10;&#9;o&lt;select&gt; CALL [31] [#param_aly] [#param_y - [#param_numy - 1] * #param_dy] [#param_y - [#param_numy - 1] * #param_dy / 2] [#param_y]&#10;&#9;#&lt;first_y#ID&gt; = #31&#10;&#10;&#9;(get and save current coords system offsets)&#10;&#9;#&lt;old_coord_system#ID&gt; = [#&lt;_coord_system&gt; / 10]&#10;&#9;o&lt;get_offsets&gt; CALL&#10;&#9;#&lt;offset_x#ID&gt; = #&lt;_offsets_x&gt;&#10;&#9;#&lt;offset_y#ID&gt; = #&lt;_offsets_y&gt;&#10;&#9;#&lt;offset_z#ID&gt; = #&lt;_offsets_z&gt;&#10;&#9;#&lt;offset_r#ID&gt; = #&lt;_offsets_r&gt;&#10;&#10;&#9;(change coords system)&#10;&#9;G#&lt;_off_rot_coord_system&gt;&#10;&#10;&#9;#&lt;start_y#ID&gt;  = [#&lt;offset_y#ID&gt; + #&lt;first_y#ID&gt;]&#10;&#9;#&lt;items_yr#ID&gt; = 0&#10;&#9;o&lt;#self_id_loop_Y&gt; repeat [#param_numy]&#10;&#9;&#9;#&lt;start_x#ID&gt;  = [#&lt;offset_x#ID&gt; + #&lt;first_x#ID&gt;]&#10;&#9;&#9;#&lt;items_xr#ID&gt; = 0&#10;&#9;&#9;o&lt;#self_id_loop_X&gt; repeat [#param_numx]&#10;&#9;&#9;&#9;(get rotated coordinates then apply to new coords)&#10;&#9;&#9;&#9;#&lt;rot#ID&gt; = [#&lt;offset_r#ID&gt; + #param_r + #&lt;items_xr#ID&gt; + #&lt;items_yr#ID&gt;]&#10;&#9;&#9;&#9;o&lt;rotate_xy&gt; CALL [#&lt;start_x#ID&gt;] [#&lt;start_y#ID&gt;] [#&lt;offset_x#ID&gt; + #param_x] [#&lt;offset_y#ID&gt; + #param_y] [#&lt;offset_r#ID&gt; + #param_r]&#10;&#9;&#9;&#9;o&lt;#self_id_change_coords&gt; if [#&lt;_has_z_axis&gt;]&#10;&#9;&#9;&#9;&#9;G10 L2 P#5220 X[#&lt;_rotated_x&gt;] Y[#&lt;_rotated_y&gt;] Z#&lt;offset_z#ID&gt; R[#&lt;rot#ID&gt;]&#10;&#9;&#9;&#9;o&lt;#self_id_change_coords&gt; else&#10;&#9;&#9;&#9;&#9;G10 L2 P#5220 X[#&lt;_rotated_x&gt;] Y[#&lt;_rotated_y&gt;] R[#&lt;rot#ID&gt;]&#10;&#9;&#9;&#9;o&lt;#self_id_change_coords&gt; endif&#10;&#10;&#9;&#9;&#9;(begin #sub_name items)">
    <param tool_tip="Disabling will disable ALL items" name="Active" value="1" call="#param_act" path="4:0" type="bool" icon="enable.png"/>
    <param tool_tip="Origin" type="sub-header" call="#param_h1" name="Coords" path="4:1"/>
    <param tool_tip="Origin X" name="X" metric_value="0" value="0.0" header="h1" call="#param_x" path="4:1:0" type="float" icon="x.png"/>
    <param tool_tip="Define X reference" name="X axis align" value="1" header="h1" call="#param_alx" path="4:1:1" type="combo" options="Left=0:Center=1:Right=2" icon="align-x.png"/>
    <param tool_tip="Origin Y" name="Y" metric_value="0" value="0.0" header="h1" call="#param_y" path="4:1:2" type="float" icon="y.png"/>
    <param tool_tip="Define Y reference" name="Y axis align" value="2" header="h1" call="#param_aly" path="4:1:3" type="combo" options="Top=0:Center=1:Bottom=2" icon="align-y.png"/>
    <param name="Z" metric_value="0" value="0.0" header="h1" call="#param_z" path="4:1:4" hidden="1" type="float"/>
    <param type="sub-header" call="#param_h2" name="Size and offsets" path="4:2"/>
    <param tool_tip="Number of copies" name="X axis copies" value="1" header="h2" call="#param_numx" path="4:2:0" icon="copies.png" type="int" minimum_value="1"/>
    <param tool_tip="X step" name="dX" metric_value="25" value="25.0" header="h2" call="#param_dx" path="4:2:1" type="float" icon="dx.png"/>
    <param tool_tip="Number of copies" name="Y axis copies" value="3" header="h2" call="#param_numy" path="4:2:2" icon="copies.png" type="int" minimum_value="1"/>
    <param tool_tip="Y step" name="dY" metric_value="25" value="153.5" header="h2" call="#param_dy" path="4:2:3" type="float" icon="dy.png"/>
    <param type="sub-header" hidden="2" call="#param_h3" name="Rotation" path="4:3"/>
    <param digits="2" tool_tip="Rotation of array" suffix="&amp;#176;" value="0" header="h3" call="#param_r" path="4:3:0" icon="angle.png" type="float" name="Array rotation"/>
    <param digits="2" tool_tip="Relative to previous one" suffix="&amp;#176;" value="0" header="h3" call="#param_xr" path="4:3:1" icon="angle.png" type="float" name="X items rotation"/>
    <param digits="2" tool_tip="Relative to previous one" suffix="&amp;#176;" value="0" header="h3" call="#param_yr" path="4:3:2" icon="angle.png" type="float" name="Y items rotation"/>
    <param tool_tip="Items to copy" name="Items" old-selected="False" expanded="True" new-selected="False" call="#param_items" path="4:4" type="items" icon="items.png">
      <feature src="mill/polyline.cfg" after="&#10;&#9;(end #sub_name items)&#10;&#9;#&lt;in_polyline&gt; = 0&#10;&#10;&#9;o&lt;#self_id_end&gt; if [#5000 GT 0]&#10;&#10;&#9;&#9;(return to origin w/ either a line 1 or an arc 5)&#10;&#9;&#9;o&lt;select&gt; CALL [31] [#param_ted] [#&lt;poly_global_engagement&gt;] [#param_te]&#10;&#9;&#9;o&lt;#self_id_end0&gt; if [#param_cdir GT 1]&#10;&#9;&#9;&#9;o&lt;poly_add_item&gt; CALL [5] [#param_x] [#param_y] [#param_cdir] [#param_orcs] [#param_orcr] [#param_orrev] [#31] [#param_height] [#param_atype] [#param_rev2]&#10;&#9;&#9;o&lt;#self_id_end0&gt; else&#10;&#9;&#9;&#9;o&lt;poly_add_item&gt; CALL [1] [#param_x] [#param_y] [#param_cdir] [#param_orcs] [#param_orcr] [#param_orrev] [#31]&#10;&#9;&#9;o&lt;#self_id_end0&gt; endif&#10;&#10;&#9;&#9;o&lt;poly_create&gt; CALL&#10;&#10;&#9;&#9;o&lt;#self_id_rev&gt; if [#param_dir]&#10;&#9;&#9;&#9;o&lt;poly_reverse&gt; CALL&#10;&#9;&#9;o&lt;#self_id_rev&gt; endif&#10;&#10;&#9;&#9;o&lt;poly_copy_mill&gt; CALL&#10;&#10;&#9;&#9;o&lt;optimize&gt; CALL [#&lt;_mill_data_start&gt;] [#param_comp] [0] [#&lt;poly_global_engagement&gt; * #5410 / 100]&#10;&#10;&#9;&#9;o&lt;select&gt; CALL [31] [#param_s] [#param_u_s * #&lt;_units_cut_depth&gt;] [#&lt;surface&gt;] [#&lt;surface&gt; - #&lt;wp_depth&gt; / 2] [#&lt;surface&gt; - #&lt;wp_depth&gt; / 4] [#&lt;bottom&gt; + #&lt;wp_depth&gt; / 4] [#param_ugc]&#10;&#9;&#9;o&lt;select&gt; CALL [32] [#param_dpt] [#param_u_dpt * #&lt;_units_cut_depth&gt;] [#&lt;bottom_through&gt;] [#&lt;bottom&gt;] [#&lt;surface&gt; - #&lt;wp_depth&gt; / 2] [#&lt;surface&gt; - #&lt;wp_depth&gt; / 4] [#&lt;bottom&gt; + #&lt;wp_depth&gt; / 4] [#param_ugcd]&#10;&#10;&#9;&#9;o&lt;poly_mill&gt; CALL [#&lt;_mill_data_start&gt;] [#31] [#32] [#param_comp] [#param_fcut] [#param_dx] [#param_dy] [#param_rot] [#&lt;poly_global_engagement&gt;]&#10;&#10;&#9;o&lt;#self_id_end&gt; endif&#10;&#10;o&lt;#self_id_active&gt; endif&#10;(end #sub_name)" help="&lt;b&gt;Create a closed or open Polyline&lt;/b&gt;&amp;#10;&lt;span foreground='blue' style='oblique'&gt;&lt;b&gt;Message possible in terminal window&lt;/b&gt;&lt;/span&gt;" old-selected="False" before="&#10;(begin #sub_name)&#10;(polyline author : Fernand Veilleux)&#10;&#10;o&lt;#self_id_active&gt; if [#param_act AND [#&lt;in_polyline&gt; EQ 0]]&#10;&#9;#&lt;poly_global_engagement&gt; = [#param_gte / 100]&#10;&#10;&#9;(init and set origin)&#10;&#9;o&lt;poly_add_item&gt; CALL [-1] [#param_x] [#param_y]&#10;&#10;&#9;#&lt;in_polyline&gt; = 1&#10;&#9;(begin #sub_name items)" expanded="True" id="polyline_002" definitions="" hidden_count="4" path="4:4:0" call="" new-selected="False" icon="polyline.png" type="polyline" order="['PARAM_ACT', 'PARAM_FCUT', 'PARAM_H2', 'PARAM_X', 'PARAM_Y', 'PARAM_H1', 'PARAM_DX', 'PARAM_DY', 'PARAM_ROT', 'PARAM_H6', 'PARAM_GTE', 'PARAM_COMP', 'PARAM_DIR', 'PARAM_S', 'PARAM_U_S', 'PARAM_UGC', 'PARAM_DPT', 'PARAM_U_DPT', 'PARAM_UGCD', 'PARAM_ITEMS', 'PARAM_H7', 'PARAM_CDIR', 'PARAM_H5', 'PARAM_ORCS', 'PARAM_ORCR', 'PARAM_ORREV', 'PARAM_H3', 'PARAM_ATYPE', 'PARAM_HEIGHT', 'PARAM_REV2', 'PARAM_H9', 'PARAM_TED', 'PARAM_TE']" name="Polyline">
        <param name="Active" value="1" call="#param_act" path="4:4:0:0" type="bool" icon="enable.png"/>
        <param name="Show design" value="1" call="#param_fcut" path="4:4:0:1" type="bool" icon="glasses.png"/>
        <param call="#param_h2" type="sub-header" name="Origin" path="4:4:0:2"/>
        <param tool_tip="Origin X" name="X" metric_value="0.0" value="0" header="h2" call="#param_x" path="4:4:0:2:0" type="float" icon="x.png"/>
        <param tool_tip="Origin Y" name="Y" metric_value="0.0" value="0" header="h2" call="#param_y" path="4:4:0:2:1" type="float" icon="y.png"/>
        <param call="#param_h1" hidden="2" type="sub-header" name="Offsets, rotation" path="4:4:0:3"/>
        <param tool_tip="Offset origin" name="dX" metric_value="0.0" value="0" header="h1" call="#param_dx" path="4:4:0:3:0" type="float" icon="dx.png"/>
        <param tool_tip="Offset origin" name="dY" metric_value="0.0" value="0" header="h1" call="#param_dy" path="4:4:0:3:1" type="float" icon="dy.png"/>
        <param digits="2" tool_tip="Rotation around offsets" suffix="&amp;#176;" value="0.0" name="Rotation" header="h1" call="#param_rot" path="4:4:0:3:2" type="float" icon="angle.png"/>
        <param call="#param_h6" type="sub-header" name="Milling" path="4:4:0:4"/>
        <param suffix="%" name="Global tool engagement" maximum_value="100" value="100" header="h6" call="#param_gte" path="4:4:0:4:0" hidden="1" minimum_value="0" type="int" icon="tool-eng.png"/>
        <param tool_tip="Which side cutter will travel" name="Tool compensation" value="40" header="h6" call="#param_comp" path="4:4:0:4:1" hidden="2" type="combo" options="None=40:Left=41:Right=42" icon="g4x.png"/>
        <param tool_tip="Mill as designed or in reverse" name="Direction" value="0" header="H6" call="#param_dir" path="4:4:0:4:2" hidden="2" type="combo" options="Designed=0:Reverse=1" icon="cw-ccw.png"/>
        <param tool_tip="Pre or user defined" name="Cut start" links="u_s=0:ugc=5" value="1" header="h6" call="#param_s" path="4:4:0:4:3" type="combo-user" options="User defined=0:Surface=1:Half=2:One quarter=3:Three quarter=4:G-Code=5" icon="surface.png"/>
        <param name="User start" metric_value="0.0" value="0.0" header="h6" call="#param_u_s" path="4:4:0:4:4" hidden="1" type="float"/>
        <param name="User gcode" value="" header="h6" call="#param_ugc" path="4:4:0:4:5" hidden="1" type="gcode"/>
        <param tool_tip="Pre or user defined" name="Cut down to" links="u_dpt=0:ugcd=6" value="1" header="h6" call="#param_dpt" path="4:4:0:4:6" type="combo-user" options="User defined=0:Through=1:Bottom=2:Half=3:One quarter=4:Three quarter=5:G-Code=6" icon="depth.png"/>
        <param name="User depth" metric_value="-12.0" value="-0.5" header="h6" call="#param_u_dpt" path="4:4:0:4:7" hidden="1" type="float"/>
        <param name="User depth gcode" value="" header="h6" call="#param_ugcd" path="4:4:0:4:8" hidden="1" type="gcode"/>
        <param tool_tip="Add polyline items here" name="Items" old-selected="False" expanded="True" call="#param_items" path="4:4:0:5" new-selected="False" type="items" icon="items.png">
          <feature src="mill/polyline-to.cfg" expanded="False" help="&lt;b&gt;Create a line to X, Y&lt;/b&gt;&amp;#10;Absolute or Relative with optional styled corner" name="Line To" old-selected="False" after="" order="['PARAM_ACT', 'PARAM_H2', 'PARAM_CS', 'PARAM_CR', 'PARAM_REV', 'PARAM_H1', 'PARAM_TYPE', 'PARAM_X', 'PARAM_Y', 'PARAM_H3', 'PARAM_TED', 'PARAM_TE']" hidden_count="1" new-selected="False" path="4:4:0:5:0" call="&#10;(begin #sub_name)&#10;(line to absolute or relative position author : Fernand Veilleux)&#10;&#10;o&lt;#self_id_active&gt; if [#param_act AND #&lt;in_polyline&gt;]&#10;&#9;o&lt;select&gt; CALL [31] [#param_ted] [#&lt;poly_global_engagement&gt;] [#param_te]&#10;&#10;&#9;o&lt;poly_add_item&gt; CALL [#param_type] [#param_x] [#param_y] [1] [#param_cs] [#param_cr] [#param_rev] [#31]&#10;&#10;o&lt;#self_id_active&gt; endif&#10;(end #sub_name)" definitions="" icon="line-to.png" type="poly-line-to" id="poly-line-to_002" before="">
            <param name="Active" value="1" call="#param_act" path="4:4:0:5:0:0" type="bool" icon="enable.png"/>
            <param tool_tip="Link style with previous item" name="Link" call="#param_h2" path="4:4:0:5:0:1" hidden="2" type="sub-header"/>
            <param tool_tip="Select link type" name="Type" value="0" header="h2" call="#param_cs" path="4:4:0:5:0:1:0" type="combo" options="None=0:Rounded=1:Beveled=2:Inverted Round=3" icon="corner-style.png"/>
            <param tool_tip="Radius for rounded or distance from apex" name="Radius" metric_value="6" value="0.3" header="h2" call="#param_cr" path="4:4:0:5:0:1:1" icon="corner-radius.png" type="float" minimum_value="0.0"/>
            <param tool_tip="Reverse direction of tool path for rounded or inverted round" name="Complement" value="0" header="h2" call="#param_rev" path="4:4:0:5:0:1:2" type="bool" icon="complement.png"/>
            <param tool_tip="Relative or absolute position" type="sub-header" call="#param_h1" name="Coords" path="4:4:0:5:0:2"/>
            <param tool_tip="Select Relative or Absolute" name="Option" value="1" header="h1" call="#param_type" path="4:4:0:5:0:2:0" type="combo" options="Relative=0:Absolute=1:X relative, Y absolute=10:X absolute, Y relative=11" icon="line-rel.png"/>
            <param tool_tip="Destination X" name="X" metric_value="30" value="50.0" header="h1" call="#param_x" path="4:4:0:5:0:2:1" type="float" icon="x.png"/>
            <param tool_tip="Destination Y" name="Y" metric_value="25" value="-10.0" header="h1" call="#param_y" path="4:4:0:5:0:2:2" type="float" icon="y.png"/>
            <param type="sub-header" hidden="1" call="#param_h3" name="Milling" path="4:4:0:5:0:3"/>
            <param tool_tip="Tool engagement for this segment" name="Tool engagement" links="te=1" value="0" header="h3" call="#param_ted" path="4:4:0:5:0:3:0" type="combo-user" options="Global=0:Specific=1" icon="tool-eng.png"/>
            <param name="Tool engagement" maximum_value="100" value="100" header="h3" call="#param_te" path="4:4:0:5:0:3:1" hidden="1" minimum_value="0" type="int" suffix="%"/>
          </feature>
        </param>
        <param name="Closing" old-selected="True" expanded="False" new-selected="False" call="#param_h7" path="4:4:0:6" hidden="2" type="header" icon="close.png"/>
        <param tool_tip="Closed or not and direction of closing line" name="Closing item" value="0" header="h7" call="#param_cdir" path="4:4:0:6:0" type="combo" options="None=0:Straight line=1:Arc clockwise=2:Arc counter-clockwise=3" icon="close.png"/>
        <param tool_tip="Link style with previous item" name="Link" header="h7" call="#param_h5" path="4:4:0:6:1" type="sub-header"/>
        <param tool_tip="Select link type" name="Type" value="0" header="h5" call="#param_orcs" path="4:4:0:6:1:0" type="combo" options="None=0:Rounded=1:Beveled=2:Inverted Round=3" icon="corner-style.png"/>
        <param tool_tip="Radius for rounded or distance from apex" name="Radius" metric_value="5" value="0.3" header="h5" call="#param_orcr" path="4:4:0:6:1:1" minimum_value="0.0" type="float" icon="corner-radius.png"/>
        <param tool_tip="Reverse direction of tool path for rounded or inverted round" name="Complement" value="0" header="h5" call="#param_orrev" path="4:4:0:6:1:2" type="bool" icon="complement.png"/>
        <param tool_tip="Define arc" name="Arc definition" header="h7" call="#param_h3" path="4:4:0:6:2" type="sub-header"/>
        <param tool_tip="Select value defined" name="Option" value="0" header="h3" call="#param_atype" path="4:4:0:6:2:0" type="combo" options="Radius=0:Arc height=1" icon="rad-arc-opt.png"/>
        <param no_zero="1" name="Size" metric_value="25" value="1" header="h3" call="#param_height" path="4:4:0:6:2:1" minimum_value="0" type="float" icon="line-len.png"/>
        <param tool_tip="Center opposite side of chord" name="Flip center" value="0" header="h3" call="#param_rev2" path="4:4:0:6:2:2" type="bool" icon="swap-side.png"/>
        <param name="Milling" header="h7" call="#param_h9" path="4:4:0:6:3" hidden="1" type="sub-header"/>
        <param tool_tip="Tool engagement for this segment" name="Tool engagement" links="te=1" value="0" header="h9" call="#param_ted" path="4:4:0:6:3:0" hidden="1" type="combo-user" options="Global=0:Specific=1" icon="tool-eng.png"/>
        <param suffix="%" name="Tool engagement" maximum_value="100" value="100" header="h9" call="#param_te" path="4:4:0:6:3:1" hidden="1" minimum_value="0" type="int" icon="tool-eng.png"/>
      </feature>
    </param>
  </feature>
</lcnc-ncam>
