F360 : Design : Components - internal workings?

F360 : Design : Components - internal workings?

I_B_Jones
Advocate Advocate
1,659 Views
13 Replies
Message 1 of 14

F360 : Design : Components - internal workings?

I_B_Jones
Advocate
Advocate

For some while I've been concerned about how Components work in F360 and how they appear to be modelled internally. As an example:
To move an existing component[A] (possibly with sub-components etc.) to become itself a sub-component of a Component[C],
i) You have to be placed right at the end of the Timeline; and
ii) When you then drag [A] onto [C] it creates new CutPaste action(s) at the end of the Timeline.

 

From over 40 years of IT data design and process experience (but no CAD internals technical knowledge) this seems symptomatic of an internal data structure problem.

 

Scenario: You've created various components [A,B,C..] etc. and realise that you really ought to have a parent component to hold some of them [A and B say] under as sub-components.
Now, I would expect to be able to drag the Timeline back to just before any of those components [A,B] were created, insert the new component [P, to be parent], then move the Timeline to just after each relevant component [A, B] was created and drag each [A, B] onto the new parent component P, making A,B sub-components of P. And then for everything to process correctly. Possibly with a "make into a sub-component" action placed in the Timeline at each drag & drop point, but definitely no "CutPaste" actions added at the end of the Timeline.
I.e. everything put into it's logical place in the Timeline, the sub-component actions processed correctly, and all subsequent Timeline actions processing correctly. All as if you'd done it in the correct sequence from the start.

 

From an IT technical perspective, it would usually be a matter of maintaining chain pointers, which is pretty easy and very robust and efficient. However, I don't know the internals of F360, nor fully the CAD impacts that might potentially be involved when making a component into a sub-component. Intuitively it seems a fairly trivial action.

 

Am I being overly simplistic, or is there indeed a "flaw" in the way F360 Components are implemented?

 

In the past, to get a "clean" design build, I've sometimes had to go back to a point in the Timeline and re-build from that point forwards with the new parent Component in. Obviously that's very time wasteful.

Accepted solutions (1)
1,660 Views
13 Replies
Replies (13)
Message 2 of 14

TheCADWhisperer
Consultant
Consultant

This is interesting.

 

I am used to doing this in other MCAD programs and thought it would be easy to "demote components" into logical sub-assembly components, but I did not find a logical way to do so in Fusion 360.

 

Hopefully someone will come along and show that this is actually quite trivial.

0 Likes
Message 3 of 14

I_B_Jones
Advocate
Advocate

Thank you for your comment on this post @TheCADWhisperer .

 

Does anyone else have any observations???   It seems a rather fundamental issue to draw no interest on...

 

Best regards all,    Ian.

0 Likes
Message 4 of 14

r.moss
Advocate
Advocate

I agree - it seems a pretty significant drawback.  I'm still learning F360, having previously used SolidWorks and SolidEdge.  Having seen YouTube examples where people created all their bodies and turned them into components at the end, I did just that, why not?   I now have a long timeline  (100+ features) with most of my 33 bodies given a component "parent" half-way through (they split into 5 components, each a welded assembly of all the bodies in the as-drawn position).  Unfortunately whenever I create an additional body, I have to roll to the end of the timeline before adding it to the component.  (Yes, I'm aware of RULE 1 but I never appreciated its terrible significance until now).  

 

My timeline is getting more and more fragmented and I suspect when I turn all this into a multi-page drawing it will get confused and lose its dimension relations every time I edit the design.

 

So I've started all over again, deleting everything but the sketches and re-creating all the extrusions, this time each with the proper parent component.  I only hope when i've done it all that I don't find I have put a body in the wrong component by mistake (actually I put 5 bodies in the wrong component at the start but was able to just swap the component names at that stage).  What a load of hassle!  This should be a trivial re-arrangement.

 

0 Likes
Message 5 of 14

r.moss
Advocate
Advocate

Surely all that is needed is for each dialog box  that has a "New body" option to then have a "Select parent" field.  This would default to the current parent but allow one, for instance, to pick any existing component.  Then as one executed the timeline it would re-create each body under the desired parent.

 

Some actions might need editing (e.g. one could not combine bodies with different parents) but that is not much trouble really.

0 Likes
Message 6 of 14

I_B_Jones
Advocate
Advocate

Hi @r.moss,

Sorry - I'd done an extensive reply for you, but Autodesk failed when I submitted it and I'd not copied/saved it...

I'll try to recapture some of it... Please excuse if I over explain - you did say you're new to F360...

 

Look at

Rule 1 : https://forums.autodesk.com/t5/fusion-360-design-validate/fusion-360-r-u-l-e-1-and-2/td-p/6581749

and http://help.autodesk.com/view/fusion360/ENU/?guid=GUID-E37B0456-A867-429F-BF69-6A4626DD31E7

Note the "Important" (in red) paragraph part way down link 2 re Rule 1.

 

Also useful for new F360 users perhaps:

- The top object in the F360 Design Browser Tree is the root COMPONENT. So all your Bodies were in that initially.

- As I perceive in F360: Component = Part or Assembly.   Body = a Conceptual 3D volume that is used to make up (by addition or subtraction) a Part/Component. But see 2nd link above.

- Actions (displayed in the Timeline and also known as Features) such as Create Sketch, Create Component, Extrude, etc.. etc.. can often be edited later. Click on the Action in Timeline, right click and select Edit Feature. But not all can and some only partially.

- Get to understand (and respect) the F360 Timeline. It's powerfully useful. E.g...

   a) To add a forgotten object/action into the design.

   b) To move an Action to a "cleaner" position in the Timeline or so that a late created object can be used earlier in the design timeline.

But not all Actions seem to correctly implement the Timeline. E.g. the Component drag to be a sub-component action that I raised in my post. And a few others?

 

There's lots of help/articles online, though finding a relevant item can be tedious. Needs a good clean up!

 

Enjoy F360.

Best wishes,   Ian

0 Likes
Message 7 of 14

r.moss
Advocate
Advocate

Hi Ian

 

Thanks!  I'm getting the hang of it but still slightly wary of what lies in store when I convert my design to drawings.

My design has 5 components, each a welded assembly of multiple bodies (up to about 30 bodies in the largest component).  Almost all the bodies are constant-thickness extrusions that will be water-jet cut from sheet metal.  9 of the bodies require folding or rolling to shape.

final appearance.JPG

 

What I'm finding difficult to judge is whether there is any advantage in making each body a sub-component, with an as-built joint to its parent (is there anything actually wrong with having 30 bodies in a component?)    In principle I could suppress all those joints and lay them out flat when planning the cutting (though I'm not sure it would be any quicker than printing the drawings, cutting out the shapes and arranging them on a table)....is there any other advantage?  There would be a lot of joints and the browser would be much more complicated, so I'm inclined to stick with just the 5 main components.

 

Ultimately I want to create a multi-page drawing for the whole design - something that I can export as pdf, email to people and discuss over the phone, "turn to sheet 65" etc.  So I will want at least 9 sheets that have both a final and an un-folded view.   I've seen a post from 2018 that says "in Current behavior we allow only single Flat Pattern in Component, If you have multiple component then you are eligible to create flat pattern for single body, which is expected behavior."  If that's still true I will need at least those 9 bodies to have personal component parents.

 

Another thing I've found is that when converting the design to drawings, the drawing can be a bit "fragile" and lose its dimension relationships  (it's surprisingly easy to save the design when not at the end of the timeline - the drawing then prompts for an update and gets confused).   Not sure what the best way of avoiding this is, as I really don't want to have to reassociate umpteen sheets if I tweak the design slightly.

 

If I do "Convert to sheet metal" on a body, the parent component becomes a sheet metal component, with a different icon.  Does it matter that some of its bodies are still solid?  Should I convert everything to sheet metal? 

 

Best wishes

Roger

0 Likes
Message 8 of 14

I_B_Jones
Advocate
Advocate

Hi @r.moss 

You need to raise this in it's own Post as your own query. It's not appropriate to persue it under mine, which is about a different topic entirely.   Also, you're now going well past basic F360 design, so need expertise well beyond mine!

Pease copy your above post to your own new Posting query, then if you can (I've never tried) delete it from my Post history so as to clean my post back to topic.    Many thanks,    Ian

Message 9 of 14

TheCADWhisperer
Consultant
Consultant

Report.png

Message 10 of 14

I_B_Jones
Advocate
Advocate

Hi @TheCADWhisperer . Yes, I'm aware of that facility, thanks.    Was giving new to F360 poster chance to clean it first.

 

Are you PM'able w.r.t. my original posting?   I tried to PM but system says you're not PM'able...

Cheers, Ian

0 Likes
Message 11 of 14

I_B_Jones
Advocate
Advocate

A further observation : I have just discovered this "issue" also applies to draging Bodies into Components!

You can only do it if at the end of the Timeline and it then puts a CutPasteBodies action at the end of the Timeline.

That, of course, partly breaks the ability to "time travel" the Timeline and so to put things right or to add/remove/edit Features (actions) earlier in the Timeline. Indeed, this issue is itself a breach of the Timeline functionality.

This bolsters my suspicion that there's a core F360 problem here right at the root of how Components (and Bodies) are Timeline managed at the data+software level.        Autodesk comments please???

0 Likes
Message 12 of 14

TrippyLighting
Consultant
Consultant

@I_B_Jones wrote:

 

This bolsters my suspicion that there's a core F360 problem here right at the root of how Components (and Bodies) are Timeline managed at the data+software level.        Autodesk comments please???


I can of course not comment on how this is actually implemented but given that in my experience the Fusion 360 team hosts a collection of very intelligent people I believe it's not per-se a flawed implementation.

It just isn't complete!

 

Unfortunately, I have not discovered any hidden tricks here either. Restructuring the component hierarchy is not possible without rolling the timeline all the way to the end.

 

The Fusion 360 timeline allows users to do things that aren't possible in other CAD software packages. Unfortunately, that comes at the cost of creating complex relationships between entities, which can all be located in different components in varying locations in the timeline. The latter is not the case with any of the other CAD systems I am aware of where the timeline s limited to a component, be that internal or external.

 

So when such software is developed and code is implemented from the beginning to allow users to fully manage these relationships between entities then, as the software grows and matures the bugs in that code are ironed out. I believe Autodesk is way past that point and the window of opportunity is closed. If that code is implemented now at this stage, bugs, which will inevitably happen, have the potential to wreak havoc on user data and create irreparable damage.
Thus, I am not sure we ever will see such functionality implemented.

 

@jeff_strater might have some interesting insight into this very interesting subject.


EESignature

0 Likes
Message 13 of 14

jeff_strater
Community Manager
Community Manager
Accepted solution

I guess I've procrastinated on this too long.  Mostly I had too much other stuff to do, but definitely had some hesitation over wading into such treacherous waters.  Not really interested in getting into a debate about the internal workings of Fusion, to be honest.  But, I'll give it a shot.  And, I'll apologize up front if I come off as defensive.  I probably will, but will do my best to minimize it...

 

The short answer here is, that yes, it is nowhere near as simple as it sounds.  Sorry, but it is not just a poor implementation of a tree/pointer structure.  A couple of comments here on some points raised throughout this thread.

 

from @r.moss - "I agree - it seems a pretty significant drawback".  I also agree, it is a limitation that introduces frustration.  I hope that we are able to fix it some day.  There are reasons why this "significant drawback" exists, but they are not immutable reasons.  It can be fixed, but is just a major project to do so.

 

from @I_B_Jones in the original post:  "i) You have to be placed right at the end of the Timeline and ii) When you then drag [A] onto [C] it creates new CutPaste action(s) at the end of the Timeline.". 

 

Let me address those in reverse order.  For ii) this gets to the timeline nature of Fusion assemblies.  Unlike other CAD systems, Fusion's assembly environment is history-based.  This is a decision that was made early on.  Whether it is a good thing or a bad thing is hotly debated, here, as well as internally.  But, for better or worse, we are stuck with it.  So, operations that are not usually history based in other CAD tools, are in Fusion - component creation, component instancing, etc, are all timeline features.  Roll back before an instancing operation, and that instance is not in the model.  Or, roll back before a Create Component From Bodies operation, and the bodies go back into the root.  There is power in that.  You can go and modify those bodies with a cut operation, for instance, and that cut will be propagated into the components.  So, that is why a restructure operation is also a timeline operation.

 

i) is a bit more complex.  Why can't you do this restructure while rolled back?  It is partly tied to ii).  Because the assembly operations are timeline-based, when you are rolled back, all the items to the right are not executed.  So, Fusion cannot predict what havoc will occur if you restructure the assembly in that state.  We could allow it, of course, but then you will potentially discover errors a long time after the operation that caused the error, which is generally not good UI.  And the nature of the errors is the other factor - geometry references (to-face termination, joints, etc) include the "component path" of the reference.  If you have a joint to ComponentA, roll back, and move ComponentA under ComponentB, now all those references need to be updated to refer to "ComponentA/ComponentB".  Yes, we could do that, but that is the "big project" I referred to above.  Could be done, hasn't been done yet.

 

there are other related limitations.  I can edit an extrude from Join to New Body, but not to New Component.  Same set of underlying issues around timeline-based assembly structure are at the root.  I cannot edit a restructure operation.  Yes, that would be nice as well.  I cannot go back and insert a New Component feature, and then edit downstream features to be owned by that component.

 

As I said above, none of this is unfixable.  It is just a cost/benefit analysis for us to decide whether to fix it now, later, or never...

 

I know I did not address everything in this post, but hopefully that gives a flavor of the reasons behind some of the (current) limitations.

 


Jeff Strater
Engineering Director
Message 14 of 14

r.moss
Advocate
Advocate

Hi Jeff,

Thanks for such a detailed reply, I appreciate the difficulty. 

 

Personally I would prefer to have the option of rolling back and redefining "new body" features such that the new body was the child of a non-root component, even if it crashed some later features in the timeline.  Fusion might usefully then popup a warning advising the user to save their work in case it went wrong and they wanted to revert.   (I often find that small changes to a design require me to redefine sketch planes and regenerate projected lines later in the timeline; this would be similar).

0 Likes