Does anyone know if there is a way to set default constraint types? Almost all of our parts get aligned by center axis (consistently named in both asm and component), and then by another plane (also consistently named). Ideally this could get done by a config option for default behavior (so that every component would not have to be modified), but if that is not possible and you know of another way I would really like to hear of any workarounds/alternatives.
Since we have been so consistent in our naming and the assembly constraints are so basic, it sure seems like we should be able to have this defaulted without user interaction.
There are some components that have that set in our database, however it is only for that component. For example, it will come in asking for an assembly axis and a datum plane/surface and the user has to choose the assembly equivalents. I would like it to do this automatically since we are so consistent. Also it seems not to allow additional constraints once those have been chosen and we definitely want users to use additional constraints according to the indiv component.
Any way to do this better?
You can use the auto place functionality inside of the assembly and then pick from the list of matching assembly locations. Or pick a screen point near where you want it and the component interface and auto place will do the rest.
What you want is some sort of script that can read from the model tree of the model file upfront, even before the model is loaded into the assembly, and then once it's there run just the correct mapkey that will pick the right component constraint references and the constraint types for each both based on the decision made by the script beforehand.
JLink can read data from models not yet opened. Models that are in session, in workdir or in any search path, but if you've got many types of models, it'd require you to code many cases. JLink is also not easy to set up, and most importantly (at least for me) it's pretty tough to learn Java.
You could do this in Smart Assembly pretty easily. A lot easier to learn and work with than JLink, but it's an add-on to Creo that you have to buy.
Do we really need a complex script to do this? The functionality that would be ideal is what Creo does when replacing a table using the reference table. Within that feature it has an evaluate button which tries to match up common references based on a small set of rules. This would be ideal if I could do something like this. Actually if I had that button exact functionality and button within assembly mode it would help tremendously!
Seems like a different use case to me. Replacing a component only looks for matches from the original part and the replacement part (using the same assembly references). You are asking for Creo to decide on part and assembly references. How will it know what to pick? What if you have hundreds or thousands of axes - which one does it use? My first approach would probably still be using component interfaces and auto-place, but I have spent zero time playing with it and slightly more than zero time thinking about it.
Either way, best of luck.
Thanks for the help. It knows what to pick because the names are all the same. I might take a look at the component interfaces and auto-place, but unless it can be set up in the component with a mapkey then the heavy setup for each component will probably be worse then the benefit.
Anyone else have any ideas?