MACHINE  mill

INCLUDE { $UGII_CAM_USER_DEF_EVENT_DIR/ude.cdl }

FORMATTING
{
  WORD_SEPARATOR " "
  END_OF_LINE ""
  SEQUENCE sequence_number 10  10 1 9999

################ FORMAT DECLARATIONS #################
  FORMAT AbsCoord "&__5.4_"
  FORMAT Coordinate "&__4.4_"
  FORMAT Digit_2 "&_02_00"
  FORMAT Digit_4 "&_04_00"
  FORMAT Digit_5 "&__5_00"
  FORMAT Dwell_SECONDS "&__5.3_"
  FORMAT EventNum "&+03_00"
  FORMAT Feed "&__7.2_"
  FORMAT Feed_DPM "&__5.2_"
  FORMAT Feed_FRN "&__5.3_"
  FORMAT Feed_INV "&__5.3_"
  FORMAT Feed_IPM "&__4.1_"
  FORMAT Feed_IPR "&__1.4_"
  FORMAT Hcode "&_02_00"
  FORMAT Rev "&__4_00"
  FORMAT Rotary "&__5.3_"
  FORMAT String "%s"
  FORMAT Tcode "&_02_00"
  FORMAT Zero_int "&_01_0_"
  FORMAT Zero_real "&_01.10"

################ ADDRESS DECLARATIONS ################
  ADDRESS G_cutcom 
  {
      FORMAT      Digit_2
      FORCE       off
      MAX         999999999.9999 Truncate
      MIN         -999999999.9999 Truncate
      LEADER      "G"
  }

  ADDRESS G_plane 
  {
      FORMAT      Digit_2
      FORCE       off
      LEADER      "G"
  }

  ADDRESS G_adjust 
  {
      FORMAT      Digit_2
      FORCE       off
      LEADER      "G"
  }

  ADDRESS G_feed 
  {
      FORMAT      Digit_2
      FORCE       off
      LEADER      "G"
  }

  ADDRESS G_spin 
  {
      FORMAT      Digit_2
      FORCE       off
      LEADER      "G"
  }

  ADDRESS G_return 
  {
      FORMAT      Digit_2
      FORCE       off
      LEADER      "G"
  }

  ADDRESS G_motion 
  {
      FORMAT      Digit_2
      FORCE       off
      MAX         9999 Truncate
      MIN         -9999 Truncate
      LEADER      "G"
  }

  ADDRESS G_mode 
  {
      FORMAT      Digit_2
      FORCE       off
      LEADER      "G"
  }

  ADDRESS G 
  {
      FORMAT      Digit_2
      FORCE       off
      MAX         99 Truncate
      MIN         0 Truncate
  }

  ADDRESS G_probe 
  {
      FORMAT      String
      FORCE       off
      MAX         99 Truncate
      MIN         0 Truncate
      LEADER      "G"
  }

  ADDRESS P_probe 
  {
      FORMAT      Digit_4
      FORCE       always
      LEADER      "P"
  }

  ADDRESS A_rotary_probe 
  {
      FORMAT      Rotary
      FORCE       off
      LEADER      "A"
      ZERO_FORMAT Zero_real
  }

  ADDRESS B_rotary_probe 
  {
      FORMAT      Rotary
      FORCE       off
      MAX         9999.9999 Truncate
      MIN         -9999.9999 Truncate
      LEADER      "B"
      ZERO_FORMAT Zero_real
  }

  ADDRESS C_rotary_probe 
  {
      FORMAT      Rotary
      FORCE       off
      MAX         9999.9999 Truncate
      MIN         -9999.9999 Truncate
      LEADER      "C"
      ZERO_FORMAT Zero_real
  }

  ADDRESS D_probe_dia 
  {
      FORMAT      Coordinate
      FORCE       always
      MAX         9999 Truncate
      MIN         0 Truncate
      LEADER      "D"
      ZERO_FORMAT Zero_real
  }

  ADDRESS X 
  {
      FORMAT      Coordinate
      FORCE       off
      MAX         9999.9999 Truncate
      MIN         -9999.9999 Truncate
      LEADER      [$mom_sys_leader(X)]
      ZERO_FORMAT Zero_real
  }

  ADDRESS Y 
  {
      FORMAT      Coordinate
      FORCE       off
      MAX         9999.9999 Truncate
      MIN         -9999.9999 Truncate
      LEADER      [$mom_sys_leader(Y)]
      ZERO_FORMAT Zero_real
  }

  ADDRESS Z 
  {
      FORMAT      Coordinate
      FORCE       off
      MAX         9999.9999 Truncate
      MIN         -9999.9999 Truncate
      LEADER      [$mom_sys_leader(Z)]
      ZERO_FORMAT Zero_real
  }

  ADDRESS fourth_axis 
  {
      FORMAT      Rotary
      FORCE       off
      MAX         9999.9999 Truncate
      MIN         -9999.9999 Truncate
      LEADER      [$mom_sys_leader(fourth_axis)]
      ZERO_FORMAT Zero_real
  }

  ADDRESS fifth_axis 
  {
      FORMAT      Rotary
      FORCE       off
      MAX         9999.9999 Truncate
      MIN         -9999.9999 Truncate
      LEADER      [$mom_sys_leader(fifth_axis)]
      ZERO_FORMAT Zero_real
  }

  ADDRESS I 
  {
      FORMAT      Coordinate
      FORCE       always
      MAX         9999.9999 Truncate
      MIN         -9999.9999 Truncate
      ZERO_FORMAT Zero_real
  }

  ADDRESS J 
  {
      FORMAT      Coordinate
      FORCE       always
      MAX         9999.9999 Truncate
      MIN         -9999.9999 Truncate
      ZERO_FORMAT Zero_real
  }

  ADDRESS K 
  {
      FORMAT      Coordinate
      FORCE       always
      MAX         9999.9999 Truncate
      MIN         -9999.9999 Truncate
      ZERO_FORMAT Zero_real
  }

  ADDRESS K_probe 
  {
      FORMAT      Digit_2
      FORCE       always
      MAX         9999.9999 Truncate
      MIN         -9999.9999 Truncate
      LEADER      "K"
  }

  ADDRESS R 
  {
      FORMAT      Coordinate
      FORCE       off
      MAX         99999.999 Truncate
      MIN         -99999.999 Truncate
      ZERO_FORMAT Zero_real
  }

  ADDRESS F 
  {
      FORMAT      Feed
      FORCE       off
      MAX         999999.9999 Truncate
      MIN         0.0001 Truncate
      ZERO_FORMAT Zero_real
  }

  ADDRESS S 
  {
      FORMAT      Digit_5
      FORCE       off
      MAX         99999 Truncate
      MIN         0 Truncate
      ZERO_FORMAT Zero_int
  }

  ADDRESS T 
  {
      FORMAT      Tcode
      FORCE       off
      MAX         99 Truncate
      MIN         0 Truncate
  }

  ADDRESS D 
  {
      FORMAT      Digit_2
      FORCE       off
      MAX         99 Truncate
      MIN         0 Truncate
  }

  ADDRESS H 
  {
      FORMAT      Hcode
      FORCE       off
      MAX         99 Truncate
      MIN         0 Truncate
  }

  ADDRESS dwell 
  {
      FORMAT      Dwell_SECONDS
      FORCE       off
      MAX         99999.999 Truncate
      MIN         0.001 Truncate
      LEADER      "P"
      ZERO_FORMAT Zero_real
  }

  ADDRESS cycle_dwell 
  {
      FORMAT      Dwell_SECONDS
      FORCE       off
      MAX         99999.999 Truncate
      MIN         0.001 Truncate
      LEADER      "P"
      ZERO_FORMAT Zero_real
  }

  ADDRESS K_cycle 
  {
      FORMAT      Coordinate
      FORCE       off
      MAX         9999.9999 Truncate
      MIN         -9999.9999 Truncate
      LEADER      "K"
      ZERO_FORMAT Zero_real
  }

  ADDRESS cycle_step1 
  {
      FORMAT      Coordinate
      FORCE       off
      MAX         9999.9999 Truncate
      MIN         -9999.9999 Truncate
      LEADER      "I"
      ZERO_FORMAT Zero_real
  }

  ADDRESS cycle_step 
  {
      FORMAT      Coordinate
      FORCE       off
      MAX         9999.9999 Truncate
      MIN         -9999.9999 Truncate
      LEADER      "Q"
      ZERO_FORMAT Zero_real
  }

  ADDRESS cycle_orient 
  {
      FORMAT      Coordinate
      FORCE       off
      MAX         9999.9999 Truncate
      MIN         -9999.9999 Truncate
      LEADER      "Q"
      ZERO_FORMAT Zero_real
  }

  ADDRESS P_cutcom 
  {
      FORMAT      Dwell_SECONDS
      FORCE       off
      MAX         99999.999 Truncate
      MIN         0.001 Truncate
      LEADER      "P"
      ZERO_FORMAT Zero_real
  }

  ADDRESS Q_cutcom 
  {
      FORMAT      Dwell_SECONDS
      FORCE       off
      MAX         99999.999 Truncate
      MIN         0.001 Truncate
      LEADER      "Q"
      ZERO_FORMAT Zero_real
  }

  ADDRESS E 
  {
      FORMAT      Coordinate
      FORCE       off
      MAX         9999.9999 Truncate
      MIN         -9999.9999 Truncate
      ZERO_FORMAT Zero_real
  }

  ADDRESS M_spindle 
  {
      FORMAT      Digit_2
      FORCE       off
      LEADER      "M"
  }

  ADDRESS M_range 
  {
      FORMAT      Digit_2
      FORCE       off
      LEADER      "M"
  }

  ADDRESS M_coolant 
  {
      FORMAT      Digit_2
      FORCE       off
      MAX         99 Truncate
      MIN         0 Truncate
      LEADER      "M"
  }

  ADDRESS M 
  {
      FORMAT      Digit_2
      FORCE       always
  }

  ADDRESS N 
  {
      FORMAT      Digit_4
      FORCE       always
      MAX         9999 Truncate
      LEADER      [$mom_sys_leader(N)]
  }

  ADDRESS Text 
  {
      FORMAT      String
      FORCE       always
      LEADER      ""
  }

  ADDRESS D_probe 
  {
      FORMAT      Coordinate
      FORCE       always
      MAX         9999 Truncate
      MIN         0 Truncate
      LEADER      "D"
      ZERO_FORMAT Zero_real
  }

  ADDRESS E_probe 
  {
      FORMAT      Digit_2
      FORCE       off
      MAX         99999.999 Truncate
      MIN         -99999.999 Truncate
      LEADER      "E"
  }

  ADDRESS F_probe 
  {
      FORMAT      Coordinate
      FORCE       off
      MAX         999999.9999 Truncate
      MIN         0.0001 Truncate
      LEADER      "F"
      ZERO_FORMAT Zero_real
  }

  ADDRESS H_probe 
  {
      FORMAT      Coordinate
      FORCE       off
      MAX         99 Truncate
      MIN         0 Truncate
      LEADER      "H"
      ZERO_FORMAT Zero_real
  }

  ADDRESS M_probe 
  {
      FORMAT      Coordinate
      FORCE       always
      LEADER      "M"
      ZERO_FORMAT Zero_real
  }

  ADDRESS Q_probe 
  {
      FORMAT      Coordinate
      FORCE       off
      MAX         99999.999 Truncate
      LEADER      "Q"
      ZERO_FORMAT Zero_real
  }

  ADDRESS R_probe 
  {
      FORMAT      Coordinate
      FORCE       off
      MAX         99999.999 Truncate
      MIN         -99999.999 Truncate
      LEADER      "R"
      ZERO_FORMAT Zero_real
  }

  ADDRESS S_probe 
  {
      FORMAT      Digit_2
      FORCE       off
      MAX         99 Truncate
      MIN         0 Truncate
      LEADER      "S"
  }

  ADDRESS T_probe 
  {
      FORMAT      Tcode
      FORCE       off
      MAX         9999 Truncate
      MIN         0 Truncate
      LEADER      "T"
  }

  ADDRESS C_probe 
  {
      FORMAT      Digit_2
      FORCE       off
      LEADER      "C"
  }

  ADDRESS U_probe 
  {
      FORMAT      Coordinate
      FORCE       off
      LEADER      "U"
      ZERO_FORMAT Zero_real
  }

  ADDRESS V_probe 
  {
      FORMAT      Coordinate
      FORCE       off
      LEADER      "V"
      ZERO_FORMAT Zero_real
  }

  ADDRESS W_probe 
  {
      FORMAT      Digit_2
      FORCE       off
      LEADER      "W"
  }


################ ADDRESS DECLARATIONS ################
  ADDRESS LF_AAXIS 
  {
      FORMAT      AbsCoord
      FORCE       always
      LEADER      ""
      ZERO_FORMAT Zero_real
  }

  ADDRESS LF_ENUM 
  {
      FORMAT      Digit_5
      FORCE       always
      LEADER      ""
      ZERO_FORMAT Zero_int
  }

  ADDRESS LF_BAXIS 
  {
      FORMAT      AbsCoord
      FORCE       always
      LEADER      ""
      ZERO_FORMAT Zero_real
  }

  ADDRESS LF_XABS 
  {
      FORMAT      AbsCoord
      FORCE       always
      LEADER      ""
      ZERO_FORMAT Zero_real
  }

  ADDRESS LF_FEED 
  {
      FORMAT      Feed
      FORCE       always
      LEADER      ""
      ZERO_FORMAT Zero_real
  }

  ADDRESS LF_YABS 
  {
      FORMAT      AbsCoord
      FORCE       always
      LEADER      ""
      ZERO_FORMAT Zero_real
  }

  ADDRESS LF_SPEED 
  {
      FORMAT      Rev
      FORCE       always
      LEADER      ""
      ZERO_FORMAT Zero_int
  }

  ADDRESS LF_ZABS 
  {
      FORMAT      AbsCoord
      FORCE       always
      LEADER      ""
      ZERO_FORMAT Zero_real
  }


############ BLOCK TEMPLATE DECLARATIONS #############
  BLOCK_TEMPLATE absolute_mode 
  {
       G_cutcom[$mom_sys_cutcom_code(OFF)]
       G_plane[$mom_sys_cutcom_plane_code(XY)]
       G_mode[$mom_sys_output_code(ABSOLUTE)]
       G[$mom_sys_unit_code($mom_output_unit)]
  }

  BLOCK_TEMPLATE calibrate_probe_length 
  {
       G[65]
       P_probe[9801]
       Z[$mom_pos(2)]
       T_probe[$mom_tool_adjust_register]
  }

  BLOCK_TEMPLATE calibrate_sphere 
  {
       G[65]
       P_probe[9804]
       X[$mom_pos(0)]
       Y[$mom_pos(1)]
       Z[$mom_pos(2)]
       D_probe[$mom_probe_sphere_diameter]
       S_probe[$mom_probe_stylus_diameter]
       T_probe[$mom_probe_length_adjust_register]
  }

  BLOCK_TEMPLATE calibrate_stylus_offsets 
  {
       G[65]
       P_probe[9802]
       D_probe[$mom_probe_cylinder_diameter]
  }

  BLOCK_TEMPLATE calibrate_stylus_radius 
  {
       G[65]
       P_probe[$mom_sys_probe_calibrate_stylus_ballrad_move_code]
       D_probe[$mom_probe_cylinder_diameter]
       S_probe[$mom_probe_work_offset_number]
  }

  BLOCK_TEMPLATE coordinate_system 
  {
       G[$mom_sys_reset_code]
  }

  BLOCK_TEMPLATE end_of_path 
  {
       M_spindle[$mom_sys_spindle_direction_code(OFF)]
       M_coolant[$mom_sys_coolant_code(OFF)]
  }

  BLOCK_TEMPLATE end_of_program 
  {
       M[$mom_sys_end_of_program_code]
  }

  BLOCK_TEMPLATE fifth_axis_rotate_move 
  {
       G_motion[$mom_sys_rapid_code]
       fifth_axis[$mom_out_angle_pos(1)]
  }

  BLOCK_TEMPLATE fourth_axis_rotate_move 
  {
       G_motion[$mom_sys_rapid_code]
       fourth_axis[$mom_out_angle_pos(0)]
  }

  BLOCK_TEMPLATE from 
  {
       G_motion[$mom_sys_rapid_code]
       X[$mom_from_pos(0)]
       Y[$mom_from_pos(1)]
       Z[$mom_from_pos(2)]
  }

  BLOCK_TEMPLATE inch_metric_mode 
  {
       G[$mom_sys_unit_code($mom_output_unit)]
  }

  BLOCK_TEMPLATE incremental_mode 
  {
       G_mode[$mom_sys_output_code(INCREMENTAL)]
  }

  BLOCK_TEMPLATE manual_tool_change 
  {
       M[$mom_sys_program_stop_code]
  }

  BLOCK_TEMPLATE output_unit 
  {
       G[$mom_sys_unit_code($mom_output_unit)]
  }

  BLOCK_TEMPLATE probe_angled_surface_point 
  {
       G[65]
       P_probe[9821]
       A_rotary_probe[$mom_probe_angle_of_measurement]
       X[$mom_pos(0)]
       Y[$mom_pos(1)]
       Z[$mom_pos(2)]
       D_probe[$mom_probe_standoff_distance]
       E_probe[$mom_probe_experience_value]\opt
       F_probe[$mom_probe_feedback_percent]\opt
       H_probe[$mom_probe_nominal_tolerance]\opt
       M_probe[$mom_probe_cylindrical_tolerance]\opt
       Q_probe[$mom_probe_over_travel_distance]\opt
       S_probe[$mom_probe_work_offset_number]\opt
       T_probe[$mom_probe_length_adjust_register]\opt
       C_probe[$mom_probe_adjust_method]\opt
       U_probe[$mom_probe_upper_tolerance]\opt
       V_probe[$mom_probe_nullband_tolerance]\opt
       W_probe[$mom_probe_print_option]\opt
  }

  BLOCK_TEMPLATE probe_four_point_bore 
  {
       G[65]
       P_probe[9814]
       D_probe_dia[$mom_probing_diameter]
       E_probe[$mom_probe_experience_value]\opt
       F_probe[$mom_probe_feedback_percent]\opt
       H_probe[$mom_probe_nominal_tolerance]\opt
       M_probe[$mom_probe_cylindrical_tolerance]\opt
       Q_probe[$mom_probe_over_travel_distance]\opt
       R_probe[$mom_probe_radial_clearance]\opt
       S_probe[$mom_probe_work_offset_number]\opt
       T_probe[$mom_probe_length_adjust_register]\opt
       U_probe[$mom_probe_upper_tolerance]\opt
       V_probe[$mom_probe_nullband_tolerance]\opt
       W_probe[$mom_probe_print_option]\opt
  }

  BLOCK_TEMPLATE probe_four_point_boss 
  {
       G[65]
       P_probe[9814]
       D_probe_dia[$mom_probing_diameter]
       Z[$mom_pos(2)]
       E_probe[$mom_probe_experience_value]\opt
       F_probe[$mom_probe_feedback_percent]\opt
       H_probe[$mom_probe_nominal_tolerance]\opt
       M_probe[$mom_probe_cylindrical_tolerance]\opt
       Q_probe[$mom_probe_over_travel_distance]\opt
       R_probe[$mom_probe_radial_clearance]\opt
       S_probe[$mom_probe_work_offset_number]\opt
       T_probe[$mom_probe_length_adjust_register]\opt
       U_probe[$mom_probe_upper_tolerance]\opt
       V_probe[$mom_probe_nullband_tolerance]\opt
       W_probe[$mom_probe_print_option]\opt
  }

  BLOCK_TEMPLATE probe_multi_stylus_load 
  {
       G[65]
       P_probe[9831]
       K_probe[$mom_probe_storage_number]
  }

  BLOCK_TEMPLATE probe_multi_stylus_store 
  {
       G[65]
       P_probe[9830]
       K_probe[$mom_probe_storage_number]
  }

  BLOCK_TEMPLATE probe_off 
  {
       G[65]
       P_probe[9833]
  }

  BLOCK_TEMPLATE probe_off_1 
  {
       G_probe[5.1]
  }

  BLOCK_TEMPLATE probe_on 
  {
       G[65]
       P_probe[9832]
  }

  BLOCK_TEMPLATE probe_on_1 
  {
       G_probe[5.1]
  }

  BLOCK_TEMPLATE probe_protected_move 
  {
       G[65]
       P_probe[9810]
       X[$mom_pos(0)]
       Y[$mom_pos(1)]
       Z[$mom_pos(2)]
       F[$feed]
       M[$mom_probe_collision_flag]
  }

  BLOCK_TEMPLATE probe_single_direction_point 
  {
       G[65]
       P_probe[9811]
       X[$mom_pos(0)]
       Y[$mom_pos(1)]
       Z[$mom_pos(2)]
       E_probe[$mom_probe_experience_value]\opt
       F_probe[$mom_probe_feedback_percent]\opt
       H_probe[$mom_probe_nominal_tolerance]\opt
       M_probe[$mom_probe_cylindrical_tolerance]\opt
       Q_probe[$mom_probe_over_travel_distance]\opt
       S_probe[$mom_probe_work_offset_number]\opt
       T_probe[$mom_probe_length_adjust_register]\opt
       U_probe[$mom_probe_upper_tolerance]\opt
       V_probe[$mom_probe_nullband_tolerance]\opt
       W_probe[$mom_probe_print_option]\opt
  }

  BLOCK_TEMPLATE probe_three_point_bore 
  {
       G[65]
       P_probe[9823]
       A_rotary_probe[$mom_probe_angles(0)]
       B_rotary_probe[$mom_probe_angles(1)]
       C_rotary_probe[$mom_probe_angles(2)]
       D_probe_dia[$mom_probing_diameter]
       E_probe[$mom_probe_experience_value]\opt
       F_probe[$mom_probe_feedback_percent]\opt
       H_probe[$mom_probe_nominal_tolerance]\opt
       M_probe[$mom_probe_cylindrical_tolerance]\opt
       Q_probe[$mom_probe_over_travel_distance]\opt
       R_probe[$mom_probe_radial_clearance]\opt
       S_probe[$mom_probe_work_offset_number]\opt
       T_probe[$mom_probe_length_adjust_register]\opt
       U_probe[$mom_probe_upper_tolerance]\opt
       V_probe[$mom_probe_nullband_tolerance]\opt
       W_probe[$mom_probe_print_option]\opt
  }

  BLOCK_TEMPLATE probe_three_point_boss 
  {
       G[65]
       P_probe[9823]
       A_rotary_probe[$mom_probe_angles(0)]
       B_rotary_probe[$mom_probe_angles(1)]
       C_rotary_probe[$mom_probe_angles(2)]
       D_probe_dia[$mom_probing_diameter]
       Z[$mom_pos(2)]
       E_probe[$mom_probe_experience_value]\opt
       F_probe[$mom_probe_feedback_percent]\opt
       H_probe[$mom_probe_nominal_tolerance]\opt
       M_probe[$mom_probe_cylindrical_tolerance]\opt
       Q_probe[$mom_probe_over_travel_distance]\opt
       R_probe[$mom_probe_radial_clearance]\opt
       S_probe[$mom_probe_work_offset_number]\opt
       T_probe[$mom_probe_length_adjust_register]\opt
       U_probe[$mom_probe_upper_tolerance]\opt
       V_probe[$mom_probe_nullband_tolerance]\opt
       W_probe[$mom_probe_print_option]\opt
  }

  BLOCK_TEMPLATE rapid_traverse 
  {
       X[$mom_pos(0)]
       Y[$mom_pos(1)]
       Z[$mom_pos(2)]
  }

  BLOCK_TEMPLATE return_motion 
  {
       M_spindle[$mom_sys_spindle_direction_code(OFF)]
       M_coolant[$mom_sys_coolant_code(OFF)]
  }

  BLOCK_TEMPLATE return_motion_1 
  {
       G_return[$mom_sys_return_code]
       G_mode[91]
       Z[0]
       T[$mom_tool_number]
       H[$mom_sys_zero]
  }

  BLOCK_TEMPLATE return_motion_2 
  {
       M_spindle[$mom_sys_spindle_direction_code(OFF)]
       M_coolant[$mom_sys_coolant_code(OFF)]
  }

  BLOCK_TEMPLATE return_motion_5 
  {
       G_return[$mom_sys_return_code]
       G_mode[91]
       Z[0]
       H[$mom_sys_zero]
  }

  BLOCK_TEMPLATE rewind_stop_code 
  {
       Text[%]
  }

  BLOCK_TEMPLATE sequence_number 
  {
       N[$mom_seqnum]
  }

  BLOCK_TEMPLATE spindle_range 
  {
       M_range[$mom_sys_spindle_range_code($mom_spindle_range)]\opt
  }

  BLOCK_TEMPLATE tool_change 
  {
       G_mode[$mom_sys_output_code(INCREMENTAL)]
       G[$mom_sys_return_code]
       Z[0]
  }

  BLOCK_TEMPLATE tool_change_1 
  {
       T[$mom_tool_number]
       M[$mom_sys_tool_change_code]
  }

  BLOCK_TEMPLATE tool_change_2 
  {
       T[$mom_next_tool_number]
  }

  BLOCK_TEMPLATE tool_len_adj_off 
  {
       H[$mom_sys_zero]
  }

  BLOCK_TEMPLATE post_cycle_set 
  {
       G_motion[$mom_sys_cycle_reps_code]
  }

  BLOCK_TEMPLATE comment_data 
  {
       LF_XABS[$mom_pos(0)]
       LF_YABS[$mom_pos(1)]
       LF_ZABS[$mom_pos(2)]
       LF_AAXIS[$mom_pos(3)]
       LF_BAXIS[$mom_pos(4)]
       LF_FEED[$mom_feed_rate]
       LF_SPEED[$mom_spindle_speed]
  }

}
