Welcome to the Onshape forum! Ask questions and join in the discussions about everything Onshape.
First time visiting? Here are some places to start:- Looking for a certain topic? Check out the categories filter or use Search (upper right).
- Need support? Ask a question to our Community Support category.
- Please submit support tickets for bugs but you can request improvements in the Product Feedback category.
- Be respectful, on topic and if you see a problem, Flag it.
If you would like to contact our Community Manager personally, feel free to send a private message or an email.
Large Assembly Management
sam_schulpen
Member Posts: 7 PRO
in General
I'm currently working on a large assembly (11k instances). It is really slow. I'm not sure if it is my local graphics or on the onshape server (its not the internet connection).
How to manage large assemblies is using simplified representations: showing only the parts or features you need at a given point. In onshape this is the feature "display states"? There are a few issues.
1. You can't use a display state from a subassembly level. Yes, I've noticed that when you activate the display state in the subassembly before inserting it, it works. But this is not a linked state and doens't update between assembly levels.
2. It is hard to manage what is included in a state and what not.
3. You need to manually update states when you add new parts.
Is the "display states" feature going to be extended? For example Rule based states (eg all bolts off).
Or is onshape pursuing a different route where simplifying is irrelevant?
Are there any resources for best practices in (large) assembly management?
Any input is much appreciated.
How to manage large assemblies is using simplified representations: showing only the parts or features you need at a given point. In onshape this is the feature "display states"? There are a few issues.
1. You can't use a display state from a subassembly level. Yes, I've noticed that when you activate the display state in the subassembly before inserting it, it works. But this is not a linked state and doens't update between assembly levels.
2. It is hard to manage what is included in a state and what not.
3. You need to manually update states when you add new parts.
Is the "display states" feature going to be extended? For example Rule based states (eg all bolts off).
Or is onshape pursuing a different route where simplifying is irrelevant?
Are there any resources for best practices in (large) assembly management?
Any input is much appreciated.
Tagged:
2
Comments
I don't have significant large assembly to try this, but chrome shows RAM utilization in the task manager.
CAD Engineering Manager
Yes, I use OS on 3 computers, each with different amounts of motherboard ram. 8, 16, 32 GB ram. Opening the same large assembly on each one, it responds better with more ram. Smaller assemblies are the same on each computer, as they don't tax the ram. But the bigger assemblies consume all the ram, and it is shown in task manager.
A checkbox helps to a certain level. My assemblies are large because of high quantity patters (eg 100x an assembly with a 100 parts). I can also easily reduce this in a configuration.
In all cases the more "stuff" onscreen the slower it will be regardless of mate solve time. Also make sure to check the "performance" report (on the very left under the version/comment/where used icons).
It will tell you what the mate solve time as well as the number of "primitives". If the mate solve it long things will be slow when dragging something on screen.
If you have a lot of things to display the bottleneck might be the graphics card on your machine. A good place to start is to check the number of triangles (in the "tab graphics" against the triangles per second reported in the "performance check" (under "?" menu). If the triangles per second isn't at least an order of magnitude higher it will be slow rotating things on screen!
At any given moment, do you really need to see all the parts in that 11k assembly? Are there small parts (fasteners, electronic components, etc) which can easily be hidden or suppressed most of the time? If the parts are named well, the search function in the instance list can be great for selecting a ton of parts at once. I was using this to select all the 0201 Rs and Cs and put them in assembly folders to easily suppress/unsuppress them.
Can you create envelope parts (a big box or equivalent) to represent whole subassemblies when you're at the top level? This could be controlled with a configuration.
It would be great if more of this housekeeping/work-around stuff was more automatic, but with a bit of planning and work, it may be possible to get decent performance where you need it.