Community Tip - Have a PTC product question you need answered fast? Chances are someone has asked it before. Learn about the community search. X
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:
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
Solved! Go to Solution.
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!!!!
From the model info:
and this
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 )
********************
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.
I expect that you had the Remember These Components checked in the replace dialog box.
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.
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.
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:
Starting from above consideration:
Regards,
Serge
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.
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.
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")
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".
@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.
Just consider that - if some users enabled the checkbox at some point it by mistake during some "Replace" actions:
Regards,
Serge
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.
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
Does this mean anything?
or this
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.
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.
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
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
Any chance you can share the model? I find these difficult to diagnose, in general, but impossible without clicking around on the model(s).
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!!!!
I can't believe that actually worked!!! Better lucky than good!