Best practices in dealing with components having only some aspects in common

Best practices in dealing with components having only some aspects in common

R4SMEs
Advocate Advocate
667 Views
8 Replies
Message 1 of 9

Best practices in dealing with components having only some aspects in common

R4SMEs
Advocate
Advocate

With reference to the same bookcase for which I have just made another posting entitled "How to tidy up corner between chamfers?", I have another more general query.

 

[In that other posting the model is attached.
For the present query, the timeline should be rolled to the end. For convenience, I attach the model again.]

 

The present query relates to the subject of "best practices" in dealing with situations where there are similar components, yet there are also some differences between the components.

ClassicBookcaseV19.png

For this bookcase, the "Lower assembly" and "Upper assembly" components have many parts in common.

 

My present rather clumsy/ repetitive implementation can surely be simplified by taking advantage of duplicating (mirroring) components in some way!

 

The front and side parts of the lower and upper assemblies are identical apart from one being about 7in and the other 5in in height.
This difference also means that the reinforcing corner brackets have different leg lengths.

 

For the lower assembly there is the bottom panel with rabbeted edges, a bead molding comprising various pieces following the upper edges with associated filler piece to support the molding.

 

The upper assembly has all the same parts but fitted to its bottom edges.


So the upper assembly is a mirror image of the lower assembly (yet with the previously mentioned differences).

 

A possible approach for components in the browser could be:

Panels with moldings etc.
Panel etc. [the lower one]
Panel etc. [mirrored vertically as the upper one]

 

Assemblies [but not including the above!]
Assembly [the lower one]
Assembly [mirrored vertically as the upper one]
[Probably can't be simply mirrored since there are the above-mentioned differences. There is no way for one to track changes made to the other? 😞 ]

 

That approach should work, despite the limitations indicated.

 

However, ideally, I should prefer that everything relating to the (as currently called) "Lower assembly" is indeed encompassed only within that assembly.

 

-------------
Unfortunately, there does not seem to be a way to do something like:

Assemblies [encompassing everything]
Assembly [the lower one]
Assembly [mirrored vertically as the upper one]

 

... Now reduce the height of the upper (mirrored) assembly from 7in to 5in ...
Modify the angle bracket size of the upper (mirrored) assembly ...

 

As I understand it, it is not possible to modify a mirrored component?


It would be good to be able to "break the link" for the mirrored component such that it inherits everything before the link is broken but can be subsequently itself independently modified in various ways.

 

Copy/ Paste New does not provide a solution since although there can be subsequent modifications to the copy, a subsequent change in the original does not pass to (i.e., is not inherited by) the copy.

 

Again, it would be better if Fusion allowed for the "Paste New" copy to inherit everything before the action of creation in the timeline whilst allowing subsequent modifications.
It would be desirable if change early in the timeline to the original would ripple through to update the copy.
[Situations could possibly be envisaged where such behaviour is undesirable so maybe there should be "Paste New with inherit updates from parent" in addition to the "Paste New" as at present?]

"Paste New with inherit updates from parent" (a more concise naming would be better!) would be a very useful feature!
Where a change is required to be made to both parent and child, the change would be made with the timeline positioned before creation of the child.
For a change that is not desired to influence the child, the change would be located subsequent to the child's creation in the timeline.
Changes to the child would not influence its parent.
Those are my musings for a "feature wish list" ...

 

Returning to the main subject of this posting, in summary, can anybody suggest a better way to go about implementation of this design for which components having only some aspects in common with other components but also have differences?

0 Likes
668 Views
8 Replies
Replies (8)
Message 2 of 9

laughingcreek
Mentor
Mentor

you can edit mirrored components.  you can even edit the originating component, and have changes propagate to the mirrored one, or not.  it's all in how you order you time line.

https://knowledge.autodesk.com/community/screencast/214a3a31-d0af-4d2a-bc17-ed97230c0657

Message 3 of 9

R4SMEs
Advocate
Advocate

Thanks.

 

It is difficult to follow videos you do not include sound ... but it is provides a starting point to help understand such matters and better appreciate the possibilities.

I probably previously knew this capability and may even have used it ... but had forgotten about it.

 

Does a Rectangular pattern of 2 (which is a copy of a component) have similar possibilities?
Obviously a change to the parent will reflect in the child (or, for more than 2, the children).
But can a child of the pattern be modified?

 

Copy/ Paste New is generally not very useful since a change to the parent does not propagate to the child.

0 Likes
Message 4 of 9

g-andresen
Consultant
Consultant

Hi,

here are the dependencies

abhängigkeiten.gif

 

günther

0 Likes
Message 5 of 9

laughingcreek
Mentor
Mentor

@R4SMEs wrote:

...Does a Rectangular pattern of 2 (which is a copy of a component) have similar possibilities?
Obviously a change to the parent will reflect in the child (or, for more than 2, the children).
But can a child of the pattern be modified?

 


no, components created thru patterning can't be un-linked.  edits propagate through all

 

...Copy/ Paste New is generally not very useful since a change to the parent does not propagate to the child.

if your using skeleton sketches outside the component, then both the original and paste/new versions remain linked to that sketch and will respond to dimensional changes.  ie, they both are still using the same sketch.  if a sketch is inside the component when copied, then there is a new sketch for each paste new instance.

 

unfortunately, paste new doesn't out a feature in the timeline, so you can't roll things back and reorder the way you would with mirror.

 

boundary fill does put a feature in the time line.  you can use it to make a copy of a component that responds to edits and reordering the time line in the same way as mirror does.

0 Likes
Message 6 of 9

R4SMEs
Advocate
Advocate

Here is a minimal example (the model is attached to this email) providing "living proof" that mirror appears to provide a good solution ...

BookcaseMinimalExampleV5.png

The bottom part of the bookcase is developed as the "Assembly" component within the component "Assemblies".

Then, using mirror, that component is mirrored to produce the upper assembly.

 

It is possible to make changes to that mirrored component.
In this simple example, the height of the front part is reduced (as is necessary in the actual bookcase design).

 

Any change made to the bottom assembly propagates through to the mirrored component
- but only if the change is made before the mirror in the timeline (here I filleted the right edge).
However, for a change made after the mirror (here I filleted the bottom edge), the change does not influence the mirrored component.

 

This would appear to be a good work-flow, at least for this particular application.

0 Likes
Message 7 of 9

R4SMEs
Advocate
Advocate

I have been busy working on the bookcase model using the approach I explained in my previous posting on this thread.

BookcaseMinimalExampleV7.png

 

In summary, the bookcase has lower and upper assemblies that have many aspects in common but also some differences.
In particular the height of the upper assembly is less than that of the lower assembly.

 

The approach I am using is to fully develop the lower assembly and then simply mirror that complete assembly component across a construction plane at the mid-height to result in the upper assembly.

I then modify the upper assembly to reduce it to the required height.
All this works well.

 

However, there is a corner bracket as a sub-component within the lower assembly component (and also generated within the mirrored upper assembly) which also needs to be reduced in size.


I could, of course, reduce the bracket size by a simple modification (extrude it to be smaller or cut/ then delete the unwanted part) in the upper bracket component.
However, the bracket involves 2 holes for screws (in the brackets themselves and also extending as pilot holes into the other parts).
Also the screws themselves.


So there is more than simply changing the size of the brackets, i.e., the mounting screw positions and hole lengths will change and probably a different length of screw will be involved.

 

I am trying to implement an elegant solution whereby there is a relatively simple way to modify the upper bracket and all the above-mentioned associated aspects ...


The objective is to encapsulate everything in the lower assembly component and take full advantage of the mirroring to implement the upper assembly with the minimum of rework being necessary to make changes to support the differences.

 

The bracket is implemented by a sketch within its component.
I am surprised that a sketch does not appear in the mirrored upper assembly - there is nothing available there to modify it that mirrored assembly.
Why is this?!

 

I have posted a much simplified model which serves as a minimal example for playing with.
It is not a bookcase as such but demonstrates the main aspects.
There are front panels and a bracket.

 

For completeness of the example, I have very quickly added holes and screws.
I chose the first screw that I found - it is much too long but provides an example!

 

The example serves to illustrate that more is involved than simply reducing the size of the mirrored bracket.

 

In summary, the question is: how best can things be done such as to involve the minimum of rework being required in the mirrored upper assembly?

0 Likes
Message 8 of 9

laughingcreek
Mentor
Mentor

There are things you can do with move and extrude to adjust the position of faces, holes, etc. in a parametric way.  I personally think that trying to do it to a mirrored component for this type of thing just adds to the complexity of the model, making future edits more difficult.  by the time I made the changes to the mirrored components I could have just created them from scratch, and at the same time made future edits more intuitive.

but

ok, in the attached I mirrored the main assembly and applied some parametric changes.  in this case I tied the changes back to my skeleton sketch so I wouldn't have to go hunting for where to make changes, but you can put the sketches where ever you want. 

here is a screen cast of me playing with it.  you'll notice it's not always obvious why some edits won't work.  that's one of the problems with convoluted processes.

https://knowledge.autodesk.com/community/screencast/15939f0e-e298-423a-be6d-1eff0da306e2

I didn't include the screws.  those will have to have a joint applied to them afterwards.  you can't do a parametric "move" of a component. 

Message 9 of 9

R4SMEs
Advocate
Advocate

Many thanks for your continued assistance and ideas!

 

Here I summarise your approach as I understand it (it seems useful to document it):

 

Your first sketch includes the top assembly.
Presumably you mirrored the bottom assembly in the sketch and then made changes to it.
[Or vice versa - you have mirrored from the upper to lower, whereas I developed the lower assembly and mirrored it to the upper.]

 

My approach for the design is completely different - there are no sketches associated with the upper (mirrored) assembly before the mirroring of the component which produced it.


Any sketches that subsequently involve the upper assembly are those that relate to the changes to implement differences necessary for the upper assembly.

 

After the mirroring, you increase the size of lower parts by extruding (join) "To object" (where the object is lines of the master sketch?).

 

The bracket size and hole position changes are dealt with by MoveFace point-to-point operations.
[I never use Move but your work makes me appreciate that it has some potential for point-to-point moves which provide the great benefit of history tracking in the timeline.]

 

[For my approach] It is a pity that a sketch within a component is not included in the mirroring when that component is mirrored - if it were, then the sketch would be already available for a simple modification.

ClassicBookcaseV15.png

 

 

For comparison of the approaches, I attach the current version of my bookcase model.

 

This demonstrates that there is an inherent elegance and simplicity in my approach.

 

99.9% (well, maybe just 99%?!) of the work involves only consideration of the single assembly (the lower one).

 

At present there are only two simple changes made after the component mirroring, both of which are easy to understand.
1) Deleting the floor Leveller blocks sub-assembly which are obviously only required for the lower assembly.
2) Extrude (cut) to shrink vertical dimensions of the upper assembly parts.

 

The only aspect that is a little "tricky" is that the height of the mirror plane needed to take into account the subsequent reduction in height of the mirrored upper assembly to result in the desired target height (the "height" parameter of my model.

 

I haven't done anything to reduce size of the brackets and the model doesn't yet include screw holes or the screws.
It is here that my approach is likely to quickly get messy ... which is why I paused and asked for helpful ideas as to the best way forward!

 

---------------
Summarising requirements/ strategies/ "rules" for a simple, clean, easily understandable and easily modifiable model ...

 

Implementation with the minimum number of steps, each of which is easily understandable is desirable.

 

This also implies that there should be minimal repetition.
If you find yourself doing something similar again, you should think "there must be a better way"!

 

In summary, "less is more". With less, there is less to fix in the event of yellow warnings and less to understand in the future.

 

Robustness of the model to parameter changes such as to make yellow warnings less likely to be seen in the future ...
(this aspect is been discussed previously in another recent thread with comments such as "you also wouldn't do any cross component referencing" ...

 

On the subject of a model being "easily understandable", this means that it is best if the flow of the model relates to the construction process.
With my approach, there is an inherently logical flow:
"Let's build the base assembly" ... "now consider the upper assembly ... oh, its almost the same as the lower one, let's copy it and make the few small changes ...".
Apart from clarity of understanding, a practical benefit is that when producing the drawings, it is easy to understand that only a full set of drawings is required for the lower assembly.
For the upper assembly, there could be a "change list" which defines the differences (all of which are best to be located after the mirroring operation) and associated simple drawing which only shows parts which have been changed.

 

---------------
As to the "way forward" for my design (here involving supporting the bracket size and hole position changes and adding the screws),
it seems useful to merge the benefits/ possibilities of your and my approaches in some way - which is not clear to me the moment!

 

---------------
Where mirroring is not involved ...
Envisage a product where components are similar but not a mirror of each other.

 

Pattern doesn't help since children of the pattern can't be changed.

 

Equally, Copy/ Paste (I think ... but maybe I am wrong? - yet to check) doesn't support modifications of the child independently of the parent.

 

Copy/ Paste New has the previously discussed limitations.

 

So the question here is:
How could I have gone about the design if I had wanted the second component to be not mirrored.
The new subject line becomes:
Best practices in dealing with (non-mirrored) components having only some aspects in common?

0 Likes