We have some machines with variable travel limits. Different M codes activate multiple working envolopes, mainly to prevent the machine from colliding with itself. For example:
M56 B axis head has full travel, but X axis travel is limited.
M57 B axis head travel is limited, but X axis has full travel.
In the past this hasn't really been an issue. But recently we have been doing some pretty big parts that are stretching the limits of the machines. We are hoping to be able to see any overtravels inside our ISV simulation. My question is how would this be handled in ISV? I can make a UDE to output the desired M codes, but I don't know if it is possible to get the travel limits to change inside ISV. If it is possible I'm assuming something needs to be done to the .MCF file. Any insight would be appreciated.
Solved! Go to Solution.
I was able to come up with something. In the machine configurator file you can set "soft" and "hard" travel limits. Then you can setup M codes in the machine configurator that will call up user defined sub programs. In the sub program you can use the anycontroller language to activate and deactivate the soft limits. Unfortunately this approach will not handle multiple working envelopes as you can only set one "soft" limit. In my case I think it will be adequate as I am primarily concerned with opening up X travel in certain instances.
this could be a solution for your issue. I copied it from our Simulation Forum
What you can do is use SetJointParameter to modify the soft axis limits, e.g.
SetJointParameter("X", "SoftLimitMin", 100.0)
SetJointParameter("X", "SoftLimitMax", 900.0)
This modifies the soft limits of the X axis. It might be considered clumsy and you have to store the original limits somewhere to retrieve them later. But it should accomplish what you need.
Note that you can also modify the hard limits this way but it doesn't help you in NX because ISV ignores them and uses the values defined in the machine tool builder instead for hard limit checking.
no it´s a CSE kernl command. You have to create a metacode for your M Commands which activates different limits. I prepared an example--> see attachment
Ok, that makes sense now. Unfortunately I only have the minimal version of Machine Configurator. It will alow me to make M codes, but I only have the option to call a sub program.
Thomas, I think the mycommunity is a special Siemens internal community and not for the public, so links to it are just plain unusable.
Production: NX10.0.3, VERICUT 8.0, FBM, MRL 3.1.4 | TcUA 10.1 MP7 Patch 0 (10.1.7.0) | TcVis 10.1
Development: VB.NET, Tcl/Tk Testing: NX12.0
How to Get the Most from Your Signature in the Community