Best practices for robust parametric designs

Best practices for robust parametric designs

R4SMEs
Advocate Advocate
4,325 Views
47 Replies
Message 1 of 48

Best practices for robust parametric designs

R4SMEs
Advocate
Advocate

I have a chair design which is based on a complete set of parameters, i.e., there are no "magic numbers" entered in any sketches or extrusions, but rather every variable is defined as a user parameter.

 

Ideally, I should like to be able to change any parameter by a reasonable amount to fine-tune the appearance of the chair without the complications of yellow warnings resulting.


I developed the design carefully, at each step doing what seemed reasonable to achieve a robust model.

I having started testing this process by adding amounts to one parameter at a time.
However, I find that yellow warnings pop up after I change many/ most of the individual parameters.

-------------------------------
The following is the result of changing just 2 of my parameters (one at a time):

depthAtBottom
Adding e.g., + 500mm introduces 2 yellow warnings!
"Bottom of Side apron" sketch Lost projections

"Top of tenons" sketch Lost projections

----------------
Adding only +10mm (to the original value of 482mm) results in different warnings.

Warning: Cut right mortise clearance for Front apron tenon
<b>1 Reference Failures</b><br/>The target body is lost, try editing this feature to reselect target body.

Warning: Cut left mortise clearance
<b>1 Reference Failures</b><br/>The target body is lost, try editing this feature to reselect target body.

-------------------------------
height
Adding e.g., + 200mm introduces 4 yellow warnings!

Warning: Plane through upper and lower edges of Rear apron end
<b>1 Reference Failures</b><br/>The model is using cached geometry to solve. Please reselect reference geometry for failed features in the timeline.

Warning: Tenon on plane at Rear apron end after its cut
Project2

Warning: Cushion sides at ply edge
<b>1 Reference Failures</b><br/>The profile reference is lost, try editing this the feature to reselect the lost profile.

Error: Cushion corner fillets
Compute Failed

-------------------------------
No doubt I can fix each of those issues but it is unpleasant to have to do so.
Subsequently, I may want to go back/ change to a different value for that same parameter and then I no doubt need to yet again fix the resulting same or different issues 😞

 

Since there are 50 or more parameters in my parameter-driven model, the process of fixing all the issues for different possible permutations of the parameters will be very tedious 😞

 

I appreciate that specific issues will arise for each design.
However, I am thinking that it would be good to have a checklist of "Best practices to ensure robustness of parametric designs".
This is not the first design for which I have experienced this difficulty and won't be the last!

 

I am aware of the BORN approach which appears to be one of the best practices.
I have tried to use this where possible but many elements of this chair design are not parallel to the main coordinate system.
Consequently, the design involves construction planes, projections of drawings or parts of bodies, etc. into other drawings, etc.

 

Questions arise when doing projections - for example, should I best project from another drawing or from an edge/ vertex of a body that was generated from that drawing?

 

In summary, I should much appreciate ideas or links to ideas relating to "Best practices for robust parametric designs" or "Best practices to avoid yellow warnings" ...

0 Likes
4,326 Views
47 Replies
Replies (47)
Message 2 of 48

g-andresen
Consultant
Consultant

Hi Douglas,
Unfortunately, it is not possible to find any indications what causes the warnings without accompanying pictures.
Please create a screencast with comments, if possible for individual warnings.

Please share the critical elements of your design.

 

günther

0 Likes
Message 3 of 48

R4SMEs
Advocate
Advocate

Hello Günther

At this stage, I am looking for generalised "best practice" guidelines to avoid yellow warnings being generated in the first place.

 

I change 2 of the 50+ parameters and received various warnings, and different warnings may pop-up depending on the amount of a change.


As I test changing the other 48+ parameters, I expect that in most/ many cases there will be similar and also other warning issues 🙂
A screencast would likely become very long and boring!!

 

The warnings indicate "lost projections", "lost references", ...
So, the question is really how best to avoid situations that will subsequently result in such "lost ..."?!

 

I doubt if anybody will be interested in wading through each issue on a post-mortem basis.
I can probably re-link lost projections fairly easily myself ... but that leaves the question open as to why things became "lost ..." and how I should have better developed a more robust model in the first place.

 

If anybody is particular interested in getting into the gory details of what happens when a particular parameter is changed by a particular amount,
the full model has been provided as a link to another of my recent postings, refer:
https://forums.autodesk.com/t5/fusion-360-design-validate/spurious-data-in-parameters-table/td-p/910...

 

I should mention that a lot of the parameters are unused - I have tried to include something like ...UNUSED... in the name of such parameters.
The reason that such parameters remain in the table is that they are dimensions given in the publication article on which my Fusion design is based
- the article has numerous redundant and, in some cases, inconsistent dimensional data.


During development of the model, I developed my own set of the minimum number of parameters to fully define the chair.


I have the job in progress of adjusting all the variables to achieve a good-looking chair.

 

As others have pointed out in other threads, it would be good if Fusion could grey-out unused parameters or otherwise indicate which are being used/ not used!

 

Doug

0 Likes
Message 4 of 48

jeff_strater
Community Manager
Community Manager

@R4SMEs - unfortunately, I don't have time for a good, thorough, response right now, and I'm leaving on a trip later this morning.  But, I did want to acknowledge that your question is a good one.  The short answer is:  there is probably not a good, simple answer to your question.  A lot of it will be design-specific, and requires you to give some thought up front to things like:  "which parameters am I likely to want to change, and what are reasonable values for those parameters?".  But, there are some conventions that should help.   You've focused your question on the essential area of concern:  The various Project functions in sketch.  If I were to guess, I'd bet that 90% of all warnings in models (yellow features) are caused by various Project failures.  I did a class at AU last year that touched on some of these topics.  I'll try to dig up a reference to that handout and tack it on in this thread.  The one rule of thumb that I will put here now is:  Not all Projections are equal in terms of stability.  In decreasing order of stability, you should project:

 

  1. origin work geometry.  These will NEVER fail
  2. work geometry that is based only on origin work geometry.  These will only fail if you delete them
  3. other sketch geometry.  Again, should only fail if you delete them
  4. bodies.  A body reference is also fairly stable, although be careful, because there is an indirect fragility here - the sequence of curves can change, so any reference to those curves (e.g. dimensions, constraints) may be fragile
  5. faces.  A face is relatively stable, but can change with upstream changes
  6. edges.  An edge references is, internally, two face references.  Doubling your chance of failure
  7. vertices.  A vertex reference is, internally 3 (sometimes more) face reference.  Same as above

The other advice I would give, and I know it is a little too late for your design is:  test as you go.  A lot.  Once you've identified the parameters you are likely to change, and valid ranges for those, then at each step in the design, I like to try varying those across the range.  That way, you can catch some of these points of fragility as you just create them, so you can more easily go back and look for some other way to get the stability you want, because that sketch or feature is fresh in your mind.  It's much harder, later on, to go back and analyze a failure, and fix it.

 

A corollary to that that I like is "name everything".  This is the way I like to help remind myself what a given feature or sketch is supposed to be doing.  Unfortunately, Fusion does not have any per-sketch or per-feature commenting capability, so I abuse the name to attempt to achieve that.  It helps me, but that's just my personal belief.

 

More later if I have time

 


Jeff Strater
Engineering Director
Message 5 of 48

wersy
Mentor
Mentor

@jeff_strater  schrieb:

A corollary to that that I like is "name everything".  This is the way I like to help remind myself what a given feature or sketch is supposed to be doing. 


How true that is. I can only confirm that.
Again and again I get angry that I didn't take the time to name everything.
If something goes wrong you need much more time to find out what it was for.

0 Likes
Message 6 of 48

laughingcreek
Mentor
Mentor

adding to what jeff said-I try to have skeleton sketches in the top level that define the over all scope of a project.  all sketches in sub components refer back to these sketches directly.  avoid building a chain of references.  avoid referencing between sub components.  any sketch that needs to be referenced  by more than one sub component should exist at the next higher level. As an example, your rear leg  sketches are referenced by your apron sketches, which in turn are referenced by the front leg sketches.  this is a house of cards.  if you want a stable structure you want to build low and wide, not tall and narrow. 

Message 7 of 48

R4SMEs
Advocate
Advocate
Many thanks to @laughingcreek for your ideas!
 
I am sure that there is much wisdom in what you write but I am somewhat unclear as to how the ideas could be actually implemented in this design.
 
Yes, the "Rear leg" was the starting point, from which I developed the "Side apron" (being the side of the trapezoidal-shaped chair seat frame, which I have generalised to having upper and lower faces which are not necessarily horizontal) connected to the "Rear leg".
Having done that "Side apron", I added the "Front leg", the top of which obviously needs to be aligned to the bottom of the "Side apron" and its bottom located at ground level.
 
In that sense, I accept that - as you write - I have created a "House of cards", whereby the "Front leg" is dependant on the "Side apron" and, in turn, the "Side apron" is dependant on the "Rear leg".
 
My approach seemed logical in that having specified the "Rear leg", the trapezoidal (in plan view) "Side rail" could be done and, thereafter, a "Front leg" developed to support the "Side rail" at its front.
 
The "Rear apron" and "Front apron" serve to interconnect, respectively, the two rear legs and the two "Side aprons" so there is one less level in the "House of cards".

However, the "Stretcher" connects between the two "Front legs" so it has an additional level in the "House of cards".
 
If I understand you correctly, you are essentially advising that each of the "Rear leg", "Side apron" and "Front leg" should essentially be developed separately?

I am unclear as to how to actually realise such a workflow since each of these components is interdependent on the others, as I have indicated.
In other words, how should I go about separately designing elegant "Rear leg", "Side apron" and "Front leg" components and then achieve their integration?!
 
The chair is based on a design from a book and I have endeavoured to produce a generalised design in accordance with the specific design from the article.
 
At the outset of this endeavour, I made a previous posting entitled "Defining components based on knowledge of their Cartesian plane projections by "reverse projection"?", refer:
https://forums.autodesk.com/t5/fusion-360-design-validate/defining-components-based-on-knowledge-of-...
 
This illustrates the chair and I was seeking advice as to the recommended way to go about such a design in which drawings for front, side and top views were available.
Unfortunately, there was nobody interested in that posting 😞
0 Likes
Message 8 of 48

GRSnyder
Collaborator
Collaborator

@R4SMEs wrote: I am unclear as to how to actually realise such a workflow since each of these components is interdependent on the others, as I have indicated. In other words, how should I go about separately designing elegant "Rear leg", "Side apron" and "Front leg" components and then achieve their integration?!
At the outset of this endeavour, I made a previous posting entitled "Defining components based on knowledge of their Cartesian plane projections by "reverse projection"?", refer:
https://forums.autodesk.com/t5/fusion-360-design-validate/defining-components-based-on-knowledge-of-...

It's hard to answer your question without more specific knowledge of how you're currently trying to structure the model. If you can post your model or an abstracted subset, you'd be more likely to receive useful suggestions.

 

I looked over the previous post linked above and I'm afraid it's not clear to me exactly what you were asking. I hope this isn't insultingly basic, but I wonder if you have fully internalized two important points: 1) Components needn't share coordinate systems, and 2) Cartesian planes are convenient in that they're always ready to hand, but there's nothing otherwise special about them. Fusion 360 deals just as well with tilted planes and odd angles as with orthogonal geometry.

 

Most of those chair parts have at least one planar side. Just put that side up against one of the Cartesian planes in the component's own coordinate system (for convenience) and worry about getting them properly angled and aligned at the assembly/joint stage.

0 Likes
Message 9 of 48

laughingcreek
Mentor
Mentor

in post 3 he referenced another thread.  the model is posted there.

0 Likes
Message 10 of 48

lichtzeichenanlage
Advisor
Advisor

This is an interesting one. I've to check if I can get used to it. 

 


@laughingcreek wrote:

adding to what jeff said-I try to have skeleton sketches in the top level that define the over all scope of a project.  all sketches in sub components refer back to these sketches directly.  avoid building a chain of references.  


 

0 Likes
Message 11 of 48

R4SMEs
Advocate
Advocate
As previously discussed, I am investigating the effect of changing value of the numerous parameters in my developed chair model and finding to my dismay that the model is very non-robust to changes.
 
I have also noticed the following effect which should be considered as a Fusion 360 bug:
[Probably this should be a separate thread in the "Bugs" forum or wherever? 
I include it here since it is also relevant to "robutness of designs" which is the subject of my original posting.]
 
The sequence of:
a) Changing a parameter value,
b) Simply visually looking at the effect of that change/ and/ or opening the error messages box,
i.e., doing nothing to try to attempt to fix the error(s) (not opening a sketch or opening a feature for possible editing).
c) Changing the parameter back to its original value.
 
Throughout the sequence (a), (b), (c) the parameters window remained open.
 
Following the above described sequence of events, one could reasonably assume that the model would be unchanged.
However, I sometimes find that my chair becomes a mess.
e.g., the front legs have moved rearwards close to the rear legs 😞
AfterRevertingBackFromPArameterChangeV104.png
 
In the particular case I am documenting, there were no errors seen after step (c) - but the chair was visually messed up as I have described and illustrated!
[For change of a different parameter, there may be remaining yellow warnings after reverting back to the original value of the parameter and the appearance may or may not be messed up.]
 
In effect, Fusion has, by itself, changed something in the model, i.e., after step (c), Fusion considers one or more sketch or feature to be somehow defined differently from what the designer had done.
In the particular instance that I describe, there are no yellow or red warnings so it would not be easy to find what Fusion has by itself changed.
I had to revert back to an earlier version, in the process losing a little of my recent work.
 
In other words, Fusion should not change a person's design by itself!
0 Likes
Message 12 of 48

g-andresen
Consultant
Consultant

Hi,


In other words, Fusion should not change a person's design by itself!

If I understand this article correctly, you are sure that fusion itself changes your construction.
Did you ever think that your approach favored or even provoked one or the other effect?

 

günther

0 Likes
Message 13 of 48

R4SMEs
Advocate
Advocate
Hello,
From a software perspective, a design involves a data set, i.e., comprising the geometrical constructions (entities of sketches, extrusions, etc.) and their sequence in a timeline, together with numerical parameters.
 
Fusion is essentially a set of complex algorithms which take the data set as input and produce outputs (visualisations, drawings, CAM tool paths, etc.).
 
It is reasonable to expect that, for the same data set, the same output should result!
 
As a much simpler example, if someone wrote a software algorithm to produce the square root of a number n, and 16 is entered to test that algorithm, one would expect the result of 4 and be happy that the algorithm was correct.
If you ran the same algorithm again with the same input data of 16 and this time obtained an output of 5, obviously one would have concerns about the integrity of the algorithm, i.e., it would be considered to be flawed!
 
If I change one of the Fusion 360 parameters from m to n and then change it back from n to m, it seems reasonable to consider that the Fusion design (the data set) is unchanged and consequently the outputs of Fusion 360 (such as the screen visualisation) should also be unchanged.
 
Running "Compute All" does not resolve the issue.
One would expect that "Compute All" would execute processing of the algorithms in a well-defined sequence based on a refreshing process.
 
You wrote:
> Did you ever think that your approach favored or even provoked one or the other effect?
 
This seems a bit like saying that the (albeit much simpler) square root algorithm should have been tested with 17 instead of 16.
 
No doubt, the specifics of the data set have an influence as to how Fusion processes the data with its complex set of algorithms.
But am I to blame for Fusion producing different results from the same data set?!
0 Likes
Message 14 of 48

davebYYPCU
Consultant
Consultant

All reasonable assumptions there, but Fusion has unforeseen bugs.  A lot of time is dedicated to finding the root causes of those bugs.  There are times when the solver gets numerous correct answers and picks one.

 

So then it becomes the designer's assistance that identifies the area that fails.  

I downloaded version 100, there are so many user parameters, and you say you don't use some of them.

 

I added 100 mm to DepthatBottom, got 2 sketches to break, but I would be more concerned about the body that didn't update. (500mm may be worse didn't try that.)

 

d306.PNG

Using fix constraints will do it, 

d306fxd.PNG

 

Might help.....

 

0 Likes
Message 15 of 48

R4SMEs
Advocate
Advocate
@davebYYPCU  Thanks for your comments.
 
I shall further consider the details of your proposed fix relating to robustness for a particular parameter being changed.
 
However, my immediate reaction on seeing that green fixed line in the sketch is that surely that will cause problems when changing other parameters?!
0 Likes
Message 16 of 48

davebYYPCU
Consultant
Consultant

Not just the line in that sketch is green, to the rear are some points, too.

In my testing, it was strange to see the first Extrude in that component not update.

Edit Feature, do nothing but hit ok, did fix it, whilst the Timeline was rolled back.

 

your earlier point about data sets, does not compute, 

if you change a parameter the data set is no longer the same,

and in this model broke it, (do no editing is fine,)

changing the broken data set to contain the original parameter, without fixing the damage, 

is no reason to be alarmed, however, Undo, Undo until restoring the stable data set works as expected.

 

What other changes were able to break the model?  The answer will be where to address the construction edits for stability.

 

Might help....

 

 

 

 

 

0 Likes
Message 17 of 48

Thegreatrandino
Advocate
Advocate

A few thought

Check out the masters of assembies class video in autodesk university. It was a HUGE help to me

 

Joints!

 

As mentioned, create a skelton for the overall size (h w d) change those and your project will change 

You may want to draw a block  and have components jointed to that block so that when the block is changed the jointed component moves

 

Lastly im not sure its realistic to expect the entire model to regenerate based on a large set of parameters. Im sure it can be done but it would be z sh** ton of work

An example of Parametric means if i stretch a line in the model the corresponding 2d drawing is update.

0 Likes
Message 18 of 48

R4SMEs
Advocate
Advocate
Thanks to all for the various comments and ideas relating to "Best practices for robust parametric designs".
 
I probably need to completely redo my chair design to make it robust to changes of parameters.
However, I remain unclear as to how to go about this and what are actually the best practices/ approaches.
 
-------------------
Aspect/ question/ discussion topic A: ""Is a body better than a sketch projection"

@jeff_strater provided a useful list of the various types of projections in decreasing order of stability.
...
1) 2) and 3) Different variants of sketch geometry ...
4) Bodies
...
 
However, looking at other threads, others have apparently contradictory recommendations.
 
 
This thread discusses the relative merits of projecting from sketches, bodies, ...
[I am not sure if the content relates solely to that other subject being discussed or is considered as general-purpose "good practice" advice?!]
 
_start_other_thread_extracts:
...
MESSAGE 21 OF 28
TrippyLighting
Mentor TrippyLighting in reply to: Ranknuman85
‎02-13-2019 07:58 AM
Re: Loft error about point profiles
It's a bug that is easily avoided by using a better workflow. Work with surfaces!
Use surface edges instead of projected sketch entities whenever you can.
 
----
MESSAGE 24 OF 28
davebYYPCU
Mentor davebYYPCU in reply to: RankTrippyLighting
‎02-13-2019 11:38 AM
Re: Loft error about point profiles
I gotta say thanks for clearing that up, I was in @numan85 s camp, should be the same,
I also knew about the body better than sketch, didn’t know why, so had not made it a priority.
 
--------
MESSAGE 27 OF 28
numan85
Enthusiast numan85 in reply to: RankTrippyLighting
‎02-15-2019 10:34 AM
Re: Loft error about point profiles

I am trying to understand where "body better than sketch" is coming from? Is it a design principle? Is it a best practice? Does it apply everywhere? What are its limitations?
 
I have been through a few official fusion tutorials and AU talks and I have not seem this mentioned so I would like to understand a clear reason behind it.
...
end_other_thread_extracts
 
------------------------------------------
Aspect/ question/ discussion topic B: "multiple uses of the same parameter"
 
I am wondering how important it is to only use a parameter (or a dimension not defined as a parameter) only once?
 
If the same parameter (dimension) is reused in multiple sketches (or in a sketch and extrusion or whatever), then there seems to be a presumption that the mathematics of the "Fusion 360" algorithms would "precisely" use the duplicated parameter in exactly the same way/ with precisely the same rounding of calculations.
 
Rather than repeated use of a particular parameter, my thinking is that it is probably better to use a particular parameter only once in the overall model and use associated projections rather than a further use of the parameter.
 
In other words, to provide a crude example, let us assume that I design the "Rear leg", "Side apron", "Front leg", etc., each having their own origins and being effectively self-contained components independent of the others
(according to ideas which others have recommended as "good practice" in this thread).
 
If, for example, there is a parameter sideApronL (length of the side apron, i.e., length of the horizontal part connecting between the rear and front leg),
I could define the "Side apron" to have that length, based on an extrusion, for example.
 
If I now have a "top level" sketch which defines the relative locations of the front and rear legs, is it okay to reuse that parameter sideApronL in this extra sketch?
 
The question here is whether or not such reuse of the same parameter contributes towards "robustness" of a design or possibly has adverse effects further down the line?
 
In effect, I am sort of wondering here about whether using parameters (specific numbers) is worse or better than using projections to relate one thing to another?
 
------------
My associated thinking up to now has been that it is better to move components as a joint to a particular part of a body, rather than as a move of, in this example, by a distance of sideApronL
(which in mathematical terms, may not _exactly_ be the same as the length of the "Side apron" previously extruded by the length sideApronL.
 
------------------------------------------
Some reading this post may consider that I am splitting hairs, in effect, worrying about things such as whether 0 is the same as 0.0000001!
 
However, please appreciate that I have spent a lot of time very carefully developing the design of the chair using what I considered as being "reasonably good design practices".
[Since nobody seems to have clearly defined what are the actual "good practices", that was the best that I could do!]
Despite the time and effort spent on this design, the end result is highly unsatisfactory 😞
 
I was assuming that I could tweak each of the parameters of this fully parametric design with the objective of fine-tuning the variables to produce a pleasing particular design or a family of different designs for customised versions of the chair.

However, I find that, for many/ most of the parameters, a change results in one of more yellow warnings.
Consequently, the expected benefits of the parametric design have not been realised 😞
 
I intend to completely redo the design, starting from the beginning, in the endeavour to achieve a reasonably "robust design".
However, I remain rather unclear as to the "best practices" to achieve such a design.
 
Douglas
Message 19 of 48

laughingcreek
Mentor
Mentor

I've been meaning to make a model for you demonstrating the ideas I laid out earlier as pertains to your chair, but haven't have the time.  and right now I'm packing to go out of town for a week so I still don't.

as it pertains to part A of your question.  If @TrippyLighting says it, you can take it to the bank.  but he's not talking about the same thing there.  He's talking about surface modeling, and the difference in surface quality that results when working off edges vs. work from sketch lines projected from those edges. (I checked what he was saying the first time I read that advise.  the quality difference in some cases was astounding.)  He's not talking about originally drawn sketch entities.

 

I've attached an example I did for someone else that demonstrates the work flow I suggest.  this is much simpler than the your chair, but it's what i have time for right now. right click each of the sketches and "show dimensions".  then double click any dim and start making changes.  (not necessary to "edit sketch").

 

As pertains to robustness, I want to draw your attention to how the brace was made.  I took the extra step of defining planes to extrude the mitered ends of the board to (one of a dozen ways to approach this).  these are created from the sketch at the top level.  I could have just referenced the face of the leg.  would have been easier.  but then the brace would be dependent on the leg.   if the leg were to get messed up, or deleted, then the brace would break also.

 

also note you can delete (not just "remove", but actually delete any component, and nothing else breaks.)

 

 

Message 20 of 48

davebYYPCU
Consultant
Consultant

100% spot on.

 

@R4SMEs i think you have missed the point of parameter usage.  Your table of User Parameters was a nightmare to read and find stuff for me coming in cold.  Kudos that you made sensible comments.

 

I don’t know if you know, every dimension in the design, is stored as a parameter, by Fusion and sorted in groups, other than driven dimensions, each one is able to be referenced again, without any of your complimentary work.  I have not checked, but there is likely very few user parameters in the saw horse file.

 

I use User parameters for thickness, drill bits etc, change this once, the model updates all the instances of where I used it.  The difficulty is knowing where those changes are going and won’t break the model, as you construct the model.

 

Yes to change this or that and have the design perform is the end goal, and will be doable, so that would dictate a need for the skeleton top level sketches to refer to, for that aspect.

 

So yes one parameter used over and over for a purpose, quick example as it would suit this model.  The mortise and tenons, designed for a particular drill. If you break the drill and have another close to size, you can edit the parameter and the model won’t break.  In the model you dimension all the mortises and therefore the tenons update, with one parameter.  The flow on in stable models in Fusion is absolutely marvellous.

 

I still have not sorted a best way to do your design, it has complicating splays and angles. Maybe the devil in the detail was explained in the book article.

A centre line side view would be a good start, in conjunction with the front view, these 2 views have the most orthogonal detail to work from.

so far my thoughts are cross members, seat, then the side components, mirrored.

 

Might help....