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

Community Tip - New to the community? Learn how to post a question and get help from PTC and industry experts! X

Trying to find a part in an assembly that is "no longer there"

Dale_Rosema
23-Emerald III

Trying to find a part in an assembly that is "no longer there"

In an assembly, one part was swapped out with another. The old part was deleted.

The assembly model is still looking for the old part even though it cannot be found in the model tree.

The message is:

 

Dale_Rosema_0-1643986999400.png

 

If the model 1027_4000 and its instance 1027_4001 are recreated, the assembly is "happy". (Still do not see it in the model tree.) Clear memory and rename it ZZ1027_4000 and the error returns.

 

How can I find: Component id 429 in my assembly.

Thanks,

Dale

ACCEPTED SOLUTION

Accepted Solutions
Dale_Rosema
23-Emerald III
(To:Dale_Rosema)

With the help of @StephenW , the suggestion was to use the find tool, component selected, and search for 1027_4001.prt.

I did this in the generic. Used the >> to move it to the right box. Selected it in the right box and clicked on "Remove".

Saved the generic. Exited, cleared memory, modified the name of the model (added zz in front) to zz1027_4000.prt.

Re-opened the generic, and the model lived "happily ever after"....

 

THANKS STEPHEN!!!!

 

Dale_Rosema_0-1645112104504.png

 

View solution in original post

28 REPLIES 28
Dale_Rosema
23-Emerald III
(To:Dale_Rosema)

From the model info:

 

Dale_Rosema_0-1643987370797.png

 

and this

 

Dale_Rosema_1-1643987440178.png

 

Dale_Rosema
23-Emerald III
(To:Dale_Rosema)

Somehow I generated a .inf file for the parent assembly. In it is the following for the "missing part".

 

 

FEATURE NUMBER 49
INTERNAL FEATURE ID 565
PARENTS = 3(#2)
TYPE = PATTERN

LEADER OF A (4 X 1) DIM VARYING PATTERN


MAIN PATTERN DIMENSIONS:
d86 = (Displayed:) .000
( Stored:) 0.0 ( 0.001, -0.001 )
d87 = (Displayed:) .000
( Stored:) 0.0 ( 0.001, -0.001 )
d88 = (Displayed:) .000
( Stored:) 0.0 ( 0.001, -0.001 )
d92 = (Displayed:) .000
( Stored:) 0.0001 ( 0.001, -0.001 )
d93 = (Displayed:) 2.906
( Stored:) 2.906 ( 0.001, -0.001 )

********************

tbraxton
22-Sapphire I
(To:Dale_Rosema)

The reference viewer should show the reference path for the missing part. If you are not able to delete this child reference in the assembly then you can try to "fool" Creo to get rid of it. If you are unable to delete the reference post back and I can suggest how to try a fix to get rid of the reference. 

 

You will need to create a dummy component with the name of this missing part and reestablish the link in the assembly. Once you do that you may be able to delete the component resolving this unwanted reference. it may be more complicated depending on the nature of the parent/child refs.

========================================
Involute Development, LLC
Consulting Engineers
Specialists in Creo Parametric

I expect that you had the Remember These Components checked in the replace dialog box.

kdirth_0-1643991260950.png

I would suggest looking for it in the assembly using reference viewer.  Hopefully it is there with a trash can on the link for you to select.


There is always more to learn in Creo.
StephenW
23-Emerald III
(To:kdirth)

The source of endless number of unexpected references since I use replace regularly.

Set the config.pro option:

remember_replaced_components NO 

to automatically un-check the box, my preference since it is rare to be changing back and forth.

Dale_Rosema
23-Emerald III
(To:StephenW)

I think I have that config options set already because on another change I recently made with an unrelated component, the box was unchecked.

Hello @Dale_Rosema 

 

I suspect that the Replace by Unrelated Component with Remember theses components checkbox enabled was not the only root cause of the error you showed us as starting point of this topic.

 

Because, as you can see in little movie attached, this action:

  1. Remembers the component A originally replaced as expected
  2. But does not cause any Missing Model error upon successive retrieval of assembly, even if component A does not exists anymore in the system
  3. And this Component A:
    • Remains listed as "missing" in Dependency section of Reference Viewer
    • But can be easily removed using Break Dependency capability

Starting from above consideration:

  • If this Break Dependency action is available for you, this will probably also allow you to get rid from the current issue
  • Otherwise, if not available:
    • this means that root cause of model being felt as "missing" is elsewhere (not related ONLY to the Replace + Remember component action)
    • Reference Info or Feature Info accessed from Reference Viewer may help to understand where this reference is taken from
    • On this, without being 100% sure:
      • I suspect a parent-child relationship in Reference tab and not in Dependency tab
      • And if so, filtering the checkbox Regular/Placement/Relation/System/Component in Path may also help to have a better understanding of where this reference to missing model is expected by the system

Regards,

 

Serge

Patriot_1776
22-Sapphire II
(To:sacquarone)

First, it's good to see you on here helping.  Normally (as in over 20 years worth) PTC leaves us to flounder and figure out a solution ourselves.  there's very few times until recently that they ever actually solved anything.  So, thanks, and welcome!

 

Second, this seems like a useless and detrimental option anyway.  We're replacing a component because we don't WANT the old one.  So why would we want a useless setting that's far too easily accidently checked to sc3w up retrieving an assembly?  I cannot think of a single instance where that setting would be useful.  If someone wants to find out what that part used to be, they can pull a downrev of the assembly in Windchill.  This setting seems to me to be useless and completely detrimental, with no positive.  I've never wanted to use and never even really noticed it.  I looked at it when it first appeared, and thought:  "Now, why the h3ll would I want the system to "remember" something I'm deleting???", and that was the end of me even noticing it.

 

The best of both worlds would be for there to be simply stored somewhere, easily accessible information about what the old component was linked to the newly replaced component but WITHOUT actually creating a Windchill like that would cause a failure if the part was deleted.  The only information needed would simply be a text string of the old filename, that's it.  Problem solved, and everyone's happy.

StephenW
23-Emerald III
(To:Patriot_1776)

This is from Interchange assemblies. I don't know if anyone uses them anymore but I would suspect they do. You could use it for product variations and envelope parts and likely other ways I never thought of. It really has nothing to do with windchill but windchill might reduce the possibility of the reference model being deleted by mistake.

 

Patriot_1776
22-Sapphire II
(To:StephenW)

I dunno, I guess.  Like I said, instead of actually trying to link everything, they should just have that info available as a text string.  I've used Interchange assemblies in the past and never once thought I would want to check that box.  Did you actually find it useful?

We make a lot of use of Interchange Assemblies (but we never use the option "Remember these components")

sacquarone
20-Turquoise
(To:HamsterNL)

Hello @HamsterNL 

 

Yes you're right. Interchange Assemblies is not a good example to illustrate the need of this Remember theses components checkbox, because mapping logic is already defined in the context of the definition of the Interchange Assemblies. Using (or not) the Remember theses components checkbox has therefore no impact on succes (or failure) of replacement action in other assemblies in this specific context.

 

This checkbox is nevertheless very useful for many customers, expecially the ones working with Replacements using Unrelated Components logic based on my past experience. They have a kind of "master assembly" being the starting point. They do "Save as" multiple times to intentionally generate other assemblies completely decorelated to original one. Later on, in the other "saved as" assembly, they need to replace components with others being "unrelated" (often).

=> This Remember theses components checkbox helps them very often to get a success WITHOUT needing to respecify (each time) the references of the compnent replacing original one (because in the "master assembly all replacements were done, allowing later the replacements wished after "save as" without respecifying placement constraints in replaced components).

==> May seem not very usefeul, but imagine when you have 50 components to replace by "unrelated coponents" after "save as", each one configured with 3 placement constraints (3 "coincident" ones for instance). In such situation, without this Remember theses components checkbox, those customers would need to perform something around 150 clicks (50*3) to finish the replacements needed ... would be very long and painful

 

Regards,

 

Serge

I don't get how the "remember these components" option helps the system know what geometry in the new component will be used for placement references.  

Isn't the trick for replacing by unrelated to click that "Edit ref table" button so that all the mappings can be presented and re-selected on one screen?  And if the swapped-in component is based on the swapped-out master component (for example, it was made using save-as-copy of it, or from the same part template), then the system typically has the mapping table pre-populated as the internal IDs will match.  Then it's just a matter of reviewing and confirming.

 

There is clearly a good chance that I don't get how this checkbox works; still, I maintain my impression that its default setting remember_replaced_components being "yes" causes unnecessary headaches and it should be changed to "no".

StephenW
23-Emerald III
(To:pausob)

@pausob I don't disagree that I think the default should be NO for remember_replaced_components. But options are good!!!

What you are missing on the unrelated replace with remember_replaced components set to yes is if you want to be able to swap the components back and forth (for whatever reason), it remembers those references.

I have only used it a handful of times, generally my application had to do with a customer driven product variation. If the customer wanted the standard, they got one sub-assy. If the customer wanted the upgraded option, they got a different sub-assy. When doing the new assy from the sales order, I would copy over all the models/drawings from the base, then replace the standard with the option and the system would already know all the references. It made for a pretty quick turn-around for customer specific models/drawings. Higher level versions of this use customization to do this sort of work. I am NOT a higher level guy, so my automation was letting the system remember the replace references. This is basically what an interchange assy does but it cuts outs the need to keep the extra interchange assy file.

Hello @Patriot_1776 

 

Thanks for your views on this. Please consider however that some of ourcustomers uses this replacement logic a lot in their assemblies, while connected to Windchill environment. At some point they need the part A, and at some point (later on), they need B (but already in mind that A will be needed again sooner or later). Interchange Assembies, Fazmily Tables, Merged Models but also Unrelated Components.

 

For the ones working with above kind of workflows, usage Remember theses components checkbox is desired and intensively used. This allows when you replace back B with A to simply say Ok after Replace action. If Remember theses components checkbox was not enabled upon first replacement from A to B, replacing later B with A will ask (again an again) to specify the palcement references for A.

 

This is the main reason why we offer this option to our customers.

  • If you  don't like it, it's indeed easy to configure opposite default value via remember_replaced_components no in configuration files.
  • This will configure systematically the default, but indeed, as you pointed out, this does not prevent users to select the checkbox by mistake, even if above option is configured at config.sup level => This behavior - even though unfortunately not aligned with what you would expect here - is nevertheless expected from a technical pespective, and officially documented in article 127563

 

Just consider that - if some users enabled the checkbox at some point it by mistake during some "Replace" actions:

  • This should not cause "missing models" regeneration errors later (even if original component is not available anymore)
  • This external reference - if causing some issue at some point for other reasons  - can be easily deleted via Reference Viewer (in Dependency tab)

 

Regards,

 

Serge

Patriot_1776
22-Sapphire II
(To:sacquarone)

Thanks for the detailed explanation.  Good to finally see that kind of answer here.

 

I've played with Interchange Assemblies but have done a LOT more work with family tables.  If it works for other people, great, and if it, in and of itself is not the cause of failures, even better.  Thankfully, I've never had this issue.

Dale_Rosema
23-Emerald III
(To:sacquarone)

At 1:24 in the video, on the fourth line of the information window, you have Replaced Model but I have Membership.

Therefor at 1:29, I am not sure what you clicking on to get the break dependency. I just have info.

 

Thanks, Dale

Dale_Rosema
23-Emerald III
(To:Dale_Rosema)

Does this mean anything?

 

Dale_Rosema_0-1644612976812.png

 

or this

 

Dale_Rosema_1-1644613000910.png

 

 

NB_9250672
6-Contributor
(To:StephenW)

THANK YOU! I was just about pulling my hair out, and this worked retroactively. I had already made the replacment, but went back into config.pro and changed this option anyway. After closing and erasing everything, it opened back up without the dependency.

StephenW
23-Emerald III
(To:NB_9250672)

@NB_9250672 

The config option remember_replaced_components would absolutely NOT work retroactively. I'm not sure what happened on your assembly. That option only toggles on/off for the remember replaced component option. Any component replaced with the option turned on would have the dependency until you removed it.

The dependency is created (or not created) when you do the replacement. 

Dale_Rosema
23-Emerald III
(To:Dale_Rosema)

Trying another approach.

I recreated/renamed the missing component and the error goes away.

I cannot find the part in the model tree.

Can someone point me in the right direction to find and break any relations with this part now that it is "back"?

 

Thanks, Dale

Dale_Rosema
23-Emerald III
(To:Dale_Rosema)

Dale_Rosema_0-1645040674412.png

 

Dale_Rosema
23-Emerald III
(To:Dale_Rosema)

Dale_Rosema_1-1645040762583.png

 

Dale_Rosema
23-Emerald III
(To:Dale_Rosema)

Dale_Rosema_0-1645041523939.png

 

Dale_Rosema
23-Emerald III
(To:Dale_Rosema)

Information for: Reference


Reference #1:
Reference Type: Component reference
Used As: Local geometry reference

Referencing Solid: 1028_5000.ASM
Referencing Feature: Component id 429 (1027_4001<1027_4000>.PRT)

Reference is in the Context of: 1028_5000.ASM

Referenced Solid: 1016_5007_BENT250.PRT
Referenced Feature: Wall Surface(First Wall)
Referenced Entity Id: 205
Referenced Entity Type: Surface

Full Path: Component id 429 (1027_4001<1027_4000>.PRT) -> 1028_5000.ASM (Top Level) ->
1016_5007_BENT250.PRT (comp id 106) -> Wall Surface(First Wall) ->
Surface id 205


Reference #2:
Reference Type: Component reference
Used As: Local geometry reference

Referencing Solid: 1028_5000.ASM
Referencing Feature: Component id 429 (1027_4001<1027_4000>.PRT)

Reference is in the Context of: 1028_5000.ASM

Referenced Solid: 1028_5000.ASM
Referenced Feature: RIGHT
Referenced Entity Id: 2
Referenced Entity Type: Surface

Full Path: Component id 429 (1027_4001<1027_4000>.PRT) -> 1028_5000.ASM -> RIGHT ->
Surface id 2


Reference #3:
Reference Type: Component reference
Used As: Local geometry reference

Referencing Solid: 1028_5000.ASM
Referencing Feature: Component id 429 (1027_4001<1027_4000>.PRT)

Reference is in the Context of: 1028_5000.ASM

Referenced Solid: 1028_5000.ASM
Referenced Feature: FRONT
Referenced Entity Id: 6
Referenced Entity Type: Surface

Full Path: Component id 429 (1027_4001<1027_4000>.PRT) -> 1028_5000.ASM -> FRONT ->
Surface id 6


Reference #4:
Reference Type: Component reference
Used As: Local geometry reference

Warning: The referenced model is not in session.
Referencing Solid: 1028_5000.ASM
Referencing Feature: Component id 429 (1027_4001<1027_4000>.PRT)

Reference is in the Context of: 1028_5000.ASM

Referenced Solid: 1028_5000.ASM
Referenced Feature: *RIGHT (Missing Feature)
Referenced Entity Id: 2
Referenced Entity Type: Surface

Full Path: (*Missing model info may not be up-to-date.)
Component id 429 (1027_4001<1027_4000>.PRT) -> 1028_5000.ASM (Top Level) ->
*1027_4001<1027_4000>.PRT (Missing Model) (comp id 429) ->
*RIGHT (Missing Feature) -> *Surface id 2


Reference #5:
Reference Type: Component reference
Used As: Local geometry reference

Warning: The referenced model is not in session.
Referencing Solid: 1028_5000.ASM
Referencing Feature: Component id 429 (1027_4001<1027_4000>.PRT)

Reference is in the Context of: 1028_5000.ASM

Referenced Solid: 1028_5000.ASM
Referenced Feature: *Protrusion id 12 (Missing Feature)
Referenced Entity Id: 43
Referenced Entity Type: Surface

Full Path: (*Missing model info may not be up-to-date.)
Component id 429 (1027_4001<1027_4000>.PRT) -> 1028_5000.ASM (Top Level) ->
*1027_4001<1027_4000>.PRT (Missing Model) (comp id 429) ->
*Protrusion id 12 (Missing Feature) -> *Surface id 43


Reference #6:
Reference Type: Component reference
Used As: Local geometry reference

Warning: The referenced model is not in session.
Referencing Solid: 1028_5000.ASM
Referencing Feature: Component id 429 (1027_4001<1027_4000>.PRT)

Reference is in the Context of: 1028_5000.ASM

Referenced Solid: 1028_5000.ASM
Referenced Feature: *FRONT (Missing Feature)
Referenced Entity Id: 6
Referenced Entity Type: Surface

Full Path: (*Missing model info may not be up-to-date.)
Component id 429 (1027_4001<1027_4000>.PRT) -> 1028_5000.ASM (Top Level) ->
*1027_4001<1027_4000>.PRT (Missing Model) (comp id 429) ->
*FRONT (Missing Feature) -> *Surface id 6

StephenW
23-Emerald III
(To:Dale_Rosema)

Any chance you can share the model? I find these difficult to diagnose, in general, but impossible without clicking around on the model(s).

Dale_Rosema
23-Emerald III
(To:Dale_Rosema)

With the help of @StephenW , the suggestion was to use the find tool, component selected, and search for 1027_4001.prt.

I did this in the generic. Used the >> to move it to the right box. Selected it in the right box and clicked on "Remove".

Saved the generic. Exited, cleared memory, modified the name of the model (added zz in front) to zz1027_4000.prt.

Re-opened the generic, and the model lived "happily ever after"....

 

THANKS STEPHEN!!!!

 

Dale_Rosema_0-1645112104504.png

 

StephenW
23-Emerald III
(To:Dale_Rosema)

I can't believe that actually worked!!! Better lucky than good!

Announcements
NEW Creo+ Topics: Real-time Collaboration


Top Tags