Has anyone successfully implemented non trivial mapkeys that work in multiple modes i.e. part mode, assembly, sheet metal etc.? Obviously the command sequence needs to be valid for the mode you are in but as I am updating mapkeys for Creo 2 from WF versions I am finding that many of them will work in part mode but not assembly mode even though the UI interaction when done manually is identical.
I am specifically looking for some tricks to make things like the find tool or measure tool for example to be invoked in a mapkey that will work in at the very least part and assembly mode. Users should not have to create two or mare macro sequences that are identical to be run in the various modes.
As a use case example I have a mapkey that invokes the find tool to select the last feature. This works in part mode in all of my testing but is stopped dead in assembly mode due to the "include sub models" flag being set in assembly mode. I suspect that there is a way to make it work in both instances but there is no documentation I can find that explains how to set that flag without user interaction using the mouse.
I am sure other users have come across this issue and in my case I have many mapkeys that are nested 5+ levels to automate repetitive tasks that save many man hours per month of work. I started making more simple mapkeys and nesting them when WF came around in order to enable debugging and it is even more critical now with the latest UI.
So if anyone out there has tricks, hacks, etc. that address the implementation of mapkeys please share them here. I have had limited success extracting information written to trail files to enable some mapkeys to work in WF even though the UI could not execute them with keyboard/mouse picks. If anyone has found this to be the case for Creo I am very interested to share ideas around this or any other ideas.
I recently developed a mapkey that I needed to function on both parts and assemblies. One of the tasks I needed the mapkey to perform was a regeneration of the model. To accomplish this I manually modified my recorded mapkey with the regen sequence from a part and an assembly.
mapkey(continued) ~ Command `ProCmdRegenAuto`;\
mapkey(continued) ~ Command `ProCmdRegenPart`;\
It appears than when the mapkey is ran from a part the assembly regen (regenauto) is ignored and the part (regenpart) is ignored when used with an assembly. This works perfectly in my case. I hope this is helpful information for you.