The Fusion post has now been hacked about to generate a bore probing operation:
- Move to safe position above axis of bore at the X, Y coordinate position of the axis.
- Move down to the specified height.
- Probe both walls in X, stopping at the mid point.
- Probe both walls in Y, stopping at the mid point.
- Save the current position as the corrected X, Y coordinates of the bore in the current WCS.
In fact, the std Renishaw probing routines that are built in to the Fanuc etc posts have a more elaborate movement than simply plunging into the bore then shuttling back and forth:
(RENISHAW PROBE)
N35 G55
N40 G00 X55. Y20.
N45 G43 Z25. H10
N50 G65 P9832
N55 G65 P9810 Z15. F1000.
N60 G65 P9814 Z-6. D30. Q3. R-3. S1.
N65 G65 P9810 Z25.
N70 G65 P9833
N75 G28 G91 Z0.
As you can see, the fancy moves are clearly contained within the Renishaw macros, not generated by the post processor. The Fusion toolpaths are presumably showing what the Renishaw probing moves look like.
In my case, all I have done is use the existing "bore" macro from Centroid to locate the central axis. That won't be good enough for the "bore with island" move, where the probe must retract to avoid contact with the island. But this seemed like a fairly simple way to get started:
(Renishaw probe)
N35 G55
N45 G0 X55. Y20.
N50 G43 Z30. H10
N60 G65 "c:/cncm/system/probe_get_modals.cnc"
N65 G65 "c:/cncm/system/probe_bore.cnc"
N70 G65 "c:/cncm/system/probe_update_x.cnc"
N75 G80
; N80 X0. Y0. Z30. ; (This is redundant!)
N90 G28 G91 Z0.
N95 M30
%
The program and the macros:
probe_bore.cnc:
; store current WCS x position
#34562 = #5041
; store current WCS y position
#34563 = #5042
; find center of x
G65 "c:/cncm/system/probe_center_inside.cnc" E1
; store width 1
#34560 = #34506
; find center of y
G65 "c:/cncm/system/probe_center_inside.cnc" E2
; store width 2
#34561 = #34506
probe_update_xy.cnc:
#34831 = 2501 + #4014 - 54 ; x - so 2501 is G54, 2502 is G55 etc
#34832 = 2601 + #4014 - 54 ; y - so 2601 is G54, 2602 is G55 etc
; Update the current WCS with the difference between initial and final positions
#[#34831] = #[#34831] + #5041 - #34562 ; Update current WCS X variable
#[#34832] = #[#34832] + #5042 - #34563 ; Update current WCS Y variable
The variables:
It took me a while to figure them out. There's nothing particularly special about them but it's easy to confuse "the current WCS coordinate position" with "the coordinates of the current WCS origin" and you have to bear in mind that some of the variables are read only.
#2501 this is the X machine coordinate of the origin of the current WCS
#2601 this is the Y machine coordinate of the origin of the current WCS
#5041 this is the current X coordinate of the tool in the current WCS
#5042 this is the current Y coordinate of the tool in the current WCS
#34562 this was the X coord of the tool in the current WCS, saved before the last probing move
#34563 this was the Y coord of the tool in the current WCS, saved before the last probing move
#34831 variable to hold X coord in current WCS system: 2501 means G54, 2502 means G55 etc
#34832 variable to hold Y coord in current WCS system: 2601 means G54, 2602 means G55 etc
So this expression:
#[#34831] = #[#34831] + #5041 - #34562
simply adds the difference between the initial X coordinate and the final X coordinate to the current X coordinate, all in the current WCS. It works for G54, G55 etc.
The proof:
It works:
Must admit, the approach rapids seem a bit excessive but hey, I got away with it. For safety and simplicity, I set my G40P4 (vise) parking position in the centre of the workpiece. This meant the probe position would be X0 Y0 Z-60. Setting it else where works fine but there's the danger I might forget to zero the axes or somesuch. Although I have several spare probe tips, they are £30 a pop, so best taken care of.
N35 G54
N45 G0 X0. Y0.
N50 G43 Z-60. H10
N60 G65 "c:/cncm/system/probe_get_modals.cnc"
N65 G65 "c:/cncm/system/probe_bore.cnc"
N70 G65 "c:/cncm/system/probe_update_xy.cnc"
N75 G80
; N80 X0. Y0. Z-30.
N90 G28 G91 Z0.
N95 M30
This is the first of the probing operations I have implemented. It's probably the easiest and isn't in a final state by any means. But it's getting there and I'm learning a lot along the way....
Ideally, you would like to have sufficient hydrogen peroxide to wholly cover the product. Source to know about food grade hydrogen peroxide.
ReplyDelete