Showing results for 
Search instead for 
Do you mean 
Solved! Go to solution

Probing on parallel Z / W axes

Good Afternoon,



I am creating a post processor for Renishaw probing on an 840D HBM.

However, the machine has parallel Z and W axes. Spindle/ quill is Z and saddle is W.


All my Z dimensions in CAM are obviously output as NX sees them - $mom_pos(2). This would be output as a Z size or R23= for Renishaw if I am probing at that time.


This would not work in my NC program if the W axis was not at W0.000 due to length of part, etc.


I have created a UDE to drive the W to a given position but I need any future Z axis values to change by that amount.


In my Start of Operation event I can take the W axis logic but I then need to alter any future mom_pos(2) values by that amount (regardless of whther I am probing or just driving the Z axis) -


 if { [info exists mom_axis_position_value] && $mom_axis_position == "WAXIS" } {




So if W was at $mom_axis_position_value of 20.000 all future operation $mom_pos(2) values will need to be forced to change by that value.


Any ideas?


I had contemplated utilising the $mom_o_buffer but this would need to be chopped strings which could be messy; must be an easier way I cant see as I am new to Post Builder.


Thanks in advance,


Accepted by topic author cs3672
‎11-12-2015 11:27 AM

Re: Probing on parallel Z / W axes

One option:

Store the W axis value in a variable (craig_w_axis_value)

- make sure set to 0.0 at start program

- When you reset W (UDE or ?), reset the value of this variable

- Then anywhere you output Z, change it to "$mom_pos(2) - $craig_w_axis_value"


- And similar for cycles (mom_cycle_feed_to_post, also rapid/retract/etc.)



Ken Akerboom Sr CAx Systems Engr, Moog, Inc.
Production: NX10.0.3.5 MP5 + patch/TC11.2
I'd rather be e-steemed than e-diseaseled

Re: Probing on parallel Z / W axes

Thanks Ken, it may be I have to do that.


I already store the W position in


so, my intial logic (that I cant syntax) would be -




contains a value for



then subtract the value of


before it outputs.


I should have posted that earlier.

This way it covers Z axis outputs for probing, feed, rapid, etc.



Re: Probing on parallel Z / W axes

Personally, I'd edit all the blocks with Z output, so I wouldn't have to

- parse the mom_o_buffer

- see if a "Z" value exists

- parse out that Z value,

- modify the value,

- and update the mom_o_buffer




I think that would be very compute intensive, and (possibly) slow your post down.


While editing the Z value in every block that as a Z would be a bit tedious, it can be "cut and pasted" in PB, and you just need to remember to edit any new block you create from scratch later.  A bit of pain up front, but faster when you post.


But if your way works for you, that's fine by me.

Ken Akerboom Sr CAx Systems Engr, Moog, Inc.
Production: NX10.0.3.5 MP5 + patch/TC11.2
I'd rather be e-steemed than e-diseaseled

Re: Probing on parallel Z / W axes

This is an old custom command for ZW - just in case there is something in it that you can use.

Mark Rief
Retired Siemens

Re: Probing on parallel Z / W axes

I have done posts for many machines with parallel axes - even a couple with 3 of them (horiz mill with ram, quill and table moving in Z direction.) My approach has always been to preset the driven programmed axis of the set to compensate for the effect of the others. On a siemens - this can be done with trans or G58 commands.



TRANS Z3. W-3.
G0 Z3.996 W0.0


There can be cases where each parallel axis is feeding. In that case - I would do what you are looking at (consider more than mom_pos(2).) I would not use mom_o_buffer. Editing the Z address calculation to consider the parallel axis would be my approach as well.

Windows 7 Pro

Re: Probing on parallel Z / W axes

Thanks for your input guys, it is appreciated.

I am new to this so bear with me. Smiley Happy

I understand now that overloading the post processor on EVERY line output would be a bad idea!

I am going to have to look at every Z outpout and alter it by a stored W dimension.


We use the TRANS command here to set the zero point extension but it is done at the start of the program, we never change it later. The W size will change throughout the program based on the B axis rotation - as the part is longer one way than the other.


Thanks again.

Learn online

Solution Information