I've been struggling with an issue for a while now. And I am running out of possible solutions which include the use of the custom Solid Edge programming.
I am trying to create 3D models that I am sure do not contain errors.
Starting with the simplest case; part, into assembly, into assembly, onto draft, in Solid Edge. No part copies, no inter-part links, no revision control (SESP, SEEC, etc.).
All the files are up-to-date. I change the root part. How do I update the intermediate models without the possibility of leaving errors in them?
Bottom up - From the part, I can run a Where Used then update the resulting files. Problems with this. The dialog doesn't stay open so I can update multiple files. I have to run the same where used multiple times to work with the same results. I can capture or print the results to work from but this should not be necessary. The use of screen captures or printed results can get convaluted as the quantity increases when recursive Where Used searches are run. When working in SEEC, the Where Used results include every revision of the item which clutters the results and does not take into account the fact that the part might not be used in the lasted revision which is the revision I should be updating. Working from the bottom up does have the advantage of covering all contexts for which the part is used in.
So lets try from the top-down which seems to be what is suggested by the instructions in the Drawing Veiw Tracker dialog box. Open the top-level assembly or the draft and then the assembly. I am not clear as to exactly what Automatic Updates updates but I know, when working in SEEC, subassemblies do frequently get checked out indicating that Automatic Updates does update things in subassemblies. But Error Assistant does not report errors in subassemblies or part files. Automatic Updates could cause errors in subassemblies that are not reported. Update All Links will also make changes to subassemblies and parts that could cause errors that are not reported from the higher-level assembly.
So how do I create error free models?
That's a pretty loaded question. There are many ways to skin a cat, and perhaps your methods for model creation are not as robust as they could be.
It would be helpful to take a typical model 'string' and either upload it here or post example photos and descriptions. What drives the model changes? What are some of your typical changes? Answering these questions will help get you advice on specific methods for your process.
That's a good idea Dylan. I think an explanation of the products and how the software is used would help a lot.
Motors, Generaters, Pumps.
A forging of the rotor is part copied to another part and machined. Other parts may also be part copied. Parts are added in an assembly. They may be welded together. Further machining is done with assembly features. Higher assemblies are created to add more parts and additional (after assembled) machining. Higher level assembies may or may not have assembly features. Inter-part links are used. More often to drive higher-level assembly features than to drive lower-level component definitions. A change may be made to the initial machining or the forging of the rotor. The forging, any stage of its machining, or even other parts, may be used in multiple contexts. How to update the models that depend on this change.
We currently build an assembly of the entire product for visualization and drawing view purposes.
We are currently using ST6.
I can suggest a few things that help.
1. The first thing I would suggest is to make sure every single sketch is black. Assuming you you colors to show you what is nailed down and what is not. This mainly applies to ordered.
2 The second thing is take every individual piece through it's gyrations. I have problems with dimension flipping what side of a line they reference. to eliminate the problem depending on how the part varies, drawing the dimension at it's longest or shortest possible position, then testing the variance to make sure the dimension does not flip can also help.
3. Avoid mating to faces and mate from plane to plane when possible.
4. Ground every part you can.
Every design is different, but those few thoughts have helps me tons with models that vary in size and arrangement.
Thank you for your suggestions 12GAGE.
1) We do use sketch relationship colors and full constrain profiles.
2) Your second suggestion implied that every model document be opened and inspected. This is not practical when a part that changed may have 200, 300, 400 files that depend on it directly or indirectly.
3&4) Suggestion three and four defeat the purpose of associative design which is a key benefit in 3D modeling. We have considered these but I haven't yet submitted to the possibility that there is not a better solution.
Thanks again for your thoughts and effort. It is much appreciated.
One of the biggest issues is being 'smart' about the edits you do make to a file, so that they do not affect your downstream parts. For example- If you have a part composed of a shaft with a clocking hole, and you want to change the location of this hole, you can't just delete the hole feature and remake it somewhere else. This will break all your downstream relationships to this hole, because to the software, the original hole no longer exists. So, care must be taken to retain the original feature and edit it as necessary.
In the same example, maybe the hole needed to be larger. But this larger hole now consumes a flat or an edge that was used in an assembly as a feature for a parallel relationship. Despite careful edits, you now have broken relationships and incorrectly positioned components because of a lack of planning at the assembly level.
The simple way to avoid the can of worms that gets opened because of relationship dependencies on features is to do what 12GAGE mentioned- where possible, locate your components and subassemblies via coordinate systems that you place in these parts/subassemblies, and NOT solely via feature faces which may be changed or deleted. Use actual part geometry as LITTLE as possible and only where absolutely necessary to drive other components. What this means is that every engineer you have that is making these subassemblies is going to need coaching to do this properly, and it becomes a further time penalty when initially creating these files.
You build your model creation process so you invest all your time in the initial creation, and you don't have to go back and check 200 or 400 files. It requires a long list of rules, do's and don'ts, and a culture change if you don't have anything like this in place yet in your engineering department.
We are aware of and practice your first topic regarding not deleting feature elements but redefining them if possible.
I was referring more towards your second paragraph pertaining to the fact that relationships becoming broken as the design evolves and changes and the fact that these are not easily identifiable. However, your comment that these broken relationships are caused by a "lack of planning" seems to me to be a missaligned with the practices we use when developing products. If these models were designed in a fashion that is similar to software, where most of the requirements are defined up front before starting the creation process, you might be correct. However, the way we "develop" products is to do just that 'let it develop'. Create an intial design, change it, change it again, test it, change it again, until an acceptable solution if found. In this scenario, an agile development environment is desirable and the broken links and features are not caused by a "lack of planning". The software is used as a visual tool to develop the "plan".
You mentioned that this practice comes with a long list of do's and don'ts. I am in the position to learn these practices and to coach our team. Can you point me in a direction where I might acquire this knowledge so that I can in turn pass it on to our team? Mself and many other will appreciate your direction here as I wouldn't think this to be an uncommon question/problem/opportunity.
It was said to create these association "as little as possible". This insinuates that in cases, it may be desirable to create these associative relationships. We may have the possibility to reduce the amount of associations created between models, but the issue still stands for the cases where it is determined that it is okay to create these associations. Or are you saying that because of the concerns I have mentioned, it is necessary not to create these relationships at all? Is there gray or is it black and white?
I have been a one (sometimes two) man engineering show at my company since ST3, so a super user such as @KennyG or @SeanCresswell would be able to answer your questions better. I often only have myself to answer to for errors in complex product model strings, so my workflow is different than a corporation with many engineers.
The more you thin down the associations, the easier the entire chain becomes to manage when you dive into the middle of it and start making changes driven by new development. For the associations you DO need, you need strict rules to control what you can do to features/parts, and how, or you can break associativity. Again dropping back to the shaft example, let's say that this shaft location drives other parts in a subassembly. If you go and start adding and deleting features, changing shaft diameter, etc, because of wildly changing development goals, you're going to screw up your subassembly. BUT, if you just used the shaft coordinate system to drive the shaft component relationships to other details, the geometry changes wouldn't matter, and you would not have broken anything. This isn't always possible because you need to drive details based on the geometry of other details, but again the point is, the less information you use to drive your model string, the easier it is to manage and the easier it is to predict what will happen before you even make a change.
Thanks for including me in that Dylan, appreciate the sentiment, but I don't think I fit the same "grown ups" shoes as Ken. I've been the [until recently, adding a second] sole Solid Edge seat in our business group for the past 9+ years [and 16 before that at my previous job at Quest Industries] with the support [but most times not] from others in the sales & engineering groups.
While the goal here is to strive for the perfect indestructable models, this can be, as I see it, far from reality in some cases.
There is always going to be the human element influencing the process, and in such, "fallable".....by this I mean, someone ,somewhere, will desire a change that we have not allowed for, displacing the model beyond design limits/constraints at any time. Sometimes, we do this [at least I can...and learning new ways to do so] to ourselves.
Basically, there isn't much you can do for assembly mates, or peer design referencing, when the reference parts, edges, or faces nolonger exist.
Design Manager Streetscape Ltd
Solid Edge ST10 [MP8] Classic [x3 seats]
Windows 10 - Quadro P2000
Testing: Solid Edge 2019
Thanks Dylan for the "super" comment :-)
I saw that the original poster said he was using ST6. In ST7, a new tool similar to the Drawing View Tracker was added to the Assembly environment and it is called "Component Tracker". It allows update of the structure "top down" including Part Copy and FOA links.