Showing results for 
Search instead for 
Did you mean: 

Tool Length Compensation in IS&V subprogram




We have 5 axis machines which use Blum probing and tool measurement cycles. I'm trying to machine simulate a very basic respresentation of these measurements with a subprogram call. Rather than taking Blum's macro files and trying to incorporate them into our simulation files, I'm creating basic sub programs to tell the tool to go over to the measurement laser at a fixed location (relative to my machine zero) and bring the tool tip down to a certain Z height. However I can't seem to figure out a way to bring in the length of the holder plus the length of the tool to adjust my Z value. I've looked through the CSE documentation and I think I would have to use the AnyController language to interrogate the tool number but I don't think I have access to MOM variable here. Below is my basic subprogram as well as a screenshot of the simulation during the subprogram call.


20160325 TLO Subprogram.jpg20160325 Laser and Tool.jpg


The spindle face goes where I tell it to in X, Y and Z of course but I don't know how to adjust my Z value to compensate for the tool and holder length. This is possibly an easy fix but I can't seem to figure it out. Any help would be appreciated.





Re: Tool Length Compensation in IS&V subprogram

Solution Partner Pioneer Solution Partner Pioneer
Solution Partner Pioneer

You may be able to output this via Fanuc variables.  Your post would be set to output this info only while in simulation.




    global mom_post_in_simulation

    global mom_tool_length

    global mom_holder_step_length

    global mom_holder_number_of_steps


    set holder_length (build the length from totalling the step lengths)


    if {$mom_post_in_simulation == "CSE"} {

      MOM_output_literal "\#998=$mom_tool_length"

      MOM_output_literal "\#999=$holder_length"




Your AC program can easily access the data in variables #998 and #999.


Good luck



George Bennett
All NX versions
W7 Ultimate
Dell Precision M6700
Spirit of Innovation

Re: Tool Length Compensation in IS&V subprogram


Have you activated a tool offset(D1, H1, etc.) in your program at this point?  Using ISV with siemens control the simulation would drive the spindle nose until a length offset was activated. 


D1 tool offset activated driving tool tip

D0 no tool offset active drive spindle nose

Re: Tool Length Compensation in IS&V subprogram


Thanks for the replies. I actually got this to work yesterday. I'm not 100% why it works but here is the code for this subprogram:


20160330 Subprog.jpg


The H1 will work for any tool that is in the spindle. I'm guessing it grabs #11 from the control regardless of which tool we're on. I do output a G49 before I run this subprogram but I turn my G43 back on in line 2 above. I then turn the tool length comp off in line 4.


Thanks for your help.



Learn online

Solution Information