V0.18 Challenge--Clerget 9B Aero Engine--UPDATE #6

Show off your FreeCAD projects here!
Forum rules
Be nice to others! Respect the FreeCAD code of conduct!
chrisb
Veteran
Posts: 53924
Joined: Tue Mar 17, 2015 9:14 am

Re: V0.18 Challenge--Clerget 9B Aero Engine--UPDATE #3

Post by chrisb »

:shock:
What a great model!
A Sketcher Lecture with in-depth information is available in English, auf Deutsch, en français, en español.
User avatar
Vincent B
Veteran
Posts: 4713
Joined: Sun Apr 05, 2015 9:02 am
Location: La Rochelle, France

Re: V0.18 Challenge--Clerget 9B Aero Engine--UPDATE #3

Post by Vincent B »

ppemawm wrote: Sat Aug 04, 2018 4:47 pm The file has grown to 133 Mb, 646 Sketches, and 191 Bodies, but performance is still adequate. No crashes, stable as can be. The only problem with such a large file is the (~4 min) required for autosave every 15 minutes and during some random recomputes triggered somehow.
Parts should be in separate files and then includes as clones in the main file. isn't it?
...
Great, great job anyway. :shock:
User avatar
ppemawm
Veteran
Posts: 1240
Joined: Fri May 17, 2013 3:54 pm
Location: New York NY USA

Re: V0.18 Challenge--Clerget 9B Aero Engine--UPDATE #3

Post by ppemawm »

GlouGlou wrote: Sat Aug 04, 2018 7:26 pm Parts should be in separate files and then includes as clones in the main file. isn't it?
That is perhaps one (proper?) way. I prefer all parts in one file, in context, when I am modelling engines.
"It is a poor workman who blames his tools..." ;)
User avatar
saso
Veteran
Posts: 1920
Joined: Fri May 16, 2014 1:14 pm
Contact:

Re: V0.18 Challenge--Clerget 9B Aero Engine--UPDATE #3

Post by saso »

ppemawm wrote: Sat Aug 04, 2018 8:35 pm
GlouGlou wrote: Sat Aug 04, 2018 7:26 pm Parts should be in separate files and then includes as clones in the main file. isn't it?
That is perhaps one (proper?) way.
No it is not, this way of working was introduced with Asm2 as a workaround for not having proper Part and Assembly containers to build the proper Assembly hierarchy tree structure. Unfortunately this way of working is continuing to be pushed forward in all of the ongoing "assembly" implementations instead of doing it the proper way, on top of the Part and Assembly containers. As I have said in the other topic, this view, that adding constraints between geometry (ex. solids) is what makes an assembly, is wrong. https://forum.freecadweb.org/viewtopic. ... 70#p237682

If we take in to account that Part and Assembly containers are not yet properly implemented, what you are doing ppemawm is IMO great!
triplus
Veteran
Posts: 9471
Joined: Mon Dec 12, 2011 4:45 pm

Re: V0.18 Challenge--Clerget 9B Aero Engine--UPDATE #3

Post by triplus »

ppemawm wrote: Sat Aug 04, 2018 4:47 pm The file has grown to 133 Mb, 646 Sketches, and 191 Bodies, but performance is still adequate. No crashes, stable as can be. The only problem with such a large file is the (~4 min) required for autosave every 15 minutes and during some random recomputes triggered somehow. Perhaps someone could come up with a way to make this an incremental save? Then again, who else would want to have everything in one file?

Now, on to the accessories which I may put in a separate file due to their complexity. Stay tuned for more updates.
ppemawm wrote: Sat Aug 04, 2018 8:35 pm
GlouGlou wrote: Sat Aug 04, 2018 7:26 pm Parts should be in separate files and then includes as clones in the main file. isn't it?
That is perhaps one (proper?) way. I prefer all parts in one file, in context, when I am modelling engines.
Well. The truth and the short answer is ATM you can't. That is without using workbenches like Assembly 2 to do the imports. Or to basically do things manually. Model something in one file and after for example manually "export/import" simplified geometry (without history) in "assembly document". But this will hopefully change soon:

https://forum.freecadweb.org/viewtopic.php?f=10&t=29542
saso wrote: Sun Aug 05, 2018 8:38 am No it is not, this way of working was introduced with Asm2 as a workaround for not having proper Part and Assembly containers to build the proper Assembly hierarchy tree structure. Unfortunately this way of working is continuing to be pushed forward in all of the ongoing "assembly" implementations instead of doing it the proper way, on top of the Part and Assembly containers. As I have said in the other topic, this view, that adding constraints between geometry (ex. solids) is what makes an assembly, is wrong. https://forum.freecadweb.org/viewtopic. ... 70#p237682
Link and Assembly effort are basically two different things. The idea on how to put crankshaft and piston in two different documents (if desired). And to after somehow get them in "assembly document". That is what the question was about. And in the end it has little to do with Assembly per se. FreeCAD just doesn't know how to do that ATM and hopefully Link effort will resolve this and provide such functionality soon.

As for something being right or wrong. That is highly use case dependent and we need to support more use cases in the end. Like creating Link in working document or from external document. Assembly in single file or multiple files ... Adding relations to Draft geometry (you used this example in the linked discussion) actually is possible with Assembly 3. And for sure having such option doesn't make Sketcher workbench more right or wrong. We could claim @ppemawm isn't doing assemblies ATM. But it would be hard to argue that looking at the results. ;) But majority of FreeCAD users isn't skilled like that and likely needs a more straightforward ways to assemble things. Anyway the point being go easy on "right or wrong" claims.
User avatar
ppemawm
Veteran
Posts: 1240
Joined: Fri May 17, 2013 3:54 pm
Location: New York NY USA

Re: V0.18 Challenge--Clerget 9B Aero Engine--UPDATE #3

Post by ppemawm »

triplus wrote: Sun Aug 05, 2018 1:36 pm But majority of FreeCAD users isn't skilled like that and likely needs a more straightforward ways to assemble things.
Builiding a collection of bodies and part "sub-assemblies" as I have done is not difficult. How hard is it to correctly locate the first sketch of a new body where it belongs in the "assembly"? About 99% of what I have done in this model are sketches attached to the principle planes and offset using Attachment Map Mode in the Property panel. Occasionally, I had to rotate a sketch, rarely, did I have to attach a sketch to an vertex, edge, or face, with the exception of helix sweeps for springs. I suggest that learning and becoming comfortable with Placement properties to be a critical skill in FreeCAD. It was one of the more difficult for me to get my head wrapped around but once it clicked I was able to do these types of "assemblies" with pleasure.

It is true that with this above approach the bodies do not know where they belong if some other body is moved so relocating several affected bodies can be a nightmare. In several other examples, I have used shapebinders or master sketches to link multiple bodies in these engine "assemblies" but have found the models to be quite fragile when making changes. They may move where they belong but the body features themselves may fail.
"It is a poor workman who blames his tools..." ;)
triplus
Veteran
Posts: 9471
Joined: Mon Dec 12, 2011 4:45 pm

Re: V0.18 Challenge--Clerget 9B Aero Engine--UPDATE #3

Post by triplus »

I often start in Part or PartDesign workbench. Depending of what tools i plan to use. Hopefully more and more invasion of tools in PartDesign workflow will happen in the future. And more and more it will make sense to just start in PartDesign workbench most of the times. When tackling standard mechanical engineering projects. Anyway after the modeling starts. In small to mid size projects it often makes the most sense to just model the final "assembly" in one go. In a way as we are basically talking about a single part. Everything can be made parametric with ease. Therefore for sure this is valid use case. FreeCAD has progressed much in this regard (@ickby). Much more linking (@DeepSOIC) to external geometry is possible now and PartDesign really does take the modeling experience to the next level. Sketcher has improved massively in the past few releases (@abdullah). If we just look at a added feature like splines. Amazing. But i guess the main point of this advancements in general still is for end users being able to build more complex parts with ease. And therefore not tackling assemblies of parts directly.

This approach usually doesn't scale good when working in a team environment. Person A models the crankshaft and provides the file. Person B models the piston and provides the file. With the advancements made in FreeCAD 0.17 this part got a nice boost. That is creating the crankshaft and piston part. Person C needs to assemble them. Currently there are ways to manage this and to get results. But with Link effort it comes down to a drag and drop operation into the (assembly) document.
ppemawm wrote: Sun Aug 05, 2018 2:56 pm I suggest that learning and becoming comfortable with Placement properties to be a critical skill in FreeCAD. It was one of the more difficult for me to get my head wrapped around but once it clicked I was able to do these types of "assemblies" with pleasure.
This comes next indeed. Robust assembly solver doing that instead of the user. And not only that. For when things change to know what to do (recalculate relations and update the parts placement accordingly). Therefore to start talking about real parametric assemblies where actually joining different parts together. And when it comes to knowing what to do. For best results TopoNaming effort is that missing piece of the puzzle. How to make all this fragile and changing topology experience better for the end users.

But i must say i am rather optimistic. As if we say we climbed that first step and made the modeling experience superb. As seen with the work you do. We can only imagine what will happen with each new step achieved!
User avatar
ppemawm
Veteran
Posts: 1240
Joined: Fri May 17, 2013 3:54 pm
Location: New York NY USA

Re: V0.18 Challenge--Clerget 9B Aero Engine--UPDATE #4

Post by ppemawm »

All of the electrical components have been completed including the distributor with potted contacts and gearing, high tension connectors with lead wires, brushes, and the dual magneto housings. In addition the dual spark plugs have been added to each of the nine cylinders. The only component left are the tensioned wires between the plugs and distributor contacts as shown in one of the images below. These appear to be a real challenge to model correctly.

The main engine file has grown so large (139 Mb) that it is no longer practical to add new models due to the delay in opening the file, recomputes, and frequent auto save. As a consequence, I have created a new file for each of the accessory assemblies: magneto, oil pump, and air pump. These are quite complex machines in themselves. My plan is to merge these with the engine file upon completion so that everything is in one file for reference.

A few screen grabs of the electrical components are included as follows with some brief comments:

There are two magnetos, one for each set of spark plugs.  They are driven off the gearing included in the distributor assembly.  <br /><br />Most of the bodies were fairly straight forward to create but are assembled at an awkward angle on the central support housing.  So, I created the parts at the global origin using origin planes and moved them into position after completion.  This is a deviation from how I usually work which is creating the body in its final position in context.  I prefer the latter.<br /><br />And, instead of master sketches, I tried copying sketches from one feature to the next where possible, kind of a reverse master sketch process.  Unused geometry in the copied sketch is changed to construction geometry and offset as required.  It is quite stable even if the sketches upstream are changed.  This is a quick way to create a model but has the drawback that the copied sketch attachment offset may have to be changed if any changes are made in upstream sketches.
There are two magnetos, one for each set of spark plugs. They are driven off the gearing included in the distributor assembly.

Most of the bodies were fairly straight forward to create but are assembled at an awkward angle on the central support housing. So, I created the parts at the global origin using origin planes and moved them into position after completion. This is a deviation from how I usually work which is creating the body in its final position in context. I prefer the latter.

And, instead of master sketches, I tried copying sketches from one feature to the next where possible, kind of a reverse master sketch process. Unused geometry in the copied sketch is changed to construction geometry and offset as required. It is quite stable even if the sketches upstream are changed. This is a quick way to create a model but has the drawback that the copied sketch attachment offset may have to be changed if any changes are made in upstream sketches.
Picture22.jpg (276.99 KiB) Viewed 2746 times
.
The wiring and connectors were actually quite simple to create.  Note that the distributor contacts are embedded in an epoxy potting.  The brushes are spring loaded against the contacts.  Brush wear was probably one of the limiting maintenance items.
The wiring and connectors were actually quite simple to create. Note that the distributor contacts are embedded in an epoxy potting. The brushes are spring loaded against the contacts. Brush wear was probably one of the limiting maintenance items.
Picture23.jpg (202.79 KiB) Viewed 2746 times
.
The next step is to create the spark plug wires between the plugs and the distributor contacts.  These are bare 1.1 mm brass wire tensioned with integral spring coils.  It will be a real challenge to create a realistic model of all eighteen wires.  Fortunately, we have Draft&gt;Arrays, but it would be nice if we could array part containers or group folders.<br /><br />Remember, the distributor is stationary in this engine design and the cylinders, spark plugs, and wires rotate.
The next step is to create the spark plug wires between the plugs and the distributor contacts. These are bare 1.1 mm brass wire tensioned with integral spring coils. It will be a real challenge to create a realistic model of all eighteen wires. Fortunately, we have Draft>Arrays, but it would be nice if we could array part containers or group folders.

Remember, the distributor is stationary in this engine design and the cylinders, spark plugs, and wires rotate.
Picture24.jpg (178.84 KiB) Viewed 2746 times
.
Of all the electrical components, the two end housings of the magneto were the most complex.  Each required over 30 features to faithfully capture the intricate design.
Of all the electrical components, the two end housings of the magneto were the most complex. Each required over 30 features to faithfully capture the intricate design.
Picture25.jpg (195.02 KiB) Viewed 2746 times
.
The springs used to keep the oil hole covers in place were interesting to model.  Each were created with only one sketch each for the helical spring and several pads and revolves for the convoluted ends.  <br /><br />Datum lines were used for the revolve axes.  They were attached to the end of pad face edges using normal or tangent to edge mode and then offset for the bend radius.<br /><br />Faces were used for the pads and revolves instead of sketches even though this does make the spring model a bit fragile when making changes.
The springs used to keep the oil hole covers in place were interesting to model. Each were created with only one sketch each for the helical spring and several pads and revolves for the convoluted ends.

Datum lines were used for the revolve axes. They were attached to the end of pad face edges using normal or tangent to edge mode and then offset for the bend radius.

Faces were used for the pads and revolves instead of sketches even though this does make the spring model a bit fragile when making changes.
Picture26.jpg (195.36 KiB) Viewed 2746 times
~
I am quite pleased with V0.18 performance which continues to demonstrate its ability to keep up with the high end CAD packages. Since I rarely attach any sketches or datums to faces, edges, or vertices, models of even this size are remarkably stable.

The only thing still somewhat confusing to me is how to keep all of the body and part origins straight in your head when moving components and creating Draft>clones. In some cases, I just could not understand how to create and include the clones in the same part container as the body if the part had been moved. For this I used PartDesign>Group folders but I am not completely happy with the tree organization. Also you cannot move group folders with placement properties. I need to research all of this further.

Now, next up is either the air or the oil pump which are both a little intimidating. Stay tuned for the next update in a month or so.

OS: Windows 10
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.18.13983 (Git)
Build type: Release
Branch: master
Hash: 8f1c6f77c090ae7d9c2bfd4f18811083b01a3eb2
Python version: 2.7.14
Qt version: 4.8.7
Coin version: 4.0.0a
OCC version: 7.2.0
Locale: English/UnitedStates (en_US)
"It is a poor workman who blames his tools..." ;)
User avatar
easyw-fc
Veteran
Posts: 3629
Joined: Thu Jul 09, 2015 9:34 am

Re: V0.18 Challenge--Clerget 9B Aero Engine--UPDATE #4

Post by easyw-fc »

ppemawm wrote: Thu Aug 23, 2018 7:16 pm For this I used PartDesign>Group folders but I am not completely happy with the tree organization. Also you cannot move group folders with placement properties. I need to research all of this further.
you can use 'Part' container
https://freecadweb.org/wiki/Std_Part

BTW great models!
User avatar
ppemawm
Veteran
Posts: 1240
Joined: Fri May 17, 2013 3:54 pm
Location: New York NY USA

Re: V0.18 Challenge--Clerget 9B Aero Engine--UPDATE #4

Post by ppemawm »

easyw-fc wrote: Thu Aug 23, 2018 8:07 pm you can use 'Part' container
If you examine the tree in the first image you will see extensive use of Part containers. There are times, unfortunately, when Draft>clones, Draft>arrays, and Part>mirrors do not play well with bodies and parts when it is time to move components around in an assembly. At least, that is my humble experience. Once we have Assembly3 integrated with FreeCAD proper, then perhaps life be all good. If it can handle this model I will be impressed.
"It is a poor workman who blames his tools..." ;)
Post Reply