I have a sheetmetal piece which has many external references for connector cutouts. The external references are based on the connector placement on the board in the assembly.
Anyway, if I open up the sheetmetal piece and don't manually retrieve the references, I can get issues when working on the parts - especially with REFERENCE patterns.
Is there an option to have ProE automatically retrieve references for external references, similar to retrieve_data_sharing_ref_parts for data sharing features like Copy Geometry and Merge?
You must not be using Windchill and you probably do not have search path statements... or even a managed library system.
Since I work in Pro|E on the fly for many clients, I try very hard to manage files without using external references, even sheet metal punches I create on the fly within the part (quilt forms).
It all comes down to the resources and understanding you have about how the system finds references. And then developing a policy and file management system to ensure trouble free operation commences.
We do use Windchill 9.1. I don't see what this has to do with anything? Even if the items are in your workspace, ProE will not load them into session when the part is opened.
So what technique do you use? If you do model on-the-fly then you do have external references. If you break them, then you loose the whole point of the items updating properly if the referenced items move. If you don't break them then you run into the risk of ProE behaving all honky when the items are not in session.
Actually, no, I make forms for sheetmetal on the fly as quilt tools. They are part of the same part.
I do not try to make several parts driven by the same references either. I am old school and work with each part as an individual, which has always been my preference.
Only recently I learned about flexible models in assemblies so I can, if I really need to, make a part slightly different in the assembly then in the part file. A spring is a component that comes to mind where I can use this.
So yes, I maintain -no- external references once I release a design. Every parts is wholly stand alone.
After reading all the information below... I'm very happy that I've adopted this policy long ago
You should come to my PTC Live presentation on the use of model validation techniques that are borrowed from other areas of software development.
One of these techniques is Assert. Basically, one checks to see that a condition exists. One could create IF/THEN sequences, but the point of an Assert is that it handles exceptions when things aren't what they should be.
http://en.wikipedia.org/wiki/Assertion_%28software_development%29
For example, if there was a minimum cast material thickness requirement, one would:
Assert material_thickness>min_thickness,
rather than creating a relation:
IF material_thickness < min_thickness
material_thickness = min_thickness
ENDIF
...because...
there may not be a material_thickness parameter that drives anything, the thickness might be the result of an analysis measurement. It's not something that Model Check could readily handle because this thickness limitation may depend on the size of the part or the material or the specific supplier.
The Assert doesn't care about how the model is structured; it just reports for this particular item that the condition is no longer valid.
In this case something like:
Assert led_hole_pattern_count = led_pattern_count:SID_circuit_board; that there are as many holes as there are LEDs.
If you want fancy:
Assert led_hole_spacing = led_spacing:SID_circuit_board.
You only have to generate Asserts for items that might change and need oversight. In this case the assert would have failed as the quantities would not match until the circuit board has been retrieved.
Using Asserts would work whether there were geometry references between the parts or not.
Never mind about the presentation. The PTC Live selection committee didn't want it.
Hi Joseph
There is no automation like this for regular reference (as you mentioned, it is there for data sharing features). When you have a part that has multiple external references by design it might be better that you open respective assembly, activate this component and work on it.
if you are on Windchill, checking out this part will also suggest bringing its reference assembly.
- Vlad
Vladimir,
Thanks for the comments. Unfortunately, many different people besides engineers use the models. For instance, the modelshop will open a part and use it to generate a prototype. For the situation that specifically caused me to generate this posts; the modelshop guy opened a sheetmetal items with many connector cutouts. He checked the K/Y factors and they were wrong. He updated them which caused a full regeneration. Since the external references were not in session ProE went loopy on the reference patterns for some of the LED cutouts and they disappeared. There weren't any popup error messages - just a few leds disappeared. Since there were many cutouts he didn't notice and spent hours making a prototype that didn't work. This is what we are trying to avoid.
I've spoken with PTC before about other issues with patterns not behaving well when the external references are not brought into session. Their basic response was to bring it into session... which doesn't really help. There are many times when users can't work all the time within the assembly; nor should they if they don't need to. If they made a cut using an external reference, that shouldn't lock them in to always working the part in the assembly for all time to come. It also limits others who need to access the part. This can also be an issue when we send the part to a vendor.. etc.
I see your point Joseph
Unfortunately, there is no miracle - if you use external references you might need these models for full blown regeneration. However, there are at leat 2 things that we can suggest to avoid full ref assembly retrieval :
1. Use geometry backups creating features with external references. Set Ref Control to "None" / "Backup forbiden references" before creating featrures with external references (no cure if the model is already created).. This will make model much more robust when it is regenerated stand alone.
But not in 100% cases - for e.g. Ref Pattern might still have problems.
2. Use Copygeom feature(s) at a start of your model. Copy all needed Geom into yuor part, and only use these Copygeom(s) creating lcoal features. They will clearly survive any full regeneration.
However - Copygeoms do not carry along pattern information either, so you will not be able to create Refpattern on it. You can add pattern Recognition feature on top of Copygeom though if yiu have Flex Modeling license.
Inability of geometry backups / copygeoms carry over pattern information is a known limitation, and any enhancement proposal in this area will be appressiated. We have it on a to do list, but customer call might strees the point further.
Regards
- Vlad
Vlad, thanks for your post. 2 Questions:
1) Do you want me to actually call in about the Copy Geometry feature not carrying over pattern info or just make a post on the enhancement forum?
2) Where do I set Ref Control to "None"/"Backup forbiden References"?
Thanks!
Joseph,
1) you are welcome to use any regular way you use for logging / promotion enhancement requests : through tech support, or even placing enhancement request on this forum. So that prioduct manager gets it on his list.
2) File / Options / Assembly / External References Control / Component Permitted == None ; "Use backups For Forbidden ... " = check.
best,
- Vlad
Vlad,
I'm still in Creo Elemenets/Wildfire 5.0, so there is no File/Options for me. Are you talking about the regular options?
Oh, sorry - assumed Creo02 🙂
So you go Tools / Assembly Settings / Reference Control / Objects = None ; Backup = checked.
Regards
- Vlad
got it.. thanks
Product Idea created: Allow a Reference Pattern when referencing a Shared Data Feature
For years it bothered users to have regen failures forcing them to deal with each problem as it came up, so config options were added to generally suppress the effects of the failures.
Search on 'fail' in the config options and see if any might affect your problem.
Not wanting to retrieve the assembly is desireable, but I think not having an obvious failure message is what really does the damage.
I would also suggest that drawing comparison software would also be a help to detect changes that are not expected. I prefer overlaying PDF outputs in Photoshop (even PS Elements) as the user can shift graphic items to align them, even compare them when they are moved to other sheets. Timewise it is as little as two minutes a sheet - how much did the bad sheetmetal cost?
David,
Thanks for the comment. The only option I was able to find is "fail_ref_copy_when_missing_orig". I'm going to test this out when I get the part number from the machine shop guy. Was this what you had in mind?
Also, what drawing comparison software are you referring to?
Whenever a model is used and a change made to it there's the chance for extra changes to slip in - which is what your shop guy noticed, too late.
The easiest way to see what those might be is to compare the current (based on the model) drawing** to the previous version of the drawing. Had this been done carefully, the missing LED holes would certainly have been noticed.
What has worked well for me, and requires littler effort in finding the unexpected changes, is to overlay a version of the new onto the old images; opening PDFs with Photoshop or Photoshop Elements. I make the new version image solid green with a 40% transparency, the old version solid red with 60% transparency, and a background layer solid black. Every pixel that matches is yellow; non-matching new stuff is green; non-matching old is red. A-size to J-size, takes the same time to overlay.
If something doesn't line up, there's the chance to grab it and move it until it does. Items can be rotated, moved to other sheets, rescaled; whatever is needed to be certain that the new version is sufficiently representative of the old.
Anything that doesn't match needs an explanation. In this case, the LED holes would have been missing, and hence, red.***
**One can compare models, but I happen to think it isn't easy, and it doesn't discover documentation changes, like material or tolerances. Those in the model-based-definition camp will need to develop their own means of detecting unexpected cascaded changes.
***For those who are color blind, if one is totally gray-scale, the images that don't match will looked doubled up, so one can still align them.
thanks for the explanation. I'll pass it along, although it isn't ideal.
just got the part from the machinist and I only get a lot of warning messages when I try to regenerate the features with reference patterns: Model for a variable reference pattern (head id 174308) is missing.
This is only a warning, yet the pattern members move when regenerated and each other, vs staying where they were. This is an issue....
"fail_ref_copy_when_missing_orig" doesn't seem to help me.
The software really should stop like it used to and force the user to fix the problem, but that doesn't demo well and it causes people who are in too much a hurry to complain.
Look at regen_failure_handling; perhaps setting it to resolve_mode will cause the software to stop at the broken bit. The default is no_resolve_mode, which I think causes skipping over problems.
just tried... it doesn't go into resolve mode for those features. However, it does crash ProE. I'm not sure the cause of the crash yet.
At least that gets the user's attention that something isn't right, which is what you needed. Sigh.
I will throw in that patterns and referring to them has never been completely thought out. For example, there have been times I wanted to refer to the last member of a pattern, regardless of the number of members, but there isn't any 'last-one' reference. In other cases, like this one, some portion of the pattern reference system quietly fails and with it all the items that go with it. In this case, there is no sensible fall-back** as the references are in another part that is positioned relative to this one via an assembly.
** I mean that storing the previous positions does no good because regen is looking to update those positions and can't. It could proceed as if nothing is wrong, but maybe the LEDs moved, which is not sensible.