FEM: set mesh color, use proper return values for python API

This commit is contained in:
Bernd Hahnebach
2017-08-02 05:53:13 +01:00
parent a644ba4bf1
commit 62bbda819b
3 changed files with 8 additions and 2 deletions

View File

@@ -83,7 +83,9 @@ class FemTools(QtCore.QRunnable, QtCore.QObject):
if self.mesh:
self.mesh.ViewObject.NodeColor = {}
self.mesh.ViewObject.ElementColor = {}
self.mesh.ViewObject.setNodeColorByScalars()
node_numbers = self.mesh.FemMesh.Nodes.keys()
zero_values = [0] * len(node_numbers)
self.mesh.ViewObject.setNodeColorByScalars(node_numbers, zero_values)
## Resets mesh color, deformation and removes all result objects if preferences to keep them is not set
# @param self The python object self

View File

@@ -96,6 +96,7 @@ PyObject* ViewProviderFemMeshPy::setNodeColorByScalars(PyObject *args)
this->getViewProviderFemMeshPtr()->setColorByNodeId(ids, node_colors);
} else {
PyErr_SetString(Base::BaseExceptionFreeCADError, "PyArg_ParseTuple failed. Invalid arguments used with setNodeByScalars");
return 0;
}
Py_Return;
}
@@ -124,6 +125,7 @@ PyObject* ViewProviderFemMeshPy::setNodeDisplacementByVectors(PyObject *args)
this->getViewProviderFemMeshPtr()->setDisplacementByNodeId(ids, vectors);
} else {
PyErr_SetString(Base::BaseExceptionFreeCADError, "PyArg_ParseTuple failed. Invalid arguments used with setNodeDisplacementByVectors");
return 0;
}
Py_Return;
}

View File

@@ -417,7 +417,9 @@ class _TaskPanelFemResultShow:
def reset_mesh_color(self):
self.mesh_obj.ViewObject.NodeColor = {}
self.mesh_obj.ViewObject.ElementColor = {}
self.mesh_obj.ViewObject.setNodeColorByScalars()
node_numbers = self.mesh_obj.FemMesh.Nodes.keys()
zero_values = [0] * len(node_numbers)
self.mesh_obj.ViewObject.setNodeColorByScalars(node_numbers, zero_values)
def reject(self):
FreeCADGui.Control.closeDialog() # if the taks panell is called from Command obj is not in edit mode thus reset edit does not cleses the dialog, may be do not call but set in edit instead