Hey everyone, I’m running into a weird problem with the probe macros on the 1500MX on repeat cycles.
I added an individual x, y, and z probe routine to a .nc file to set the wcs before running the cycle. (the corners have a chamfer too large to support the corner macro)
My impression was that this would be pretty straightforward. Write them according to the docs, insert at the top of the program, and that’s it.
It seems to work for the most part, except on completion of the cycle, the WCS seems to shift up, left and forward several mm, and the next probe cycle fails because it doesn’t contact the part.
I’ve checked for the usual suspects, and the program isn’t calling G92 there’s no odd use of G40/41, and my understanding is that M30 would cancel those offsets anyway.
Here’s the header block for what I’m running:
Program
%
G92.1 G90 G64 G17 G40 G80 G94 G91.1 G49
G21 (MM)
G30 (Move to G30 position)
M5 (Turn off spindle)
M9 (Turn off coolant)
(Values for the parameters below must be entered)
#<_first_position_to_probe> = -2 (absolute value to probe to in the positioning wcs)
#<_measuring_wcs> = 1 (given with number between 1 and 500 to be used with G54.1 Pxxx, set equivalent to positioning wcs if same)
#<_z_wcs_offset> = 0 (value to set found coordinate to in the measuring wcs)
T99 G43 H99 M6 (Change to spindle probe)
G54 (set to positioning wcs)
F#<_probe_rapid_feed_per_min>
(Enter values for XYZ position to position probe)
G0 X65 Y45 (rapid move to XY location to start probing)
G1 Z75 (rapid move to Z clearance height)
F#<_probe_rough_feed_per_min>
(Enter value for Z location to start probing)
G1 Z25 (protected move to Z probing height)
o<probe_z> call
G54 (reset to positioning wcs)
G90 (reset to absolute positioning)
G30 (retract to G30 location)
M1
G90 G64 G17 G40 G80 G94 G91.1 G49
G21 (MM)
G30 (Move to G30 position)
M5 (Turn off spindle)
M9 (Turn off coolant)
(Values for the parameters below must be entered)
#<_first_position_to_probe> = 2 (absolute value to probe to in the positioning wcs)
#<_measuring_wcs> = 1 (given with number between 1 and 500 to be used with G54.1 Pxxx, set equivalent to positioning wcs if same)
#<_x_wcs_offset> = 0 (value to set found coordinate to in the measuring wcs)
T99 G43 H99 M6 (Change to spindle probe)
G54 (set to positioning wcs)
F#<_probe_rapid_feed_per_min>
(Enter values for XYZ position to position probe)
G0 X-25 Y35 (rapid move to XY location to start probing)
G1 Z25 (rapid move to Z clearance height)
F#<_probe_rough_feed_per_min>
(Enter value for Z location to start probing)
G1 Z-5 (protected move to Z probing height)
o<probe_x_edge> call
G54 (reset to positioning wcs)
G90 (reset to absolute positioning)
G30 (retract to G30 location)
M1
G90 G64 G17 G40 G80 G94 G91.1 G49
G21 (MM)
G30 (Move to G30 position)
M5 (Turn off spindle)
M9 (Turn off coolant)
(Values for the parameters below must be entered)
#<_first_position_to_probe> = 2 (absolute value to probe to in the positioning wcs)
#<_measuring_wcs> = 1 (given with number between 1 and 500 to be used with G54.1 Pxxx, set equivalent to positioning wcs if same)
#<_y_wcs_offset> = 0 (value to set found coordinate to in the measuring wcs)
T99 G43 H99 M6 (Change to spindle probe)
G54 (set to positioning wcs)
F#<_probe_rapid_feed_per_min>
(Enter values for XYZ position to position probe)
G0 X35 Y-25 (rapid move to XY location to start probing)
G1 Z25 (rapid move to Z clearance height)
F#<_probe_rough_feed_per_min>
(Enter value for Z location to start probing)
G1 Z-5 (protected move to Z probing height)
o<probe_y_edge> call
G54 (set to positioning wcs)
G90
G30
(1500 MX Honda CNC Setup)
(P/N= Rev. 1)
(Cycle Time= 0 HRS. 2 MIN. 47 SEC.)
(Date Posted 5/11/2026 10:47 )
(WCS = G)
(STOCK - NYLON)
(TOOL LIST)
(T04 = 6MM CRB 4F25 LOC)
(T02 = 2MM CRB 4FL 6.3 LOC)
G17 G40 G49 G50 G54 G64 G80 G90 G91.1 G94
G21
G30
N10 ( Area Clearance1 )
(6MM CRB 4F25 LOC)
M6 T4 G43 H04
S10000 M3 M7
G54
G52 X61.9 Y47.85 Z-4.1
M98 P0002
G52 X0 Y0
N20 ( Area Clearance3 )
G52 X61.9 Y47.85 Z-4.1
M98 P0003
G52 X0 Y0
M5 M9
G30
N30 ( Area Clearance2 )
M1
(2MM CRB 4FL 6.3 LOC)
M6 T2 G43 H02
S10000 M3 M7
G54
G52 X61.9 Y47.85 Z-4.1
M98 P0004
G52 X0 Y0
M5 M9
G30
G0 G53 Z0
G0 G53 X7. Y0.
M30
For reference, the methodology I’m following is the one on the pathpilot knowledge base, which seems to conflict with the method laid out in the user manual somewhat.
Every numbered subroutine called exclusively consists of G1, rapids, coolant control, and M99 to jump back to the header.
Any help debugging this would be extremely helpful
