* CAM: thread-mill Shape , more robust model
Purpose: prevent solver dumping arcane coding errors to report window if "crest" value is (legitimately) set to zero by user.
Single tooth thread-mill tools exist which have a sharp point, ie zero flat "crest " surface. Thus the user can reasonably expect to configure a zero dimension to the truncated end of the tool if it is not truncated. This should not provoke an error condition and certainly not crash the model and dump lots of arcane developer info on the machinist user.
The problem is that a zero dimension makes two points concurrent and removes an edge from the model. This leads to and ill-defined model which crashes the solver. The user should not be exposed to this kind of coding breakage when entering legitimate data for a tool shape. The solution (or workaround) here is to add a very small faction of the shaft diameter to the user supplied zero to prevent the solver crashing. Since this is proportional to the tool shaft it will scale to any use of the tool shape without disrupting path accuracy.
This is a drop in replacement for the existing file and caters for both types of this tool: truncated tip and pointed tip.
* threadmill Shape update
This thread-mill Shape file uses max() in the expression for crest.
This allows user setting zero crest by adding a small finite dimension to prevent the solver crashing, while not making any change to finite crest tools.
Best of both worlds.
The previous text suggested to change the scheme in the preferences,
however, the preferences only take effect for new documents. Now, that
we have the "ProjectUnitSystem" in place, the setting for the current
document needs to be changed.
The text is restructured accodring to the UX pattern for warnings:
- What is the problem
- How can I fix it
- What happens if I don't
and includes a link to the wiki for further details.
In addition, the 'US Customary' was removed from the proposed schemes as
suggested during review.
Finally, the button text was decapitalized and aligned with the
style used in other parts of FreeCAD, e.g. the Start page.
Fixed an error where strings were added to a list (gcode) using the addition assignment operator ('+=') rather than the 'list.append' method, resulting in adding every character as a list member
Every basic data type is stored in Base module, color is standing out as
one that does not. Moving it to Base opens possibilities to integrate it
better with the rest of FreeCAD.
* CAM: converted the refactored* postprocessors to the new API
with corresponding tests
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
---------
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* remove unused else
* Enable reloading / re-selection of libraries
* Reload the libraries when exiting the editor
* Clear the model to prevent duplicate entries
* add missing docstring to reduce linting warnings
* Maintain any previous library selection when editing
* CAM: Fix finishing pass
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* add finishing pass unit (by @baehr)
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
---------
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
eliminate some error messages when a Job is not fully loaded
(or when not properly constructed via scripting)
TESTED ON V0.21 -- code hasn't changed since then