/
CAM Driven Probing

CAM Driven Probing

Theory of Operation

Outlined is the use and command of probing routines included in Pathpilot for integration with CAM routines. These routines are separate from the UI integrated routines available in Pathpilot.

Calling Program

Each use of a probing program must have a calling program to define the probing routine. Each routine requires the specification of several parameters to define operating conditions. Parameters are global and must be specified for each use of a probing program. The calling program is responsible for initial positioning for the probing routine and also retraction of the probe following the probing routine.

Every routine must specify a measuring work coordinate system with the #<_measuring_wcs> parameter that is to be set based on the results of the probing routine. The measuring work coordinate system can be separate from the work coordinate system that is used to position the spindle probe for measuring, eg if an operator has the left corner of a 6” vise set in G54 and wishes to set the X0 coordinate in G55 to the edge of a piece of material 4” wide clamped roughly in the center of the vise all positioning moves would be specified in coordinates relative to G54. The calling program would thus be represented as:

G90 G64 G50 G17 G40 G80 G94 G91.1 G49 G20 G30 Z0 (retract to G30 location) M5 M9 (turn off spindle and coolant) #<_first_position_to_probe> = 1.5 #<_measuring_wcs> = 2 (G55) #<_x_wcs_offset> = 0 T99 G43 H99 M6 G54 (set to positioning wcs) G0 X.75 Y-.25 (rapid move to XY location to start probing) G1 Z1 F#<_probe_rapid_feed_per_min> (fast speed protected move to Z clearance height) G1 Z.75 F#<_probe_rough_feed_per_min> (medium speed protected move to Z probing height) o<probe_x_edge> call (call probing program) G54 (reset to positioning wcs) G90 (reset to absolute positioning) G30 Z0 (retract to G30 location) M30

If an operator instead wished to set the X0 coordinate in G55 to the center of the 4” piece of material the calling program would be represented as:

G90 G64 G50 G17 G40 G80 G94 G91.1 G49 G20 G30 Z0 (retract to G30 location) M5 M9 (turn off spindle and coolant) #<_first_position_to_probe> = 1.5 #<_second_position_to_probe> = 4.75 #<_second_x_position> = 5.25 #<_second_y_position> = -.25 #<_second_z_position> = .75 #<_z_clearance_position> = 1 #<_measuring_wcs> = 2 (G55) #<_x_wcs_offset> = 2 T99 G43 H99 M6 G54 (set to positioning wcs) G0 X.75 Y-.25 (rapid move to XY location to start probing) G1 Z1 F#<_probe_rapid_feed_per_min> (fast speed protected move to Z clearance height) G1 Z.75 F#<_probe_rough_feed_per_min> (medium speed protected move to Z probing height) o<probe_x_boss> call (call probing program) G54 (reset to positioning wcs) G90 (reset to absolute positioning) G30 Z0 (retract to G30 location) M30

If instead of measuring measuring the center of the material with a boss routine, the customer wished wished to set the X0 coordinate in G55 to the center of the 4” piece of material by touching the edge of the material the calling program would be represented as:

G90 G64 G50 G17 G40 G80 G94 G91.1 G49 G20 G30 Z0 (retract to G30 location) M5 M9 (turn off spindle and coolant) #<_first_position_to_probe> = 1.5 #<_measuring_wcs> = 2 (G55) #<_x_wcs_offset> = 2 T99 G43 H99 M6 G54 (set to positioning wcs) G0 X.75 Y-.25 (rapid move to XY location to start probing) G1 Z1 F#<_probe_rapid_feed_per_min> (fast speed protected move to Z clearance height) G1 Z.75 F#<_probe_rough_feed_per_min> (medium speed protected move to Z probing height) o<probe_x_edge> call (call probing program) G54 (reset to positioning wcs) G90 (reset to absolute positioning) G30 Z0 (retract to G30 location) M30

In Pathpilot every move is inherently a protected move as a change in the probe status when moving will result in an error except when commanding a G38 move.

Probing routines must be done with tool 99 and length offset 99 specified.

Probing routines can be run in either inch or metric mode.

Included Probing Programs

Program Name

Function

Program Name

Function

probe_z

This program measures the Z position of a feature point and records the position for inspection or sets the position to the work coordinate system

probe_x_edge

This program measures the X position of a feature point and records the position for inspection or sets the position to the work coordinate system

probe_y_edge

This program measures the Y position of a feature point and records the position for inspection or sets the position to the work coordinate system

probe_x_pocket

This program measures the X position of two feature points inside a pocket and records the center of the two measured positions for inspection or sets the position to the work coordinate system.

The routine can probe a pocket with an obstacle.

If an obstacle is present the #<_z_clearance_position> parameter should be set to a value to clear the obstacle. If an obstacle is not present the #<_z_clearance_position> parameter should be set to the same value as the Z position for probing feature points.

probe_y_pocket

This program measures the Y position of two feature points inside a pocket and records the center of the two measured positions for inspection or sets the position to the work coordinate system.

The routine can probe a pocket with an obstacle.

If an obstacle is present the #<_z_clearance_position> parameter should be set to a value to clear the obstacle. If an obstacle is not present the #<_z_clearance_position> parameter should be set to the same value as the Z position for probing feature points.

probe_x_boss

This program measures the X position of two feature points outside of a boss and records the center of the two measured positions for inspection or sets the position to the work coordinate system. If an obstacle between the two feature points is present the #<_z_clearance_position> parameter should be set to a position that clears the obstacle, otherwise the parameter can be set to the same position as the feature points.

probe_y_boss

This program measures the Y position of two feature points outside of a boss and records the center of the two measured positions for inspection or sets the position to the work coordinate system. If an obstacle between the two feature points is present the #<_z_clearance_position> parameter should be set to a position that clears the obstacle, otherwise the parameter can be set to the same position as the feature points.

probe_xy_corner

This program measures the X position and Y position of two feature points of a corner and records the intersection of the two points for inspection or sets the position to the work coordinate system.

The corner to probe is specified via the X/Y positions to position the probe and direction/incremental distance to probe. Both inside and outside corners can be probed.

probe_bore_three_point

This program measures three feature points from inside of a bore to record the center point of a circle for inspection or sets the position to the work coordinate. The angle of each probed point is set individually. Each vector must have at least 20 degrees between each other.

Note: three point probing routines are inherently less accurate than four point probing routines. For best results the routine should be repeated after the center is found.

probe_boss_three_point

This program measures three feature points from the outside of a bore to record the center point of a circle for inspection or sets the position to the work coordinate. The angle of each probed point is set individually. Each vector must have at least 20 degrees between each other.

Note: three point probing routines are inherently less accurate than four point probing routines. For best results the routine should be repeated after the center is found.

probe_circular_bore

This program measures four feature points from inside of a bore to record the center point of a circle for inspection or sets the position to the work coordinate. The measured points are along the X and Y axes. The routine can probe a bore with an obstacle.

The #<_diameter_to_position> parameter is used to specify points to position to if an obstacle is present during probing. If an obstacle is present the #<_z_clearance_position> parameter should be set to a value to clear the obstacle.

If an obstacle is not present the #<_diameter_to_position> parameter should be set to 0 and the #<_z_clearance_position> parameter should be set to the same value as the Z position for probing feature points.

probe_circular_boss

This program measures four feature points from outside of a bore to record the center point of a circle for inspection or sets the position to the work coordinate. The measured points are along the X and Y axes.

probe_level_a_axis

This program measures between two feature points along the Y axis and records the plane angle in relation to the A axis for inspection or sets the plane angle to the work coordinate system

Parameters Used

The probing routines in Pathpilot make use of several parameters, which will need to be set appropriately for each use of a probing routine.

Parameter Use Chart

“X” indicates a required parameter for the given probing routine

“-” indicates an unused parameter for the given probing routine

“O” indicates and optional parameter for the given probing routine

Parameter Descriptions

  • #<_probe_fine_feed_per_min>

    • The fine feed rate for probing a feature. Set via the Pathpilot Probe Setup page.

  • #<_probe_rough_feed_per_min>

    • The rough feed rate for probing a feature. Set via the Pathpilot Probe Setup page.

  • #<_probe_rapid_feed_per_min>

    • The rapid feed rate for probing a feature. Set via the Pathpilot Probe Setup page.

  • #<_measuring_wcs>

    • The work coordinate system to be set during a probing routine. Given as a value between 1 and 500, eg G54 = 1, G54.1 P10 = 10. The measuring work coordinate system does not have to be the same as the work coordinate system used for positioning in probing routines.

  • #<_first_position_to_probe>

    • The absolute position in the positioning WCS for the probing move to finish at. The specified coordinate should always exceed the expected position of the probed feature. The axis represented depends on the probing routine being called; for probing routines calling multiple axes this parameter will represent the X axis.

  • #<_second_position_to_probe>

    • The absolute position in the positioning WCS for the probing move to finish at. The specified coordinate should always exceed the expected position of the probed feature. The axis represented depends on the probing routine being called; for probing routines calling multiple axes this parameter will represent the Y axis.

  • #<_third_position_to_probe>

    • The absolute position in the positioning WCS for the probing move to finish at. The specified coordinate should always exceed the expected position of the probed feature. The axis represented depends on the probing routine being called; for probing routines calling multiple axes this parameter will represent the Z axis.

  • #<_second_x_position>

    • The absolute position in the positioning WCS to begin a second probing move from in the X axis.

  • #<_second_y_position>

    • The absolute position in the positioning WCS to begin a second probing move from in the Y axis.

  • #<_second_z_position>

    • The absolute position in the positioning WCS to begin a second probing move from in the Z axis.

  • #<_third_x_position>

    • The absolute position in the positioning WCS to begin a third probing move from in the X axis.

  • #<_third_y_position>

    • The absolute position in the positioning WCS to begin a third probing move from in the Y axis.

  • #<_third_z_position>

    • The absolute position in the positioning WCS to begin a third probing move from in the Z axis.

  • #<_diameter_to_probe>

    • The diameter to command probing moves to extend to. This value should always be larger than the expected diameter to account for uncertainty between starting position and measured position.

  • #<_diameter_to_position>

    • The clearance diameter to position probing moves to begin at. For boss routines this value should always be great enough to ensure that there is adequate room for a probing move to occur at the desired Z height. For bore routines this value should always be smaller than the #<_diameter_to_probe> parameter.

  • #<_z_clearance_position>

    • The absolute position in the positioning WCS for Z clearance moves. This position should be clear of any possible obstacles during positioning moves.

  • #<_first_vector>

    • The first vector describing the angle of a probing move relative to the X positive direction. X positive represents 0 degrees and the value increases as movement goes counter-clockwise (eg, Y positive represents 90 degrees). Any values over 360 are treated as the remaining value from a modulo operation with a modulus of 360.

  • #<_second_vector>

    • The second vector describing the angle of a probing move relative to the X positive direction. X positive represents 0 degrees and the value increases as movement goes counter-clockwise (eg, Y positive represents 90 degrees). Any values over 360 are treated as the remaining value from a modulo operation with a modulus of 360.

  • #<_third_vector>

    • The third vector describing the angle of a probing move relative to the X positive direction. X positive represents 0 degrees and the value increases as movement goes counter-clockwise (eg, Y positive represents 90 degrees). Any values over 360 are treated as the remaining value from a modulo operation with a modulus of 360.

  • #<_x_wcs_offset>

    • The absolute coordinate in the measuring WCS that the found position in a probing routine should be set to in the X axis.

  • #<_y_wcs_offset>

    • The absolute coordinate in the measuring WCS that the found position in a probing routine should be set to in the Y axis.

  • #<_z_wcs_offset>

    • The absolute coordinate in the measuring WCS that the found position in a probing routine should be set to in the Z axis.

Notes

  • A direct routine for probing a rectangular or square feature is not provided. For this situation the probe_x_pocket and probe_y_pocket routines should be used successively.

  • The probe must be tool 99.

  • Every move is a protected move, if the probe trips at any time outside of a G38.x probing move an alarm will be issued.

Related content