V0.19 Top Down Assembly Design Using Assembly4--Update #11

Show off your FreeCAD projects here!
Forum rules
Be nice to others! Respect the FreeCAD code of conduct!
User avatar
ppemawm
Veteran
Posts: 1240
Joined: Fri May 17, 2013 3:54 pm
Location: New York NY USA

Re: V0.19 Top Down Assembly Design Using Assembly4

Post by ppemawm »

Zolko wrote: Thu Jul 09, 2020 9:28 am Or did you edit the placement of the part by hand ?
I did in this case but have used the transform tool in the past. Let's face it, changing the placement is pretty easy.
Zolko wrote: Thu Jul 09, 2020 9:28 am this calls for an exploded view function of the assembly
There is already a workbench dedicated to this function available via the AddOn manager, 'ExplodedAssembly'. It has every tool possibly imagined for exploding and recovering assemblies including animation (!). I rarely use it.
"It is a poor workman who blames his tools..." ;)
SirDancealot
Posts: 7
Joined: Sat Jul 04, 2020 12:36 pm

Re: V0.19 Top Down Assembly Design Using Assembly4

Post by SirDancealot »

Would you be so kind and tell us, how did you get this good at this expertise, my good sir?
Would you consider making a step by step instruction manual for this, if I dare??
User avatar
ppemawm
Veteran
Posts: 1240
Joined: Fri May 17, 2013 3:54 pm
Location: New York NY USA

Re: V0.19 Top Down Assembly Design Using Assembly4

Post by ppemawm »

SirDancealot wrote: Thu Jul 09, 2020 2:57 pm Would you be so kind and tell us, how did you get this good at this expertise, my good sir?
You have to do your documentation homework and then put in the hours. There is no substitute.

I started with Version 0.13, graduated to V0.17 PartDesign, and took my masters in
V0.19 Assembly4. A couple of hours each day keeps me current with the software development
so I do not forget what I've learned. We greybeards require constant refreshing.

I turned the corner on the steep learning curve when I became comfortable with placement properties
and advanced when I learned how to avoid attaching sketches to feature faces, edges, or vertices.
Models break much less often and you gain the advantage of parametric behavior which is essential
if you ever have to make changes. That is the key to CAD productivity IMHO since engineers are notorious for
making changes.

Focus on one workbench and stick with it. Do not mix them unless you absolutely have to.
Remember that you only have to learn about 20% of the tools to complete 80% of the work in mechanical design.

I use PartDesign for 90+% of my work and a several workbench tools from Draft (Arrays), Part (Mirror, Helix primitive),
and occasionally the Gear workbench.

I use Assembly4 since it nicely supports top-down design and animation in a simple, logically straight forward manner
with no unnecessary frills. It also provides a nicely integrated way of adding standard fasteners.

Start with simple bodies (100's) with few features and graduate to more complex bodies since they are no more than a collection
of simple features. Then, try simple assemblies using master sketches. If you can create these then you can do more
complex assemblies since they are no more than a collection of sub-assemblies. Finally, learn how to articulate
the moving parts since you cannot design an assembly without verifying that nothing collides over its range of motion.

Expressions and variables are good to learn early on because they facilitate robust parametric modelling.
I rarely use the spreadsheet workbench but rather find that the Assembly4 variable property panel (or the DynamicData workbench)
is a more than adequate substitute which is easier to use in practice.
SirDancealot wrote: Thu Jul 09, 2020 2:57 pm Would you consider making a step by step instruction manual for this, if I dare??
No. I prefer to show by examples some of the intermediate to advanced modelling concepts. There are several in the Users Showcase and the Assembly4 forum. You can learn a lot by step-by-step review of someone else's model tree. IMO there is more than sufficient documentation
and tutorials for beginners.
"It is a poor workman who blames his tools..." ;)
User avatar
Kunda1
Veteran
Posts: 13434
Joined: Thu Jan 05, 2017 9:03 pm

Re: V0.19 Top Down Assembly Design Using Assembly4

Post by Kunda1 »

Some gems getting dropped in this thread ;)
Alone you go faster. Together we go farther
Please mark thread [Solved]
Want to contribute back to FC? Checkout:
'good first issues' | Open TODOs and FIXMEs | How to Help FreeCAD | How to report Bugs
abdullah
Veteran
Posts: 4935
Joined: Sun May 04, 2014 3:16 pm
Contact:

Re: V0.19 Top Down Assembly Design Using Assembly4

Post by abdullah »

Thanks again for showing what can be done. I really like your models and the explanations behind them.

For 0.20, I would like to work on the carbon copy functionality. While a substantial part of its charm resides in its simplicity, it is rather sensitive to geometry modification. I will be reading through your showcase posts when the time arrives ;)
User avatar
ppemawm
Veteran
Posts: 1240
Joined: Fri May 17, 2013 3:54 pm
Location: New York NY USA

Re: V0.19 Top Down Assembly Design Using --Update #1 CI Aero Engine

Post by ppemawm »

abdullah wrote: Sun Jul 12, 2020 1:23 pm For 0.20, I would like to work on the carbon copy functionality. While a substantial part of its charm resides in its simplicity, it is rather sensitive to geometry modification.
Thank you for that, I'll be looking forward to any improvement in sketch stability.

IMO the carbon copy function is one of the most powerful tools in PartDesign to maintain parametric relationships and to augment sketch productivity. I use it extensively in conjunction with master sketches particularly for a top down design work process. I routinely create master sketches for the overall assembly, subassemblies, and bodies. Each of these is linked through the carbon copy, i.e. I add to the carbon copy of the assembly master sketch what I may need for a sub-assembly, and then add to that what is needed for individual body features. Sometimes I even use shapebinders of the carbon copy with sketch external reference in my more lazy moments.

The following are a couple of examples of use in the first of the above projects, the compression ignition engine assembly design:

Due to its symmetry this assembly is an excellent candidate for maximum use of a master sketch(es) and carbon copies.<br /><br />I usually place the master sketch in the first body to be modeled or in its own body.  It makes it convenient to create new carbon copies or duplicates of the carbon copy.<br />.
Due to its symmetry this assembly is an excellent candidate for maximum use of a master sketch(es) and carbon copies.

I usually place the master sketch in the first body to be modeled or in its own body. It makes it convenient to create new carbon copies or duplicates of the carbon copy.
.
Picture1.png (244.46 KiB) Viewed 4000 times
These are the master sketches used for the design of the assembly.  Since drawings are available for this project the master sketch can be fairly detailed without risk of change (unless you make a mistake of course).  A good master sketch requires thoroughly thinking through the whole modeling process before beginning.  <br /><br />A carbon copy of this sketch or its duplicate is used to create subassembly bodies or features for bodies.  Note that the master sketches include all of the interface locations and dimensions for each of the sub-assemblies or bodies in the assembly. The number of constraints can grow to an unwieldy number but the solver seems to handle it OK.<br /><br />A separate master (not shown) is used for the moving bodies which is also used by Assembly4 for local coordinate systems attachment.  In this case, the rotor master is not constrained to the main master sketch so that it is easier (possible) to change the axial position of the rotor subassembly by changing one dimension during the design process.  It could be overlaid on the main master but the sketch can get a little complicated sometimes.<br />.
These are the master sketches used for the design of the assembly. Since drawings are available for this project the master sketch can be fairly detailed without risk of change (unless you make a mistake of course). A good master sketch requires thoroughly thinking through the whole modeling process before beginning.

A carbon copy of this sketch or its duplicate is used to create subassembly bodies or features for bodies. Note that the master sketches include all of the interface locations and dimensions for each of the sub-assemblies or bodies in the assembly. The number of constraints can grow to an unwieldy number but the solver seems to handle it OK.

A separate master (not shown) is used for the moving bodies which is also used by Assembly4 for local coordinate systems attachment. In this case, the rotor master is not constrained to the main master sketch so that it is easier (possible) to change the axial position of the rotor subassembly by changing one dimension during the design process. It could be overlaid on the main master but the sketch can get a little complicated sometimes.
.
Picture3.png (217.67 KiB) Viewed 4000 times
This image shows how a carbon copy of the master sketch is used to add a feature.  In this case, it is the hole for the carburator using the groove tool.  The added feature sketch is constrained to the carbon copy.  A sketch edge is used for the axis of rotation.<br />.
This image shows how a carbon copy of the master sketch is used to add a feature. In this case, it is the hole for the carburator using the groove tool. The added feature sketch is constrained to the carbon copy. A sketch edge is used for the axis of rotation.
.
Picture5.png (289.39 KiB) Viewed 4000 times
This master for the carburetor sub assembly is used to create the bodies as well as most of the features via carbon copies.  Its location in the assembly is constrained to the carbon copy of the master.<br /><br />In retrospect, I could have used a carbon copy of the previous sketch defining the hole location rather than the main master sketch so if I needed to move the hole the carburetor assembly would also move to its proper location during the design process.  Gee whiz, I can't think of everything.<br />.
This master for the carburetor sub assembly is used to create the bodies as well as most of the features via carbon copies. Its location in the assembly is constrained to the carbon copy of the master.

In retrospect, I could have used a carbon copy of the previous sketch defining the hole location rather than the main master sketch so if I needed to move the hole the carburetor assembly would also move to its proper location during the design process. Gee whiz, I can't think of everything.
.
Picture6.png (415.4 KiB) Viewed 4000 times
Once the model is complete the individual bodies are assembled with Assembly4 LCS connectors and animated to check for clearances and proper operation.  In this case, only the moving bodies were assembled with Assembly4.  All the stationary bodies are already in their proper location controlled by the master sketch solver.<br /><br />  The assembly LCS are attached to the master sketch.  Each body LCS is attached to its master sketch at its assembly interface.  When assembled in this manner, individual bodies can be moved with the Attachment Offset and each connected body will move with it without having to change the master sketch used for modelling.<br /><br />The moving bodies are animated by manipulating the Model master sketch and the Attachment Offset of the rotation LCS as shown in the Model tree using variables and expressions as necessary.<br /><br />Powerful indeed.<br />.
Once the model is complete the individual bodies are assembled with Assembly4 LCS connectors and animated to check for clearances and proper operation. In this case, only the moving bodies were assembled with Assembly4. All the stationary bodies are already in their proper location controlled by the master sketch solver.

The assembly LCS are attached to the master sketch. Each body LCS is attached to its master sketch at its assembly interface. When assembled in this manner, individual bodies can be moved with the Attachment Offset and each connected body will move with it without having to change the master sketch used for modelling.

The moving bodies are animated by manipulating the Model master sketch and the Attachment Offset of the rotation LCS as shown in the Model tree using variables and expressions as necessary.

Powerful indeed.
.
nano5.gif (648.28 KiB) Viewed 4000 times

I will add a few examples from the other four projects in additional posts in this thread as I get the opportunity assuming that they are helpful. I am reluctant to share the file for this aero engine because the drawings are copyrighted. The other files are not based on drawings so I would gladly share these if useful.
Last edited by ppemawm on Fri Jul 17, 2020 4:14 pm, edited 2 times in total.
"It is a poor workman who blames his tools..." ;)
abdullah
Veteran
Posts: 4935
Joined: Sun May 04, 2014 3:16 pm
Contact:

Re: V0.19 Top Down Assembly Design Using Assembly4

Post by abdullah »

ppemawm wrote: Sun Jul 12, 2020 4:12 pm IMO the carbon copy function is one of the most powerful tools in PartDesign to maintain parametric relationships and to augment sketch productivity. I use it extensively in conjunction with master sketches particularly for a top down design work process. I routinely create master sketches for the overall assembly, subassemblies, and bodies. Each of these is linked through the carbon copy, i.e. I add to the carbon copy of the assembly master sketch what I may need for a sub-assembly, and then add to that what is needed for individual body features. Sometimes I even use shapebinders of the carbon copy with sketch external reference in my more lazy moments.
It is indeed useful for me to see how people mastering the PD/Sketcher capabilities use carbon copy. At the end, my designs are way simpler, so I get to see only a subrange of the potential improvements.
ppemawm wrote: Sun Jul 12, 2020 4:12 pm In retrospect, I could have used a carbon copy of the previous sketch defining the hole location rather than the main master sketch so if I needed to move the hole the carburetor assembly would also move to its proper location during the design process. Gee whiz, I can't think of everything.
This indeed rings a bell.

I am a carbon copy abuser. Meaning that most of my sketches of a body end up having the master sketch in it. I have been a even more of an abuser in the past. Sometimes I even had a copy of the master sketch just with construction lines for sketches that are perpendicular to the master sketch, just to link dimensions. This I have realised that many times results in overcomplicated sketches, the complexity not justified by the benefits. This is the part I am scaling down.

I have come to realise that:
a) using always the master sketch for carbon copy: It is easier to keep track of dependencies, but it is less efficient than using the previous closest sketch (as in your example, you realise you could have use the previous sketch).
b) using always the closest sketch for carbon copy, which is generally the previous (parallel) sketch: Dependencies get more and more complex with subsequent copies. It is way much more efficient, but if the model needs reworking (the previous sketch(es) must be modified), then one ends up rebuilding almost every single subsequent sketch.

a) suffers from the same problem as b) if a) needs to be changed, but if the sketch to be changed is not a) then the extent of the redesign is smaller (at the cost of having worked more in every single sketch the first time).

Of course mixes of a) and b) are also possible (sometimes even easy to justify and even the way to go).

With these antecedents (and the consequences of reworking the master sketch because they were not properly thought through), I am considering ways to enable changing a master sketch while reducing this effect. Of course, I do not want to have links between sketches within the traditional sense (like external geometry imports), but I am indeed considering storing metadata (maybe within the geometry and constraints), so that the editing possibilities of the copied sketch are aware of where this geometry came from and can automate/assist an update over the different sketches.

Let me put a very simple example. Your master sketch was a square, now it needs to be a pentagon. You go to the master sketch remove a coincident constraint add a new line with coincidents to make the pentagon. Then when you enter a carbon copied sketch (carbon copied sketches may even get highlighted so that you know what to edit), an editing aid may enable to synchronise the previously copied constraints (removal of the coincident in this case), synchronise the geometry (addition of a line) and update of the own geometry indices and constraints and synchronise new master sketch constraints (at the right position in the constraint list).

This should be an improved version of what I do in this cases: Delete all the previous master sketch geometry/constraints. Make a new carbon copy. Start connecting the own sketch geometry with the new carbon copy.

I do not seek a full automation, but assistance that allows me to concentrate in what is important (how do I need to modify the copied sketch to take into account the new line)

Of course this is just an idea now, it needs to be developed further...

Another different idea is whether the carbon copy of the carbon copy of the carbon copy should refer to the dimensions in the master sketch or to the copy being copied. Maybe providing some tools to help changing the dependence...
User avatar
ppemawm
Veteran
Posts: 1240
Joined: Fri May 17, 2013 3:54 pm
Location: New York NY USA

Re: V0.19 Top Down Assembly Design Using Assembly4

Post by ppemawm »

abdullah wrote: Sun Jul 12, 2020 5:57 pm a) using always the master sketch for carbon copy: It is easier to keep track of dependencies, but it is less efficient than using the previous closest sketch
You can also use an Edit > duplicate selection of a carbon copy but you have to remove all the dependencies or the tree becomes a mess. And, you have to drag it back to the body. So, it is not much more efficient than creating a new carbon copy each time which is actually quite simple to do if you always have the master sketch visible.
abdullah wrote: Sun Jul 12, 2020 5:57 pm b) using always the closest sketch for carbon copy
I do not like to nest them any more than assembly, sub-assembly, and body feature. It can get too confusing as you indicated
abdullah wrote: Sun Jul 12, 2020 5:57 pm the consequences of reworking the master sketch because they were not properly thought through
Another issue is the changing of the edge and vertex numbering at times when the master sketch requires articulation through a wide range to check for motion or clearances. This wreaks havoc with any sketches or LCS connectors attached to the sketch. This can sometimes be avoided with proper constraint strategy but not always. That is why I have graduated to Assembly4 as a means of articulating or animating an assembly with variables and expressions.
abdullah wrote: Sun Jul 12, 2020 5:57 pm I do not seek a full automation, but assistance that allows me to concentrate in what is important
abdullah wrote: Sun Jul 12, 2020 1:23 pm ...a substantial part of its charm resides in its simplicity...
Please do not forget this. We use 10% of the software 90% of the time...
"It is a poor workman who blames his tools..." ;)
aapo
Posts: 626
Joined: Mon Oct 29, 2018 6:41 pm

Re: V0.19 Top Down Assembly Design Using Assembly4

Post by aapo »

ppemawm wrote: Wed Jul 08, 2020 7:21 pm 3. I have generally stopped using the master sketch as the solver to animate the moving bodies. LCS's attached to the master sketch will sometimes jump positions as the master is manipulated over its range of variation. If that happens, the bodies attached to the LCS will also jump. That why it is good practice to manipulate the master sketch in the beginning over its complete range to insure it is stable before creating any body dependent upon it.
Great modeling there, and a good collection of useful Asm4 modeling tips, thanks! I would like to add one tidbit of information concerning this master sketch LCS jumping phenomenon. I have found out that it is a great help to use map mode OZX, i.e., the "Align-O-Z-X" (or any of the other coordinate permutations) attachment option. There, you first select an Vertex from the sketch, which will become the LCS origo. Second, you'll need to select an edge starting from this same origo, which will become your LCS z-axis. Finally, one must select the x-axis. I usually choose a datum axis, which I have put perpendicular to the sketch plane. This way your z-axis cannot point the wrong way, unless the points in your sketch are rearranged (topo problem), which happens very rarely at least for me. It is still possible for your x-axis to point exactly into the opposite direction you have planned, but even that happens very rarely. One of the downsides, at least for me, is that FreeCAD complains when I've mapped the first Vertex and Edge, but if I just won't care about the warning and stubbornly add the 2nd Edge, OZX suddenly becomes possible. :D

This mapping choice has become the preferred one for my LCS master sketch modeling over any of the others (Inertial CS, edge, etc.), because it is practically impossible for the z-axis to point in the wrong direction when manipulating the sketch. Although, I'm not sure if you already use this method, and your models are just so much more complicated than mine, that you're hitting problems that I've not yet seen. :D

20200715_FreeCAD_Asm4_Align-O-Z-X.png
20200715_FreeCAD_Asm4_Align-O-Z-X.png (125.69 KiB) Viewed 3836 times
Attachments
20200705 Asm4 Animation.FCStd
(70.45 KiB) Downloaded 128 times
User avatar
ppemawm
Veteran
Posts: 1240
Joined: Fri May 17, 2013 3:54 pm
Location: New York NY USA

Re: V0.19 Top Down Assembly Design Using Assembly4

Post by ppemawm »

aapo wrote: Wed Jul 15, 2020 7:17 pm I have found out that it is a great help to use map mode OZX, i.e., the "Align-O-Z-X" (or any of the other coordinate permutations) attachment option.
Thanks for the great tip. I will try it out next time I run into an master sketch animation problem.
BTW your animation of the chain links is very cool.
"It is a poor workman who blames his tools..." ;)
Post Reply