V0.19 Benchmarking--Intermediate Level Tutorials

A place to share learning material: written tutorials, videos, etc.
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.19 Benchmarking--Intermediate Level Tutorials

Post by ppemawm »

With release of version 0.19 on the horizon, I thought it may be a good time to benchmark PartDesign workbench against one of the more popular commercial CAD software. Inspired by freecad-heini-1's example (https://forum.freecadweb.org/viewtopic.php?f=36&t=44262), the models and tutorials shown here https://blogs.solidworks.com/tech/2020/ ... mania.html were chosen for this purpose. These models are a bit challenging not only for their subtle complexity but also for the expectation that the model should be easily modified for an engineering change. This requires a robust and stable modelling strategy.

These are all of the models created for the benchmarking, both the original as well as the models that were modified for the engineering changes.<br /><br />In general, all of the models were able to be accurately created with the PartDesign workbench with the exception of fillets and drafts.  Not all of the fillets were possible and the draft faces had to be created with pocket or sweep workarounds which took extra time and effort.
These are all of the models created for the benchmarking, both the original as well as the models that were modified for the engineering changes.

In general, all of the models were able to be accurately created with the PartDesign workbench with the exception of fillets and drafts. Not all of the fillets were possible and the draft faces had to be created with pocket or sweep workarounds which took extra time and effort.
Picture6.png (564.86 KiB) Viewed 5453 times
.
A master sketch can be used to save time and to accommodate expected engineering changes.  This is an example of a model for which all the features can be created from carbon copies of a single master sketch.<br /><br />Assembly4 &gt; Variables are used to define the engineering change parameters which are the x-offset  of the boss and its inclination angle.<br /><br />Note that the boss is created by a revolve and hollowed with the groove tool using the master sketch rather than pads and pockets which would require additional sketches on different planes.
A master sketch can be used to save time and to accommodate expected engineering changes. This is an example of a model for which all the features can be created from carbon copies of a single master sketch.

Assembly4 > Variables are used to define the engineering change parameters which are the x-offset of the boss and its inclination angle.

Note that the boss is created by a revolve and hollowed with the groove tool using the master sketch rather than pads and pockets which would require additional sketches on different planes.
Picture7.png (261.29 KiB) Viewed 5453 times
.
This is an example of a more complex model for which a single master sketch is used to generate most of the features and the associated engineering changes defined by a variable, flange_angle.<br /><br />The model starts with an additive hemispherical primitive.  Carbon copies of the master sketch are offset in the Y-direction as required by the various features.  The hemisphere is hollowed with a smaller subtractive hemispherical primitive.
This is an example of a more complex model for which a single master sketch is used to generate most of the features and the associated engineering changes defined by a variable, flange_angle.

The model starts with an additive hemispherical primitive. Carbon copies of the master sketch are offset in the Y-direction as required by the various features. The hemisphere is hollowed with a smaller subtractive hemispherical primitive.
Picture8.png (241.98 KiB) Viewed 5453 times
.
This seemingly simple looking model was actually a bit time consuming to create because FreeCAD does not have a reliable hollowing or thickness tool.  In this case it was necessary to Draft &gt; clone the original and reduce its size using the scale property to hollow the original using a Part &gt; cut.<br /><br />Due to its relatively complex shape it was necessary to create four bodies and use the PartDesign &gt; boolean tool to create the basic 3D shape for both the large and small portions and then fuse those together with another boolean as shown in the model tree.<br /><br />This model also requires that the faces have a 4 deg draft which could not be done with the Partdesign &gt; draft tool.  As a workaround, a subtractive sweep was successfully achieved but still a bit tedious.
This seemingly simple looking model was actually a bit time consuming to create because FreeCAD does not have a reliable hollowing or thickness tool. In this case it was necessary to Draft > clone the original and reduce its size using the scale property to hollow the original using a Part > cut.

Due to its relatively complex shape it was necessary to create four bodies and use the PartDesign > boolean tool to create the basic 3D shape for both the large and small portions and then fuse those together with another boolean as shown in the model tree.

This model also requires that the faces have a 4 deg draft which could not be done with the Partdesign > draft tool. As a workaround, a subtractive sweep was successfully achieved but still a bit tedious.
Picture9.png (323.49 KiB) Viewed 5453 times
.
In this model the draft tool was used to successfully create the two conical bosses but it did require that three separate bodies be created and then fused with the PartDesign &gt; boolean.<br /><br />In retrospect it may have been better to use an additive conical primitive for the bosses which is more immune to topological naming problems when changes are made.
In this model the draft tool was used to successfully create the two conical bosses but it did require that three separate bodies be created and then fused with the PartDesign > boolean.

In retrospect it may have been better to use an additive conical primitive for the bosses which is more immune to topological naming problems when changes are made.
Picture10.png (173.65 KiB) Viewed 5453 times
.
I my opinion, FreeCAD can hold its own when benchmarked against these models used for certification, training, and demonstrating the commercial CAD software capability. However, it still took some extra time for laborious workarounds due to several weaknesses in PartDesign. These are the fillet, chamfer, draft, and thickness tools. In general these tools failed more often than they succeeded. To reach world class, there will definitely need some improvement in these areas in order to reduce modelling time for these types of models.

One thing I learned in this exercise is that one apparently cannot mirror a boolean as a feature without leaving the PartDesign workbench! Another little annoying detail is that the Refine property sometimes will not result in a valid solid for the more complex models even though the extraneous edges are removed as expected, but that is something I can generally do without since it is mostly a dress-up feature.

Do not get me wrong...I am in love with this software since V0.13 and still enormously indebted to all the developers. Thanks again to all.
Now, on to V0.20...


OS: Windows 10 (10.0)
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.19.20391 (Git)
Build type: Release
Branch: master
Hash: da92b8c242ead8cc106f480aa2eed0bac2edf10a
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
jpg87
Posts: 809
Joined: Thu Mar 16, 2017 7:16 am
Location: Limoges - France
Contact:

Re: V0.19 Benchmarking--Intermediate Level Tutorials

Post by jpg87 »

ppemawm wrote: Wed Apr 15, 2020 8:40 pm With release of version 0.19 on the horizon, I thought it may be a good time to benchmark PartDesign workbench against one of the more popular commercial CAD software.
Wonderful work, as usual, and very useful tests for the community.
I too am in love with FreeCAD, even if I didn't really discover and appreciate it until V0.17.
My website : http://help-freecad-jpg87.fr updated 2023/11/06
kisolre
Veteran
Posts: 4163
Joined: Wed Nov 21, 2018 1:13 pm

Re: V0.19 Benchmarking--Intermediate Level Tutorials

Post by kisolre »

ppemawm wrote: Wed Apr 15, 2020 8:40 pm
Nice work as always :) Did you follow the rules of the challenge - not peeking in second stage drawing?
Do you plan sharing the files? That blog post is not very clear about usage in free/non commercial/open source cases...
User avatar
ppemawm
Veteran
Posts: 1240
Joined: Fri May 17, 2013 3:54 pm
Location: New York NY USA

Re: V0.19 Benchmarking--Intermediate Level Tutorials

Post by ppemawm »

kisolre wrote: Thu Apr 16, 2020 6:07 am
ppemawm wrote: Wed Apr 15, 2020 8:40 pm
Nice work as always :) Did you follow the rules of the challenge - not peeking in second stage drawing?
Do you plan sharing the files? That blog post is not very clear about usage in free/non commercial/open source cases...
Thank you for your kind comments.

I did peek in order to understand the design intent and to be able to test the model robustness. So, maybe I did not follow the rules...

I do not intend on sharing the files without permission due to copyright restriction.
"... intended for the sole use of DS SolidWorks, its partners, and customers...."
"It is a poor workman who blames his tools..." ;)
Celica_Supra

Re: V0.19 Benchmarking--Intermediate Level Tutorials

Post by Celica_Supra »

Nice Work ppemawm. I've done something similar here:
https://www.youtube.com/watch?v=Wnx33f0zaQU
Interestingly, your last pictured model has been used on worldwide certification tests for at least professional level certifications. Model mania is a great place to look for models.
fc_tofu
Posts: 653
Joined: Sun Jan 05, 2020 4:56 pm

Re: V0.19 Benchmarking--Intermediate Level Tutorials

Post by fc_tofu »

You did a very good test and report.
User avatar
M4x
Veteran
Posts: 1472
Joined: Sat Mar 11, 2017 9:23 am
Location: Germany

Re: V0.19 Benchmarking--Intermediate Level Tutorials

Post by M4x »

@ppemawm
How far did you get with the 2020 challenge? I'm not able to apply all fillets. I've marked the problematic are. Did you find a workaround? I think the problem arises where the "arm" meets the cylinder in the middle.
overview, problematic area marked
overview, problematic area marked
Snip macro screenshot-6a22da.png (73.13 KiB) Viewed 3496 times
close up (arm meets cylinder in the middle)
close up (arm meets cylinder in the middle)
Snip macro screenshot-a804bd.png (17.59 KiB) Viewed 3496 times

@Celica
Celica_Supra wrote: Mon May 11, 2020 8:17 pm [...]
I've done something similar here:
https://www.youtube.com/watch?v=Wnx33f0zaQU
[...]
Your video isn't available. Is that intended or a mistake?
User avatar
Kunda1
Veteran
Posts: 13434
Joined: Thu Jan 05, 2017 9:03 pm

Re: V0.19 Benchmarking--Intermediate Level Tutorials

Post by Kunda1 »

M4x wrote: Sat Dec 05, 2020 8:20 pm @ppemawm
How far did you get with the 2020 challenge? I'm not able to apply all fillets. I've marked the problematic are. Did you find a workaround? I think the problem arises where the "arm" meets the cylinder in the middle.

@Celica
Your video isn't available. Is that intended or a mistake?
FYI @Celica_Supra is JokoEngineering. Some oh his videos recently were made private or taken down due to copyright issues? I may be wrong about the reason.
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: 53920
Joined: Tue Mar 17, 2015 9:14 am

Re: V0.19 Benchmarking--Intermediate Level Tutorials

Post by chrisb »

I remember freecad-heini-1 discussed this model in the german subforum.
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.19 Benchmarking--Intermediate Level Tutorials

Post by ppemawm »

chrisb wrote: Sat Dec 05, 2020 11:23 pm I remember freecad-heini-1 discussed this model in the german subforum.
https://forum.freecadweb.org/viewtopic.php?f=36&t=44262 Uses CSG method.
M4x wrote: Sat Dec 05, 2020 8:20 pm How far did you get with the 2020 challenge? I'm not able to apply all fillets.
I did get a model with all of the fillets, but Boolean001 did not pass geometry check:

Fillet002 was applied to the edges of Pocket002 before the polar pattern of the three legs.<br /><br />The cylinder to cone fillet was included in the revolve sketch.  I always include fillets in sketches if I can.<br /><br />Fillet003 was applied to the outer and inner perimeter edges.
Fillet002 was applied to the edges of Pocket002 before the polar pattern of the three legs.

The cylinder to cone fillet was included in the revolve sketch. I always include fillets in sketches if I can.

Fillet003 was applied to the outer and inner perimeter edges.
Capture-2020.JPG (199.62 KiB) Viewed 3441 times
This shows the sequence of feature creation in the tree, left to right.
This shows the sequence of feature creation in the tree, left to right.
Capture2_2020.JPG (222.75 KiB) Viewed 3441 times
.
OS: Windows 10 (10.0)
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.19.23141 (Git)
Build type: Release
Branch: master
Hash: 0eba78d40096720f7a637a9a73c382a08b820bca
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