Best practices for robust parametric designs

Best practices for robust parametric designs

R4SMEs
Advocate Advocate
4,317 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,318 Views
47 Replies
Replies (47)
Message 21 of 48

R4SMEs
Advocate
Advocate
@laughingcreek - I like your saw horse - there is no doubt much that can be learnt from this simple example.
 
I have a few queries about it ...
1) You created one leg which involves an extrusion + an intersection (3 timeline items including the component creation), then did the same for a second leg.
Would it not have been simpler to have mirrored the first component (1 timeline item instead of the 3)?
Is there any reason that you prefer your approach?
 
2) You use extrude "to object".
An alternative would be to use the d-parameters - d2 and d4 for the first extrusion, where d2 is the length and d4 the top width of the saw horse.
Is there any reason to favour one or other of these approaches in terms of "robustness" of design?
 
3) Interestingly, an "Edit feature" of the 1st leg extrusion shows "missing profiles", yet there is no yellow warning in the timeline!
Easy to fix but why no yellow warning?!
 
4) You use 3x C-patterns to replicate each of 3 components.
3x mirrors could have been used to do the same job.
Is there any reason to favour C-pattern over Mirror in terms of "robustness" of design?
 
I note your interesting/ robust way of implementing the braces based on top-level sketches rather than the face of a leg.  I shall certainly include such an approach in my next revision of the chair design!
0 Likes
Message 22 of 48

R4SMEs
Advocate
Advocate
Thanks to @davebYYPCU for helpful critical comments!
 
I hadn't realised that "Model parameters" could be renamed and commented and, thereby, potentially be used as an alternative to "User parameters".
In effect, by using "User parameters", one is creating duplication of data - a sort of data bloat which we should strive to avoid!
 
Apart from not realising the full possibilities of "Model parameters", the reason I added so many "Model parameters" was that I was endeavouring to closely model the chair based on drawings in the book chapter.

The general intention is to use the author's dimensions, whilst having everything as a parameter so that the final appearance could be tweaked.
The process was complicated by the fact that the article provides "over constrained" data, i.e., too many numbers, some of which appear inconsistent with others.
Also, the drawings are somewhat unclear so exactly what a particular number relates to is, in some instances, difficult to be certain of.
Furthermore, when developing the Fusion model, it seemed better to define some measurements between different edges - so I added my own extra dimensions whilst not actually using many of the author's numbers.
 
I still have the huge number of user parameters but, for those that are unused, I have prefixed their names with "UNUSED...".
Unfortunately, Fusion doesn't provide a means to flag which parameters are unused.
I went through each parameter and included + 500mm to its value - where there was no visual change or yellow warnings seen, I conclude that the parameter is unused and renamed accordingly!
 
For those who may be interested in playing with this somewhat challenging chair design, I attach a pdf of the original design together with the latest version of my Fusion model
(as before but with the benefit of the unused parameters being named "UNUSED...".
Note that most of the drawings are present in my model as canvasses at the start of my timeline.
 
I shall now start a new version, taking into consideration "best practices" which have been identified from this thread.
Having exported my user parameters to Excel, I shall try the approach based mainly on model parameters.
I shall have the Excel data to refer back to in the process of checking how the design relates to the original source design.
0 Likes
Message 23 of 48

davebYYPCU
Consultant
Consultant

Warning self taught opinions may become evident.  Didn't mean to be critical, but trying to direct your focus, 

 

Thanks for the Pdf, read a lot of it, but not all.  First thing I noticed was the rear leg was depicted orthogonally, a simple piece, however when I first reviewed your question files I was surprised you built it in place.  Due to that and some other aspects it all became too difficult real quick.

 

You will find a lot of users have developed their own workflows and preferences for doing things, hence the information you have researched, reveals conflicting statements.  Horses for courses come to mind.

If you get the job done, then how you did it has some good and better workflows but either way it worked.

 

Patterns and Mirrors, it's that horses for courses again.  I have seen advice that mirrors are not favoured, something to do with a BOM, counts and the like, as a minority user - I won't need a BOM, nor a drawing to be output from the Fusion drawing environment, so I favour the mirror, needed for my work, and your chair because patterns won't work for handed parts.  Mirror makes a mess of bolts and screw threads. But mirror allows me to do half the work for double the result.  In the chair, front, rear leg and side apron with all the cuts and sockets, once, mirror those 3 at the press of a button, you have 6 left right handed pieces now.

 

In the saw horse the pattern does work.

 

On the User Parameer, we use those because they are selectable in the modelling window, when settings are required, type a word and select the right one from the provided list, a quick workflow.  Model parameters are not available for selection, but if you have a memory, you can reuse the Dxxx number.

 

Might help....

 

 

Message 24 of 48

R4SMEs
Advocate
Advocate
I am still somewhat confused as to how I should go about the "Rear leg" for my next attempt.
The book, which is orientated to manual woodworking, considers the leg as starting from a rectangular blank and provides drawings on page 127 that could be enlarged/ pasted on the faces of that blank.
There is a flat seen on this side view, which is where the "Side apron" attaches.
Having cut using a bandsaw or whatever, the leg is orientated on the chair with the rear face of the leg at an angle of 10 degrees to the left-right axis viewed from above.
 
In my efforts to date, I have essentially replicated this process.
I am tempted to repeat this way of doing things as the starting point of the revised design.
However, there is then the issue of how to draw the "Side apron" without depending on the "Rear leg" body.

How could I go about designing the "Side apron" based on a higher level sketch?
 
Similar questions arise as to, for example, the Backrest.

The Backrest needs to relate to the "Rear legs" so I don't see how I could implement it using a first-level sketch rather than by projecting from the leg geometry, as I have previously done.
 
In summary, although I now have a better understanding as to what constitutes best practices for parametric design, I am unsure as to how to actually use those best practices!
 
Re: Patterns and Mirrors, you mention that some do not favour mirrors for particular reasons.
Does Pattern have the same issues or is it considered superior to Mirror?
[Were you comparing use of Mirror vs. manually duplicating steps to produce the 2nd component or vs. use of Pattern?]
 
Thinking in terms of @laughingcreek 's saw horse, would you recommend extruding "To object" (where the object is an item in a sketch) or using a dxx (where that is the dimension in the same sketch)?
 
Earlier I was writing about whether 0 is the same as 0.001 or 0.00000001 ... in Fusion algorithms.
Probably nobody (including myself?!) really understood what I was thinking about when I wrote that!

Clarifying my thoughts with an example, I am wondering if "To object" is really the same as using dxx?
We have seen that Fusion can produce a dramatically different result after a parameter is changed from m to n and then back to the original m (yellow warnings being produced despite the data set remaining unchanged)!
So apparently Fusion imagines that something has changed.
0 Likes
Message 25 of 48

davebYYPCU
Consultant
Consultant

I said earlier, I had not decided how best to start from scratch, having noted that you were also intending to modify the seat angle, away from the given pdf article.  

 

That said.  I have the pdf open to refer to, and your Fusion v 100 file.  I haven't got the design running around in my head, I believe that the line drawings in your canvasses are / can be your skeleton sketch/s, especially as you are testing parameter changes.    

 

Points from your last post, 

 

The rear leg, has one straight (flat) face.  Build it on an origin plane, then position it in space, with a Joint, but we are ahead of ourselves already.  Yep page 127 - same as that.

 

You don't need the rear leg to do the side apron.  There is one common face between those two components.

 

Now the backrest is a problem, it is one piece I would build in place.  As the detail is not found yet, I have it flush with the front face of each rear leg, and have to presume the arc is tangent to those two faces.

 

Patterns / Mirror, for the geometry, they will produce the same quality, if BOM is not a concern, then, either will do back to personal preference.  if the part can equally be placed with mirror or pattern for the same result, then pattern is preferred for BOM reasons, as I understand it.

 

Extrude to object - refer back to Jeff's hierarchy.  Not sure I understand, the sketch has a constrained article that is controlled by the dimension.  Because you are after the parametric changablility, selecting the object, is prefered over a new untied dimension of the same value, if that is what you meant.  If not what you meant, then it's a workflow - prefer to click on an endpoint, or go find, and type in a reference or value?

 

Number precision - for woodworking, it's what you can measure.  I use two decimal places, (Verniers are that quality)

 

That example was not explained in the end, let's say you changed a parameter in sketch 2, it is highly unlikely that you broke sketch 2, more likely something further down stream was broken.  (Does happen - can it be fixed? Usually)

 

So, having danced around the pdf a bit more, I base this on the stated intention to tilt the seat.

Make the seat first, in place, with the rear lower edge centred on the Origin, on a plane on angle, seat tilt angle, that is parametric.  Changing the angle will give a variety to your design.  You also have 4 aprons tied to it.

 

 

 

 

 

 

Message 26 of 48

lichtzeichenanlage
Advisor
Advisor

@R4SMEs wrote:
@laughingcreek- I like your saw horse - there is no doubt much that can be learnt from this simple example.
 
I have a few queries about it ...
1) You created one leg which involves an extrusion + an intersection (3 timeline items including the component creation), then did the same for a second leg.
Would it not have been simpler to have mirrored the first component (1 timeline item instead of the 3)?
...

IMHO neither extruding all legs (like @laughingcreek did) nor mirroring is a good solution, because both methods will not result in a clean BOM. Create one leg, copy it 3 times and join it to the top of the thing would be the way to go in my opinion, because only this results in the right number uniquely identifiable objects. 

0 Likes
Message 27 of 48

R4SMEs
Advocate
Advocate
Many thanks for your suggestions.
I shall have to read your text many times to fully take-in all the ideas.
 
I am just writing to clarify a few aspects on which there may have been misunderstanding of my queries.
 
Re: Extrude to object/ dxx and Number precision:
When I write of whether 0 is the same as 0.00000001, I was not suggesting that wooden furniture is built to such tolerances (I am not _that_ stupid!)!
Rather, I was raising the question of whether the Fusion algorithms might produce very slightly different results based on what could be considered as being the same data.
In the example I provided, I was wondering if "To object" is really _exactly_ the same (from the perspective of the Fusion internals) as using dxx,
where dxx is the parameter that was used to produce the object (a sketch line in this case)?
Maybe Fusion breaks as a result of tiny roundings in its complex calculations.

Hence, the question was whether anybody knows whether use of "To object" or the explicit value of dxx is likely to be more robust to changes?
 
I made some small changes to generalise the design relative to that in the article.

I find that it is much easier to generalise in advance rather than go back to make a generalisation.
 
There seems to be no reason why the seat of the chair (and the associated top of the "Side aprons") should be exactly horizontal and I was thinking it may look good with a small (+ or -) angle.
 
Equally, in general, the outside face of the "Side apron" need not necessarily be flush with that of the legs.
I included parameters with "Indent" in their names to allow for this.
 
The same idea of supporting indents applies to the Backrest.
 
This approach also allows for manufacturing tolerances.
Even if one subsequently chooses to have the faces flush, it could be useful to make one part say 1mm wider (...Indent = -1mm), allowing for manual sanding of the assembled chair to achieve an exactly flush result.
 
Note how a plane cuts the outside face of the "Side apron" to achieve a uniform indent from top to bottom of the joint between the "Side apron" and "Rear leg".
The need for this results from the outside face of the "Side apron" being vertical whilst the flat part of the leg is generally not vertical.
 
Of course, building in these generalisations complicates the model somewhat.
 
www.premkpatel.com/furniture
This site provides nice photos which help to better visualise the chair.
In this example, indents are 0 (everything sanded smoothly!) apart from the front stretcher which is set back a little relative to the front legs.
0 Likes
Message 28 of 48

davebYYPCU
Consultant
Consultant

Thanks for the clarification, for those who need a BOM, it would be relevant,

the saw horse was proffered as an example of parametric skeleton sketching, 

but in this chair there are right and left handed components, anyway.

Message 29 of 48

davebYYPCU
Consultant
Consultant

I can’t answer for the algorithms, but if you Dimension to six decimal places, Fusion will respond, I think it can do 9 decimal places.  You will find threads where an anomaly was found between model and the Measure Tool, the Measure Tool was in error, not the model. 

 

Changing parameter values, will break models where that change causes conflict, highly unlikely to be the internal algorithm, but if you find and example, Ad are dedicated to fixing that sort of bug.  So using the Dxx value for that object, is the same no difference, for me I’ll click on the object, rather than dig for its dimension.

 

The Design is yours to complete to suit your end game, tweaks and changes - quite normal.

 

Can you elaborate on the seat construction, a base board is not seating onto the Aprons as far as I got in v100.  You may be past that by now.

 

 

0 Likes
Message 30 of 48

laughingcreek
Mentor
Mentor
As I write, it's the middle of the night and I'm experiencing the insomnia of sleeping in a strange place.  Forgive me if this gets muddled.  Also, no computer.
 
1-no particular reason.  I modeled this on the fly very quickly.  There are no doubt many design choices I might make differently a second time around.  Consistency in approach would probably be the main reason.  Mirroring would also set up a dependency on the first leg, which is not always avoidable or nessisarly bad.  I also don't consider a few extra steps in the timeline to be a negative, particularly in the service of clarity.
 
2-can't check the model for an example, (may not be one in this model) but a parameter isn't always available.  Some times things aren't called out explicitly, but are determined by other geometry.
Also, I may want to change what dimensions are driving the design.  Maybe at some point I want the height to not be called out, but rather determined by a combination of leg length, splay angle, and top thickness. (A convuluted example, sorry).  In that case I can toggle that diminsion to driven (so it's still there for visual reference) and start diminsioning other things, like the linear leg length.  Or I might just delete the diminsion all together.  These actions would break the model down stream of the dim name is referenced.
Sometimes it's unavoidable.  But if you keep referenced names in the sketches it can be easier to find errors if you delete a diminsion that is referenced down stream.
Also. It's a visual process.  If I can avoid going into a table to find something I will. So a personal preference in that regard.  2 years from now when I can't remember anything about this design, but need to change it, it's nice that everything is laid out in a few sketches and I don't have to go through a bunch of parameter tables to figure out what's what.
 
3-dono.  Maybe I sent the model off in a weird state.  It was supposed to be a one off example of something else.  As such its still in a raw state and needs to be"fact checked"  
 
4-this gets into something that may not apply to your chair. (I'm thinking all the parts of your chair are unique, and not identical copies?) Pattern functions create copies of the component.  Mirror functions create a new and unique component.  When making a BOM for the saw horse it will have a Qty of 2 braces.  If I had mirrored the brace it would have qty of 1 of brace 1 and a qty of 1 of brace 2.
 
I also have 3 separate patterns.  I would normally be lazy and just pattern all 3 of those things at once.  That does set up a dependancy though, and makes trouble shooting slightly more complex.  But only slightly.
 
A point of order.  All 4 of those legs are actually identical.  2 of them would just have to be flipped end for end. That means right now I would have leg 1 and leg 2 in my BOM.  Should just have leg 1.  I could go back and pattern that first leg 4x times instead, and joint the 2 out of place ones in place (being careful to joint it to the sketch and not some other geometry). This shouldn't be terribly difficult to go back and change. Easier since the patterns are already separate features.
Message 31 of 48

R4SMEs
Advocate
Advocate
@davebYYPCU
> ... I think it can do 9 decimal places ...
#
Again, it seems that I have not properly explained my query.
I was wondering if "To object" is really _exactly_ the same (from the perspective of the Fusion internals) as using dxx.
Or, from the practical perspective, if it is safer to use one rather than the other?
"To object" may be inherently more robust since, as the name would suggest, it relates to the object (a sketch line in the example).
In contrast, dxx could maybe be used in the Extrude algorithm (which is probably different from the sketch-producing algorithm) in a slightly different manner.
Let us imagine that one algorithm rounds to 8 decimal places in its algorithm, whereas the other rounds to 9 decimal places.
_If_ that were the case, it could explain such as the following issue (in which, what is apparently the same (i.e., unchanged) is not considered by Fusion to be the same!).

> Changing parameter values, will break models where that change causes conflict ... but if you find an example, Ad are dedicated to fixing that sort of bug.
 
As I explained in Message 11 and elaborated on in Message 13 of this thread:
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.
...
When I talk about "Changing a parameter value", that was done in the parameters window, which remained open throughout the process.
I was unhappy that the Fusion algorithms had apparently, by themselves, changed (broken!) my model (that I refer to as the "data set" in message 13).
 
I don't want to make a big deal out of this but it should really be considered as some sort of bug.
Given the complexity of Fusion and its continual evolution, this is the sort of thing which would probably never be practicable to fix 🙂
 
> Can you elaborate on the seat construction, a base board is not seating onto the Aprons as far as I got in v100.  You may be past that by now.
 
I did already provide a V113 by the way (refer Message 22).
Its only improvement was to prefix parameter names with UNUSED... where they were tested as actually being unused.
 
According to my understanding of the author's design, the plywood base board sits on rabbets in the rear and side aprons but sits on top of the front apron.
In such a way, the cushion edge can be flush with, and on top of, the front of the woodwork (front apron), thereby avoiding a hard edge to sit on.
www.premkpatel.com/furniture  may have built his chair slightly differently - it looks like he may have a rabbet also in the front apron with the cushion sitting in that rabbet and a little back from the front edge.
 
I have given the seat and its cushion little consideration.
I have yet to think how to model the fabric with foam on top of the plywood base convincingly!
 
In the process of playing with parameter values, the simple fillets on the vertical and horizontal edges of the foam cushion became yellow and red
- again, despite my changing the parameters immediately back to their original values!

I haven't bothered to investigate this but simply wound the timeline back a little.

Previously you wrote:
> You don't need the rear leg to do the side apron.
> There is one common face between those two components.
 
I am not sure how to exploit this "common face", by which you presumably mean the flat on the leg.
RearLegAndSideApron_B113.png
I could independently design a "Side apron" in its own origin system and include a flat on its rear end.
Then do a joint to move it into a position.
Is this what you are suggesting?
 
However, it would seem tricky to design the "Side apron" without a direct reference to the details of the rear leg flat.
I should have to ensure that it "fits" and also protrudes at the desired angles (both upwards and sideways).
I am not allowed to use a projection 😞
Would I use parameters shared between each of these components to relate the dimensions of one to the dimensions of the other?
In other words, instead of relating them by projection, I should relate them by shared parameters?
 
The outside face of the "Side apron" involves being cut by a plane (as I explained in a previous message) to resolve the "twist" from front to back, with the objective of having a indent of the side apron by the same amount from top to botton of the leg flat part.
That cut by the plane was done as a last step in my work to date - I suppose that it must now be done sooner?
0 Likes
Message 32 of 48

laughingcreek
Mentor
Mentor

I've lost my train of thought and meet not be keeping up because I'm doing this on my phone.  I'll try to answer some questions I THINK were asked.  May have been answered already. Bare with me.

There is no difference functionally (robustly?) between using the d## dims and using the to object Function.  If you find one, it's a bug and needs to be reported.  Or it's operator error.

As far as the model not going back to it's proper shape when changing parameters back to their starting values, there are 2 things at play here.

1-hate to say it, but they're are probably still bugs not allowing things to go back to working order after it gets broken.  If one can be isolated it helps to report.  Dispite what people say here, the fusion team does work hard to correct bugs.  It helps when it is repeatable.

2-using sketches as an example, but generally applying in concept to other areas, the sketch environment is a solver.  One of the inputs in that solver is the starting state.  Pretty straight forward when starting a new sketch.  As a simplistic example, there can be times when a line is drawn to the right.  Changes in it's dim will produce predictable changes to length.  If if you make parameter   changed that break the sketch/model, and those changes causes the direction of the line to head off to the left, then when you go back to the original values the length diminsion will keep changing the length of the line to the left.  Because that was the state of the sketch before the change.

This idea can sneak in to other features in similar ways, particularly with +and- directions.

Another reason I like to make diminsion changes in the sketch where I can see what is going on, instead of in tables. More intuitive for me. 

 

Message 33 of 48

davebYYPCU
Consultant
Consultant

I think we are getting closer, 

when a change of parameter breaks a model, the data set was changed in a flawed model,

you have a broken model, change the data again, with another change of the data set, (it wasn’t repaired) there is original damage.  Compute All, may have repaired it for you, after (c).

 

In this case, at the point of finding the model just broke, Stop!, you have to find, understand, and repair the damage, but, to restore to the previously stable model you press Undo Arrow, you know that changing the same parameter back to scratch in a damaged data set doesn’t do it, but Undo does, Compute All might.

 

You hit the nail on the head, if a line drawn to the right, change a parameter makes it go left, you have a flawed model that needs fixing.  Even if no error is presented.

 

Fillets on the cushion are too big, the fillet cuts a partial hole through to the inside wall.

 

Might help....

 

Message 34 of 48

davebYYPCU
Consultant
Consultant

Sorry Alex, hit the wrong reply button.  

 

@R4SMEs I am still here with this discussion, you said, 

 
I made some small changes to generalise the design relative to that in the article.
I find that it is much easier to generalise in advance rather than go back to make a generalisation.
 
I can see why you started with the rear leg now,
So that most things can be tweaked by parameter,
If the rear leg can be tweaked with the 10 degree angle, where do you want the pivot point?, all of the parts would / could be effected, by the degrees change alone.
 
Lets say you change it to 8 degrees, do you want the front legs to go too?
 
Now I need help.
 
 
Message 35 of 48

R4SMEs
Advocate
Advocate
I assume that you are referring to the rearLegDetailAAngle parameter.

That 10 degree angle relates to an angle in the "Rear leg Detail A" (included here as a graphic).
It is the angle the leg is rotated relative to the left-right axis when viewed from above (at the horizontal plane level of the top of the leg flat - which is the XY plane of my origin/ axes).
Rear_leg_DetailA_Sketch.png
That is an early starting point in my model.
From that starting point, the "Side apron" was built to connect at the leg flat and then a "Front leg" built to connect at the bottom of the "Side apron".
 
To answer your question, if the angle was reduced from 10 to 8, I would expect the rear leg to rotate counterclockwise viewed from above and the attached side apron to rotate outwards at its front.
The seat frame would become more trapezoidal shape.  The side apron would change in width or some other way to accomodate the other changes.
At the same time, the front leg would remain attached to the side apron.
 
However, as I write this, I start to think that I am not completely clear as to what I expect to happen and whether my original expectation has been realistic or not?!

Maybe you have identified a flaw in the model and my thinking up until now?!
 
Looking at the sketch used for the "Side apron" entitled "Top view and Detail A" (also included here),
there are constraints associated with the dimensions.
The inside face of the Side apron must be at 76 deg to the leg flat and the outside front corner of the side apron has defined x and y values (defined relative to which origin?).

Maybe I have been expecting the impossible?!!
 
I was assuming (maybe incorrectly?!) that "something" would change such as the width of the side apron and/ or the angle of its outer face, in such a manner to enable all constraints to be satisfied.,
i.e., I have been assuming that there was an inherent freedom of movement - which may not actually be the case?!
 
I am becoming confused as to whether that Side apron sketch is drawn relative to its own coordinate system (which would presumably allow it to move) or has been anchored down by incorrectly using the dimensions linked to the top-level origin?
Top_view_and_DetailA.png
-----
Or, are you referring to UNUSEDrearLegApronFlatAngleFromVertical - a parameter which is also set to 10 deg, but is unused.
Refer the "Rear leg side" sketch, included here, which closely models that in the book on page 127.
As seen in that sketch rearLegFlatAngle 4.5 degrees is a parameter which superceded the other.
Rear_leg_side_Sketch.png
-----
You ask:
> ... do you want the front legs to go too?
 
I have been assuming (maybe incorrectly?!) that there were degrees of freedom that would allow components to move within the various constraints by undefined dimensions changing in such a way to accommodate the movements.
 
It seems that, with your help, which has stimulated my thinking, we may be homing in on the underlying problems?!
 
Have I anchored things down too tightly such that it is inevitable that the model breaks when a parameter is changed?

Or, is this problem related to an incorrect use of origins in my several drawings?
0 Likes
Message 36 of 48

R4SMEs
Advocate
Advocate
"Compute All" didn't solve the issue.
 
You (i.e., @davebYYPCU) wrote:
> You (i.e., @laughingcreek) hit the nail on the head, if a line drawn to the right, change a parameter makes it go left, you have a flawed model that needs fixing.
> Even if no error is presented.
 
Yes, I also believe that the nail has indeed been hit on the head!

I am always nervous when I have a small parameter which I may want to later change to zero or a negative value.
For example, an indent - whether or not one piece of wood is to be indented relative to the other or flush with the other, where the indent can be +ve or -ve.
 
But how does one go about doing a generalised model that supports such a +ve or -ve or zero indent?!
 
[Maybe zero is a special case which can be avoided by use of 0.001 instead of 0?
In the past, I recall instances where Fusion did not permit use of 0 mm as a parameter value.
Did the change the programme to now allow 9 mm?]
 
You (i.e., @davebYYPCU) wrote:
> Fillets on the cushion are too big, the fillet cuts a partial hole through to the inside wall.
 
When I first defined the fillets with the same numbers, there was no issue.
They looked as expected and there were no yellow or red warnings.
 
It was only after I changed parameters completely unrelated to the fillets themselves that the model blew-up, with the fillets showing as red and yellow
(even after I had reverted back to the original values of the changed parameters).
 
I don't understand how/ why Fusion sometimes thinks things are okay and at other times complains!
 
Even with the simple saw horse, we see a minor issue that (on going into edit mode) there is a "Missing profiles" indication, yet the feature is indicated as being fine in the time-line (no yellow warning).

There does seem to be inconsistencies/ bugs with the error flagging mechanisms of the programme.
 
It seems only worth bothering about the fillets after the more fundamental problems of the model have been resolved!
0 Likes
Message 37 of 48

davebYYPCU
Consultant
Consultant

I'll clear this up again, I had hit reply button on the wrong author, so the reference to you in this statement was not Alex, but yourself.

 

> You (i.e., Alex) hit the nail on the head, if a line drawn to the right, change a parameter makes it go left, you have a flawed model that needs fixing.
> Even if no error is presented.
 
Fusion will not tolerate a zero dimension, with one exception that I know of, (Surface > Offset = 0), but does tolerate copies transferred around the model, as Projections.
Positive or negative is for direction, value is size, this will be context sensitive.
 
Back to the geometry, my question about the rear leg pivot point, was in the context of the redo, being able to tweak, - in the event of tweaking the rear leg angle to 8 degrees, lots of alternative outcomes can happen, 
I was focussing your mind on this turn, that has flow on effects, to consider before we create the geometry.  Because we intend to tweak, then this change of angle has huge ramifications, even as far as the new length of the front apron.  Just to liven up the discussion, I threw in the option of now we can change the pivot point, if required for even more options.
 
As I saw it, you can rotate the rear leg, and ask Fusion to keep the front leg in the same place, and all the geometry parameters change at the back, leaving the front end to adjust slightly to the new side apron angle.  You would also acknowledge the change of rear leg angle will change the curve of the backrest.
 
 
However, as I write this, I start to think that I am not completely clear as to what I expect to happen and whether my original expectation has been realistic or not?!  Maybe you have identified a flaw in the model and my thinking up until now?!
 
Actually I would describe it a grand ambition, hamstrung by Fusion internal software rules, handling a complex set of geometry.  Quite doable, if you can get ahead of the Fusion error machine.
On a side note your model is not unstable as it was in v100, as I can scale the model to 110% with out it breaking, kudos on managing that.  (Scaling changes all parameters at the same time.) 
When you change 1 parameter at a time, different story.  The flow on effects have to be known and accommodated.
 
Might help....
 
 
Message 38 of 48

R4SMEs
Advocate
Advocate
You wrote:
> Fusion will not tolerate a zero dimension, with one exception that I know of, (Surface > Offset = 0), ...
 
Setting my sideApronIndentAtRearLeg parameter to 0mm, the outside surface of the side apron become flush with the rear leg, exactly as I intended 🙂
There are yellow warnings generated but only relating to subsequent components in the time-line.

As I previously wrote, Fusion does currently seem to allow 0 values - I recall that in the past it was not even possible to exit the parameters table leaving a 0 in it.
 
The question still remains as to how does one go about doing a generalised model that supports such a +ve or -ve or zero indent?!
As previously mentioned, I may decide that I want the side apron to protrude outwards by 1mm so as to allow for final sanding to achieve an exact flush result.
However, using -1mm does not achieve such a result 😞
 
Update:!  As I wrote this, I tested again.  Changing to -1mm does _sometimes_ achieve the result of exactly what I am looking for - but at other times it doesn't 😞
In another change to that parameter using +5mm, the side apron protruded outwards in the negative direction!
What is going on here?!!
 
My use of sideApronIndentAtRearLeg parameter is as an offset along a line so I am not changing the direction or length of the line.
(I am not drawing a 0 or "negative length" line!)
A negative value means that the offset point moves outwards further than the extent of the as-drawn line.
But surely Fusion considers that the line is effectively infinite in length?  (A point can be made coincident with a line even when outside the as-drawn visible extent of a line.)
 
----
You wrote:
> As I saw it, you can rotate the rear leg, and ask Fusion to keep the front leg in the same place, and all the geometry parameters change at the back, leaving the front end to adjust slightly to the new side apron angle.
 
Can you please summarise the details of how you would go about that.
 
----
With your considerable assistance, I believe that we are homing in on a reasonably complete understanding of the several issues and that soon I shall be able to write-up my summary of "Lessons to be learnt"/ "Best practices for robust parametric designs"!
 
In summary, the difficulties result from each individual (but inter-related by projections to other sketches) sketch being fully constrained, which has the effect of the overall chair being more or less fully constrained.
Consequently, a change in many or most parameters was expecting the impossible, i.e., all the constraints in the model could not be simultaneously satisfied.
 
What is the design flow to avoid such problems in the future?
 
Probably it is prudent, as others have suggested, to base the model on joined components which are largely drawn independently and unrelated to each other.
Subsequently, parameters of a particular component could be tweeked to refine its appearance, hopefully without the model breaking?
In other words, a lesson here is that "use of projections can be potentially problematic down the line ...".
 
Regarding the parameters themselves, I am starting to think that "User parameters" are bad news and that it my be better to solely use "Model parameters" that are automatically generated from the sketches, extrusions, etc.
Such an approach has the advantage in that parameters can be managed.
(They should be renamed from dxxx and commented.)

There would be no uncertainty as to whether or not a parameter is actually being used, whilst the use and meaning of each parameter is easily traceable as a result of being properly catalogued in the "Model parameters",
i.e., clearly related to the particular sketch in which it is being used (which is, in itself, effectively a good comment).
 
Furthermore, use of "User parameters" inherently implies data bloat since as soon as the parameter is used, Fusion duplicates it as a "Model parameters".

I strongly believe that "less is better" in relation to software!  (Less to check/ less to cause problems ...)
0 Likes
Message 39 of 48

davebYYPCU
Consultant
Consultant

If you are using zero dimensions, then that's not been my experience, as I have no use for such a situation here.

 

The question still remains as to how does one go about doing a generalised model that supports such a +ve or -ve or zero indent?!

I would be dimensioning your indent from the inside face of the apron, not the outside, lets say the apron width is 28mm and you have an indent value in mind, it would be (28 + or - indent.) means it will never be zero.

 

In another change to that parameter using +5mm, the side apron protruded outwards in the negative direction!
What is going on here?!!
I don't think I can give a definitive answer on that, editing an offset parameter it can go two ways, if the solver can comply it will, if you leave it capable to have 2 answers, it will pick one.
 
But surely Fusion considers that the line is effectively infinite in length?  Under the hood, probably
(A point can be made coincident with a line even when outside the as-drawn visible extent of a line.)  True.
 
To allow the front leg to remain stationary, with slight angular update, you would remove or complimentarily update, the 76 degree dimension from Detail A, and anchor the front edge of the member. 
 
Your summary is about right,
What is the design flow to avoid such problems in the future?  Alex summed it up.
 
I'll take issue with the following points, 
 
"use of projections should not be problematic down the line ...".
 
to think that "User parameters" are bad news, -
then you have missed the point of using them in the first place, convenient selectable., time savers.
 
There would be no uncertainty as to whether or not a parameter is actually being used,
don't make them if you don't need it.
 
Preface your summary with 
Everything done in Fusion is subjective, and Design dependant.
There are no wrong ways to do something, if you get it done.
 
Might help.....
0 Likes
Message 40 of 48

R4SMEs
Advocate
Advocate
You wrote:
> If you are using zero dimensions, then that's not been my experience, as I have no use for such a situation here.
 
In case an algorithm blows up, it would be reasonable to enter as 0.001 instead of zero.
Obviously, a divide by zero would be a situation in which an algorithm would blow up - but there is no division involved here!
 
The question still remains as to how does one go about doing a generalised model that supports such a +ve or -ve or zero indent?!
 
You wrote:
> I would be dimensioning your indent from the inside face of the apron, not the outside, lets say the apron width is 28mm and you have an indent value in mind, it would be (28 + or - indent.) means it will never be zero.
 
This is a fudge which is unattractive in many instances, including for my application.
The width could change and the purpose of the defined dimension becomes less clear.
I accept that it could be used as a work-around.
 
Actually, when I look at it again this morning, there is another puzzling issue.

As shown in the graphic, the width at the bottom of the leg flat is measuring as 41.446 mm, whereas the width at the top of the leg flat is the correct 41.275 mm.
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.
I am wondering if this is related in same way to my having changed the value of the sideApronIndentAtRearLeg parameter (which is currently at its original value of 3mm).
Where does that 41.446 mm come from?!
 
WidthOfBottomOfLegFlatBV113.png
 
Anyway, the original purpose of my providing this graphic was to show that the usage of the sideApronIndentAtRearLeg parameter is very simple.

The "Rear leg flat point at bottom of apron" sketch (in the Side apron component) is simply a single point defined as being at sideApronIndentAtRearLeg along that bottom line.
 
The fact that changing this parameter between +3, 0 and -3mm has previously worked exactly as intended leaves me to believe that Fusion does indeed support such +ve, -ve and zero values for a parameter.

The questions are: why does it now only "sometimes" work and also where does that 41.446 mm come from?!
 
Regarding as to whether or not "User parameters" are bad news, I take your points.
However, the development people could consider that "convenient selectable, time saver" aspects could be added to the model parameters.
Why not have an auto completion prompt for names, as for user parameters?
 
If I understand correctly, a model parameter can be renamed and commented and also used anywhere else (for example in a different sketch or extrusion)?
As such, a model parameter with "auto completion of name prompting" would be just as easy to use as a user parameter.
Extending this chain of thought, there would be no need for user parameters.
 
My original point was that user parameters, when used, are being duplicated as model parameters, whilst having names like d234.
So there is a data bloat - twice as many "variables" to think about ...
 
You wrote:
> There would be no uncertainty as to whether or not a parameter is actually being used, don't make them if you don't need it.
 
Ideally, "yes" but, in practice, it seems useful to define many parameters at the outset, especially whilst trying to copy a design from a book with paper drawings.
That is how I started.
During the design process it became apparent that the author had over-specified the design and that some of the numbers were also apparently in conflict with others.
During the process, it was unclear which numbers were "right" and which were "wrong" - so both remained whilst only one (or neither!) may have been in use at a particular point in time.
Also, in some cases, I thought it better to define a measurement relative to a different point or edge.
This process inevitably resulted in some of the unused parameters becoming forgotten about.
 
Again, many thanks for your assistance and ideas from which I have improved my knowledge of using Fusion in practice.
0 Likes