V0.20/Assembly4 Challenge--Creo Motorbike

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

V0.20/Assembly4 Challenge--Creo Motorbike

Post by ppemawm »

This project is similar to a previous V0.18 challenge (https://forum.freecadweb.org/viewtopic.php?f=24&t=29354) in which I created a complete assembly of a 9-cylinder aero motor as a means of checking the designer's drawings made from actual hardware. Creating a model is a good way of finding drawing errors. I did not use any assembly workbench for the V0.18 model.

This V0.20 challenge is based on a Creo tutorial found here: https://www.udemy.com/course/ptc-creo-p ... 255BC91248. The intent is to try to complete the motorbike model using only the PartDesign workbench for individual bodies and the Assembly4 workbench for the assemblies and then compare FreeCAD's work process to those in the tutorial. Chris' Udemy website includes all of the required drawings needed for the assembly at a quite reasonable price.

A few comments about progress so far:

.<br />These files show how the project has been organized roughly along the lines of the tutorial.  The top-assembly model is saved in this directory.<br /><br />Each folder is a logical sub-assembly that contains an Assembly4 file that holds the individual parts as well as the subassembly.  The parts could have been each created in their own file as in the tutorial, but that quickly becomes unwieldy in a project of this magnitude IMO.<br /><br />The green check marks indicate those subassemblies completed thus far.  Don't ask me why I didn't start with the frame, probably because I haven't quite figured out the best way to approach it with PartDesign.
.
These files show how the project has been organized roughly along the lines of the tutorial. The top-assembly model is saved in this directory.

Each folder is a logical sub-assembly that contains an Assembly4 file that holds the individual parts as well as the subassembly. The parts could have been each created in their own file as in the tutorial, but that quickly becomes unwieldy in a project of this magnitude IMO.

The green check marks indicate those subassemblies completed thus far. Don't ask me why I didn't start with the frame, probably because I haven't quite figured out the best way to approach it with PartDesign.
Capture3.JPG (88.77 KiB) Viewed 7374 times
.<br />The first step is to create a top-level controlling document or master sketch as shown in this image.  It is placed in the Assembly container. This sketch was created from the detail drawing of the frame.  The sketch controls all of the attachment points for each subassembly.  The sketch origin is placed at the pivot point of the rear suspension.
.
The first step is to create a top-level controlling document or master sketch as shown in this image. It is placed in the Assembly container. This sketch was created from the detail drawing of the frame. The sketch controls all of the attachment points for each subassembly. The sketch origin is placed at the pivot point of the rear suspension.
Capture.JPG (284.56 KiB) Viewed 7374 times
.<br />This zoomed image of the master sketch shows the details of the independent rear wheel suspension components which include the shock absorber mechanism.  Note that an Assembly4 variable defines the angle of the rear suspension arm.  In this manner, the sketch can be used to solve for the position of the rear wheel and the variable length of the shock absorber subassemblies.<br /><br />The blue reference dimension is the spring length calculated by the sketch solver.  It can be used later to correctly model the spring for any given rear wheel vertical position.
.
This zoomed image of the master sketch shows the details of the independent rear wheel suspension components which include the shock absorber mechanism. Note that an Assembly4 variable defines the angle of the rear suspension arm. In this manner, the sketch can be used to solve for the position of the rear wheel and the variable length of the shock absorber subassemblies.

The blue reference dimension is the spring length calculated by the sketch solver. It can be used later to correctly model the spring for any given rear wheel vertical position.
Capture2.JPG (272.08 KiB) Viewed 7374 times
.<br />The next step in the process is to attach local coordinate systems (LCS) to each of the subassembly attachment points in the master sketch in preparation for the top assembly.  As the subassembly models progress they can be assembled by superimposing their LCS on the proper LCS in the master sketch.  With this approach, you can actually work on the subassembly body links in the top-assembly file or in the actual subassembly file which nicely faciltates top-down design or if you like to model &quot;in-context&quot; as I do.  Assembly4 seamlessly provides for this capability.<br /><br />You can think of these LCS's as &quot;connectors&quot; which lock all degrees of freedom between parts to form a rigid joint.  If a moveable assembly interface is required (e.g. the articulated rear wheel assembly) the necessary degree of freedoms can be released using the sketch solver or expressions related to the LCS.  In this manner nearly any joint can be simulated such a a slider, pin joint, free rotation, etc.<br /><br />Any body that must be able to articulate or move is attached to the master sketch so that when the sketch is solved for a given rear suspension angle each body and its subassembly will move to its proper position.<br /><br />One significant advantage of the master sketch and Assembly4 is that it can be easily animated to check for clearances over the full range of motion.  I'll make a GIF to demonstrate this in a future post.
.
The next step in the process is to attach local coordinate systems (LCS) to each of the subassembly attachment points in the master sketch in preparation for the top assembly. As the subassembly models progress they can be assembled by superimposing their LCS on the proper LCS in the master sketch. With this approach, you can actually work on the subassembly body links in the top-assembly file or in the actual subassembly file which nicely faciltates top-down design or if you like to model "in-context" as I do. Assembly4 seamlessly provides for this capability.

You can think of these LCS's as "connectors" which lock all degrees of freedom between parts to form a rigid joint. If a moveable assembly interface is required (e.g. the articulated rear wheel assembly) the necessary degree of freedoms can be released using the sketch solver or expressions related to the LCS. In this manner nearly any joint can be simulated such a a slider, pin joint, free rotation, etc.

Any body that must be able to articulate or move is attached to the master sketch so that when the sketch is solved for a given rear suspension angle each body and its subassembly will move to its proper position.

One significant advantage of the master sketch and Assembly4 is that it can be easily animated to check for clearances over the full range of motion. I'll make a GIF to demonstrate this in a future post.
Capture6.JPG (180.62 KiB) Viewed 7374 times
.<br />This is an image of the subassemblies that have been created thusfar.  They are all temporarily attached to the master sketch.  When the frame is complete all of the rigid parts will be attached to the frame.  Only the rear suspension and shock absorber subassemblies will remain attached to the master sketch.  I do not intend to simulate the motion of the front suspension.
.
This is an image of the subassemblies that have been created thusfar. They are all temporarily attached to the master sketch. When the frame is complete all of the rigid parts will be attached to the frame. Only the rear suspension and shock absorber subassemblies will remain attached to the master sketch. I do not intend to simulate the motion of the front suspension.
Capture4.JPG (273.73 KiB) Viewed 7374 times
.
In the next post I will comment on several examples of how the subassembly files are set up as well as difficulties with some of the models. One thing I can already say is that GUI response is agonizingly slow probably due to the several complex PartDesign multi-transforms required for parts such as the headlight, brake discs, and radiator models.

OS: Windows 10 Version 2009
Word size of FreeCAD: 64-bit
Version: 0.20.27428 (Git)
Build type: Release
Branch: master
Hash: 27460358508a2057e0ec57a418641435f12628dd
Python version: 3.8.6+
Qt version: 5.15.2
Coin version: 4.0.1
OCC version: 7.5.3
Locale: English/United States (en_US)


Assembly4 V0.11.10
Last edited by ppemawm on Mon Jun 06, 2022 8:44 pm, edited 11 times in total.
"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.20/Assembly4 Challenge--Creo Motorbike (work in progress)

Post by Kunda1 »

<mind blown>
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
chrisb
Veteran
Posts: 53785
Joined: Tue Mar 17, 2015 9:14 am

Re: V0.20/Assembly4 Challenge--Creo Motorbike (work in progress)

Post by chrisb »

Your showcases are always a pleasure. To see the images of the models is already mind boggling. And the additional informations push this even further.
Thanks!
A Sketcher Lecture with in-depth information is available in English, auf Deutsch, en français, en español.
User avatar
ppemawm
Veteran
Posts: 1240
Joined: Fri May 17, 2013 3:54 pm
Location: New York NY USA

Re: V0.20/Assembly4 Challenge--Creo Motorbike (work in progress) Update #1

Post by ppemawm »

Assembly4 provides a convenient means to create a complex assembly by breaking it down into less complex sub-assemblies. These sub-assemblies themselves can also be constructed of even more simple sub-assemblies as shown in the images that follows. This makes it much easier to organize a project such as this.

All of the parts could be placed in one file as shown in the Creo tutorial and laboriously assembled one at a time in the top assembly. In my opinion it is more interesting to assemble sub-assemblies as they are created which then greatly simplifies the top-assembly process. It also better reflects the the actual assembly process you might go through in your garage building your own motorbike.

A few comments regarding the organization of the sub-assemblies are in the captions of the following images:

.<br />The Combo View in this image shows the top assembly and all of the supporting files for the sub-assemblies created thus far.  I am currently working on the engine, clutch, and transmission sub-assemblies not shown here.<br /><br />When you open the Assembly4 file for the top assembly it also partially loads all of the sub-assemblies enough to present all of the graphics.  This minimizes loading time for an assembly, but it already takes several minutes to load this model.  Each file can then be opened so that you can conveniently continue work on any given sub-assembly.
.
The Combo View in this image shows the top assembly and all of the supporting files for the sub-assemblies created thus far. I am currently working on the engine, clutch, and transmission sub-assemblies not shown here.

When you open the Assembly4 file for the top assembly it also partially loads all of the sub-assemblies enough to present all of the graphics. This minimizes loading time for an assembly, but it already takes several minutes to load this model. Each file can then be opened so that you can conveniently continue work on any given sub-assembly.
Capture7.JPG (221.68 KiB) Viewed 6765 times
.<br />If you open one of these sub-assemblies files such as shown in this image you can drill down into its detail.  The Font Wheel files includes several component parts created by PartDesign as well as several sub-assemblies shown in the Assembly4 model.<br /><br />One of these assemblies is the handlebar highlighted in this image which can be drilled down even further into its detail as shown in the next image.
.
If you open one of these sub-assemblies files such as shown in this image you can drill down into its detail. The Font Wheel files includes several component parts created by PartDesign as well as several sub-assemblies shown in the Assembly4 model.

One of these assemblies is the handlebar highlighted in this image which can be drilled down even further into its detail as shown in the next image.
Capture8.JPG (277.33 KiB) Viewed 6765 times
.<br />The next example sub-assembly in this nest is the wing mirror highlighted in this image which consists of several components itself as can be seen in the expanded tree of the Assembly4 link.<br /><br />Note the local coordinate system axes (LCS).  There is a single connection point for the handlebar to be used for assembling it to the front wheel sub-assembly.  <br /><br />And, also shown is the single LCS for the wing mirror connection to the handlebar.  Each sub-assembly and individual body default LCS is used for this purpose.  It is important to locate the first sketch of the individual body assembly interface at this origin otherwise you will have to add the necessary LCS's in the proper interfaces as you assemble.<br /><br />Note also that the highlighted assembly link is a mirror image of the created bodies for the wing mirror as can be recognized by the negative one shown in the scale property in the Property Panel.  That is probably a little confusing of a mirror of a &quot;mirror&quot;, but hopefully you get the idea.  This property feature saves much time and effort for assemblies that require mirror components.
.
The next example sub-assembly in this nest is the wing mirror highlighted in this image which consists of several components itself as can be seen in the expanded tree of the Assembly4 link.

Note the local coordinate system axes (LCS). There is a single connection point for the handlebar to be used for assembling it to the front wheel sub-assembly.

And, also shown is the single LCS for the wing mirror connection to the handlebar. Each sub-assembly and individual body default LCS is used for this purpose. It is important to locate the first sketch of the individual body assembly interface at this origin otherwise you will have to add the necessary LCS's in the proper interfaces as you assemble.

Note also that the highlighted assembly link is a mirror image of the created bodies for the wing mirror as can be recognized by the negative one shown in the scale property in the Property Panel. That is probably a little confusing of a mirror of a "mirror", but hopefully you get the idea. This property feature saves much time and effort for assemblies that require mirror components.
Capture9.JPG (227.07 KiB) Viewed 6765 times
.<br />This image shows the tree structure of the headlight sub-assembly file.  It consists of all of its components in the Part folder when created as well as the Assembly links.  One of these components is the lens body which was particularly onerous to create.
.
This image shows the tree structure of the headlight sub-assembly file. It consists of all of its components in the Part folder when created as well as the Assembly links. One of these components is the lens body which was particularly onerous to create.
Capture10.JPG (298.58 KiB) Viewed 6765 times
The headlight lens was one of the more difficult models to created due to the grid on the front surface.  The basic shape was a simple enough spherical rotation but it took several rotations and multi-transforms to lay down the grid on the spherical surface.  The basic grid element  is made up of a rotation of a circle using the spherical radius and transformed into the complete grid as shown in the image.<br /><br />The grid was then trimmed with a groove sketch which can be seen in the image.  The sketch may appear overly complicated, but it is simply a carbon copy of the master sketch used for the headlight shape to which is added a sketch that is constrained to the carbon copy for use with the groove tool.<br /><br />In this instance, the PartDesign Multi-Transform was almost unbearably slow taking several minutes for each transformation.  This makes it almost unworkable and one of the features I had hoped would be improved by V0.20, but apparently not.
The headlight lens was one of the more difficult models to created due to the grid on the front surface. The basic shape was a simple enough spherical rotation but it took several rotations and multi-transforms to lay down the grid on the spherical surface. The basic grid element is made up of a rotation of a circle using the spherical radius and transformed into the complete grid as shown in the image.

The grid was then trimmed with a groove sketch which can be seen in the image. The sketch may appear overly complicated, but it is simply a carbon copy of the master sketch used for the headlight shape to which is added a sketch that is constrained to the carbon copy for use with the groove tool.

In this instance, the PartDesign Multi-Transform was almost unbearably slow taking several minutes for each transformation. This makes it almost unworkable and one of the features I had hoped would be improved by V0.20, but apparently not.
Capture11.JPG (265.39 KiB) Viewed 6765 times
.
You may have noticed in the first image that the frame model has been completed during which I have learned a few new things about creating weldments trying to use only the PartDesign workbench. Needless to say, that did not quite work out as hoped since I had to abandon it temporarily in favor of a nice feature in the Part workbench. I will have a few comments regarding that journey in the next post.

Code: Select all

OS: Windows 10 (10.0)
Word size of FreeCAD: 64-bit
Version: 0.20.28647 (Git)
Build type: Release
Python 3.8.13, Qt 5.12.9, Coin 4.0.0, OCC 7.5.3
Locale: English/United States (en_US)
Installed mods: 
  * Assembly4 0.11.10
  * Curves 1.80.0
  * DynamicData 1.80.0
  * Fasteners 0.3.38
  * FCGear
"It is a poor workman who blames his tools..." ;)
User avatar
Zolko
Veteran
Posts: 2213
Joined: Mon Dec 17, 2018 10:02 am

Re: V0.20/Assembly4 Challenge--Creo Motorbike (work in progress) Update #1

Post by Zolko »

ppemawm wrote: Sun Apr 10, 2022 3:56 pm You may have noticed in the first image that the frame model has been completed during which I have learned a few new things about creating weldments trying to use only the PartDesign workbench. Needless to say, that did not quite work out as hoped since I had to abandon it temporarily in favor of a nice feature in the Part workbench.
amazing stuff ... I'd begin to say "as usual " but no, you have outdone yourself. Incredible.

As for the welding stuff, did you see this video from thomas-neemann ? Did you use some similar methodology ?
try the Assembly4 workbench for FreCAD — tutorials here and here
User avatar
ppemawm
Veteran
Posts: 1240
Joined: Fri May 17, 2013 3:54 pm
Location: New York NY USA

Re: V0.20/Assembly4 Challenge--Creo Motorbike (work in progress) Update #1

Post by ppemawm »

Zolko wrote: Mon Apr 11, 2022 6:22 am As for the welding stuff, did you see this video from thomas-neemann ? Did you use some similar methodology ?
Thanks for your kind comments.

I have seen his videos and have used a similar approach in past projects such as a bicycle frame. For this project the objective was to stay in PartDesign in as much as possible for comparison to the Creo tutorial. I will provide some more details of my approach in the next post in a few days.
"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.20/Assembly4 Challenge--Creo Motorbike (work in progress) Update #2

Post by ppemawm »

As promised here are a few details of how I chose to model the frame weldment. Due to limitations in PartDesign the tubes were modeled as solid rather than the hollow tubes as called out in the drawing. In addition, the frame was modeled in sections, mirrored, and then assembled using Assembly4 rather than attempting to fuse all the bodies into a single solid. Unfortunately, you cannot model the complete frame in PartDesign easily since some of the tools needed to simplify the process are found in the Part workbench as is shown in the following images.

.<br />This image shows the various sections that were modeled as individual bodies.  For the most part the sections do not lie in a 2D plane so we are forced to model in 3D space by some means, two of which are explained in the next images.<br /><br />The drawings provided in the tutorial do not completely define the frame, only the dimensioned attachment points for the front and rear wheel assemblies, motor, etc.  However, you can import the drawing images and scale them to actual size, place them in the background, and use them to 'trace' the tube runs.  One for each of the XY, XZ, and YZ planes is required.
.
This image shows the various sections that were modeled as individual bodies. For the most part the sections do not lie in a 2D plane so we are forced to model in 3D space by some means, two of which are explained in the next images.

The drawings provided in the tutorial do not completely define the frame, only the dimensioned attachment points for the front and rear wheel assemblies, motor, etc. However, you can import the drawing images and scale them to actual size, place them in the background, and use them to 'trace' the tube runs. One for each of the XY, XZ, and YZ planes is required.
Capture13.JPG (236.08 KiB) Viewed 6095 times
.<br />The first method is to use only pads and revolves from the PartDesign workbench if the tube runs are fairly simple.  The process starts by anchoring the first feature to the master sketch which was created from the dimensioned drawing provided in the Creo tutorial.  This insures that all of the frame attachment points are accurately captured during modelling.<br /><br />The first revolve you see in the model tree, establishes the tube for the front forks followed by the next revolve for the down pipe of the front lower section of the frame.  The next step is shown in the following image.
.
The first method is to use only pads and revolves from the PartDesign workbench if the tube runs are fairly simple. The process starts by anchoring the first feature to the master sketch which was created from the dimensioned drawing provided in the Creo tutorial. This insures that all of the frame attachment points are accurately captured during modelling.

The first revolve you see in the model tree, establishes the tube for the front forks followed by the next revolve for the down pipe of the front lower section of the frame. The next step is shown in the following image.
Capture14.JPG (211.62 KiB) Viewed 6095 times
.<br />To create elbows or bends in the pipe you can use a revolve that references an axis (Datum Line) that is attached to the last pad face with either a normal or tangent mode.  The pad face is used to complete the revolve.  Therein lies the problem since now the model is dependent upon itself so it is not so robust and may break if you want to add or subtract pads or revolves later.<br /><br />This is a free-form 3D process which takes a bit of trial and error to closely match the drawing images.  The pipe direction is controlled by the radius of the bends and the inclination angle of the axis which can be easily adjusted in the attachment properties until the features match the drawings in the background.<br /><br />Only half of the frame sections were modeled and then mirrored across the XZ plane.
.
To create elbows or bends in the pipe you can use a revolve that references an axis (Datum Line) that is attached to the last pad face with either a normal or tangent mode. The pad face is used to complete the revolve. Therein lies the problem since now the model is dependent upon itself so it is not so robust and may break if you want to add or subtract pads or revolves later.

This is a free-form 3D process which takes a bit of trial and error to closely match the drawing images. The pipe direction is controlled by the radius of the bends and the inclination angle of the axis which can be easily adjusted in the attachment properties until the features match the drawings in the background.

Only half of the frame sections were modeled and then mirrored across the XZ plane.
Capture15.JPG (150.37 KiB) Viewed 6095 times
.<br />The next approach is to use an additive pipe in the PartDesign (PD) workbench which requires a sweep path which is necessarily three-dimensional for these frame sections.  However, PD sketcher is only 2D so we must leave the PD workbench which instantly makes a mess of the model tree.<br /><br />Fortunately, the sections can be completely defined in two orthogonal planes by tracing the pipe centerlines in the proper drawings with two 2D sketches outside PD. These are then extruded using the Part workbench as shown in this image.  Note the reference drawings in the background.<br /><br />Where these extrudes intersect is the exact centerline of the pipe were are trying to model.  The intersection is created with the Part Section tool.<br /><br />To sweep the additive pipe in a PD body it is necessary to make a shapebinder of the Part Section which can be used for the sweep path. A sketch of the pipe cross-section is then attached to the shapebinder with a normal-to-edge mode and used to complete the sweep.  This was the process used to complete the remaining 3D pipe runs.  All of the 'garbage' reference features outside of PD were collected into a folder in order to tidy up the model tree.
.
The next approach is to use an additive pipe in the PartDesign (PD) workbench which requires a sweep path which is necessarily three-dimensional for these frame sections. However, PD sketcher is only 2D so we must leave the PD workbench which instantly makes a mess of the model tree.

Fortunately, the sections can be completely defined in two orthogonal planes by tracing the pipe centerlines in the proper drawings with two 2D sketches outside PD. These are then extruded using the Part workbench as shown in this image. Note the reference drawings in the background.

Where these extrudes intersect is the exact centerline of the pipe were are trying to model. The intersection is created with the Part Section tool.

To sweep the additive pipe in a PD body it is necessary to make a shapebinder of the Part Section which can be used for the sweep path. A sketch of the pipe cross-section is then attached to the shapebinder with a normal-to-edge mode and used to complete the sweep. This was the process used to complete the remaining 3D pipe runs. All of the 'garbage' reference features outside of PD were collected into a folder in order to tidy up the model tree.
Capture16.JPG (188.04 KiB) Viewed 6095 times
.<br />All the braces for the frame bodies can be modeled with simple pads as described in this image.  The pipe sketch circles were attached to shapebinders of the Part Sections with a normal-to-edge mode and positioned along the shapebinder edge with the Map Parameter that can be seen in the Property panel in this image.<br /><br />The sketch has to be aligned by trial using the attachment offset rotations until the pad lines up with the drawing or intersects the mating part of the frame as desired.  Pad to length first and then fine-tune the alignment.
.
All the braces for the frame bodies can be modeled with simple pads as described in this image. The pipe sketch circles were attached to shapebinders of the Part Sections with a normal-to-edge mode and positioned along the shapebinder edge with the Map Parameter that can be seen in the Property panel in this image.

The sketch has to be aligned by trial using the attachment offset rotations until the pad lines up with the drawing or intersects the mating part of the frame as desired. Pad to length first and then fine-tune the alignment.
Capture17.JPG (205.22 KiB) Viewed 6095 times
.
I am sure there are other methods that can be used if you are brave enough to leave PartDesign. See especially the tutorials from user thomas-neemann. I am undoubtedbly a PartDesign sketch-based diehard and prefer to stay in the workbench in as much as possible. If only we just had a few essential Part tools integral to PartDesign we would be cooking with the big boys...

I am currently working on the complex engine housings and have completed several so will have some more images on which to comment in the next post.

Code: Select all

OS: Windows 10 (10.0)
Word size of FreeCAD: 64-bit
Version: 0.20.28647 (Git)
Build type: Release
Python 3.8.13, Qt 5.12.9, Coin 4.0.0, OCC 7.5.3
Locale: English/United States (en_US)
Installed mods: 
  * Assembly4 0.11.10
  * fasteners 0.3.38
  * FCGear
Last edited by ppemawm on Sun Apr 17, 2022 1:29 pm, edited 1 time in total.
"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.20/Assembly4 Challenge--Creo Motorbike (work in progress) Update #2

Post by Kunda1 »

ppemawm wrote: Sat Apr 16, 2022 3:35 pm I am sure there are other methods that can be used if you are brave enough to leave PartDesign. See especially see the tutorials from user thomas-neemann. I am undoubtedbly a PartDesign sketch-based diehard and prefer to stay in the workbench in as much as possible. If only we just had a few essential Part tools integral to PartDesign we would be cooking with the big boys...
It would be excellent if you delineated what tools are missing for you (maybe a separate post?) Including all the places you mentioned 'unfortunately' in the context of you needing to employ a workaround to overcome a missing FC functionality.

Also IIRC, TheMarkster has been working on what looks like making PartDesign and Part workbenches even more interoperable.
TheMarkster wrote: pinged by pinger macro
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.20/Assembly4 Challenge--Creo Motorbike (work in progress) Update #2

Post by ppemawm »

Kunda1 wrote: Sun Apr 17, 2022 11:50 am It would be excellent if you delineated what tools are missing for you (maybe a separate post?)
I am making notes so will do that in a separate post after completing the project. There are some basics that should have been improved since V0.13 IMHO. That is the intent of this project since I have become somewhat disillusioned with the development process and all the undue attention given the perceived topological naming problem. Even so, I continue to be an avid FreeCAD supporter.
"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.20/Assembly4 Challenge--Creo Motorbike (work in progress) Update #3

Post by ppemawm »

I have been working on the models and assembly of the engine/transmission this past week. Most of the complex housings and some of the rotating/ reciprocating components have been completed as shown in the following images.

.<br />Several new sub-assemblies shown in this image include the input shaft (shaft, gearing and clutch components), crankshaft (rods, pistons, sprockets, gears, etc.) and the engine itself (housings, cylinders, heads, and overhead cam, valves, springs and rockers).
.
Several new sub-assemblies shown in this image include the input shaft (shaft, gearing and clutch components), crankshaft (rods, pistons, sprockets, gears, etc.) and the engine itself (housings, cylinders, heads, and overhead cam, valves, springs and rockers).
Capture19.jpg (180.58 KiB) Viewed 5568 times
.<br />The engine/transmission housings are fairly complex each including over 40 features to fully define each half according to the engineering drawing.  I normally do not use datum planes since sketches can be attached in the same manner.  However, as this example shows when several sketches can be attached to the same datum plane it quite simplifies the process especially if they need to be aligned at an angle to the global origin.<br /><br />In this image you can see two datum planes that were defined, one for each cylinder.  The planes are attached to the global origin independent of the model and inclined 30 and 60 degrees about the Y-axis.  This allows you to  attach multiple sketches to the datums to pad and pocket all of the cylinder features without being concerned about an unstable model that won't withstand typical changes.  All features are independent of each other which nullifies the topological naming problem (TPM).
.
The engine/transmission housings are fairly complex each including over 40 features to fully define each half according to the engineering drawing. I normally do not use datum planes since sketches can be attached in the same manner. However, as this example shows when several sketches can be attached to the same datum plane it quite simplifies the process especially if they need to be aligned at an angle to the global origin.

In this image you can see two datum planes that were defined, one for each cylinder. The planes are attached to the global origin independent of the model and inclined 30 and 60 degrees about the Y-axis. This allows you to attach multiple sketches to the datums to pad and pocket all of the cylinder features without being concerned about an unstable model that won't withstand typical changes. All features are independent of each other which nullifies the topological naming problem (TPM).
Capture21.JPG (261.28 KiB) Viewed 5568 times
.<br />These are the all the components that belong to the overhead cam assembly for each cylinder.  Draft &gt; Link arrays were used for locating the multiple valve components.
.
These are the all the components that belong to the overhead cam assembly for each cylinder. Draft > Link arrays were used for locating the multiple valve components.
Capture20.JPG (312.23 KiB) Viewed 5568 times
.<br /><br />Assembling components that simply rotate is straight forward in Assembly 4.  In this assembly the crankshaft was first assembled to the parent LCS and then each rotating part is attached to the crankshaft LCS and offset along the axis to its proper location.  You can avoid offsets if you place more LCS 'connectors' along the crankshaft.  Assembling the rod and piston components require more effort.
.

Assembling components that simply rotate is straight forward in Assembly 4. In this assembly the crankshaft was first assembled to the parent LCS and then each rotating part is attached to the crankshaft LCS and offset along the axis to its proper location. You can avoid offsets if you place more LCS 'connectors' along the crankshaft. Assembling the rod and piston components require more effort.
Capture22.JPG (256.56 KiB) Viewed 5568 times
.<br />Assembling parts that both rotate and reciprocate is a little more involved but can be simplified by using a master sketch to define the constraints as shown in this image.  The sketch need only include the crank throw and the rod and stationary cylinder centerlines.  Keep the sketch as simple as possible.  If you try to combine both front and rear rod assemblies in one sketch it is likely that sketcher edges, vertices, and LCS's will flip as the the crank rotates through 360 deg.  I.e. the assembly blows up at peculiar crank angles.<br /><br />LCS connectors can then be attached at the sketcher vertices and aligned properly using a Z tangent to edge mode.  Both the pin joint of the crankshaft-rod and the required slider constraint for the rod-piston can be simulated.  A sketcher coincident constraint of vertices and a point on object (edge) is the same as a pin joint and slider, respectively.<br /><br />Note that the rod LCS at the crank journal is aligned to the rod centerline and the rod-piston LCS is aligned to the cylinder centerline.<br /><br />I usually define the crank angle as a variable which then can be varied manually using the slider in the Assembly4 animation tool to conveniently check the rotation and reciprocation of all the assembled bodies.
.
Assembling parts that both rotate and reciprocate is a little more involved but can be simplified by using a master sketch to define the constraints as shown in this image. The sketch need only include the crank throw and the rod and stationary cylinder centerlines. Keep the sketch as simple as possible. If you try to combine both front and rear rod assemblies in one sketch it is likely that sketcher edges, vertices, and LCS's will flip as the the crank rotates through 360 deg. I.e. the assembly blows up at peculiar crank angles.

LCS connectors can then be attached at the sketcher vertices and aligned properly using a Z tangent to edge mode. Both the pin joint of the crankshaft-rod and the required slider constraint for the rod-piston can be simulated. A sketcher coincident constraint of vertices and a point on object (edge) is the same as a pin joint and slider, respectively.

Note that the rod LCS at the crank journal is aligned to the rod centerline and the rod-piston LCS is aligned to the cylinder centerline.

I usually define the crank angle as a variable which then can be varied manually using the slider in the Assembly4 animation tool to conveniently check the rotation and reciprocation of all the assembled bodies.
Capture23.JPG (248.77 KiB) Viewed 5568 times
.
Next week I will tackle all the clutch components on the input shaft, the output shaft subassembly, and the remaining right-side engine/transmission housing.

Code: Select all

OS: Windows 10 (10.0)
Word size of FreeCAD: 64-bit
Version: 0.20.28647 (Git)
Build type: Release
Python 3.8.13, Qt 5.12.9, Coin 4.0.0, OCC 7.5.3
Locale: English/United States (en_US)
Installed mods: 
  * Assembly4 0.11.10
  * fasteners 0.3.38
  * FCGear
"It is a poor workman who blames his tools..." ;)
Post Reply