Hello all,
I'm working on a DVA Workench for Freecad.
it is in early devloppment so not everything is working.
First of all, what is a Dimnsional Variation analysis ?
for those not familiar with this concept this is a method use to evaluate the impact of tolerance of single component on an assembly.
sometimes called chain of dimension, or stack-up analysis, it allows to get an overview of the variation you are going to see when you are on mass production condition.
commercial software such as 3DCS, MECAmaster or CETOL6sigma are widely use in the automotive industry for example, however I never found any opensource software for this kind of study.
thanks to Realthunder and it's Assmembly3 workbench I managed to develop a WB to perform this kind of analysis.
For now anly the monte carlo analysis is integrated, but I plan to add a worst-case analysis and a sensitive Analysis.
A Monte Carlo Analysis applied to this field is basically generating random values for toleranced points, then the assembly is solved, the measuring point are recorded.Then it is repeated as much as defined in the DVA object.
working steps are the following (assuming design is done):
* Create a DVA Analysis object.
* In each part involved, create DVA points and assign tolerance or standard deviation and meanshift.
* Build the assembly3 model using DVA points as element to localise the part, following the assembly process expected, using Point/Plane distance
* upgrade the assembly3 constraints to DVAConstraint and assign tolerance or standard deviations and meanshift.
* define in the DVA object:
* the analysis type (not really needed at the end)
* Nbr of sample to run
* output file[/list]
* Run the MC analysis
* results are in the csv file define in the DVA Analysis object.
see example file in the example folder to get an overview.
Important point.
you need to use Realthunder version, as a bug in Assy3 is blocking the use of datum planes and datum point as element for constraint when using 0.20.1
for those interested in this WB I will go further in the workflow, soon.
ps : as I'm not a devlopper, don't afraid by the code
[WIP Workbench] Dimensional Variation Analysis WB
Forum rules
Be nice to others! Respect the FreeCAD code of conduct!
Be nice to others! Respect the FreeCAD code of conduct!
Re: [WIP Workbench] Dimensional Variation Analysis WB
Very cool! Would be great to see some screenshots!
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
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
-
- Posts: 56
- Joined: Tue May 26, 2015 9:56 am
- Location: Belgium
Re: [WIP Workbench] Dimensional Variation Analysis WB
Hello,
Some help or instructions would be very nice.
I tried it today. First obstruction was the need for pandas. This is needed. Installing the latest version via pip resulted in an issue with the installed version of numpy.
Also the example was not functional.
But i really like the idea. How can we help you?
Johnny
Some help or instructions would be very nice.
I tried it today. First obstruction was the need for pandas. This is needed. Installing the latest version via pip resulted in an issue with the installed version of numpy.
Also the example was not functional.
But i really like the idea. How can we help you?
Johnny
-
- Posts: 56
- Joined: Tue May 26, 2015 9:56 am
- Location: Belgium
Re: [WIP Workbench] Dimensional Variation Analysis WB
Hello,
Your example file dva_test,fcstd has a missing property in the DVA section. Update Gui is not available.
This makes it impossible to run the DVA Monte Carlo simulation.
I added the property by using this in the Python console:
Johnny
Your example file dva_test,fcstd has a missing property in the DVA section. Update Gui is not available.
This makes it impossible to run the DVA Monte Carlo simulation.
I added the property by using this in the Python console:
Code: Select all
Doc.getObject("DVA_Analysis").addProperty("App::PropertyBool","UpdateGui","DVA",)