* if determining the normal raises an exception then fall back to a default value
* when handling a Base::Exception then call its ReportException() function to get as much information as possible
- bring back intended behavior as in FC 0.19:
- if 2 lengths, then midplane is invisible
- if reversed checked, then no symmetric and if symmetric then no reverse
- unify the code for Pad and Pocket (reversed is always visible)
- fix a typo in a bool name
all done by MSVC
I do this since on one hand the readability is in this case really improved and because whenever I made a change, MSVC tries to fix the style and then the diffs are unnecessarily large. Also the MSVC style is almost what we use as the "standard" coding style.
Path Simulator produces out of trace artifacts while milling curves with small radius.
In VolSim.cpp the branch for curve radius smaller then tool radius is not implemented yet.
In this condition the simulator produces artifacts of higher radius while milling path using G2 or G3.
There is an implementation of G2 and G3 in python level.
===================================================
Bug:
Subscription/Unsubscription of outside of edit mode parameters was missing.
So changing the edge color from settings required to restart FreeCAD.
Fix:
Subscribe/Unsubscribe from the relevant parameter group
Use the previously added superclass `TaskConstraintOnBoundary` for more
constraints where it's usable.
Currently done:
TaskFemConstraintDisplacement
TaskFemConstraintForce
TaskFemConstraintSpring
TaskFemConstraintFluidBoundary
TaskFemConstraintHeatflux
TaskFemConstraintFixed
TaskFemConstraintTemperature
TaskFemConstraintPressure
Too different:
TaskFemConstraintTransform (single selection)
TaskFemConstraintContact (single selection, two fields)
TaskFemConstraintPlaneRotation (single selection)
(Other constraint tasks, which do not use `addToSelection`)
With this, add/remove buttons for displacement constraint will put the user in a
selection mode if pressed when nothing is selected.
Superclass `TaskFemConstraintOnBoundary` Allows code reuse for other
constraints. We do not need this in `TaskFemConstraints` because it is only used
in a subset of constraints, particularly that applies on only some of the
boundary entities.
TODO: Confirm Undo/Redo works appropriately.
TODO: Optimize `onSelectionChanged()`.
Race conditions introduced after using OpenMP in `FemMesh::getNodesByFace` and
`FemMesh::getNodesBySolid` because of which nodes were randomly added or removed
from sets. Solved by replacing `SMDS_MeshNode::X()` etc., which are not thread
safe, with the thread-safe `SMDS_MeshNode::GetXYZ()`.
The previous implementation was quite slow in filling up the remaining_femelements list.
The new implementation fixes this by using numpy for the heavy work.