Skip to main content
18-Opal
June 21, 2012
Question

Regeneration errors in Merged Parts/Assemblies?

  • June 21, 2012
  • 7 replies
  • 55463 views

For many years my company has been using a merged part in order to simplify and represent an actual manufactured Sub-Assembly (S/A). The problem we are having with this is when one of the base parts change the merged part does not update unless it is checked out and manually regenerated. Not only is this time consuming but it is easy to forget until working on the top level asm that won't regenerate because of the un-regenerated merged part. Ignoring the regeneration error is tempting but depending on the nature of the change that could render the top level asm inaccurate. I am not sure of a way around this, which leads me to the following questions:

1) Does anyone use merged parts to represent sub-assemblies or for any other reason? If so, are you able to avoid the frequent regeneration errors that come up because the merged part does not update automatically? If so, how?

2) Does anyone have any ideas on how to avoid these regeneration errors, or a setting to tell ProE to always update the merged part, without having to manually check it out?

3) Besides using merged parts, does anyone know of a better way to represent a simplified asm as a part and without regeneration problems?

We are using version ProE 4.0.

Thank you in advance!

7 replies

13-Aquamarine
June 21, 2012

Hi Lawrence...

Most companies I've ever worked with tend to avoid merges for the purpose you're describing. Having said that, I suppose there's nothing wrong with using a merge to represent a subassembly. But there are numerous other ways to achieve the same effect and each have their upside and downside.

You've got a sticky problem. Let's say you have a regular part (a square block) that belongs to a regular assembly. At the start of the day, you check out the part and add a hole to it. You check in the part and erase everything from memory. If you were to open the assembly, the block part would have the hole in it automatically... and without regeneration.

Now let's say you need to create a merge part of two blocks side by side (as if they were a small assembly). This is similar to your situation. The blocks are again square with NO HOLE. There are a couple of ways to do this, but let's say you open a new part and select Insert->Shared Geometry->Merge/Inheritance. You pull in two of the block parts to use as your merge references. After pulling these in, you've now merged them into a single part... and you check in the new merged part. Next, you check out the block part, add a hole, and check it in. You erase your memory. When you open the merged part, the blocks do NOT show the hole.

This is essentially your problem. And... I haven't found a good way around it. Because the blocks in the assembly are the ACTUAL blocks, they update. Because the blocks in the merged part are only references, they do not automatically update. I'm sure this is by design but it's causing you grief in this situation.

Perhaps if you took the assembly and created an Envelope part from it, that might update as the individual parts did. You can use an Envelope part to represent an assembly in an upper level assembly. The intent is that you use the envelope to simply this "upper level assembly" but you could preserve all the details of the individual parts if you wished. I'm not very sure even this will work.

Here's what I know... or at least what I think I know: Shrinkwraps, Copy Geometry, Inheritance/Merge, and Component Operations->Merge in assembly mode are all going to have the same problems. External copy geoms/shrinks/merges will also suffer the same fate. You could export the assembly as a STEP and bring it in as a part to create a "merge" but this is obviously going to prevent automatic updates. Envelopes may work... but I suspect not.

So then... maybe we need to back up. WHY do you need a singular part to take the place of two separate pieces? Is this an "inseparable assembly" and your company just prefers to see it as a single part because of this? If you're truly just "representing" the assembly as a part in upper level assemblies, then this is truly a job for simplified reps with an envelope part being substituted in for the subassembly.

I feel like maybe I'm missing something but I also feel like I don't quite have enough information on the situation to really pin down the problem. Can you give me a bit more guidance and I'll rummage through the trash bin of useless information (also known as "my brain") to see what I can come up with.

Thanks!

-Brian

LawrenceS18-OpalAuthor
18-Opal
June 22, 2012

Thank you for the detailed & helpful reply. You touch on some good points that I am discussing with a coworker. I will try to reply back early next week and give you some of the missing details and perhaps why we started using a singular part in the hopes that we can solve these Regen issues!

1-Visitor
July 18, 2012

I do not think it is a good idea to merge a sub-assembly to an assembly.

it add an external reference which often causes problems,and it will cause problem when uses repeat region for bom with part level . you need many manual jobs to make the bom correct.

but if you do insist to use the merged part to represent a sub-assembly, you can use the option "retrieve_merge_ref_parts" to yes, which will retrieve all referenced parts to the session, and when you open the part with external reference and the status icon at the bottom of the screeen is yellow, you need to regenerate the part,if green, not referenced part changed, no need to regenerate.(creo 1.0)

hope it will help a little bit.

linda

LawrenceS18-OpalAuthor
18-Opal
July 18, 2012

Thanks for the response Linda. I am not sure what you mean by merge a sub-asm to an asm. This does not sound like what we are doing. We merge a few individual components in a subasm to each other, thus forming a single merged component. We then use that merged component in a subasm. The top level BOM needs no manual manipulation because we want it to show as a single component. As for the subasm dwg, we do not show the merged part on the dwg, so the auto BOM reads the components from the subasm and NOT the merged component. Do you still advise against this? If so can you ellaborate more?

If I understand you correctly you are saying that if my merged asm is showing that it needs regeneration, I can

1) change the config option "retrieve_merge_ref_parts" to yes,

2) manually regenerate the merged part and the regeneration will not effect the merged part...(kind of like using the flexibility feature in asms are not supposed to affect the components they are changing)?

I will test this on the next merged part that I have to fix. I really hope this works and I really hope it works on wf 4.0. If it doesn't work in WF4 I will also test it in Creo 2.0 which we are using experimentally right now. Either way if this works it sounds like an ideal solution and would cut out tons of wasted time. I will let you know. Thanks!

LawrenceS18-OpalAuthor
18-Opal
July 18, 2012

I just tested changing the setting "retrieve_merge_ref_parts" to yes in both WF4 and in Creo2. It didn't seem to change anything as the merged part still says that it needs to be regenerated when one of its reference components changes.

I even tried locally changing the the merged part then manually regenerated, saved, erased from session, opened one of the parts used in the merged SA, force a regeneration, saved, erased it from memory and then opened up the merged part but again the merged part still needed manual regeneration.

Am I doing something wrong here? Is there another way to get that config option to make it so our Merged parts do not need manual regeneration when one of the components in the merge get regernerated or changed? Any other ideas?

Thanks again for your help and PLEASE let me know if you have any other ideas on how to do this.

1-Visitor
July 31, 2012

Hello Lawrence,

I just tried and for me the solution is to make External merges (Insert>Shared data>Merge/Inheritance) in your part (instead of merging parts in an assembly) and to set the option retrieve_merge_ref_parts to yes.

When you set it to yes, Pro/E retrieves merged components and update the geometry of your "sub assembly" part.

If set to no, Pro/E says "Reference model XXXXXXX for feat (id 383) in part YYYYY not in session.

WARNING: External ref. for feature/component not found, using old placement"

I'm sure this will work for you

LawrenceS18-OpalAuthor
18-Opal
July 31, 2012

Thanks for the suggestion Sylvain. I tried what you described using an External merge instead of merging parts in the asm and set the config option to yes.

If I understand this correct I would have 2 separate models:

  1. a PART with the merged features created directly from the original components (as opposed to connected to the parts in the asm)
  2. The ASSEMBLY which would be displayed on the dwg only so that we can display and call out all the components in the BOM

It seems that if we used this method, we would have to create the part twice since the part would not be dependent on the asm.

Also, when I tried this, I still had to manually update the external merged part in order for it to get the latest components, even with teh confic option set to yes.

Is this what you were describing, or is there another way to do this?

1-Visitor
August 1, 2012

Lawrence Scheeler wrote:

It seems that if we used this method, we would have to create the part twice since the part would not be dependent on the asm.

Why twice?

As you said, you need 1 assembly for displaying the BOM and 1 part which will be the merged S/A (like, I suppose, you are currently doing).

I agree that the assembly process has to be done twice, once in the assembly and once in the S/A part.

In the part, each componenet of your assembly will be added as an external merge.

In the picture below you can see how it looks like when you merge a component in a part with an external merge.

It is like adding a component in an assembly but you are still in a single part.

I tried it yesterday and it worked fine for me.

I modified a merged component, then saved it in my workspace, closed Pro/E, re-opened Pro/E, opened the S/A part, regenerated it and the merged geometry was updated...

External merge.jpg

1-Visitor
August 2, 2012

hi,there

you can not omit the regeneration to get the updated parts with external reference.

the retrieve-merge-ref-parts give you a chance not to open the referenced part manually, not have problems without regeneration if the status is green.

the logic, the system load the parts as they are last saved to the momery, and then if external reference exists, the referencing part compares the referenced parts in the memory and it will give a warning when retrieve-merge-ref-parts set to yes , the referenced parts changed or not found.

very often, parts with external reference do not need to regenerate every time it is opened , which save lots of retrieve time.

Patriot_1776
22-Sapphire II
August 2, 2012

Ever think of using a family table to do this? Model the one part, model the other part, and then use a cut to separate them. For example, one instance is the left side (suppress left cut and resume right cut), one is the right part (suppress right cut and resume left cut), and one is the whole part after brazing (suppress both cuts). That's the only way I know to get the hatching uniform for the entire part. If there is a hole or cut thru the brazed part at assembly, make another instance of the whole part with the hole/cut, and use those references for an assembly cut as or if needed.

Good luck!

LawrenceS18-OpalAuthor
18-Opal
June 6, 2013

Hi Frank,

Sorry for the late response, I just noticed that this thread had postings after my last posting.

The FT is a good option that we have concidered but because it does not show (and behave) as/like a single part we were put off a bit by this. I am interested in what you are describing to get the part to show as a single hatching, but don't understand how to do it. What do you mean by model one part and then model the other part? We currently model the assembly then create a merged part based off of that assembly but missing some components. Which part are you suggesting to model twice? Do you model the same thing twice?

Thanks for any clarifications!

Patriot_1776
22-Sapphire II
July 14, 2014

I've made mirror image parts by simply modeling one side, mirroring all the geometry about a plane, then using the plane to totally remove the original geometry to make the mirrored part. This way there are no external refs, and the generic is always up to date. This might not work in your case though.

1-Visitor
August 3, 2012

'For many years my company has been using a merged part in order to simplify and represent an actual manufactured Sub-Assembly (S/A)' does this not ring alarm bells !

Instead of using the merged part to 'simpify and represent', use an 'envelope' of the actual sub-assembly.

If the 'envelope' is left at 'dependent' it will update when there are changes to the sub-assembly.

Frank suggests using family tables and this has potential, but I would create a family table of the assembly, the generic being everything and the instance exluding the brazing rings.

Proe provides you with many tools for the job, the trick is picking the best one!

One thing for sure though, if you keep doing what you have always done, you will keep getting what you've always got !

LawrenceS18-OpalAuthor
18-Opal
June 6, 2013

Gary,

Sorry for the late response, along with Frank's replay I also just noticed your reply.

I did look at envelopes a while back but don't remember anything about them now since I was trying to figure them out specifically to solve this problem. I need to refresh myself on these functionality. If you have any sources on the envelope feature that you could point me to, I would greatly appreciate that. I know that I looked at Simplified Reps quite a bit, how are they different?

Thanks!

1-Visitor
February 27, 2014

Pretty sure what you are looking for is the config.pro option below.

Retrieve_data_sharing_ref_parts yes

This will pull up the referenced merged parts up in memory so all you need to do is regenerate the merged model without opening up the main assembly model(s).

I use this a lot.

However I would suggest creating a mapkey to turn the option on and off when you need it. Some companies go crazy with the external refs and this option will grab everything referenced to the active model and open it in session. This may not be an issue for your company but I would avoid setting it as a global setting.

It has been around since R2001 as a hidden config I think all the wildfire builds made it a readable option. It is in creo if you look for it.

I made a sample part of what you were describing and it worked. I changed the parent unmerged part saved it cleared memory and opened the merged one (alone) and it updated as soon as I regened. So no need to constantly open the assembly where the merge was created.

Let me know if that fixes the issue. I can supply my sample parts and asm too if you want.

--Joe R.

LawrenceS18-OpalAuthor
18-Opal
February 28, 2014

Joseph,

Thanks for letting me know about this config option. I will try it at next opportunity.

I just want to verify, when you tested it, were you using Windchill/PDMLink with the merged part checked in?

Thanks! I will repost after I experiment with this.

(As an FYI, it may not be right away because we are in the process of upgrading to Creo and there is a lot going on...)

LawrenceS18-OpalAuthor
18-Opal
July 3, 2014

Thanks again for the suggestion Joseph, but unfortunately it did not work for me in PDMLink. I did the following:

  • Found 5 Sub-Assembly parts that are not regenerated due to the merge features.
  • Set the config option Retrieve_data_sharing_ref_parts yes,
  • Restarted Creo,
  • Opened all 5 .prt files in session.

None of them showed green lights. They all show yellow and unregenerated status. So it didn't work for me.

It seems that the reason this didn't work is because it does not address the fact that the objects that I want to update are checked in PDMLink and at a locked/Released state. The above was done with the other config settings regenerate_read_only_objects YES

If I did something wrong, Please let me know what to try differently. Otherwise, does anyone else have any suggestions?