How are people handling MAZAK tool numbering with CSE?
Any tool (pocket) can have many definitions including changed orientation
eg. An ID turning tool can be also defined as OD turning T1.01 & T1.02
To date we have had different tools defined in NX and uses the Adjust register to add the suffix
this does not work with OOTB CSE as it selects the first tool it finds based on Number only
I too am working on a Mazatrol right now and am considering this. The lathe tool orientation setting is something I need to work out as well. The post sees the flipped tool - and knows to create a new "offset" for that. It is possible on the machine to populate or enforce that these offsets exist (say there is a 1.02 and it is set to be "reversed" or whatever.) As far as cse - it just needs to load the integer part (tool assembly) out of (in my case) the pocket (we have a big rack.) Then it needs to know that a certain "offset" is tool spindle position 180 (and use this to turn the tool for spindle axis position.) I am thinking that at posting the tool offset data should be written to a subroutine - maybe something the ini file calls - to know that the offset data specific to the current sim is valid. Anyway - we evaluate the decimal tool number in the tool change macro so we can split the integer and decimal part and do whatever we want. Your point is probably more what makes sense in the tool objects and operations in NX etc? Drive point and lathe tool flips would need the new offsets - and whether this is manual (create a new tool object) or automated in some way - I am still trying to figure out as well.
I think the issue is that it needs to treat the tool number as the WHOLE number.
As T001.01 could be an end mill.
and T001.02 could be a "C" insert turning tool.
Don't forget "heavy" tools (T001.61).
And tools may have multiple tracking points, each with its own ".nn"
A non-trivial problem to solve (not that I've even started to try to solve it)
Production: NX10.0.3.5 MP16/TC11.2
I'd rather be e-steamed than e-diseaseled
Thanks for the input @Study & @Ken_A.
I'm still finding my way with Machine configurator.
Reading the help information the tool data mapping between NX and CSE is not configurable.
We don't use "Flip tool" as the spindle angle is defined by the tool definition on the control. It doesn't work with Muti edge turning tools with different shaped inserts. It made more sense at the time to define each tool in the orientation it was used. eg T1.01 is CNMG 0.8R and T1.02 is DNMG 0.4R both on the same holder at different angles with different X Y And Z offsets
Maybe it would be better to implement our next stage Tool library.
The Mazak controls will toolchange based on "Group No" instead of "Pocket + Flash"
This way every tool in our library has a unique tool number.
Tool/Group numbers will control Insert type, Nose radius and Grade as well as holder definition and orientation.
This fixes the problem of either always loading tools into predefined pockets or editing tool numbers as we load the program.
Predefined creates the problem of not setting multiple jobs if the Pockets defined conflict.
Editing adds time and risk.
Any Mazak CSE or Tool library stories would be useful
Did you ever find a good solution to this problem? I'm working through something similar now with a Nakamura-Tome NTRX. The tool change code is for example:
G340 T0199. A0299.;
... in which "01" or "02" is the tool number and "99" is the offset register number.
I'm able to format and concat it sufficiently in post builder, but now I'm trying to figure how I will parse the command, separate the tool number from the offset number, set variable #4120, and call the tool change subprogram all within the metacode for G340 command. I'm still pretty new with Machine Configurator, so of course I could be missing something.
I assume you're using the Fanuc controller as a base.
The following sample code can be used to handle your use case.
At first there are some string handling functions available in CSE which you can use e.g. "substr"
To handover the values of A and T you can easily set NC variables which can latere evaluated in the AnyController in the tool change subprogram.
If the tool length compensation will also be activated with execution of the line then you can add an M code at the end of the subprogram to set activate the tool length comp.
<Name>G340</Name> <MCParam>T</MCParam> <MCParam>A</MCParam> <Execute> <Command> <Name>Assert</Name> <Param>FALSE</Param> <Param>"Warning"</Param> <Param>"T MEtacode: " +substr(T, 1,1)</Param> </Command> <Command> <Name>Assert</Name> <Param>FALSE</Param> <Param>"Warning"</Param> <Param>"T MEtacode: " +substr(T, 2,2)</Param> </Command> <Command> <Name>Assert</Name> <Param>FALSE</Param> <Param>"Warning"</Param> <Param>"A MEtacode: " +substr(A, 1,1)</Param> </Command> <Command> <Name>Assert</Name> <Param>FALSE</Param> <Param>"Warning"</Param> <Param>"A MEtacode: " +substr(A, 2,2)</Param> </Command> <Command> <Name>SetVariable</Name> <Param>"#012"</Param> <Param>substr(T, 1,1)</Param> </Command> <Command> <Name>SetVariable</Name> <Param>"#345"</Param> <Param>substr(T, 2,2)</Param> </Command> <Command> <Name>SetVariable</Name> <Param>"#678"</Param> <Param>substr(A, 1,1)</Param> </Command> <Command> <Name>SetVariable</Name> <Param>"#910"</Param> <Param>substr(A, 2,2)</Param> </Command> <Command> <Name>CallSubProg</Name> <Param>"MyToolChange"</Param> </Command> </Execute>
Let me know if that helps