Best practices for robust parametric designs

Best practices for robust parametric designs

R4SMEs
Advocate Advocate
4,442 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,443 Views
47 Replies
Replies (47)
Message 41 of 48

davebYYPCU
Consultant
Consultant

Arh, Yep, Parameters take a Zero, +ve or -ve value, but Parameter is not Dimension.  If you wish to use zero in a dimension, it errors out with red text.  Can you show me a dimension with a value less than zero, in your file?  I think you will find the code flips the measure anchor to always be positive.

 

Did you test what Fusion does, with your Indent set to Zero?, I did makes perfect sense now.

 

 

Since the extrusion was based on the parameter rearLegDetailAThickness which is set to 41.275 mm, I am baffled as to why there is that measurement of 41.446 mm.

 

That is not true, the value is normal geometry extension,   The extrusion is set to All.  

 

Might help.....

0 Likes
Message 42 of 48

R4SMEs
Advocate
Advocate
I documented what I had found when changing the value of the sideApronIndentAtRearLeg parameter in Message 38.
As I have explained, sometimes the results were as I had intended, i.e., the +3mm (original value) was changed to 0mm and then also to -3mm, resulting in display, respectively, of the side rail being inset relative to the rear leg/ flush with the leg/ protruding outwards (allowing for the side rail to be sanded flush ...).
However, sometimes weird things happened, including a +3mm showing as an outwards protrusion.

This weirdness could be related to other things having broken in the model - as we have been discussing it breaks (giving yellow warnings) for most of/ many of the parameters being changed.
 
I don't properly understand what you are saying ...
You wrote:
> Arh, Yep, Parameters take a Zero, +ve or -ve value, but Parameter is not Dimension.
 
... but I am talking about parameters such as sideApronIndentAtRearLeg which have the unit of mm in the parameters table.
 
You wrote:
> If you wish to use zero in a dimension, it errors out with red text.
 
I have never seen red text (at least not for this model).
I always define and change the value of parameters in the parameters table itself.
I recall that you wrote something about your changing of parameters within a sketch or something ...
I don't do changes that way or even know how to do in such a way.
 
You wrote:
> Can you show me a dimension with a value less than zero, in your file?
 
You just need to change the value of sideApronIndentAtRearLeg to -3mm in the parameters table to replicate what I have be doing and see for yourself what happens.
The result probably depends on things like which day of the week it is ... 😞
 
It was consistently okay when I first developed the model - I recall testing going back and forth several times between +3mm/ 0mm and -3mm and was pleased that the result was as hoped for.
It is only now after adding lots of other stuff and changing 'this and that' that the result may be indeterminate - sometimes working but sometimes not 😞
 
> Since the extrusion was based on the parameter rearLegDetailAThickness which is set to 41.275 mm, I am baffled as to why there is that measurement of 41.446 mm.
 
You wrote:
> That is not true, the value is normal geometry extension,
> The extrusion is set to All.
 
I don't understand what you are saying here.
As I recall (I am away from my Fusion PC as I write this), the sketch corresponds to one face of a rectangular piece of wood used for the leg, and I thought that, in using "To all", I had extruded through the thickness of the wood (which is rearLegDetailAThickness, which is set to 41.275 mm).
0 Likes
Message 43 of 48

davebYYPCU
Consultant
Consultant

Not sure I can explain it well enough, here goes....

Parameters - you have lots of them in the model, they are listed in the Change Parameters table as you know.  There parameters will accept positive, negative and Zero values.

Parameters are used right through out the model for all the things you use them for, that is not a problem.

 

Dimensions on the other hand, only exist in Sketches.  Add a dimension in a sketch to control size between the 2 specified objects.  The value entered can be a number or parameter.  The value registered for this dimension gets stored in the parameter table, as a Dxxxx number, until you alter that situation.

 

We should be on common ground so far.

now in Sketch mode adding a dimension to the sketch, in the value field, a zero is denied, is there and is red text, requires a number or dxxx or parameter name.  I had never needed to add such a zero dimension.  Red text is common for misspelled words as the input is created, when a legal value is accepted the text changes to black, and will be accepted.

 

Yes I did check the behaviour of the indent sketch, was an interesting revelation.

 

As for the Extrude all, that is the value you added to the extrusion dialogue, All.

 

The sketch and Dimension for 41.275, is for another location on the rear leg, has nothing to do with the leg extrusion, is a sketch dimension.  The larger number 41.446, is the correct value for where you measured it.  The rear leg is even wider than that, but I don’t have the model with me, tonight, to measure it.

 

Might help....

 

 

Message 44 of 48

R4SMEs
Advocate
Advocate
Yes, we are on "common ground" up to that point in your message.
 
It seems a somewhat inconsistent behaviour (some would call it a "bug"!) for Fusion to reject use of 0 when directly entered as a dimension in a sketch yet to accept use of a parameter to define the dimension, even although the parameter may have been defined to be zero!
 
I very rarely enter numbers in sketches, being what I have considered to be "magic numbers" that would be difficult to keep track of/ manage.
Up until now I have always almost created a "user parameter" so that the number could be given a name and comment.
Now that, with your assistance, I better understand the potential of "model parameters" (in particular, the ability to rename and comment model parameters), I shall probably change my way of doing things and favour model parameters whilst not using user parameters - I least I shall try this strategy and see what it leads to ...
 
You wrote:
> Yes I did check the behaviour of the indent sketch, was an interesting revelation.
 
What exactly do you mean by "an interesting revelation" - what has been revealed?!
How does your revelation(s) relate to my query as to changing a parameter between +ve or -ve or zero values, i.e., my experience that sometimes this has produced the expected results and other times it hasn't!
 
> As for the subject of Extrude all ...
I am not sure about the "rear leg is even wider than that" - as I recall the leg was extruded (in the direction we are talking about) to the thickness of the wood blank.
(I am still away from my Fusion PC as I write this so, as for yourself, don't have access to the model.)
0 Likes
Message 45 of 48

davebYYPCU
Consultant
Consultant

Now we are still on the same page, as for the indent sketch I won’t spoil the revelation, will let you find it, will make sense of the logic, in the program. 

 

The rear leg - was made with initially 2 extrusions, later in the timeline, work on the aprons, added more detail to the rear leg.  Depending on where you are in the Timeline, when you measure things, as to what answers you get.  I have a habit of rolling the timeline back, to step through the construction.  So before the rear apron work, your leg is even wider than 41.275.  So there is no anomaly when measuring at the end of the file timeline, if using the original parameter value.

 

Might help...

0 Likes
Message 46 of 48

laughingcreek
Mentor
Mentor

Well, back in town.  I briefly looked over the last few days worth of conversations, and I see you guys have pushed on a good bit.  i don't think there is any hope of catching up and providing any meaningful input moving forward.  I do have a few last general comments before I sign off and leaving you to it (mostly rehashing what I've already said or implied)-

 

-I admit, I don't typically worry to much about robust modeling,  so I don't always follow my own advise, or the good advise given by others here on this forum.  sometimes I don't even fully define my sketches (GASP!)

-more complicated = less robust. @R4SMEs , you are really making things complicated.

-a picture is work a thousand words.  a thousand words is not worth a picture.  there is obvious disagreement on that here, to each his own. mush on.

-the approach i presented is referred to as a top down approach.  it's great for designing from scratch and is an approach fusion excels at.  developing all parts independently and joining together is a bottom up approach.  a fine approach also, particularly when geometry is already well understood.  both approaches work better when cross referencing between sub-components is kept to a minimum (ideally 0).  Not always possible.  probably is here.

-I think you mentioned it already, the dimensions on the chair diagrams are sometimes in conflict with each other.  this is VERY common in these types of situations.  (see it a lot in questions about lofting a boat also).  I'm going to point out that I am 100% certain that Tage Frid didn't use a compass to measure angles in his shop.  he would have used the rise/run method, which sometimes gives funny values for the degrees of angles, but is always easy to use to set a sliding t-bevel.  every angle called out in the diagrams should be taken with a pound of salt.  I personally wouldn't use any of them for a driving parameter. (never have when making chairs in the shop either). 

-your question about the difference in measurements on the rear leg is moot.  it's modeled incorrectly anyway (which is why it's different). not evident on all the diagrams, but it is present in some of them, is that the shoulder area around the mortise on the rear leg that receives the rear apron should be a flat also.  should be easy enough to fix sketch "rear leg front" to correct.

leg joint.png

good luck with your project!

Message 47 of 48

davebYYPCU
Consultant
Consultant

Serves me right, for not checking the Combine cut.

0 Likes
Message 48 of 48

R4SMEs
Advocate
Advocate
Regarding whether or not there should be a flat on the rear leg where it meets the rear apron ...
Your comment is reasonable for two reasons:
a) Frid would no doubt make it in such a way when using his hand tools, and
b) There would be consistency with use of the flat for the rear leg to side apron joint.
 
Regarding your related comment in the graphic "how would you machine this shoulder", my answer would be "with difficulty"!
 
Actually, that would really be one of the least difficulties in making this chair on a CNC machine!
Mortises are not perpendicular to the faces of components so components would need to be held-down at precise angles.
There is also the difficulty that components such as the rear legs would need to be turned, at least once, between operations (to different angles) whilst maintaining a consistent relative position to the previous operations.
 
A lot of effort will be required to design suitable jigs/ work holding devices and also to make them.
Let me know if you have any ideas for a device to hold-down lengths of wood at an adjustable angle!

There is not a lot of height to play with - wood thickness is something like 80mm maximum for the machine concerned but another 100mm of so could probably be gained by removing existing fittings at the top of the table.
 
Vacuum clamping is available.
I have an old large industrial CNC machine.
It supports routing either vertically or horizontally - but not at arbitrary angles.
I am planning to upgrade this machine to LinuxCNC - that will involve quite a big learning curve but at least it solves the issue of post-processor availability.
 
Returning to the question of whether or not there should be the flat ...
I think that it looks quite classy to not have the flat, especially if the current cusp is rounded with a fillet.
The next step of my endeavour was to consider all such details ... I may even remove the flat with the side apron 🙂
If edges are also rounded, the appearance will change considerably - whether for the better or worst, I am not really sure!
 
Angles of tenons could be changed to possibly make components easier to make.

Another idea is to use "loose tenons" - i.e., splines of wood which fit into a mortise at each end so there are no tenons to cut.
Such are just as strong as a M&T joint.
In this way, there would "only" be the challenge of machining mortises at weird angles!
 
An interesting challenge would be to design a custom machine to machine mortises and tenons at weird angles.
I have some old industrial servo motors that could be a starting point ...
An old XYZ CNC machine could be adapted to add extra axes ...
 
Something like the following is ideal (!)
https://www.youtube.com/watch?v=IBHnO6cp1Yg
 
Thanks for wishing me "Good luck" - I certainly shall need it!!
0 Likes