Slow performance and using Components

Slow performance and using Components

TheModelBoatGuy
Enthusiast Enthusiast
7,640 Views
46 Replies
Message 1 of 47

Slow performance and using Components

TheModelBoatGuy
Enthusiast
Enthusiast

Hi there! I’m a relative newbie to Fusion 360 (I’ve been using it for a couple of months) but have embarked on a big project and think I’ve made a classic newbie error: Not using components.

 

I’m designing a model ship for 3D printing in sections along its length. It’s a complex project, but I’m pretty sure engineers use Fusion for much more complex projects that this without experiencing the problems that I have:

 

Whenever I go back in the timeline and make a small change to one of the earlier sketches or bodies, it can take 15-30 minutes for Fusion to update all the parts I created after the one I made the change to in the timeline. I then have time to make a cup of coffee or just sit back and watch the progress bar in the bottom right of the screen gradually update as the user interface locks-up until it completes. As my project grows in size, the delays are getting progressively longer, so I’m beginning to wonder if I’m digging myself an ever-deeper hole.

 

I would appreciate some general advice to help dig me out of this hole:

 

  • If I had used components, would it avoid the issue I describe above? Put another way, if you modify a component, does F-360 only then recalculate the components and bodies that are dependent on that component or does it still recalculate everything that was created after that component in the timeline?
  • Do components each have their own distinct timeline or is the timeline a project-level entity?
  • Is it possible to unpick what I have done to get myself out of this mess without starting the whole project over again (which is not a viable option)? To put it another way, could I safely move my various bodies and sketches into components without digging myself into an even deeper hole? If so, could you give some guidance on doing this.

I would gladly share the project file with you, but I notice it has increased in size exponentially in the last few days. It is now over 350 MB so this site won’t let me attach it. (Is that normal or a symptom of the issue I describe above?) You can download the file from this link to a cloud folder if you want to view it: https://www.dropbox.com/s/uc6ezg5rt8225dh/Leopard%20v302.f3d?dl=0

 

Thanks in advance for any help and advice.

 

JP, (The Model Boat Guy)

0 Likes
Accepted solutions (1)
7,641 Views
46 Replies
Replies (46)
Message 2 of 47

jeff_strater
Community Manager
Community Manager

@TheModelBoatGuy - a few comments:

 

  • If I had used components, would it avoid the issue I describe above? Put another way, if you modify a component, does F-360 only then recalculate the components and bodies that are dependent on that component or does it still recalculate everything that was created after that component in the timeline?

It probably would not make a ton of difference, in all honesty.  It is still better to use components than to not use components, but modifying a component way back in the timeline is still going to cause a big compute.  If the components are a local components, everything after the edited node will be re-computed.  There is some optimization, but not that's much.  However, if you use external components, then each component has its own timeline, and computes independently.  I would probably recommend that approach.

 

  • Do components each have their own distinct timeline or is the timeline a project-level entity?

local components do not.  External components do have separate timelines

 

  • Is it possible to unpick what I have done to get myself out of this mess without starting the whole project over again (which is not a viable option)? To put it another way, could I safely move my various bodies and sketches into components without digging myself into an even deeper hole? If so, could you give some guidance on doing this.

It's possible to salvage some of the design, if you want to use external components, by copy/pasting sketches, features, etc into new designs.  But, again, in all honesty, it might be harder to do that.  It will depend a lot on the design, and how it is structured.

 

I would be interested in seeing your design.  I am looking into some performance issues in Fusion, so I'm always looking for sample designs which show these issues.  I can't promise to spend a lot of time trying to advise you on this, this would be more for some longer-term improvement projects, but if you are willing to send it, I'd appreciate it.


Jeff Strater
Engineering Director
0 Likes
Message 3 of 47

TheModelBoatGuy
Enthusiast
Enthusiast

@jeff_strater Thanks for your quick reply and honest answers.

 

My design might be a useful example for you as I don't think that it lends itself to using external components.

Why?: Even if broken down into components, each of the components would be dependent on a top-level component (and I'm not sure if that can be external...)

 

I've attached some screen captures to illustrate the issue.

 

In figure 1 you will see that the model is built like a real ship, starting with the sketch of the keel which runs the length of the ship (the spine in human anatomy terms) and then a series of sketches for each of the frames that sit perpendicular to the keel at intervals along the length of the keel (the ribs in human anatomy terms).

 

In figure 2, I have made a couple more sketches visible. These are the stringers (3D splines) that link each of the frames on either side of the ship at various deck levels (no human anatomy analogy here, except perhaps muscles or nerves!)

 

In figure 3, I have hidden the above sketches and displayed the bodies derived from them. These were created by using the loft tool to form the outer shape of the ship's hull using the frames above as loft profiles and the keel and 3D splines above as loft rails. The solid hull body was then broken into sections at each frame and each section was then hollowed out using the shell tool. You can clearly see the lines splitting the sections at each frame. Each body section will be 3D printed and the printed bodies then glued together.

 

It seems to me that it would make sense to turn each of these sections into separate components but since 

they are all dependent on a "parent" body derived from the same sketches, I don't see how (or whether) this design lends itself to using external components. Perhaps you can advise?

 

You can download my exported design file from the Dropbox web site using the link in my previous post. I made it public, so no Dropbox account or login required.

 

'JP'

TheModelBoatGuy

 

 

0 Likes
Message 4 of 47

jeff_strater
Community Manager
Community Manager

Thanks, @TheModelBoatGuy - without yet having looked at the model itself, just based on the images, one approach that can work here is the "skeletal modeling" approach.  Yes, your sketches are all inter-related, so it is certainly more convenient to have them all in one model.  So, one way to do this is to have one design which contains only the sketches.  This is the "skeleton" of the design.  Using Derive (or even just plain old Insert) to insert that into a separate design for each hull section.  Then, do the solid modeling (which I suspect is the big time consumer in your design) for each section separately.

 

I realize that this is not how you've built this model so far - you've lofted it as one big loft, and split it.  But, it might be possible to get the same results by lofting each section independently.  You may have to create some support surfaces to do this (to assure tangency across each section).

 

More closer to your existing workflow would be to do the main hull loft in the skeleton, and using Derive to bring this solid into multiple external components, do the splitting and shelling for each section in the external designs.  Probably not quite as efficient, but closer to your existing method.

 

The basic idea is to push as much of the expensive modeling into separate component designs.

 

I'll try to take a look at the design and see if I can learn more from it, when I get a chance.  Thanks for sharing it with me.

 


Jeff Strater
Engineering Director
0 Likes
Message 5 of 47

TrippyLighting
Consultant
Consultant

I've just gone trough the first 20-30 timeline features among those you have a whole number of sketches that contain a large amount of almost completely (90%+) unconstrained sketch object. That puts strain on the sketch solver.

Then you also mirror a whole lot of unconstrained sketch geometry, which is really unnecssary and an at least one of the sketches includes mirrored spline which already have too many spline points.

 

So the problem starts right at the beginning with the sketches!


EESignature

0 Likes
Message 6 of 47

jeff_strater
Community Manager
Community Manager

This is definitely a hefty design...  I saw the same thing as you did @TheModelBoatGuy @ - about 15 mins or so for a Compute All (more or less equivalent to editing an early sketch).  Definitely would be frustrating to do much design iteration that way.  I think there are 1725 features in this model...

 

I have not yet looked at the design in any detail.  Your use of groups and specifically naming them is good - that makes it even possible to take a look section-by-section.  There are some expensive features here.  You have one shell that, by itself, takes 84 seconds to compute on my Mac.  But, there's another 29 features in the 10-30 second range.  Those are all Split features.  In fact, 83 of the slowest 87 features are all Splits.  So, that might be a clue as well.  Perhaps your method of making one bit body, shelling it, and then doing a bunch of Split operations is contributing to the slowness.  In general, it's probably going to be quicker to create the sections separately, if possible.

 

Anyway, that's all the insights I have for now.  Will try to dig in more as time allows...

 

The result is very cool, though.  It's a nice model.  Sorry that is causing you frustration.

 


Jeff Strater
Engineering Director
0 Likes
Message 7 of 47

TheModelBoatGuy
Enthusiast
Enthusiast

@TrippyLighting Thanks for the helpful comments

 

Many of the sketches at the beginning of the timeline (those under the named group "Sketches Imported from DelftShip") are actually redundant. As the group name suggests, these sketches were imported from another program and yes, they are therefore unconstrained: I then copied/pasted some of those sketch objects into new sketches which (for the most part) I did then constrain.

 

I assumed that unused sketches (or sketch objects) on which nothing else is dependent are not going to cause issues, but please correct me if I'm wrong.

 

A lot of my design depends on fit-point splines with many fit points which are difficult to constrain. In many cases I resorted to simply locking them (turning them green) which I assumed would have the same effect as constraining, but again, please correct me if this is wrong.

 

Part of the problem with designing ships/boats is that they rely on smooth curves, so 3D fit point splines are what I consider a necessary evil, because they're so hard (sometimes impossible) to constrain.

 

If you think removing the redundant sketch objects and somehow constraining all the remaining unconstrained curves will help, then I will do so.

0 Likes
Message 8 of 47

TheModelBoatGuy
Enthusiast
Enthusiast

@jeff_strater Those are interesting suggestions on how to improve performance.

 

My preferred approach would be to do the lofting of the hull as a whole in the skeleton design because the curves need to flow smoothly from one section to the next. I think that lofting each section independently (even with support structures to ensure tangency between sections) is likely to distort (create waves in) the shape of the hull.

 

If I go for the option of lofting in the skeleton design, can I then have all the sections in separate components under one other design? (I may be misunderstanding the design vs component terminology here). That would be the only viable option for me as it would be a total nightmare to have each section in a completely separate design and to have multiple tabs open in the UI and need to continually flip between them. Since each section has to marry up with the adjacent one, I need to be able to see them all side by side to make them fit together.

 

I must admit, I'm terrified at the prospect of having to spend hundreds of hours restructuring the whole design. As long as it can be done a little at a time using copy & paste, that wouldn't be so bad. I've never used Insert or Derive, so I will read up on it.

 

Thanks for all your advice so far. No pressure or hurry. I will keep battling with it in its current incarnation for now until (with your advice) I can figure out a viable salvage plan!

 

JP

0 Likes
Message 9 of 47

TrippyLighting
Consultant
Consultant

As @jeff_strater has alredy mentioned, this is a pretty involved model. The number of features in itself already will have some performance impact.

 

Unconstrained sketches cause the solver to do work so reducing the amount of unconstrained sketch geometry will help.

When done with a fit point spline, you can use the Fix constraint to lock it,

You design is symmerical about the XY plane, so only sketch one half of the profile and then mirror 3D gemoertry. It might be counterintuitive, but this is a lot less taxing on the system.

As I've already mentioend, you use too many spline control poins and should also look into substituting some of the fit point splines with control point splines. 

If a 3-degree control point spline (with 4 control points, so one span)  is going to do the job, there is no good reason to use a fit point spline, which is a mathematically more complex object and thus requires more computational resources. A fit point spline in Fusion 360 is a 5-degree multi-span spline. The more spline control points you use, the more and the higher the degree of the spline the more work Fusion has to do.

 

Another big issue I see is that you have very many yellow warning icons in your design. I've not counted and a compute all, which would do the counting for us, takes way too long. My guess is at least 50. Some of those are lofts, the most complex objects in Fusion 360. That also can quite dramatically slow down Fusion 360.

 

 

 

 


EESignature

0 Likes
Message 10 of 47

TheModelBoatGuy
Enthusiast
Enthusiast

@TrippyLighting Thanks Peter

I can't really afford to go back to the drawing board with this design as I've already started 3D printing some of the parts, but I will definitely use that advice for future projects.

 

For this project, I need to do what I can to improve performance without making any significant changes to the shape of the model. For a start, I can remove unused sketches or curves (is there any way to determine whether a sketch or object is used or has dependencies further down the timeline?) and I can lock any unconstrained curves.

 

I only learned about control point splines after this design was well underway and have started using them wherever possible. For some of the splines such as the ones in the sketches "Knuckle" and "C-Deck", I believe there was no choice but to use fit-point splines as these splines have to coincide with specific points on each of the frames; the number of frames the spline coincides with (13 in total) turn dictates the number of fit points. I'm not sure that's possible with control point splines...

 

The yellow warning icons are a symptom of the recalculation issues I have been experiencing. Every time I go back in the timeline and edit one of the early sketches, yellow icons appear further downstream with the warning that the object was "using cached geometry". In the beginning, I would painstakingly edit each one to remove the yellow icon, but it's so time consuming that I have given up! Is this issue because of the unconstrained sketches and would constraining everything fix that?

 

Your suggestion of only designing one side and then mirroring had occurred to me, though I wasn't sure where to introduce the mirroring. As a newbie, I chose to design most of the "Frame x" sketches on one side only then mirror the curves within the sketch. That means that for the splines mentioned above, I still needed two of each ( for the port and starboard sides). In future, I guess it would make more sense to only design one side of the ship and then use the mirror tool as far down the timeline as possible to mirror the bodies when they are completed. I assume that mirroring at the last  minute would involve less computing than calculating two of each of those complex curves.

 

It strikes me that some of the complexity is just down to what I am modeling (F-360 is not intended to design ships!) but using the loft tool is a "necessary evil". However having this useful knowledge of which tools are the most computationally heavy and techniques to reduce their use is very helpful.

0 Likes
Message 11 of 47

TrippyLighting
Consultant
Consultant

So the question is: Do you still need the timeline ?

 

You have already progressed to adding detail and given the limitations in the model already it is unlikely that you will go back much in the timeline and make edits to existing features.

 

As such you might save this model under a different name, disable the timeline. This preserves all the geometry in your design, all the sjetches and construction planes etc. are still present, but they are not paramtrically linked anymore.

 

Then turn the timline back on and all edits from there on are going to be parametric. That will greatly help in speeding up this model!

 


EESignature

0 Likes
Message 12 of 47

TheModelBoatGuy
Enthusiast
Enthusiast

@TrippyLighting  Re: So the question is: Do you still need the timeline ?

 

At this stage, I often have to go back in the timeline to modify parts due to issues only discovered after 3D printing the parts, so I guess the answer is YES, I do still need the timeline... for now.

 

However it's useful to know that when I reach the stage when all the main sections of the hull have been 3D printed and are therefore not going to change, I can do as you suggest, so that I can continue to design the (removable) superstructure  that sits above the hull without the current performance issues. As you will see by comparing Fig 3. and Fig 4. attachments, I still have a lot of design work to do. 

 

As the superstructure will be a separate removable part of the model (to allow access to the inside, since this will be a working radio-controlled model), I guess I could start that as a separate design file and then either lose the  timeline up to that point as you suggest, or perhaps create a new design and insert/derive from this existing design as @jeff_strater was suggesting earlier.

 

Several options and lots to think about...

0 Likes
Message 13 of 47

jeff_strater
Community Manager
Community Manager

I set out last night to see if I could follow my own advice.  Not quite, but the exercise did lead me to a workflow that may work for you in future designs.  It's kind of a modification of the skeletal idea, with one addition:  adding lofted surface bodies for each section that are then derived into each section , which are then assembled into the final boat assembly.  I think this might work as a way to divide up the design, avoid those expensive split features and an expensive shell feature.  I've attached it as an MP4, because Screencast refuses to recognize the microphone on Mac OS 10.15...

 

I've also attached this example design, ugly as it is...

 

Jeff


Jeff Strater
Engineering Director
0 Likes
Message 14 of 47

TheModelBoatGuy
Enthusiast
Enthusiast

Thanks! That’s really interesting and I would like to gain a better understanding of the difference between lofting each section individually and lofting the whole hull in one hit.

 

I should point out that the lofting in one hit and then splitting into sections is not particularly “expensive” for me since it’s something I only had to do once and it’s very unlikely I would need to make changes to the outer shape of the hull. So when making edits, I never need to go that far back in the timeline. Those splits that break the hull into sections are not the expensive ones in my design. It’s all the splits I do later on to create decks or bulkheads between sections that are extremely time costly. I will explain those in another post.

 

My intuition told me that lofting the whole hull with the benefit of splines as rails seemed more likely to result in a consistently smooth overall shape than doing it in separate sections. If you do one big loft with multiple profiles, won’t adjacent surfaces automatically be tangent at each profile?

 

In your example in the MP4, you mentioned that all the frames were at a constant height (making the deck flat along the length of the boat) Unfortunately, boats and most ships are flat in the middle but curve upward toward the bow or the stern. That’s why I had to use 3D splines for the deck rails.

 

I would like to better understand how those options for the first and last profile in the loft tool affect the overall shape, but I haven’t been able to find any clear detailed explanations online, only obscure references to “G1” and “G2 tangency”, whatever they mean! Could you explain what exactly those options do and how lofting each section separately may give a different result to lofting the whole hull in one hit?

 

Thanks

JP

0 Likes
Message 15 of 47

TrippyLighting
Consultant
Consultant

Here is a reference to the Autodesk Alias Theory Builders explaining NURBS surfaces, Curvature etc.


EESignature

0 Likes
Message 16 of 47

TrippyLighting
Consultant
Consultant

Here is a reference to the Autodesk Alias Theory Builders explaining NURBS surfaces, Curvature etc.


EESignature

0 Likes
Message 17 of 47

TrippyLighting
Consultant
Consultant

I am slowly but surely progressing through the timeline of this design and I would guesstimate that this can be designed with less than half if not 1/3rd of the timeline features.

 

1. Honor symmetry and at the very beginning of the timeline make sure canvases and imposed geometry is aligned with the origin and origin planes. That will avoid making unnecessary construction planes.

2. Once #1 is established, only sketch half of everything.

3. Only loft half of everything. Then mirror geometry as late as possible.

4. Work with surfaces as long as you can. Surface operations are much faster to compute than solid features. So no boundary fill if not yet needed, no shelling and no spitting solids.

5. No need to spit the large loft into small sections until you're ready to print. Do the splitting for purpose of 3D printing as late in the design as possible.

 


EESignature

0 Likes
Message 18 of 47

TheModelBoatGuy
Enthusiast
Enthusiast

@TrippyLighting I totally agree regarding symmetry: not using symmetry was a fundamental error. I should have designed only one half of the ship and mirrored as late on as possible. That would significantly reduce the number of steps required to complete the design.

 

Working with surfaces is fine for designing the shape of the hull but unfortunately, the need to start working with solids arises quite early on, as soon as the hull shape is designed. There are all sorts of solid shapes required: The decks, the deck supports, the frames (where the adjacent sections glue together) etc. What's more, those are very difficult (in some cases impossible) to design without first splitting into solid sections and hollowing out.

 

Your recommendation not to split into sections until ready to print seems to be contrary to @jeff_strater 's recommendation of creating a skeletal design and splitting into separate component sections to be later derived as external components into an assembly.

 

The splitting of the hull body (solid or surface) using planes as splitting tools doesn't cost much in terms of computing time, so I don't entirely understand the rationale in avoiding those particular splits. Can you explain? I am not saying it's wrong, but would like to understand why.

 

I am also unsure whether your comments are in the context of salvaging the current design to make it workable or in the context of a better approach to a future model ship design.

 

 

0 Likes
Message 19 of 47

TheModelBoatGuy
Enthusiast
Enthusiast

@TrippyLighting Another point I forgot to mention about the current design is that the hull sections were split into upper and lower halves at the "knuckle line" (the longitudinal crease along both sides of the hull). This was by necessity because an entire slice of the ship was larger than my 3D printer could accommodate. I have since invested in a new larger volume printer, so I can now remove the "knuckle joints" and all their associated geometry, which significantly simplifies the design. I could now print the model in about 12 pieces.

0 Likes
Message 20 of 47

TrippyLighting
Consultant
Consultant

@TheModelBoatGuy wrote:

 

I am also unsure whether your comments are in the context of salvaging the current design to make it workable or in the context of a better approach to a future model ship design.

 


My comments are in the context of creating a new design, not salvaging this, which I believe is what Jeff's comments are aimed at.

 


@TheModelBoatGuy wrote:

 

Working with surfaces is fine for designing the shape of the hull but unfortunately, the need to start working with solids arises quite early on, as soon as the hull shape is designed.


The question is not whether or not you need solid bodies, but at what point in time do you move from surfaces to solids and also how. Thickening a surface, for example usually much quicker than shelling a solid.

 

This is a very ambitious project for someone new to Fusion 360. I'll see if I can find some time to create a workflow that makes it faster to compute.

 

It might take a while 😉


EESignature