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.
For consistency the get_group_contents function should use is_group to identify groups. The code dedicated to Site objects and Drawing pages was removed.