I'm new to the community and I'm hoping someone might be able to provide some input on an issue I'm having. I'm currently working a very large part with a very large number of features. I'm sure there are bigger parts with more features out there though. This part is at around 7500 features and I'll probably be shy of 8000 when it's done.
I'm trying to put in rounds into corners, as this part will be CNC machined. I've put rounds in about half of the part, but I've reached a point where when I create a round feature, which may contain some 30-40 edges, I have to wait like 10 minutes to generate the feature before I move on the next one.
I can give my machine specs in detail later but It's 16GB ram, 3rd gen i7 and the task manager says I'm using only about 6GB of RAM (including other programs/tasks) and less than 20% of my processor when the round is generating.
The part uses 0.001 absolute accuracy. It was at 0.0001 relative but I have a fair amount of short edges that are unfortunately a necessity for this part.
Anyone have recommendations on speeding up the rounding process? Or know of some limits of the round feature that I'm possibly violating?
I'll accept that as a 'large part'!
The low processor usage you're seeing is because regeneration in Creo is essentially a single-thread process, so your 4- or 8- core i7 is sitting up to 75% or 87.5% idle. My only thought there would be to try disabling hyperthreading in the BIOS and see whether it makes any difference - don't be surprised if it doesn't, though.
Other than that, for a complex part such as yours I don't know where the optimum balance is between putting lots of round sets in a few features, or having more round features with just one or two round sets each. Historically Pro/E has preferred many simple features (and complex round features do seem to get slow) but again, a back-to-back test might be interesting if you feel you can spend the time.
Absolute accuracy is usually the way to go so I'd stick with that, unless anyone knows otherwise.
HTH (a little!)
Thanks for the quick response, Jonathan.
Haven't thought about disabling hyperthreading (frankly I don't know if my BIOS will let me but it's worth trying).
I've played around with creating features that are smaller in set size and it does indeed generate faster. But what I'm seeing (without formally timing it) is that generating 3/4 features of say 30 edges with maybe 10 per set, will generate in about the time one feature 120 edges will take, maybe a bit faster. But at that speed...I'm still not moving very fast.
Other than that... can you perhaps suppress half (or more) of the model at a time (internal vs external features)?
My colleague who mostly works on castings says that his models are only up to 2000-2500 features fully filleted, and he thinks they're slow!
I just restarted my computer with hyperthreading off. So now I show 4 threads instead of 8 in the task manager. It may be a bit faster, I didn't formally time it, but I don't really notice a difference. Still essentially just floods the first core and the other 3 remain relatively idle (no real surprise there I guess).
I also tried suppressing unnecessary features like external vs internal, but it didn't really help either. Problem is the external has far fewer features than the internal and the internal is what I'm currently working.
Thanks again for the input so far.
Extensive rounding is the bane of Creo. Always has been and something really needs to be done about it. No other SW I've used has this high level of computation for rounds that should on the face of it be very simple. Not utilizing multiple cores to resolve these is a real shame.
Of course, you do have the autoround that can be started before lunch and may be complete when you return. Rarely does one need the same round everywhere to the "others" will have to fit before or you still need to select a lot of exceptions.
The only tip I have found that helps is to turn off the preview during selection. Then once the feature is finished, move it below the "insert here" line. Sort of like going backwards on the selection. Of course, you have to check that nothing blows up from time to time.
Maybe the other tip is to define your features with the round build into the sketches. This does reduce the computation significantly specially on patterned features where you would otherwise round each instance individually. This is still better than patterning the round as a separate feature.
People in the casting and molded parts industries must have some input to this. I'd love to know what their work around is. But I would say that today, only a super fast processor will make up for this huge time sink.
Thanks for the input.
I've considered auto-rounding, but the part is too complex for that. I thought about doing all my "corner" rounds at once, and then doing an auto-round to finish off the bottoms of everything that remained. But in the long run, it's just not a feasible option for this part.
Where possible, I've already worked in the rounds as parts of the sketch, but again, it's a massive and complex part so that really only removed 100-200 edges of well over 1000.
Interesting idea to "work backwards". Doesn't really fix my problem though. A large quantiy of my rounds are dependent upon each other. Essentially I have about 12 massive groups of rounds that function somewhat independent of each other and I could work on one group without the others active, but there's virtually no performance gain in those situations because each group is so large.
I know difficulties of rounding features. Sometimes i use no preview mode, sometimes i make surface rounds and then connect them with boundary blends, sometimes i make a round small and then i do a round higher which pass over small rounds, sometimes i have to rebuild surface near edges, but i never worked with so many features. Perhaps i propose a stupid thing, but doesn't work a flow process like this?
1) make 100 rounds indipendent from followings.
2) publish geometry
3) start a new file with published geometry
4) make 100 new rounds...
When i regen last file can i block regeneration of published geometry? Something like nested geometry?
The ultimate solution is compress part of geometry in indipendent data feature and make incremental savings. Bad but necessary.
You might also have a look at your graphics settings. You might be surprised at how much time is spent generating facet geometry to be displayed. Set the shade quality to 1 and don't smooth the edges... etc.
Also make sure you are not saving all that facet geometry. Set this in config.pro to see if that reduces your file size (significantly) save_model_display wireframe
These suggestions are highly model dependent and I personally have no experience with a part having in excess of 1000 features. I have built part models that require in excess of 1000 features to create but not all in a single model (see #2). There are three things that come to mind which may help. These can be employed independently or in conjunction as required. If your issue is exclusivley one of 100+ edges in a single round feature these will probably not do anything to improve the situation.
1) Set as many features as you can to be read only so that they are not regenerated. Rounds can force regens far upstream from where they are in the history of the model. Be mindful of the ramifications of saving a model with read only setting on features if you use this technique.
2) Use Merge or Inheritance functionality to define a large portion of the model features in a parent model and make the child model independent while creating the rounds. when the design is complete reset the dependency to the parent object.
3) Be considerate about the order in which intersecting rounds are created. Hard to verbalize but this can have an impact on regen of rounds in large models. I think there have been some presentations on using round functionality at Pro/User events and you may be able to find a copy for more of an explanation.
So on the above comments:
I've considered doing something "nested". Like using a shrinkwrap to make the bulk of the part, and then doing the rounds separately in a part consisting of said shrinkwrap.
I have my graphics settings as low as I can afford to go.
I'm not too familiar with Merge or Inheritence unfortunately,
I'm pretty careful with the order I create the rounds. Or at least I think I am, one of those presentations might not hurt.
I'm also not too familiar with using read-only features. I don't know if I can afford to do that. I haven't really had any issues with rounds causing regens up the tree. The only regens I've seen are the ones I force or knowingly cause by changing something myself up the tree.
I think the big issue is simply that I have a couple thousand rounds and the software doesn't seem to easily keep up with so many rounds in one part. Creo is better than Pro5 was, I'll admit that, though. I'm sure not a lot of people have used the PTC suite to make parts as large as this one so perhaps PTC hasn't had a lot of reason to look into this issue.
I have not had good luck with the robustness of shrinkwrap for something like this. Merge or inheritance would be better suited to breaking up the model into two or more separate part files IMO.
Read only setting can be set and cleared, you can set features to be read only and clear that flag at any time you like. It can cut down on the regen time of a model. Since you can turn this off at any time there is no risk to testing it out on your model to see if it helps. Set all of your model features up to the point you create a round to read only and then create one of your round features and observe the regen time. If it is a model issue you will notice, if it is a feature regen time it will make no difference. Pro/E has always been computation intensive for round intersections so I can easily see 100+ edges in a single feature taking a long time to regen. If it is a feature issue then I would use many more features to create the rounds.
PTC mantra (for Pro/E) is more numerous simple features is preferred to fewer more complex features.
I see Thanks for clarifying read-only.
Forgive me but I want to make sure you understand the issue.
My model regeneration time before rounds was bad, but I'd say on par with normal parts modeled with this accuracy. It's just that I have a lot of features.
I'm concered with the fact that when I hit the check-mark after selecting a group of edges, it takes a fair amount of time to get from check-mark to a point where my screen shows rounds. Further, if I'm regenerating only rounds (say a group of 3 or 5 rounds near a feature of the part) they individually generate slowly.
I've already broken my tree down to use multple round features with less edges per feature, but the time it takes for 10 features of 10 edges each is about the same as 1 feature with 100 edges, it just convenient for debugging at that point.
To further clarify, I did set my tree to read-only and then created a round set to verify this, and there is no noticeable change.
I might check on adding the rounds as surfaces in chunks of adding material and removing material. The tricky part would be where the adding and subtracting meet. They could be merged in groups and solidified as cuts and material adds. This may or may not be any more work. The concept behind this is that from my conversations with PTC tech people, a lot of time in geometry creation is the checking that has to be done to make sure it creates a valid solid. By grouping that work into fewer solidifies the idea is that it might go faster.
I would actually think that the whole part could have been made with surfaces. The rounds could be eaisier to deal with because you can have them add or cut just like working in solids. I have done some work with Fisher-Price, and a lot of times they model with surfaces and use symmetry by modeling everything as half the part, with the last 2 features being a mirror and solidify. I know it WAAAAYY to late for this approach and I honestly have never tried modeling the same complex part with both methods, but it seems to make some sense with the idea of how geometry patterns work SO much faster than feature patterns.
Below is a long discussion we got into and learned the same thing about solids. It seems it does a deductive algorithm to determine the solids, meaning is does one feature at a time, and with a single CPU core, this is simply intolerable. 1 of 10, 2 of 10, 3 of 10... 10 of 10, 2 of 10, 3 of 10... ...9 of 10, 10 of 10, 10 of 10, so to do 10 features, it cycles 55 times during the regeneration. At least, that is what the delays in the linked part seem to be doing. It would regen features over and over again.
In the end, making solids of merged quilts was much faster. Which is totally counter intuitive in what presents itself as a solid parametric modeler. More surprising is that it didn't matter if the "rods" were square or round.
I have heard that using surfaces to make features can be a faster approach and I kind of wish I had taken that approach to begin with.
I recently finished the rounding process for those who are following this. I lost count somewhere after 8000 edges and a very large amount of time. It now takes 90 minutes for my part to regen top down.
Unfortunately I'm not very proficient with surfaces. The few times I've tried to make rounds with surfaces I had a lot of trouble getting them to work and the ones I did get working created geom checks. Honestly, I had so much trouble I can just create another thread about surfaces.
If I had to pick one weakness of Creo... you found it. This will affect every foundary level designer where extensive radii are required for tools -and- parts. SolidWorks absolutely shines in this respect.
The biggest difference with surfaces vs solids is that surfaces are individual until you merge them into a quilt. The difference is that the merge calculations can be delayed avoiding countless merges of solid features during regeneration.
A quick way to make a part a quilt... remove a surface from the solid and use the "leave open" option
hi! very sorry to butt in to this conversation but i am struggling trying to include components back into my assembly view. I tried view/representation but that did not work. I did this after selecting the parts in the model tree of course. what am I missing?
I am sorry, I did start a disscussion it is down the list a few. I have been stuck on this for some time now and I thought it might help to ask in an active disscusion.
I only see 3 discussion posts for you, Chris, and all 3 are replies.
It really is not appropriate to change subjects in an active discussion. Sidetracking we do a lot, but this is definitely not related.