PartDesign features did not inherit the custom attribute for
DiffuseColors as expected. The inheritance chain was incorrect. Also
added tests to ensure it's available.
fixes#15364
* Cleanup and switch to using MakePipe
* Cleanup unused include
* Use Frenet mode in building pipe
* Restore original code, add a control property
* Hide property, and init on new objects
* Restore prior behavior for legacy objects
* Clean up git blame; add missing move to keep helix same with new makePipe call
* Remove debug include
* Use doxygen syntax for deprecation comment
* Add unit tests; restore code for angled helixes; optimize zero angle helixes
* Lower test precision to accept platform variations
* Loosen more
* Correct restoration
* Tweak test volumes to match restored helix creation
* Restore helix generation parameter
* Fix test; delint
This is in preparation for new features, to ensure we don't break
existing documents created with FreeCAD-0.20.
The fixtures have been created with the official mac build of
FreeCAD-0.20.1 using mostly default parametrization -- only the number
of teeth has been reduced in order to keep the file size low.
There are some basic tests to cover the gear profile and its parameters
and some integration tests for the interaction with PD Pad and Pocket.
I followed the same pattern as the other PartDesign tests, e.g. not using
PEP8 style method names. Eventually some helper methods could be
extracted and moved to the common base framework in Mod/Test, but that's
another step.
- add definitions for IS 2009, 7046 and 12474
- remove useless file for a ISO 14583 since there are no such screws on the market
- rename "coarse" to "regular" since this what it actually is according to the norms
- uniform the x1 threads (for x2.0 etc we use a trailing zero and for some we use x1, for some already x1.0, thus consistently use x1.0)
- add some ISO 10642 entries
- correct ISO 4762:
- correct some values
- the does does not define a size M27
- add the two missing sizes
- propose valid values for the cut depth and diameter when creating new holes
- add new definitions for metric fine
- some code simplification and comments
‣ Make countersink and counterbore on metric holes freely definable by user.
‣ Fixed the Naming of M1.6, M2, M2.5 and M3.5
‣ Added constructor for custom enums from Enums to PropertyEnumeration
‣ Put definitions of cut-types (counterbore/countersink) for
screwtypes into json-files for easy modification.
‣ Allow users to put its own definitions in json-files in
[UserDir]/Mod/PartDesign/Resources/Hole
‣ Contains several examples of cut-type definition json-files that are
propably not production-ready.
This uses a local copy of nlohmann::json¹ to read json-files.
__________
¹ This is a very nice,header-only C++ library under the MIT License
(https://github.com/nlohmann/json). I copied the single-file-version
and the forward-declaration-header into …/PartDesign/App/ so no new
dependencies arise.
A hole feature is something needed, however, the current implementation does not use the attacher code which would made it intuitive and compatibel to other workbench tools. A reimplementation is needed.