I'm near to giving up on parametric/history design again

I'm near to giving up on parametric/history design again

Helmi74
Collaborator Collaborator
2,984 Views
62 Replies
Message 1 of 63

I'm near to giving up on parametric/history design again

Helmi74
Collaborator
Collaborator

Hi,

 

it's frustrating. Whenever i start using parameters and design history a bit more seriously again (after trying it over and over again in the past) it get's frustrating quickly.

 

This time i'm trying to design quite a simple piece around and iPhone. After starting the design i brought in an iPhone 6 model from the gallery which has it's own design history. As i don't touch/change this model this shouldn't be a problem (well at least i thought). 

 

When i change the sketch of my own piece now (which was created before importing the other model) Fusion360 seems to drive crazy. Even more if i change some parameters. Maybe the problem is that i have moved my own model (including the sketch) a bit in between but there's a total chaos between the old and the new position of the sketch and the imported model gets moved around the scene "by random" or placed on it's original position after import.

 

The main problem with all this behaviour is that it is not comprehensible - at least for me. I really have no clue why things are happening. As great as parametric modelling could theoretically be and as great as it looks in your example videos, at least for me in real life it quickly gets frustrating over and over again. Most likely that's due to my missing knowledge of things but i think for a good user experience this should at least be a little more intuitive or at least Fusion360 should communicate more with me to let me know whats happening.

---
Frank / @helmi

Established 1974. Internet addicted since 1994. Collector of Kudos.
0 Likes
2,985 Views
62 Replies
Replies (62)
Message 2 of 63

jeff_strater
Community Manager
Community Manager

It's hard to say what is going on without seeing the model.  If you'd be willing to share it, we could take a look.

 

There are definitely some tricks to parametric modeling that can help, such as locking down degrees of freedom.  While none of what goes on in a parametric compute is "random", some of the solving technologies that Fusion (and any parametric CAD product) use do allow unconstrained geometry to move in a variety of ways to solve the constraints.  For instance, if you have two lines in a sketch, and set them parallel, all that you are guaranteeing is that those two lines are parallel.  There are an infinite number of solutions that satsify that one constraint.  And, with just that one constraint, you are telling Fusion nothing about the endpoints of the lines.  So, either line can change length and still satisfy that one constraint.  However, if you add dimensions to the lines describing their length, how far apart the lines should be from each other, what angle from the X axis one of the lines is, and lock down one endpoint of each line, then there is only a single valid solution.  This makes for a lot less unexpected behavior on recompute.

 

Second, it is important to understand dependencies.  If you create a component, then you sketch on a planar face of that component, you have created a dependency to not only that component, but the feature that generated that particular face.  If, in that sketch, you dimension to an edge of that component, that is another relationship, this time to a specific edge.  This is fine, and necessary, but then, when you make a change to that face or that edge of that component, the sketch and geometry in that sketch will react to it.  Mostly that works fine.  But, if you make a change that, say, removes the projected edge entirely from the other component, then you have a problem, because the dependency will be broken.  Fusion tries to react to that as best as possible.  In this case, it will keep the projected edge geometry in the sketch, at its former location, as "fixed" geometry (and give you a warning).  But, it is no longer associated with the other component, so it cannot react when that component is moved or changed.

 

Anyway, if you would like to share the model, and maybe a screencast of the behavior you are seeing, we could offer some specific help.

 

Jeff Strater (Fusion development)

 


Jeff Strater
Engineering Director
0 Likes
Message 3 of 63

Helmi74
Collaborator
Collaborator
Jeff, thanks for stepping in.

Of course all of what you said is true and at least for the not top-notch experienced users like I am one of some of the points get forgotten here and there. A lot of my opening post just was frustration. After dropping that frustration i could at least help myself with some of the problems by trying around a bit more and others just could be ignored (or designed new from the ground up) to keep things going.

Maybe i should just collect more experiences with parametric design but that thought mostly only lasts until the next frustration.

After all it could be helpful if we would have more video content demonstrating the features and (even more) the problematic edge cases where problems could happen and how to work around them or avoid them. I think that most of the problems that happen to unexperienced users are even more problematic because these users have no clue what they did wrong and that it may be due to many degrees of freedom for an object or missing constraints.
---
Frank / @helmi

Established 1974. Internet addicted since 1994. Collector of Kudos.
0 Likes
Message 4 of 63

Anonymous
Not applicable

Just from my experience, one thing I've seen but haven't really used myself is being able to select a series of things in the timeline (holding down Shift), such as the whole cluster from the inserted object, right click and say Convert to DM Feature (i.e. direct modeling feature).  That removes the parametric nature of that stuff if that might help (from what I remember depending on the type of the things in the timeline, that option will not always be visible). 

Yet another thing I've seen but haven't tried is right clicking on the component in the browser and selecting Rigid Group.  Just trying it now, it looks to me like there needs to be subcomponents in that component for that feature to be useful. 

Good luck!

Jesse

0 Likes
Message 5 of 63

schneik-adsk
Community Manager
Community Manager
If you like you can invite me to the design and I can help provide some tips.
My email is kevin dot schneider at autodesk dot com.
Kevin Schneider
0 Likes
Message 6 of 63

jamie.q.white
Advocate
Advocate

I've had the same experience. Parametric modeling sounds great in theory, but in practice it hasn't gone so well.  I usually leave it turned off. 

 

-jamie

0 Likes
Message 7 of 63

kjellhar
Advocate
Advocate

I also find the parametric modelling frustrating at times, but turning it off usually imposes too many restrictions for me when it comes to edit the parts. 

 

As far as I can tell, my main problem with the parametric modelling happens when the time line gets very wrong. No matter how well you structure your design, there will be a lot of cross linked dependencies which are very hard (impossible??) to spot. So when you go back in your timeline to fix stuff, all sorts of funny stuff may happen to your model.

 

So, what do I do. Well, no golden bullet, but I try really hard to maintain a strict structure to my design (Hierarchy and dependencies). By putting the sketches that I use to generate geometries together with the part in question, and minimize the number of dependencies between parts as much as possible, I am able to work with pretty long timelines. But given enough time, it allways jumps up and bites me in the end. Then I have to do whatever works, which usually messes up all my good structure.

 

I really hope the June upgrade will make this better. If I remember right, this release will include cross referencing of components to create assemblies. That way you can separate the various parts, which will keep the timeline more manageable. 

 

Kjell

Micro electronics expert, CAD/CAM enthusiast
Message 8 of 63

jeff_strater
Community Manager
Community Manager

@kjellhar:  This is a nice summary.  Thanks for adding to the discussion.

 

I think you have hit the nail on the head.  The key to making parametrics work for you is the relationships.  Understanding the relationships, and planning them out to some extent, can make your life a whole lot easier.  The more of these you have, the more chance that an edit will break one, which leads to the "going all wrong" behavior.

 

In Fusion's defense, I don't think that we are significantly worse than other parametric modelers on this front.  That is obviously a biased opinion (everyone thinks their own baby couldn't possibly be ugly...), but I think that comparable parametric design tools are only incrementally better or worse than Fusion.  You will get failures in any parametric modeler, if you make certain edits, or if you don't think through your design as you go.  That may not be a valid defense, but it does indicate that the problem is hard to fix.

 

One criticism that is definitely fair:  I think Fusion makes it too easy to create unstable references.  We talked about this a lot during the design phase of Fusion:  How can we "guide" users toward creating more stable references, and away from more brittle references?  We did a few things, but sadly, I don't think we moved the needle a whole lot.  It is still too easy to sketch on a face with filleted edges, and to dimension to those edges in the sketch, both of which are really not good ideas.

 

The kinds of things that I think of as I use any parametric modeler are:  Is doing this operation going to create a reference that I absolutely need?  For instance, when creating a sketch, do I need to sketch on a face, or can I sketch on an origin workplane, or even a workplane offset from an origin plane?  The latter are going to be way more stable than the former.  The same with sketch dimensions:  Can I project a stable work geometry into this sketch and dimension from that, or do I need to dimension to an edge?  If I need an edge, it is better to dimension to an un-filleted edge than to a filleted edge, so delay putting fillets on until you really need them.  Similarly, for a hollow design, deciding where to put the shell in the timeline can be an important difference between a design that is stable, and one that breaks easily - references to the unshelled faces are more stable than the shelled faces.  Body references are more stable than face/edge/vertex references.  Use Project with a Body filter, rather than projecting a bunch of edges.  Split Body is more stable than Split Faces.  And so on.  It would be good to collect a bunch of these recommendations and put them in a blog, the help system, the tutorials, etc.

 

I also think about:  What sorts of edits am I going to need to make to this design, and have I given myself the tools to make those easily?  I don't always fully constrain my sketch, especially if I know that it is for a small feature that I am unlikely to edit.  But, if I know that I am likely to edit this sketch a lot, I am much more careful to set up a scheme that is stable.  An example:  for a rectangle, you can dimension the length and width two ways:  by dimensioning one horizontal line and one vertical line, or by creating distance dimensions between pairs of lines.  Between pairs of lines is more stable - those will survive a sketch fillet, or removal of a horizontal constraint, where the first will not.  I also like to set up parameter "favorites" for dimensions and values that I know will change a lot.  And, before even exiting the sketch, I will "exercise" it a bit - change those parameters and make sure my sketch is well-behaved.

 

Also, your point about not having any tools to diagnose these relationships is a very good one.  For my designs, I tend to just know what kinds of relationships I tend to build, but if I ever look at someone else's design, I am often lost.  So, some diagnostic tools to help trace these relationships would be useful.  Hmmm....

 

Anyway, this is a good discussion.  I like these kinds of topics, and I almost always find some good suggestions and ideas in them.

 

Jeff

 


Jeff Strater
Engineering Director
Message 9 of 63

Anonymous
Not applicable

Thanks Jeff and Kjell, really great points. 

 

I'm just kind of thinking out loud here, but I wasn't aware of a certain ability until recently, that may possibly lead to a more stable workflow for some things (haven't really tried it enough to know for sure).  It's possible to make various bodies (and/or body copy-pastes of one original controlling "master" body/sketch), put each into a separate component so that can then make proper rigid joints between them all, and finally combine them (with the "tool" bodies moving into the component that is chosen as "target") such that fillets and what not can be performed between them.  After all that, the joints remain, so long as the now empty "tool body" components are kept.  With this ability described above, I suspect in some situations the joints may be more stable and traceable than defining onto faces, etc.  A combination is of course possible of "combined joints" as above and the method of defining sketches onto existing bodies and what not. 

 

Jesse

0 Likes
Message 10 of 63

carloquinonez
Advocate
Advocate

Regarding the "ghost" reference you're left with if you break a dependency, it would be great if Fusion show the old, broken reference while you picked the new reference. CATIA did this, and it made fixing broken feature trees (errr... design histories) 🙂 a lot easier.


-CQ
0 Likes
Message 11 of 63

daniel_lyall
Mentor
Mentor

one thing I do is I remove a lot of the Constraints and get as much as I can on one sketch, when I have put the dementions in I add back the constraints hit compute all and if everything still works and has not gone mad I do a save as so I have a back up of that part then carry on with the next bit its a bit more work but it can save time in the end.


Win10 pro | 16 GB ram | 4 GB graphics Quadro K2200 | Intel(R) 8Xeon(R) CPU E5-1620 v3 @ 3.50GHz 3.50 GHz

Daniel Lyall
The Big Boss
Mach3 User
My Websight, Daniels Wheelchair Customisations.
Facebook | Twitter | LinkedIn

Message 12 of 63

kjellhar
Advocate
Advocate

@jeff_strater

I don't doubt that this is difficult to implement, and I'm sure Fusion is no worse than the others (maybe just different), but it's the only parametric CAD I have tried.

 

A well structured design will help a lot, but the Fusion360 interface kind if invites to a very ad-hoc approach, which I guess is the way most people tend to use it. So, this makes me think that the only lasting way to minimize frustration would be to add the right kind of automation and diagnostics tools (whatever they may be), and not rely on the user being disciplined.

 

For me, there are three things that would help a lot:

 

1. Make references more obvious so I can easily see what affects what. Not only in the timeline but also in the geometry

2. Give me a solid way to remove the reference in two ways.

     a)  Unreference but keep the geometry as it is

     b)  Unreference and recalculate the geometry

3. A good way to clean up and remove broken references

 

I kind of think part of this already exists, but it's a bit opaque to me right now.

 

Cheers,

Kjell

Micro electronics expert, CAD/CAM enthusiast
0 Likes
Message 13 of 63

cekuhnen
Mentor
Mentor

I have to agree here with Jeff.

 

The fact simply is the more complex a model is with all those features the more complex the representation of that paramatric design tree will be.

 

So you as a user have to develop a repetative workflow to make it easier to keep an overview.

 

Here for example is OnShape - a web clone of SolidWorks.

Right is the part, left is the design tree with all features listed in the sequence order they were added, lower left are all the parts.

Screen Shot 2015-06-17 at 8.59.13 AM.png

 

I really think the process you use is key here - obviously one also needs to know what is bad and good practice and what will work and not.

 

So for example if you want to build a bumper for a phone - create components first and in the first component I load a iPhone reference volume

and in the second component I only work the bumper.

Screen Shot 2015-06-17 at 10.04.54 AM.png

 

The components in this case then can trim down the features in the timeline because only features applied to that component will be visible

Screen Shot 2015-06-17 at 10.09.37 AM.png

 

thats a great way to keep an overview.

 

 

That said I think the timeline idea is pretty great but some other or further visual organization tools could be useful like break points similar to groups or so to enable me as a user to quickly sort features and see where they do what on what object. But the problem here is I can add one feature like a fillet and let that fillet work on edges of many objects.

 

That is why having a workflow disciplin is key:

first all components

then all sketches

then all hard edge surfaces

at the end do fillets at once

... as an example

 

At the end parametric design has its ups but also its downs and it is not key to a better experience by default.

The timeline is pretty nice because you can also move parts around but when you associate features to different bodies you need to keep in mind that you cannot

for example move a feature before an object was created and such. With experience I think foreseeing those bottlenecks will be easy.

 

Fact is also with Fusion you will have to do some explorative modeling before you get down to making the finale model.

 

 

 

My Personal preference are actally node layouts like in Grasshoppe:

 

CustomBakeForPanelingTools.png

 

 The main advantage of them via Fusion or SolidWorks is:

1. You can see the flow of all parts at once nicely

2. You can reuse the same command / data like create one number field to drive many fillets at once.

 

The downside is with very complex nodes well it can get messy

tumblr_ndjplaY9F91u0lorwo1_1280.jpg

 

But I feel the component approach is a great way to focus on object related features only.

And for my taste I like the timeline more then the way how SolidWorks or OnShape/Inventor appraoch the design tree.

 

 

Maybe what can be confusing in Fusion is the timeline beccause that build parts.

In Alias or SolidThinking you just draw curves when ever you want, add surfacing commands when you want and work on a per object basis.

 

That for me makes it easier to deal with the design and all the objects.

But then you cannot add a fillet feature and select edges from many objects like you can do in Fusion.

 

So it is like left pocket right pocket.

Claas Kuhnen

Faculty Industrial Design – Wayne State Universit

Chair Interior Design – Wayne State University

Owner studioKuhnen – product : interface : design

Message 14 of 63

jeff_strater
Community Manager
Community Manager

Regarding those "ghost" images that you see when a dependency fails:  This was our attempt at improving the stability of compute.  In most other parametric systems, when a dependency fails, any downstream feature from that point on that has dependencies to the failure will also fail.

 

So, when we built Fusion we distinguished two kinds of reference:  geometry and topology.  A topology reference is one that actually needs the item selected.  For example, for Fillet, you select an edge.  If that edge is missing, the Fillet cannot compute, no matter what.  You will get a red failure in these cases.  However, if you create a work axis from a linear edge, that work axis does not need the edge (in the sense that an edge has two adjacent faces), all it really needs is the geometry of that edge (a line).  So, a work axis creates a geometry reference.  Geometry references cache their geometry, so that the consuming feature can continue to compute even if the reference fails.  You will get a yellow warning in these cases.  These geometry caches are the "ghosts" that you see.

 

However, the jury is out as to whether this approach is really effective or not.  This does, indeed, allow downstream features to compute in many cases.  Whether that compute is useful depends on a lot of factors.  Sometimes I find it very useful, other times, it causes features to compute in the middle of nowhere, which is not particularly useful, IMO.  Anyway, we continue to try to make this experience better.

 

One topic that has come up frequently is better tools to "repair" broken references.  Things like showing the failed reference, and some way to easily fix it.  Sometimes this is pretty easy - for features, just editing the feature and re-selecting the profile or edge that you want.  It is less easy for projected edges in a sketch, because just re-projecting an edge only fixes the sketch - downstream references to geometry built from that sketch curve will then fail, because it is a "different" sketch curve.  We do need better tools for this kind of thing.

 

Jeff

 

 


Jeff Strater
Engineering Director
Message 15 of 63

Anonymous
Not applicable

Cekuhnen, great points about using components, including how it allows condensing of the timeline.  And how you mention making components before sketches, so that when a sketch goes into a component, and a component move is later performed, the sketch will move right along with it, which is nice.  And now that I realized different components can be combined like I mentioned so that fillets, shelling, thickening, etc. can all be performed at once on different components that are combined together, it's really the way to go.

Jesse

0 Likes
Message 16 of 63

kjellhar
Advocate
Advocate

@cekuhnen

You got a lot of very interesting points there, many of which were new to me. 

 

Your workflow is more or less the same I have landed on. I usually do:

 

1 (some times). A top level sketch to lay out the major features and get a feel for the space it will occupy. I never use this sketch for references, I only use it for eyeballing.

2. Create the necessary components for all the discrete parts in the assembly. (Still haven't figures out what to do with fasteners and other small library parts)

3. Start sketching inside the components.

4. Create objects from the sketches.

5. Finishing touch on each component (like fillets and so on)

6. Joints

 

The problem arrises when one component depends on the geometry of several other compoents, which again depends on others and so on. The dependensies gets so complex that it's almost impossible to keep track. Also, when you need to do adjustments after joining compnents, stuff will jump around when you go back in time.

 

In case anyone wonders, I am talking about assemblies with 20-30 components and more.

 

Cheers,

Kjell

Micro electronics expert, CAD/CAM enthusiast
0 Likes
Message 17 of 63

carloquinonez
Advocate
Advocate
You shared a lot of great suggestions and I couldn’t agree with you more!

I just wish I had them written down so clearly before I started working on this project.

http://forums.autodesk.com/t5/design-differently/model-of-the-month-may/ba-p/5653817

Using all the patterns (c+r) is what let me build that model. I’ve got new 4Ghz machine and it still takes as long as twenty minutes to make changes in the some parts of the tree.

-CQ
0 Likes
Message 18 of 63

cekuhnen
Mentor
Mentor

@kjellhar

 

Yeah that is why I said left pocket right pocket - I am not sure if there is one ueber awesome CAD app or workflow - each process has also its downside.

 

In terms of freedom I can work better and quicker with less work in Alias than Fusion but then certain solid tasks are impossible in Fusion and where in Alias

I could have to undo untrim retrim work in Fusion I could re arrange features in the timeline and update their inputs just with few mouse clicks.

 

Claas Kuhnen

Faculty Industrial Design – Wayne State Universit

Chair Interior Design – Wayne State University

Owner studioKuhnen – product : interface : design

0 Likes
Message 19 of 63

daniel_lyall
Mentor
Mentor

thats a long time for things to change my laptop is a lot less than that but faster. 

 

one thing I have seen with peoples workstation computers is they get a machine to do the drawing with but they are slow at doing graphic stuff even with a big work station graphic`s card what cost a lot of money. when I get a new computer I get one`s that are set up for gameing they can have simaller specks to a work station computer and cost less and are a lot faster.

 

one thing I also do if there is a need for lots of parts I will play around with the first part then open a new page and start the drawing again of the first part fixing the mistakes as I re draw the what ever it is then when it finished save as then in the play file add the second part when I have it looking good I goto the second page re draw the part in there if it`s all good save as, then so on. it gives me a play area (what does not matter if it goes mad) the what ever I am drawing and a back up that is one drawing back so if I am in the 4th part of a drawing and it goes mad I can delete it grab the save as file save as again then do the 4th part again and not do what made it go bad I end up with a file that`s good to go then just delet everything else what is not needed.

 

 I do a simaller work flow to Claas Kuhnen and jjurban55 


Win10 pro | 16 GB ram | 4 GB graphics Quadro K2200 | Intel(R) 8Xeon(R) CPU E5-1620 v3 @ 3.50GHz 3.50 GHz

Daniel Lyall
The Big Boss
Mach3 User
My Websight, Daniels Wheelchair Customisations.
Facebook | Twitter | LinkedIn

0 Likes
Message 20 of 63

Anonymous
Not applicable

Kjellhar wrote: The problem arises when one component depends on the geometry of several other components, which again depends on others and so on. The dependencies gets so complex that it's almost impossible to keep track. Also, when you need to do adjustments after joining components, stuff will jump around when you go back in time.

 

Regarding the second issue, yes I remember now the snapshot and joint temporal position in timeline issue, actually forgot about that.  Regarding that issue, it's taken awhile for me to get fully acquainted with the little nuances of Fusion, but I think largely because of this thread I found finally a work flow I fell in love with 😉 that I'm sure is what a lot of folks do already.  That is:

 

1) Define a new sketch on existing geometry whenever parametric updating of position etc. is desired from changes of the existing geometry, and also to prevent stuff "jumping around" from edits in different timeline positions.  But get in habit of first always creating and activating a new component, so that the sketch and subsequent body(s) will go into its respective component.  This allows for among other things nice timeline condensing based on which component is activated.  It really helps to turn on Inspect>Color Cycling for ease of component identification. Alternatively, uniquely naming the components helps with identification, even just front, front-right, etc. corresponding to view cube.  

 

2) For duplicate parts, create copy(s) of the original component such that they are all linked (i.e. one changes they all change).  The pasted component(s)'s positions can be defined to existing geometry via rigid joints.  It is true that these subsequent pasted components will revert position or outright disappear when editing prior timeline features, but the original component will stay in place at least.  

 

3) For performing fillets, shelling, etc. of the multiple components as one (or just reducing components as described below), they can indeed be combined first.  If there are two or more paste linked components, it is important to choose these as tools for combining, with an unlinked component being the target, otherwise will get weird behavior (multiples of the combined component).  The resulting combined body will go into the target component.  The components now potentially left empty of bodies can be soft deleted if desired for browser simplification (although corresponding joints will disappear, they are still there/functional, and will reappear if corresponding component(s) brought back into browser via deleting the deletion event(s) 😉 in the timeline).  If need to modify a sketch of one of these soft deleted components, can simply scrub back timeline to before the deletion events.  Allowing sketch relocations between components would be nice alternative.  But a nice side benefit of this timeline scrubbing of deleted "body barren components" is that the scrubbing easily turns on or off visibility of all those sketches in different soft deleted components at once. 

 

Regarding the first issue of keeping track of dependencies, one possibility is to name components and/or sketches based on their dependencies with other components and/or sketches (naming sketches might be going too far).  So one component might be called depC3 or depC3S2S4, meaning dependent on/has projections from Component 3's sketches 2 and 4).  It may be worth the pain with that many components that you're juggling. 

 

Thanks for the great discussion.

Jesse

0 Likes