Community Tip - You can subscribe to a forum, label or individual post and receive email notifications when someone posts a new topic or reply. Learn more! X
Hi,
I would need to do part (A.prt) which is a shrinkwrap of the assembly where it is assembled in (B.asm). This part is an unsolidified shrinkwrap and must contain the mass parameter value of its father assembly B.asm. Within the same session, I can recall it with, let's say, the relation mass=mass:1 and it's ok.
But, as soon as I open the A.prt only in a new session, it doesn't see the above relation and gives error... (I then suppose the :1 is a session ID...in fact if I open also a father of B.asm, it should be :2).
I am wondering in which way I can maintain the link to the B.asm parameter in order to have it in the A.prt regardless of the fact that B.asm (or any of its "grandfather" assemblies) is in session or not. Is it possible in some way in Creo? Or maybe just in Windchill?
Thanks
Bye
Solved! Go to Solution.
I would place the relation in the assy. instead of the part. Something like:
mass:2 = mass
Where the :2 is the session ID of the component that needs the value from the assy. It would only update when the assy is in session, but you'd have to open the assy to update it anyway. However, it won't throw an error when you open the part by itself.
Session IDs are assigned by Creo as parts & assys are opened. Parts are even numbers and assys are odd. They do change from one Creo session to the next. I have no idea how Creo keeps track behind the scenes. You can find the session ID of a components from the Utilities Show menu in the relations dialog box from within an assy.
I would place the relation in the assy. instead of the part. Something like:
mass:2 = mass
Where the :2 is the session ID of the component that needs the value from the assy. It would only update when the assy is in session, but you'd have to open the assy to update it anyway. However, it won't throw an error when you open the part by itself.
Session IDs are assigned by Creo as parts & assys are opened. Parts are even numbers and assys are odd. They do change from one Creo session to the next. I have no idea how Creo keeps track behind the scenes. You can find the session ID of a components from the Utilities Show menu in the relations dialog box from within an assy.
Hi Doug,
thanks for the solution, it's just what solves my problem! I didn't know it was possible to assign the values in reverse direction too (assembly to component), and what's quite impressive is that despite the session ID changes if I open it with the father, the link between A.prt and B.asm never gets lost (I don't know either how Creo does this behind ).
PS: just for completeness, I found the session ID under "Show" in Relations window.
Thanks again,
bye
Glad I could help.
Tommaso Leati wrote:
... PS: just for completeness, I found the session ID under "Show" in Relations window. ...
You are absolutely right, I was so distracted when writing my answer that I failed to notice that my own screenshot showed that what I typed was incorrect. I've updated my answer accordingly. Glad you found it in spite of my misdirection.
Ok, no problem!
As a follow-up, I noticed that after creating the parameter the first time with father and child in session, the session ID was 0. Then, I re-opened it with other parents in session too, it became 28 and it remains the same forever (even if I try to re-create the relation from zero). It's surely not a problem (just a number), but it seems quite weird.
Bye
Tommaso
It is odd.
As I said above, I don't know how Creo keeps track of changing session IDs, but it does. I've never seen it get messed up, even with session IDs that are written in relations. AS long as you know what the session ID is when you write the relation, it'l keep track of it just fine from there as it changes from session to session.
Two things that might be useful here. First, we present the session id because it's a convenient unique id in the context of the session. It basically encodes 'the fifth part retrieved in this session'. In the database as we store it to disk, it can be something pretty complicated, like 'the part SPRING_10 as made variant by flexible modeling in component id 64'. Definitely too cumbersome to put in the relations UI!
Second thing, I saw this post, and it made me think of another way to link up parameters between parts, which is Notebook (once called Layout, but now that means something else). It's a old-school tool originally for top-down design. You can put parameters in the notebook, and 'declare' the notebook to your solid models, and they'll have sync'd values. It has different (and more limited) use cases than the method noted above, but if someone was looking up this post, it might be useful for them to know about it.
I've seen this referred to, also, but alas, it appears that notebook is another module that one must have, maybe part of advanced assembly? Either way, we don't have it, so I use the relations in assemblies and parts methods. The big "trick" I've found is to name the parameters something that I'll understand 6 months (or years) down the road when I have to look at them again. This is especially important if you're going to be manipulating sketch or feature dimensions. "d122" means pretty much nothing, but "diaInner" is pretty self-explanatory in the context of a round part with an inner diameter.
My theory on session IDs is that the assembly actually doesn't care. It is defined and stores its contents as model names. The session IDs are something that is to make it easier for us dumb users to type in for queries and such. I'd really prefer to make relations based upon the model name of the part/assembly, but that's not how it is.
Ja, it's strange how it keeps track of the referred object, probably it's really as you say, it links model names and not session IDs.
I would definitely prefer to make relations using names instead of session IDs too.