Making a huge, multi-level assembly actually run
Making a huge, multi-level assembly actually run
I have a huge assembly, made up of sub-assemblies, made up of sub-sub-assemblies etc with thousands of individual parts. I have large assembly mode on, but any slight action takes long minutes or freezes and shuts-down SW completely. There is a lot of info about this online, but it's frequently conflicting information
I need the dimensions to retain a high degree of accuracy, and several of the sub-assemblies need to be moving and have configurations. I figure I have several options to speed the main assembly up
• Remove as many details as possible, including removing all fixings and filling fixing holes
• Remove from PDM
• Save individual assemblies as parts
[indent][/indent]o Exterior faces only?
Any other tips? I’m not sure about the speed effectiveness of saving assemblies as parts as they would be very detailed parts and may take the main assembly out of large assembly mode?
I need the dimensions to retain a high degree of accuracy, and several of the sub-assemblies need to be moving and have configurations. I figure I have several options to speed the main assembly up
• Remove as many details as possible, including removing all fixings and filling fixing holes
• Remove from PDM
• Save individual assemblies as parts
[indent][/indent]o Exterior faces only?
Any other tips? I’m not sure about the speed effectiveness of saving assemblies as parts as they would be very detailed parts and may take the main assembly out of large assembly mode?
Re: Making a huge, multi-level assembly actually run
There are as many different ways to solve these problems as there are to create them, and yes, some of the solutions are contradictory. Search out presentations done by Alin Vargatu. He is the one large assembly source I would trust.
Here's a list of things I'd check for:
- circular references
- in-context references
- assembly features especially ones with errors
- mates, especially ones with errors
- part features, especially ones with errors
- mates to assembly features
- in-context features related to assembly features
- turn off Verification on Rebuild
- flexible subassemblies make the top level run slow
- close down drawings, subassemblies and parts while working in the top level
- turn down the display quality
- simplified configurations
- transparency slows down the display
- shaded is the fastest (as long as your video card is up to snuff)
There are lots more, but that's a fast list. Some of the things you're asking for are things that will cause it to slow down. You might have to see where you can be a little flexible in your requirements.
Here's a list of things I'd check for:
- circular references
- in-context references
- assembly features especially ones with errors
- mates, especially ones with errors
- part features, especially ones with errors
- mates to assembly features
- in-context features related to assembly features
- turn off Verification on Rebuild
- flexible subassemblies make the top level run slow
- close down drawings, subassemblies and parts while working in the top level
- turn down the display quality
- simplified configurations
- transparency slows down the display
- shaded is the fastest (as long as your video card is up to snuff)
There are lots more, but that's a fast list. Some of the things you're asking for are things that will cause it to slow down. You might have to see where you can be a little flexible in your requirements.
Blog: http://dezignstuff.com
-
- Posts: 195
- Joined: Fri Mar 19, 2021 12:21 pm
- x 37
- x 95
Re: Making a huge, multi-level assembly actually run
Subassemblies seem to decrease rebuild times significantly vs. top-level parts.
Use of small patterns, when possible, is much better than individual components and mates. Large patterns can significantly slow rebuilds. Better to use small patterns of small patterns.
Use of small patterns, when possible, is much better than individual components and mates. Large patterns can significantly slow rebuilds. Better to use small patterns of small patterns.
- Glenn Schroeder
- Posts: 1522
- Joined: Mon Mar 08, 2021 11:43 am
- Location: southeast Texas
- x 1759
- x 2132
Re: Making a huge, multi-level assembly actually run
Welcome to the forum. I wouldn't try saving Assemblies as Parts, but if you have any Parts with intricate details that you don't need in the Assembly that can be suppressed it can help quite a bit. Threads on nuts and bolts are a great example. Unless I need to show threads in a Drawing I don't even put them in my hardware, and even then the Part will have a configuration with the threads suppressed, and I use that configuration in Assemblies.
Are your files saved locally, or on a network drive? If they're external then the connection can make a big difference. When I was working from home, with files on our network drive, it was several orders of magnitude slower than when I got back to working on-site, where I was hard wired into the network.
Also, what kind of computer specs do you have, especially RAM? I'm by no stretch of the imagination an expert, but I'm pretty sure that matters.
Are your files saved locally, or on a network drive? If they're external then the connection can make a big difference. When I was working from home, with files on our network drive, it was several orders of magnitude slower than when I got back to working on-site, where I was hard wired into the network.
Also, what kind of computer specs do you have, especially RAM? I'm by no stretch of the imagination an expert, but I'm pretty sure that matters.
"On the days when I keep my gratitude higher than my expectations, well, I have really good days."
Ray Wylie Hubbard in his song "Mother Blues"
Ray Wylie Hubbard in his song "Mother Blues"
Re: Making a huge, multi-level assembly actually run
Another suggestion: Roll the freeze bar to the bottom on all of your parts to avoid SW rebuilding them.
-
I may not have gone where I intended to go, but I think I have ended up where I needed to be. -Douglas Adams
I may not have gone where I intended to go, but I think I have ended up where I needed to be. -Douglas Adams
Re: Making a huge, multi-level assembly actually run
I'll add....
Get rid of as many appearances as possible.
While simplifying parts include interior cavities. Soliworks has to worry about all the interior details as much as the outward one. If you have a bearing model that you downloaded that has all the ball bearings, seals, cages etc etc and you have no reason to show anything other than the exterior of the bearing, nuke the interior details. I usually extrude, revolve etc a big chunk and have it merge. All the interior detail is gone. bearings, motors, cylinders, ball screw nuts and on an on all typically have significant inner detail when you download them.
Mate as many top level assemblies by top level planes as you can. Not possible all the time when you're dealing with multi axis machines and a lot of movement, but do it as much as you can.
if you can make "Simplified" versions that are used in higher and higher levels. If you have a S/A of an S/A of an S/A of an S/A at some point you really only want an envelope of the lower S/A's. Make a configuration where it' just a big chunk with as little detail as possible. Nuke all the mates, features etc. This is something that "Speedpack" was supposed to do but it does it extremely poorly in my opinion. If it worked I'd say use speedpak, I've just never had luck with it.
Get rid of as many appearances as possible.
While simplifying parts include interior cavities. Soliworks has to worry about all the interior details as much as the outward one. If you have a bearing model that you downloaded that has all the ball bearings, seals, cages etc etc and you have no reason to show anything other than the exterior of the bearing, nuke the interior details. I usually extrude, revolve etc a big chunk and have it merge. All the interior detail is gone. bearings, motors, cylinders, ball screw nuts and on an on all typically have significant inner detail when you download them.
Mate as many top level assemblies by top level planes as you can. Not possible all the time when you're dealing with multi axis machines and a lot of movement, but do it as much as you can.
if you can make "Simplified" versions that are used in higher and higher levels. If you have a S/A of an S/A of an S/A of an S/A at some point you really only want an envelope of the lower S/A's. Make a configuration where it' just a big chunk with as little detail as possible. Nuke all the mates, features etc. This is something that "Speedpack" was supposed to do but it does it extremely poorly in my opinion. If it worked I'd say use speedpak, I've just never had luck with it.
-
- Posts: 74
- Joined: Tue Mar 30, 2021 12:43 pm
- x 55
- x 70
Re: Making a huge, multi-level assembly actually run
Sounds like a lot of fun.
Have you checked the hardware. Mem, and video card would be the first things that I would look at.
Large asm mode should be bringing in 99% of the stuff light weight. If you don't need it to be resolved keep it light weight.
Display states, use the Isolate command and save yourself some display states to only how the parts that you want to be working with.
I would use the display states for creating drawing views later and being able to Isolate those models and save the display state was a great time save.
Have you checked the hardware. Mem, and video card would be the first things that I would look at.
Large asm mode should be bringing in 99% of the stuff light weight. If you don't need it to be resolved keep it light weight.
Display states, use the Isolate command and save yourself some display states to only how the parts that you want to be working with.
I would use the display states for creating drawing views later and being able to Isolate those models and save the display state was a great time save.
Re: Making a huge, multi-level assembly actually run
If any of the sub-assemblies are flexible, set the to rigid to see if that speeds up performance.
-
I may not have gone where I intended to go, but I think I have ended up where I needed to be. -Douglas Adams
I may not have gone where I intended to go, but I think I have ended up where I needed to be. -Douglas Adams
Re: Making a huge, multi-level assembly actually run
When you say "actually run", what is it that you want to work? Hand-dragged assembly motion? Analysis/simulation?
If the assembly motion is very important to you, I'd make a copy of the assembly (save as - don't copy parts) , delete the mates that aren't necessary for motion, and maybe even dissolve flexible subassemblies so all mates for motion are at the top level. This also gets rid of in-context relations for that copied assembly.
Having a separate assembly file for certain tasks you can't complete in the primary assembly helps you divide the work and keeps the main assembly from getting too complicated. Plus, when you jam all functionality into a single large assembly, one little mistake cam blow up the whole thing.
So make a purpose-specific copy of the assembly.
If the assembly motion is very important to you, I'd make a copy of the assembly (save as - don't copy parts) , delete the mates that aren't necessary for motion, and maybe even dissolve flexible subassemblies so all mates for motion are at the top level. This also gets rid of in-context relations for that copied assembly.
Having a separate assembly file for certain tasks you can't complete in the primary assembly helps you divide the work and keeps the main assembly from getting too complicated. Plus, when you jam all functionality into a single large assembly, one little mistake cam blow up the whole thing.
So make a purpose-specific copy of the assembly.
Blog: http://dezignstuff.com
-
- Posts: 423
- Joined: Tue Mar 09, 2021 10:11 am
- x 439
- x 233
Re: Making a huge, multi-level assembly actually run
matt wrote: ↑Thu Aug 19, 2021 8:24 am When you say "actually run", what is it that you want to work? Hand-dragged assembly motion? Analysis/simulation?
If the assembly motion is very important to you, I'd make a copy of the assembly (save as - don't copy parts) , delete the mates that aren't necessary for motion, and maybe even dissolve flexible subassemblies so all mates for motion are at the top level. This also gets rid of in-context relations for that copied assembly.
Having a separate assembly file for certain tasks you can't complete in the primary assembly helps you divide the work and keeps the main assembly from getting too complicated. Plus, when you jam all functionality into a single large assembly, one little mistake cam blow up the whole thing.
So make a purpose-specific copy of the assembly.
I'll throw in this link to clarify.
Re: Making a huge, multi-level assembly actually run
Use the right tools for the right job. You might want to look at Siemens Process Simulate tool. This is used for things like virtual commissioning of assy lines. If you are relying on heavy weight CAD data and assy constraints you are going to have a very, very hard time. The Siemens tools also uses a physics engine so if you are doing start and stops you can see stuf rock...
Re: Making a huge, multi-level assembly actually run
Oh, you don't need to use the controls and can define your own. And I beleive you don't have all CAD data in NX for all of this..Ry-guy wrote: ↑Mon Aug 23, 2021 12:44 pm Use the right tools for the right job. You might want to look at Siemens Process Simulate tool. This is used for things like virtual commissioning of assy lines. If you are relying on heavy weight CAD data and assy constraints you are going to have a very, very hard time. The Siemens tools also uses a physics engine so if you are doing start and stops you can see stuf rock...
Mechatronic Conceptual Designer