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--Update #3 Antique Blowtorch

Post by ppemawm »

A few of you are still hanging in there (435 views last count of the arbor press details) so I will continue with some of the details of the work process for the third project, the antique blowtorch:

These are all the bodies of the assembly that is created from modified copies of the master sketch with the exception of the vaporizer tubing and the cotter pin located at the end of the plunger.<br />.
These are all the bodies of the assembly that is created from modified copies of the master sketch with the exception of the vaporizer tubing and the cotter pin located at the end of the plunger.
.
Picture2_exploded.jpg (93.24 KiB) Viewed 5482 times
This image shows how the master sketch was created based on a still image from the YouTube video.  The still image helps to establish approximate proportions and approximate dimensions.  The image usually has to be scaled to a known dimension in the sketch.<br /><br />You need to strive for the bare minimum of geometry that still defines all of the controlling dimensions and constraints.  Exactly how the master sketch is dimensioned will affect how the model can be changed during the design process.  It is important to think about how the design may change and the overall design intent when establishing the master sketch.<br />.
This image shows how the master sketch was created based on a still image from the YouTube video. The still image helps to establish approximate proportions and approximate dimensions. The image usually has to be scaled to a known dimension in the sketch.

You need to strive for the bare minimum of geometry that still defines all of the controlling dimensions and constraints. Exactly how the master sketch is dimensioned will affect how the model can be changed during the design process. It is important to think about how the design may change and the overall design intent when establishing the master sketch.
.
Picture3_master.jpg (91.78 KiB) Viewed 5482 times
This is an example of how a carbon copy of the master sketch can be used to create all of the features for a body as complex as this manifold.  The GIF shows the  sketch modifications and the modelling sequence.<br /><br />When a new carbon copy is needed for a feature all of the geometry is first toggled to construction mode.  Original constraints should not be changed except dimensions but geometry can be added or deleted and constrained to the carbon copy as shown in the GIF.<br /><br />Note that the manifold is created only from revolves and grooves which will become your very best friends when using master sketches.<br />.
This is an example of how a carbon copy of the master sketch can be used to create all of the features for a body as complex as this manifold. The GIF shows the sketch modifications and the modelling sequence.

When a new carbon copy is needed for a feature all of the geometry is first toggled to construction mode. Original constraints should not be changed except dimensions but geometry can be added or deleted and constrained to the carbon copy as shown in the GIF.

Note that the manifold is created only from revolves and grooves which will become your very best friends when using master sketches.
.
blowtorch4.gif (1014.82 KiB) Viewed 5482 times
This GIF shows how the vaporizer tubing was created.  The tube model begins with the helix portion using a Part &gt; Helix primitive and a PD sweep of a sketch of the cross section of the tube (inside and ouside diameters).  The helix can be attached to the master sketch with a concentric map mode.  A shapebinder of the helix is used for the sweep path.  The tube sketch is attached to the helix with a FrenetNB map mode. <br /><br />The tubing is created from pads and revolves using the end face of the tube. No sketches are required.   A small straight section (pad) is first added to the helix end followed by a revolve and another straight section.  The datum line axis for the revolve is attached to the tube end face with either Normal or Tangent map mode and offset for the bend radius.<br /><br />The angular orientation and length of the helix, the pad lengths, and the datum line axis offset and angles can be changed as necessary so that the tubing terminates at the proper location.  This takes a bit of trial and error practice, but it is a whole lot like forming the actual tubing by hand in the workshop.<br /><br />The downside of this approach, of course, is that it depends on the face of the tubes so it is susceptible to the topological renaming problem.  It has been my experience that as long as the number of features is not changed then the tubing can be adjusted over a wide range without breaking.<br />.
This GIF shows how the vaporizer tubing was created. The tube model begins with the helix portion using a Part > Helix primitive and a PD sweep of a sketch of the cross section of the tube (inside and ouside diameters). The helix can be attached to the master sketch with a concentric map mode. A shapebinder of the helix is used for the sweep path. The tube sketch is attached to the helix with a FrenetNB map mode.

The tubing is created from pads and revolves using the end face of the tube. No sketches are required. A small straight section (pad) is first added to the helix end followed by a revolve and another straight section. The datum line axis for the revolve is attached to the tube end face with either Normal or Tangent map mode and offset for the bend radius.

The angular orientation and length of the helix, the pad lengths, and the datum line axis offset and angles can be changed as necessary so that the tubing terminates at the proper location. This takes a bit of trial and error practice, but it is a whole lot like forming the actual tubing by hand in the workshop.

The downside of this approach, of course, is that it depends on the face of the tubes so it is susceptible to the topological renaming problem. It has been my experience that as long as the number of features is not changed then the tubing can be adjusted over a wide range without breaking.
.
blowtorch2_tubing.gif (550.97 KiB) Viewed 5482 times
A good master sketch facilitates changes.  This image shows how tolerant this assembly is to modifications that may be required during design (compare to the original image in the first post).  In this example, one of the manifold tubes was moved to the center of the canister, more room added for the handle. and the vertical distance of the nozzle was increased without destroying the bodies or the assembly relationships.  It is very likely that chamfers and fillets will break but they are usually easily fixed.  That is another good reason to avoid draft and thickness tools as well or you will likely spend a lot of time repairing them.<br /><br />A CAD model is only as good as its ability to survive changes without breaking especially when attempting top-down design of a body or an assembly where no drawings exist for guidance.  CAD productivity is lost if you cannot make changes.  Invariably, you will have to make changes as the design evolves, not only to individual features but also to the assembly dimensions and the location of interfaces.<br /><br />That is why it is extremely important to not attach anything to faces, edges, or vertices of the model itself.  Rather, make it an inviolable rule to attach only to the master sketch, its carbon copy, or the individual feature sketches.  Your life will be a whole lot simpler.<br />.
A good master sketch facilitates changes. This image shows how tolerant this assembly is to modifications that may be required during design (compare to the original image in the first post). In this example, one of the manifold tubes was moved to the center of the canister, more room added for the handle. and the vertical distance of the nozzle was increased without destroying the bodies or the assembly relationships. It is very likely that chamfers and fillets will break but they are usually easily fixed. That is another good reason to avoid draft and thickness tools as well or you will likely spend a lot of time repairing them.

A CAD model is only as good as its ability to survive changes without breaking especially when attempting top-down design of a body or an assembly where no drawings exist for guidance. CAD productivity is lost if you cannot make changes. Invariably, you will have to make changes as the design evolves, not only to individual features but also to the assembly dimensions and the location of interfaces.

That is why it is extremely important to not attach anything to faces, edges, or vertices of the model itself. Rather, make it an inviolable rule to attach only to the master sketch, its carbon copy, or the individual feature sketches. Your life will be a whole lot simpler.
.
Picture4_modified.jpg (225.18 KiB) Viewed 5482 times
.
For you diehards who may still be following this post, I will try to find some interesting details of the work process for the next project, the geared handgrinder. Hopefully, by detailing all of the projects you will be as convinced as I am of the importance of master sketches and Assembly4 for top down design.

So, check back in a week or so.

OS: Windows 10 (10.0)
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.19.21937 (Git)
Build type: Release
Branch: master
Hash: 0de5a290113800dc5779a76d7e216bd882e0ed1e
Python version: 3.6.8
Qt version: 5.12.1
Coin version: 4.0.0a
OCC version: 7.3.0
Locale: English/United States (en_US)
"It is a poor workman who blames his tools..." ;)
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--Update #4--Geared Hand Grinder

Post by ppemawm »

This is the 4th example chosen to demonstrate the advantages of the master sketch approach and the Assembly4 workbench for top down design. This is a geared hand grinder design loosely based on one found in a restoration video on YouTube.

This is the master sketch used for the stationary bodies including the main housing, adjustable stand, and the brackets.  Either a carbon copy of this master or a shapebinder is used to reference the bodies and their features to the master sketch.<br /><br />An image from the restoration video was used to establish major proportions.  The image was scaled to known center distances in the master.<br /><br />The master sketch was dimensioned such that the center distances of the gear train could be easily changed for a change in the overall gear ratio if desired.
This is the master sketch used for the stationary bodies including the main housing, adjustable stand, and the brackets. Either a carbon copy of this master or a shapebinder is used to reference the bodies and their features to the master sketch.

An image from the restoration video was used to establish major proportions. The image was scaled to known center distances in the master.

The master sketch was dimensioned such that the center distances of the gear train could be easily changed for a change in the overall gear ratio if desired.
Model_2_master.JPG (236.74 KiB) Viewed 4934 times
This is the master sketch for all of the bodies on the high speed shaft.<br /><br />The pinion body begins life as a basefeature of a helical involute gear object from the gear workbench.  The basefeature is placed in its proper position in the housing using the placement properties of the body.  The master sketch is then linked to the appropriate gear edges with external references.  This necessarily results in a fragile body since changing the pinion gear tooth number will like cause the body to fail.<br /><br />A better approach may be to dimension the shaft centerline from the global origin with no external reference to the gear, but changes to the gear parameters will require a change in this master sketch.
This is the master sketch for all of the bodies on the high speed shaft.

The pinion body begins life as a basefeature of a helical involute gear object from the gear workbench. The basefeature is placed in its proper position in the housing using the placement properties of the body. The master sketch is then linked to the appropriate gear edges with external references. This necessarily results in a fragile body since changing the pinion gear tooth number will like cause the body to fail.

A better approach may be to dimension the shaft centerline from the global origin with no external reference to the gear, but changes to the gear parameters will require a change in this master sketch.
Model_4_pinion.JPG (72.79 KiB) Viewed 4934 times
This image shows the pinion shaft in its proper position in the housing along with the remaining gears.  Each of the gears were located using the placement properties of their respective bodies during the design process.
This image shows the pinion shaft in its proper position in the housing along with the remaining gears. Each of the gears were located using the placement properties of their respective bodies during the design process.
Model_5_mesh.JPG (364.4 KiB) Viewed 4934 times
The LCS's for the final assembly are attached to the master sketch as shown in this image.  The the angle of LCS about its Z axis of rotation for the input shaft/gear is defined by a variable &quot;crank_angle&quot; so that the shaft can be rotated by the Assembly4 animator.<br /><br />The angle of the other gears are related to the crank_angle by their respective gear ratioes as shown in this example property panel for the pinion shaft.  One complete turn of the input shaft crank angle (360 deg) results in ten turns of the pinion shaft according to the tooth numbers in this example.
The LCS's for the final assembly are attached to the master sketch as shown in this image. The the angle of LCS about its Z axis of rotation for the input shaft/gear is defined by a variable "crank_angle" so that the shaft can be rotated by the Assembly4 animator.

The angle of the other gears are related to the crank_angle by their respective gear ratioes as shown in this example property panel for the pinion shaft. One complete turn of the input shaft crank angle (360 deg) results in ten turns of the pinion shaft according to the tooth numbers in this example.
Model_3_LCS.JPG (212.49 KiB) Viewed 4934 times
This image shows how the model responds to a change in gear numbers and center distances.  The image on the left has a ratio of 40:16 and 36:9 or 1:10 overall based on the tooth numbers.<br /><br />The image on the right has a ratio of 38:15 and 34:9 for an overall ratio of 9.6.  The bores and internal features of the housing all shift according to the new dimensions in the master sketch without breaking.
This image shows how the model responds to a change in gear numbers and center distances. The image on the left has a ratio of 40:16 and 36:9 or 1:10 overall based on the tooth numbers.

The image on the right has a ratio of 38:15 and 34:9 for an overall ratio of 9.6. The bores and internal features of the housing all shift according to the new dimensions in the master sketch without breaking.
Model_6_CD-change.JPG (314.41 KiB) Viewed 4934 times
.
Note that in all of the examples thus far the bodies were all created in-context in the same file placed in a parts folder. Assembly4 links are used to assemble these bodies and to add fasteners or duplicate bodies. This may seem redundant, but it does add the ability to independently change body locations in the Model assembly by changing the attachment offsets without affecting the master sketch while still keeping the interface relationships intact. For example, if you wanted to move the main housing assembly elevation with respect to its adjustable base, you simply change the placement property of the main housing and all of its attached bodies follow. This ability becomes more obvious when you want to articulate or animate the model to verify proper motion and internal clearances without changing the master sketches.

Next update (#5) is the steampunk cigarette lighter model which shows how to use link arrays to simplify assembly with Assembly4.

OS: Windows 10 (10.0)
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.19.22111 (Git)
Build type: Release
Branch: master
Hash: cb2099aa6bb287a8d7843eb70684cce79bdef26b
Python version: 3.6.8
Qt version: 5.12.1
Coin version: 4.0.0a
OCC version: 7.3.0
Locale: English/United States (en_US)
Last edited by ppemawm on Thu Aug 06, 2020 4:14 pm, edited 1 time in total.
"It is a poor workman who blames his tools..." ;)
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--Update #5 Steampunk Lighter

Post by ppemawm »

This is the 5th example from the original post that demonstrates use of PartDesign master sketches and Assembly4 during top-down design of a steampunk cigarette lighter found in a restoration video on YouTube. Comments about the work process are included in the captions of the following screen shots:

This is an example of how simple a master sketch can be and still capture all of the important aspects (feature and body locations) of the design.  <br /><br />An image from the video was used to establish approximate proportions and scaled to a known dimension in the master sketch.  When working from these images it is important to realize how the camera distorts the proportions so you have to use some judgement when setting dimensions.
This is an example of how simple a master sketch can be and still capture all of the important aspects (feature and body locations) of the design.

An image from the video was used to establish approximate proportions and scaled to a known dimension in the master sketch. When working from these images it is important to realize how the camera distorts the proportions so you have to use some judgement when setting dimensions.
Capture_master.JPG (231.84 KiB) Viewed 4484 times
A carbon copy of the master can be used to create a master for a subassembly as shown in this image.  All of the bodies and their features in the igniter assembly can be created from this secondary master.<br /><br />In this image the sketch for the grooves on the locking screw are shown.  They are created using the groove tool and an edge from the sketch as an axis followed by a polar pattern.<br /><br />Note that the chamfer was added last in the tree but in hindsight it would have been better to include in the sketch for the revolve.  The chamfer broke several times during design as changes were made.  Easy to fix but still a pain.
A carbon copy of the master can be used to create a master for a subassembly as shown in this image. All of the bodies and their features in the igniter assembly can be created from this secondary master.

In this image the sketch for the grooves on the locking screw are shown. They are created using the groove tool and an edge from the sketch as an axis followed by a polar pattern.

Note that the chamfer was added last in the tree but in hindsight it would have been better to include in the sketch for the revolve. The chamfer broke several times during design as changes were made. Easy to fix but still a pain.
Capture_subassy.JPG (238.6 KiB) Viewed 4484 times
This is a detail of the flint wheel showing the grooves on the perimeter.  I almost always place fillets and chamfers last in the tree, but sometimes it is necessary to place them where they are required during the process as in this example.  If the fillet is placed early in the tree it will usually not break if changes are made later on in the design process.<br /><br />The grooves on the perimeter are a combination of an axial pocket and a subtractive helical sweep followed by a polar pattern.  A datum line attached to the subassembly master sketch carbon copy was the axis used for the sweep and the polar pattern.  The helix for the sweep was attached to the appropriate vertex on the master sketch and offset to center it on the pad.
This is a detail of the flint wheel showing the grooves on the perimeter. I almost always place fillets and chamfers last in the tree, but sometimes it is necessary to place them where they are required during the process as in this example. If the fillet is placed early in the tree it will usually not break if changes are made later on in the design process.

The grooves on the perimeter are a combination of an axial pocket and a subtractive helical sweep followed by a polar pattern. A datum line attached to the subassembly master sketch carbon copy was the axis used for the sweep and the polar pattern. The helix for the sweep was attached to the appropriate vertex on the master sketch and offset to center it on the pad.
Capture_flint wheel.JPG (237.08 KiB) Viewed 4484 times
Path arrays are always fun to grapple with.  They are not entirely intuitive.  After you have done it a couple of hundred times it gets easier.<br /><br />This chain starts with path sketches (one for each chainlink body) as shown in this image which is attached to an edge of the the large link located on the windscreen cap.  It is then offset and rotated about its Y axis until it intersects the lower large link. This is by trial and error.  I used a circular arc for the chain path but I suppose that is not exactly correct for the way a chain hangs by gravity.  Close enough for me.<br /><br />Note that the two chain link bodies are created at the global origin, one of which is rotated 90 deg from the other.<br /><br />The chain link geometry, path dimensions, and the number of links are adjusted until you get a realistically looking chain.  A bit tedious but satisfying when you get there.
Path arrays are always fun to grapple with. They are not entirely intuitive. After you have done it a couple of hundred times it gets easier.

This chain starts with path sketches (one for each chainlink body) as shown in this image which is attached to an edge of the the large link located on the windscreen cap. It is then offset and rotated about its Y axis until it intersects the lower large link. This is by trial and error. I used a circular arc for the chain path but I suppose that is not exactly correct for the way a chain hangs by gravity. Close enough for me.

Note that the two chain link bodies are created at the global origin, one of which is rotated 90 deg from the other.

The chain link geometry, path dimensions, and the number of links are adjusted until you get a realistically looking chain. A bit tedious but satisfying when you get there.
Capture_chain.JPG (243.57 KiB) Viewed 4484 times
Assembly4 was used to add the fasteners, their arrays, and any duplicate bodies.  As shown in this image the bodies that interface with the fasteners were assembled first.  This is followed by assembling one fastener at its proper interface LCS and then using the Draft &gt; polar or linear array.  The LCS at the interface was attached to the sketch that created the hole for the fastener.<br /><br />The front and rear fasteners were 'mirrored' by changing the offset of the fastener and using the move tool in Assembly4 to invert the fastener.
Assembly4 was used to add the fasteners, their arrays, and any duplicate bodies. As shown in this image the bodies that interface with the fasteners were assembled first. This is followed by assembling one fastener at its proper interface LCS and then using the Draft > polar or linear array. The LCS at the interface was attached to the sketch that created the hole for the fastener.

The front and rear fasteners were 'mirrored' by changing the offset of the fastener and using the move tool in Assembly4 to invert the fastener.
Capture_model&arrays.JPG (259.05 KiB) Viewed 4484 times


I have another small project to report in a week or so that uses a similar design approach. I chose this new project to specifically learn more about the worm gear object in the FCGear workbench. It is a simple Bilstein spiral jack from the 1930's found here: https://www.youtube.com/watch?v=6iDJNGdMFls

If you are not bored yet, please stay tuned.

OS: Windows 10 (10.0)
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.19.22111 (Git)
Build type: Release
Branch: master
Hash: cb2099aa6bb287a8d7843eb70684cce79bdef26b
Python version: 3.6.8
Qt version: 5.12.1
Coin version: 4.0.0a
OCC version: 7.3.0
Locale: English/United States (en_US)
"It is a poor workman who blames his tools..." ;)
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--Update #6 Spiral Jack

Post by ppemawm »

This is the 6th example of a top down design of an assembly using PartDesign, master sketches, and Assembly4 workbench based on a restoration video of an antique Bilstein spiral jack found at https://www.youtube.com/watch?v=6iDJNGdMFls

Images from the model and a few brief comments about the work process are as follows:

This was a good project to use the new worm gear that has been added to the FCGear workbench by looo lately.  The worm is a double start gear meshed with a conventional spur gear.  Fortunately, the gear work bench parameters provide the proper beta angle and center distance for the worm alignment with the gear axis.<br /><br />The thrust ball bearing is a CAD .step file downloaded from McMaster Carr.  Note also that I modified the design of the main housing compared to the video to allow machining of the worm gear bore from one end which is then closed with a threaded cover (mostly because I could not figure out how to cleanly model the casting using PartDesign).<br /><br />As in the other examples, all the bodies were created in this single file in-context based on a master sketch and modified carbon copies of the master.  The bodies were then assembled and standard fasteners added with Assembly4.
This was a good project to use the new worm gear that has been added to the FCGear workbench by looo lately. The worm is a double start gear meshed with a conventional spur gear. Fortunately, the gear work bench parameters provide the proper beta angle and center distance for the worm alignment with the gear axis.

The thrust ball bearing is a CAD .step file downloaded from McMaster Carr. Note also that I modified the design of the main housing compared to the video to allow machining of the worm gear bore from one end which is then closed with a threaded cover (mostly because I could not figure out how to cleanly model the casting using PartDesign).

As in the other examples, all the bodies were created in this single file in-context based on a master sketch and modified carbon copies of the master. The bodies were then assembled and standard fasteners added with Assembly4.
capture_2-view.jpg (97.31 KiB) Viewed 4140 times
This is the master sketch used to create each body and most of the features within the bodies.  Note that the master can be quite simple and still be highly useful to control the design intent of the assembly.
This is the master sketch used to create each body and most of the features within the bodies. Note that the master can be quite simple and still be highly useful to control the design intent of the assembly.
capture_master.JPG (273.85 KiB) Viewed 4140 times
The Assembly4 LCS's connectors were attached to the master sketch edges and/or vertices to control the location of each of the bodies.  Each body has its own LCS attached to its own sketches at the interface locations.  <br /><br />This is one way to avoid the topological naming problem thus preventing the model from breaking during the design process which necessarily has to go through several iterations.
The Assembly4 LCS's connectors were attached to the master sketch edges and/or vertices to control the location of each of the bodies. Each body has its own LCS attached to its own sketches at the interface locations.

This is one way to avoid the topological naming problem thus preventing the model from breaking during the design process which necessarily has to go through several iterations.
Capture_LCS.JPG (192.56 KiB) Viewed 4140 times
Variables were defined to control the action of the worm, gear, and the power screw as shown in this image.  The independent variable is the rotational angle of the worm gear about its axis.  <br /><br />The dependent variables are related to the worm gear angle by the ratio of the gear teeth (7:1) and the lead of the power screw (4 mm).  The power screw does not rotate.
Variables were defined to control the action of the worm, gear, and the power screw as shown in this image. The independent variable is the rotational angle of the worm gear about its axis.

The dependent variables are related to the worm gear angle by the ratio of the gear teeth (7:1) and the lead of the power screw (4 mm). The power screw does not rotate.
Capture_variables.jpg (114.51 KiB) Viewed 4140 times
The model can be easily animated in Assembly4 to verify proper operation and to check clearances at the extreme positions of the power screw.<br /><br />In this example the motion expressions are applied to the Model body attachment offset properties rather than the LCS's as I have done in other projects.  The worm angle, however, was applied to the worm shaft LCS attached to the master sketch.  Either approach seems to work equally as well but the former makes more sense to me.  Probably it is best to be consistent.
The model can be easily animated in Assembly4 to verify proper operation and to check clearances at the extreme positions of the power screw.

In this example the motion expressions are applied to the Model body attachment offset properties rather than the LCS's as I have done in other projects. The worm angle, however, was applied to the worm shaft LCS attached to the master sketch. Either approach seems to work equally as well but the former makes more sense to me. Probably it is best to be consistent.
spiral_jack6.gif (947.84 KiB) Viewed 4140 times
.
Questions or comments are welcome. The model is available for review or criticism via a Dropbox link if you contact me directly with a PM.

In the meantime, with all this spare time I have with Covid19 isolation here in NYC, I have been working on another assembly of a two-speed geared hand drill found at: https://www.youtube.com/watch?v=VoiEuyAFLHM This is a good project to challenge yourself with the bevel gear objects from the FCGear workbench incorporated in a complex PartDesign body.

OS: Windows 10 (10.0)
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit.
Version: 0.19.22261 (Git)
Build type: Release
Branch: master
Hash: 1c432fd6170b7904592a224194e42d3c566707a6
Python version: 3.6.8
Qt version: 5.12.1
Coin version: 4.0.0a
OCC version: 7.3.0
Locale: English/United States (en_US)
"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--Update #6

Post by Kunda1 »

Exquisite!.

Ever consider live streaming your CAD modeling sessions? I'm sure you'd pick up a following pretty fast (as you already have one :) )
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
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--Update #6

Post by ppemawm »

Kunda1 wrote: Mon Aug 17, 2020 5:41 pm Ever consider live streaming your CAD modeling sessions?
Thanks for your kind comment.

I have, for about 10 seconds. A high quality video must take an inordinate amount of time which I am not willing to invest at this time.
I would rather model and share snapshots to encourage or convince new users that FreeCAD has got what it takes for real mechanical parametric design work.
"It is a poor workman who blames his tools..." ;)
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--Update #7 Two-Speed Hand Drill

Post by ppemawm »

This is the last of the projects in this series demonstrating top down design of assemblies using master sketches and Assembly4. This is a model of a two-speed hand drill reverse engineered from a restoration on YouTube: https://www.youtube.com/watch?v=VoiEuyAFLHM

A few comments about the modelling process which is similar to the previous projects follow in the captions of the images below:

This is the complete assembly with all the actual parts shown in the inset photo.  It is a circa 1900 hand drill which has two different speeds depending upon the selected bevel gearset.<br /><br />All the bodies were created in one file in context and then assembled with Assembly4 to include fasteners and duplicate bodies and to check for proper operation of the adjuster that switches gears. Expressions and variables were used to control the model of the 3-jaw spring-loaded drill clutch sub-assembly.
This is the complete assembly with all the actual parts shown in the inset photo. It is a circa 1900 hand drill which has two different speeds depending upon the selected bevel gearset.

All the bodies were created in one file in context and then assembled with Assembly4 to include fasteners and duplicate bodies and to check for proper operation of the adjuster that switches gears. Expressions and variables were used to control the model of the 3-jaw spring-loaded drill clutch sub-assembly.
Picture1-ISO.jpg (108.39 KiB) Viewed 3804 times
Since all of the parts mount to the frame shown in the photo inset, a single master sketch can be used to control all of the locations for the assembly interfaces during the design process.  Carbon copies of this sketch starts each new body features.<br /><br />Note that the origin was chosen at the center of the gear axis.  This greatly simplified the modelling of the bevel gearsets.
Since all of the parts mount to the frame shown in the photo inset, a single master sketch can be used to control all of the locations for the assembly interfaces during the design process. Carbon copies of this sketch starts each new body features.

Note that the origin was chosen at the center of the gear axis. This greatly simplified the modelling of the bevel gearsets.
Picture2_master.jpg (83.33 KiB) Viewed 3804 times
The first image above is a screen shot of a generic  template developed for a matched set of bevel gears.  It is based on gear objects from the FCGear workbench.   The template includes all of the calculations needed to establish the gear set and trim the gears in preparation for a specific application.  Only the pitch diameter of the large gear and the gear and pinion tooth numbers are required for this template.  Constraints in the sketch of the gear diagram conveniently determines the pitch diameter of the pinion based on the calculated values from the variable panel.<br /><br />The template input and calculations are more conveniently captured in an Assembly4 variables panel rather than a spreadsheet.  Note that the maximum face width is based on design rules from J.E. Shigley's Machine Design reference.<br /><br />The second image above shows the layout of the gears for this project based on the template calculations.  The gear parameters were manually transferred from the template.  For this project I set the module at 1 mm and the number of teeth for the large gear at 88 (see the inset photo) and back calculated the required pitch diameter. The gear parameter 'reset origin' should be false so that the sketch origin is at the center axis of the gear diagram for proper orientation.<br /><br />The high speed ratio chosen for this model was 26:88 and the low-speed, 26:34.
The first image above is a screen shot of a generic template developed for a matched set of bevel gears. It is based on gear objects from the FCGear workbench. The template includes all of the calculations needed to establish the gear set and trim the gears in preparation for a specific application. Only the pitch diameter of the large gear and the gear and pinion tooth numbers are required for this template. Constraints in the sketch of the gear diagram conveniently determines the pitch diameter of the pinion based on the calculated values from the variable panel.

The template input and calculations are more conveniently captured in an Assembly4 variables panel rather than a spreadsheet. Note that the maximum face width is based on design rules from J.E. Shigley's Machine Design reference.

The second image above shows the layout of the gears for this project based on the template calculations. The gear parameters were manually transferred from the template. For this project I set the module at 1 mm and the number of teeth for the large gear at 88 (see the inset photo) and back calculated the required pitch diameter. The gear parameter 'reset origin' should be false so that the sketch origin is at the center axis of the gear diagram for proper orientation.

The high speed ratio chosen for this model was 26:88 and the low-speed, 26:34.
Picture3.4_gears.jpg (184.13 KiB) Viewed 3804 times
The 3-jaw chuck was assembled with Assembly 4 but there is no constraint solver for the conical surfaces which will allow proper operation of the chuck.  However, it is trivial to add these constraints to the jaw body attachment offset using expressions as shown above in this image.  <br /><br />A variable was defined for the axial position of the chuck housing and the radial position of one of the jaws calculated from the tangent of the chuck cone angle.  The X &amp; Y displacement are then calculated from cosine and sin of 60 deg, respectively, less the closed position offset as shown above.  Every engineer needs to be comfortable with trigonometry and analytic geometry if you are going to design mechanical systems!<br /><br />The image shows the chuck open for an 8 mm drill bit and also the fully closed position.  There are two separate spring models, one for closed, and the other for open.  You could also control the length of the spring using variables related to the jaw position with a bit of trig.
The 3-jaw chuck was assembled with Assembly 4 but there is no constraint solver for the conical surfaces which will allow proper operation of the chuck. However, it is trivial to add these constraints to the jaw body attachment offset using expressions as shown above in this image.

A variable was defined for the axial position of the chuck housing and the radial position of one of the jaws calculated from the tangent of the chuck cone angle. The X & Y displacement are then calculated from cosine and sin of 60 deg, respectively, less the closed position offset as shown above. Every engineer needs to be comfortable with trigonometry and analytic geometry if you are going to design mechanical systems!

The image shows the chuck open for an 8 mm drill bit and also the fully closed position. There are two separate spring models, one for closed, and the other for open. You could also control the length of the spring using variables related to the jaw position with a bit of trig.
Picture5_chuck.jpg (136.87 KiB) Viewed 3804 times
The speed of the drill is selected by a simple adjusting screw and cam as shown above.  The pinion gear drives the inner sleeve through radial keys. The sleeve is also is keyed to the main shaft by double axial keys.  These are all assembled with Assembly4 and move as they should as a function of the position of the adjusting screw.<br /><br />As the GIF shows, this cam constraint can be simulated in Assembly 4 by a conditional statement based on the rotation angle of the screw variable.  This constraint is necessary to verify proper operation of the speed selector.
The speed of the drill is selected by a simple adjusting screw and cam as shown above. The pinion gear drives the inner sleeve through radial keys. The sleeve is also is keyed to the main shaft by double axial keys. These are all assembled with Assembly4 and move as they should as a function of the position of the adjusting screw.

As the GIF shows, this cam constraint can be simulated in Assembly 4 by a conditional statement based on the rotation angle of the screw variable. This constraint is necessary to verify proper operation of the speed selector.
hand_drill.gif (598.71 KiB) Viewed 3804 times
.

A few concluding remarks regarding top down design and in-context modelling:

1. An assembly master sketch(es) is essential to capture design intent and to control interface locations during the design process.
2. My mantra is "keep the master simple but not too simple". Only experience will tell you how simple.
3. Sketcher carbon copies ensure linkage to the master sketch and dramatically improve sketch productivity.
4. Assembly4 facilitates the top down design process with a simple approach using local coordinate systems as "connectors" to insure 6-degree solver function.
5. Nearly any assembly constraint solver for mechanical motion can be created using Assembly4 expressions and variables. I am not a fan of too much automation that buries this function in the assembly software selectable only by myriad of tool buttons.
6. Robust modelling strategies are necessary especially for top-down design since the model will go through many changes during the design process. Avoid model breakage by attaching sketches and individual body local coordinate systems only to master sketches or origin planes.
7. I no longer use the master sketch for controlling any mechanical motion due to weaknesses in the sketcher solver for any changes over a wide range. It is more reliable to apply motion constraint solvers via expressions for the LCS's or body link attachment offset properties.

The model files from any of the projects are available to anyone for review or critique by PM request. The bevel gear template is also available by request. The files are too large to attach.

If you want to learn top down design find a restoration video of a mechanical device that interests you and give it a go. All the information you need can be gleaned from the video with a bit of effort. Using this approach rather than working from drawings is better IMO because it will force you to develop robust models that can withstand many changes as the design evolves.


OS: Windows 10 (10.0)
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.19.22261 (Git)
Build type: Release
Branch: master
Hash: 1c432fd6170b7904592a224194e42d3c566707a6
Python version: 3.6.8
Qt version: 5.12.1
Coin version: 4.0.0a
OCC version: 7.3.0
Locale: English/United States (en_US)
"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--Update #7

Post by Kunda1 »

ppemawm wrote: Mon Aug 24, 2020 5:00 pm
The designs you are capable of in FC are NextF***ingLevel, sir.
I would buy a book that you'd write and publish.
I seriously think you should do something like that.
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
User avatar
bernd
Veteran
Posts: 12849
Joined: Sun Sep 08, 2013 8:07 pm
Location: Zürich, Switzerland
Contact:

Re: V0.19 Top Down Assembly Design Using Assembly4--Update #7

Post by bernd »

the signature perfectly fits to ppemawm :mrgreen: it is as good as jürgens one.
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--Update #8 Rachet Screwdriver

Post by ppemawm »

I would be remiss not to present an alternative work process, perhaps more common, using Assembly4. This is a model of an antique rachet screwdriver inspired by another restoration YT video: https://www.youtube.com/watch?v=JmSXo0XdWoA. However, in this project each of the bodies for the assembly are saved in individual files and assembled with Assembly4. One disadvantage with creating all of the bodies in a single file during top-down design is that the bodies cannot be reused in other projects without saving them to a separate file using copy/paste which must include all of their dependencies (linked mastersketches, etc.).

In the following approach, each body has its own file, but each is created in-context in the assembly file during the assembly design process. No assembly master sketch is used. The following screenshots include a few comments on this process.

This is an old German screwdrive which has a toggle for CW/CCW racheting rotation or a locked position.<br /><br />As shown in the Model tree the assembly file is made up of links to individual files which can be seen lower in the tree.  These links are created with the Assembly4 'insert a link in a part' tool.<br /><br />The process starts with an Assembly4 Model file,  Then, an Assembly4 file of the first body is created and saved, closed, and reopened.  This body file is linked to the assembly by assembling with Assembly4 using the appropriate LCS 'connectors' before modelling begins.  Now, the body can then be created in the linked file in-context.  Each additional body follows the same process, i.e. you assemble as you proceed with each new body. <br /><br />Note that bodies can also be created in the assembly file. For example, in this project, I chose to place the <br />ball and setscrew bodies in the Assembly4 Parts folder.  The setscrew CAD  .step file was downloaded from McMaster-Carr website.<br /><br />You have the option of working either in the assembly file or the body file.  One advantage, if working in the body file, the model is located at the global axis which can greatly simplify modelling.
This is an old German screwdrive which has a toggle for CW/CCW racheting rotation or a locked position.

As shown in the Model tree the assembly file is made up of links to individual files which can be seen lower in the tree. These links are created with the Assembly4 'insert a link in a part' tool.

The process starts with an Assembly4 Model file, Then, an Assembly4 file of the first body is created and saved, closed, and reopened. This body file is linked to the assembly by assembling with Assembly4 using the appropriate LCS 'connectors' before modelling begins. Now, the body can then be created in the linked file in-context. Each additional body follows the same process, i.e. you assemble as you proceed with each new body.

Note that bodies can also be created in the assembly file. For example, in this project, I chose to place the
ball and setscrew bodies in the Assembly4 Parts folder. The setscrew CAD .step file was downloaded from McMaster-Carr website.

You have the option of working either in the assembly file or the body file. One advantage, if working in the body file, the model is located at the global axis which can greatly simplify modelling.
Capture1_Assy.JPG (245.42 KiB) Viewed 3019 times
I started this assembly design with the handle since most bodies attach to it.  <br /><br />Note that after the body is created, LCS's are attached to the appropriate sketch at all of the attachment points for that body as shown in this image.  I usually attach the LCS to the body mastersketch or the sketch that creates the interface feature.
I started this assembly design with the handle since most bodies attach to it.

Note that after the body is created, LCS's are attached to the appropriate sketch at all of the attachment points for that body as shown in this image. I usually attach the LCS to the body mastersketch or the sketch that creates the interface feature.
Capture2_LCS.JPG (201.15 KiB) Viewed 3019 times
For any bodies that must articulate, such as the rachet toggle shown in this image, it is important to check the operation during the design process.<br /><br />Variables are defined in Assembly4 for this purpose.  For this project, the independent variables are the angle of the auxiliary handle and the angle and Z-position of the toggle.  The length of the spring is dependent on the toggle_Z axial position.
For any bodies that must articulate, such as the rachet toggle shown in this image, it is important to check the operation during the design process.

Variables are defined in Assembly4 for this purpose. For this project, the independent variables are the angle of the auxiliary handle and the angle and Z-position of the toggle. The length of the spring is dependent on the toggle_Z axial position.
Capture3_toggle90.JPG (211.72 KiB) Viewed 3019 times
This shows the spring in the compressed position to check that there is sufficient space for the spring as the rachet toggle is actuated.  The length of the spring is used to define the spring's helix 'height' and the pitch is related to the length (Height) by the number of coils, 1.75 in this example.
This shows the spring in the compressed position to check that there is sufficient space for the spring as the rachet toggle is actuated. The length of the spring is used to define the spring's helix 'height' and the pitch is related to the length (Height) by the number of coils, 1.75 in this example.
Capture6_toggle-90-2.4.JPG (233.75 KiB) Viewed 3019 times
The position of toggle is controlled by the Attachment Offset properties of the body link as shown in this image.<br /><br />Any combination of the variable's angle and position can be easily checked to insure that the toggle operates as intended.
The position of toggle is controlled by the Attachment Offset properties of the body link as shown in this image.

Any combination of the variable's angle and position can be easily checked to insure that the toggle operates as intended.
Capture7_toggle-90-0.JPG (244.14 KiB) Viewed 3019 times
.
I just cannot say enough about how flexible and relatively simple it is to use Assembly4 for top-down or bottom-up design. I do alot of assembly design work and find that Assembly4 has always met or exceeded my expectations. The screwdriver files are available for review and critique by request via PM. Questions or comments are welcome as always.

OS: Windows 10 (10.0)
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.19.22261 (Git)
Build type: Release
Branch: master
Hash: 1c432fd6170b7904592a224194e42d3c566707a6
Python version: 3.6.8
Qt version: 5.12.1
Coin version: 4.0.0a
OCC version: 7.3.0
Locale: English/United States (en_US)
"It is a poor workman who blames his tools..." ;)
Post Reply