cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
Showing results for 
Search instead for 
Did you mean: 

Community Tip - Need help navigating or using the PTC Community? Contact the community team. X

Link parameters between different parts

tleati
10-Marble

Link parameters between different parts

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


This thread is inactive and closed by the PTC Community Management Team. If you would like to provide a reply and re-open this thread, please notify the moderator and reference the thread. You may also use "Start a topic" button to ask a new question. Please be sure to include what version of the PTC product you are using so another community member knowledgeable about your version may be able to assist.
1 ACCEPTED SOLUTION

Accepted Solutions
dgschaefer
21-Topaz II
(To:tleati)

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.

--
Doug Schaefer | Experienced Mechanical Design Engineer
LinkedIn

View solution in original post

8 REPLIES 8
dgschaefer
21-Topaz II
(To:tleati)

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.

--
Doug Schaefer | Experienced Mechanical Design Engineer
LinkedIn
tleati
10-Marble
(To:tleati)

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

dgschaefer
21-Topaz II
(To:tleati)

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.

--
Doug Schaefer | Experienced Mechanical Design Engineer
LinkedIn

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

dgschaefer
21-Topaz II
(To:tleati)

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.

--
Doug Schaefer | Experienced Mechanical Design Engineer
LinkedIn
mender
6-Contributor
(To:dgschaefer)

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.

KenFarley
21-Topaz I
(To:mender)

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.

Top Tags