Large Assembly, any ideas on how to make this faster?

Large Assembly, any ideas on how to make this faster?

paulctan
Contributor Contributor
3,119 Views
13 Replies
Message 1 of 14

Large Assembly, any ideas on how to make this faster?

paulctan
Contributor
Contributor

https://a360.co/2LWXFWr

 

I'm starting to run into speed problems with this assembly, and I'm only just starting to put all the pieces together.  Currently taking almost 1 minute at times when I do a low level change.

 

Can someone take a quick look and let me know what I should be doing to speed up the system, and if there is something totally stupid or not that I'm doing?  I just came into using Fusion 360 from Alibre, and now I'm running into speed limitations.

 

Thanks.

 

Paul Tan.

 

0 Likes
3,120 Views
13 Replies
Replies (13)
Message 2 of 14

jeff_strater
Community Manager
Community Manager

Thanks for sharing this model, @paulctan .  To better answer your question, it would help if you could give a couple of specific examples of operations that are slow.  Is it adding a new component, moving/dragging a component, adding a joint, animating a joint, etc.  This will be helpful to us - we currently have a project in place to investigate large assembly performance to try to improve it.

 

As to specific actions that you can take to help improve performance, the first thing I noticed which might affect it is the large number of Rigid joints in this model.  Rather than to join pairs of components together, it can be more efficient to create a Rigid Group containing multiple components, all of which need to be mutually rigid together.

 

 


Jeff Strater
Engineering Director
0 Likes
Message 3 of 14

paulctan
Contributor
Contributor

Right now, when I import a screw from McMaster-Carr, after I put it in with the proper joint, it takes almost a minute for Fusion to recalculate everything.  When I change anything in the subassembly components, it can take up to 5 minutes before I can work on the next part.  Animating a joint took so long that I gave up on it (it would be nice if I could animate a joint).

 

I'll try to change some of the joints to rigid groups.  Is there any way I can just create a rigid group and then delete the existing joints?

 

Thanks.

 

Paul Tan.

 

0 Likes
Message 4 of 14

jeff_strater
Community Manager
Community Manager

yes, you should be able to just create the rigid group, and then delete the rigid joints that are no longer needed.  It's worth a try, definitely.

 

Also, I notice that your fasteners all have fully modeled threads in them (most likely because you are downloading them from McMaster-Carr, and all their models have threads).  This can cause bad performance in some areas, and might be worth trying to modify the fasteners to have cosmetic threads.  It would be a lot of work, I realize, but all those faces can cause general slowdown as well as graphics slowdown.

Screen Shot 2019-07-12 at 5.54.49 PM.png

 

Finally, I have a request for you.  When you have Fusion in a good state (all designs saved and closed except this one, everything OK), can you try a Compute All on this design, to see what you get as a result?  In the version I uploaded to my hub, Compute All results in a lot of Joints failures.  This is an issue we are actively working on right now, and I'm curious whether my version is bad, or something is wrong with the F3Z download/upload process.  Thanks.

Jeff

 


Jeff Strater
Engineering Director
0 Likes
Message 5 of 14

TrippyLighting
Consultant
Consultant

@jeff_strater While these certainly are ways to make this faster, this assembly is really a picturebook example of how to build an assembly!

 

It only has 200 or so components. It is time for the Fusion 360 team to really seriously look at computing performance! 

In machine design 200 parts is a pretty small assembly.


EESignature

0 Likes
Message 6 of 14

paulctan
Contributor
Contributor

I tried a compute all and didn't get any errors at all.

 

Yeah, I was afraid the models from McMaster would cause issues, but it's just too **** convenient just to download the components

 

What would be nice would be a replace component command that would keep the existing joints if the replacement has the same geometry.

 

Paul Tan.

 

0 Likes
Message 7 of 14

Phil.E
Autodesk
Autodesk

@TrippyLighting 

I took a close look at the model, here are the actual statistics, just for your information and just for the sake of helping the OP work with this model:

 

351 components and

953 or so bodies

21418 faces

52664 edges

 

In addition to all the other performance needs this model has, there will be selection performance impacts as well as graphical. Turn off graphics effects to start. There are other more drastic workarounds like making the extruded aluminum parts temporarily invisible or unselectable. @paulctan  Let me know if you'd like a more complete rundown on how to optimize Fusion for working with this model.





Phil Eichmiller
Software Engineer
Quality Assurance
Autodesk, Inc.


Message 8 of 14

TrippyLighting
Consultant
Consultant

Thanks for the feedback @Phil.E !

 

The model is public and it would be great if you could share these methods here in this thread, preferably in a screencast. It would be an excellent resource that can be referred to.

 


EESignature

Message 9 of 14

paulctan
Contributor
Contributor

Any help or ideas on how to make this model faster would be appreciated.

0 Likes
Message 10 of 14

Phil.E
Autodesk
Autodesk

Glad to help.

 

As @jeff_strater mentioned, your model has some unnecessary detail, but I would not assume that makes up the majority of performance problems here. However, some optimizing will help. 

 

  • Modeled threads: remove modeled threads. I'll post a video in a few minutes showing how to do that.
  • 3D logos: just like threads, these can be removed if you don't need to render or print them.
  • Turn off graphics effects.
  • Use <4k resolution.
  • Make parts invisible or unselectable. This keeps the mouse from overworking your CPU with selection logic. All those edges and faces are giving Fusion a lot to think about as your mouse moves over them.

 

Those are all just habits I picked up from 20 years of 3D modeling. Many of those years in 32 bit computing, with 2.85 GB RAM dedicated to Inventor via a registry hack. The goal was to produce goods, not run Inventor. We did whatever we could to make the application work in the hardware we had, and it always slows down as your model gains complexity. The same problem exists today, despite huge advances in technology.

 

I can't say your model "should" be this heavy in Fusion, I sort of doubt that, and more investigation is needed. Thanks for the example. However, your model will benefit from trimming down the excess overhead, as my list of tips will do.

 

Perhaps Jeff has some more tips.

 

@TrippyLighting  Here is your selection counting video.

 

Regards,

 





Phil Eichmiller
Software Engineer
Quality Assurance
Autodesk, Inc.


0 Likes
Message 11 of 14

Phil.E
Autodesk
Autodesk

Funny thing. I'm not seeing any performance problems working with this model at all. Can you tell us more about your hardware and perhaps give a video showing your workflows that reveal performance issues. 

 

Anyway, here's how to remove screw threads. The idea here is to do this once for each screw size/type and re-use the cleaned up model where applicable.

 

 





Phil Eichmiller
Software Engineer
Quality Assurance
Autodesk, Inc.


Message 12 of 14

Phil.E
Autodesk
Autodesk

Here's how to get rid of those 3D logos. 

 





Phil Eichmiller
Software Engineer
Quality Assurance
Autodesk, Inc.


Message 13 of 14

jeff_strater
Community Manager
Community Manager

@paulctan - I'm seeing the same thing as @Phil.E - performance is about what I expect for a model of this size.  Most of the slowness I am seeing is in view rotation, etc, which will definitely be affected by the number of faces (and amount of detail) as Phil suggests.  Here is a screencast showing me updating a subassembly, inserting a new screw, and placing a joint.  It is not lightning fast, but it seems acceptable to me.  I don't have a super machine - a couple year old Macbook Pro.

 

 

 

 


Jeff Strater
Engineering Director
0 Likes
Message 14 of 14

paulctan
Contributor
Contributor

Posting a follow up to this.  Spent the last week redoing all the sub-assemblies to use Rigid groups instead.  It seems that just putting in a Rigid group and then deleting the joints didn't quite work out.  Trying to do that ended up having all the parts moved all over the place (probably because I had originally inserted them in a different spot away from their target location, and then used the joint to move them into the correct spot -- which, by the way, is how I was doing it when using Alibre).  

 

Anyways, I ended up having to recreate every sub-assembly with rigid groups instead of joints.  The performance is faster.  At least now I can move the wheel joints in the final robot base assembly, but it's still sluggish, requiring 3-5 seconds for the system to process the move.   I couldn't even move the wheel joints before -- it used to take a minute or 2 before it even returned control to my mouse. 

 

 My system is i7-4790K (older CPU), 32Gb memory, GeForce GTX 1060 3Gb, SSD hard drive, running Windows 10.  

 

I haven't done any of the thread removal or the 3D text removal yet (which I might end up doing still), but at least I got it to semi-acceptable performance.  

 

One thing I noticed was a really massive slowdown when trying to do point to point positioning of an inserted part because of the time needed to show all the points in the GT 5mm pulley (it seems to take a while and then present all the points on the edges of the teeth on the pulley).  Not sure if it's the pulleys that are actually bogging down the system.

 

Thanks everyone for the tips.  Although I was hoping it would be more responsive, at least I can keep working on the project for now.

 

Paul Tan.

 

0 Likes