From a948f7a16fec0e447fc7dea52b4b0d0a8d15eb60 Mon Sep 17 00:00:00 2001 From: jriegel Date: Tue, 16 Jul 2013 19:42:15 +0200 Subject: [PATCH] fix in alignment code --- src/Mod/Fem/App/FemMeshShapeNetgenObject.cpp | 8 +++--- src/Mod/Fem/App/FemMeshShapeNetgenObject.h | 2 +- .../Machining_Distortion/MachDistAlignment.py | 27 +++++++++++++++---- 3 files changed, 27 insertions(+), 10 deletions(-) diff --git a/src/Mod/Fem/App/FemMeshShapeNetgenObject.cpp b/src/Mod/Fem/App/FemMeshShapeNetgenObject.cpp index 0ebe3267e..74700f678 100644 --- a/src/Mod/Fem/App/FemMeshShapeNetgenObject.cpp +++ b/src/Mod/Fem/App/FemMeshShapeNetgenObject.cpp @@ -154,7 +154,7 @@ App::DocumentObjectExecReturn *FemMeshShapeNetgenObject::execute(void) // return Py::new_reference_to(PythonObject); //} -void FemMeshShapeNetgenObject::onChanged(const Property* prop) -{ - App::GeoFeature::onChanged(prop); -} +//void FemMeshShapeNetgenObject::onChanged(const Property* prop) +//{ +// Fem::FemMeshShapeObject::onChanged(prop); +//} diff --git a/src/Mod/Fem/App/FemMeshShapeNetgenObject.h b/src/Mod/Fem/App/FemMeshShapeNetgenObject.h index 7d112783d..b733d0eac 100644 --- a/src/Mod/Fem/App/FemMeshShapeNetgenObject.h +++ b/src/Mod/Fem/App/FemMeshShapeNetgenObject.h @@ -62,7 +62,7 @@ public: protected: /// get called by the container when a property has changed - virtual void onChanged (const App::Property* prop); + //virtual void onChanged (const App::Property* prop); }; } //namespace Fem diff --git a/src/Mod/Machining_Distortion/MachDistAlignment.py b/src/Mod/Machining_Distortion/MachDistAlignment.py index 5002ac91d..17dd792de 100644 --- a/src/Mod/Machining_Distortion/MachDistAlignment.py +++ b/src/Mod/Machining_Distortion/MachDistAlignment.py @@ -89,6 +89,7 @@ class _AlignTaskPanel: QtCore.QObject.connect(self.formUi.checkBox_AutoMinimize, QtCore.SIGNAL("stateChanged(int)"), self.autoMinToogle) QtCore.QObject.connect(self.formUi.pushButton_Minimize, QtCore.SIGNAL("clicked()"), self.minimize) + self.formUi.checkBox_AutoMinimize.setCheckState(0) self.update() # switch on Bound Box @@ -97,21 +98,33 @@ class _AlignTaskPanel: # calculate eigen transformation and transform the mesh QtGui.qApp.setOverrideCursor(QtCore.Qt.WaitCursor) import Mesh - n = self.obj.FemMesh.Nodes - p = Mesh.calculateEigenTransform(n) + # find the eigen axis + self.obj.Placement = Mesh.calculateEigenTransform(self.obj.FemMesh.Nodes) + + # make the first alignment persistent + m = Fem.FemMesh(self.obj.FemMesh) + m.setTransform(self.obj.Placement) + self.obj.FemMesh = m + self.obj.Placement = FreeCAD.Placement() # move in the first quandrant and minimize bound box MachDistMoveTools.moveHome(self.obj) MachDistMoveTools.minimizeBoundVolume(self.obj) MachDistMoveTools.moveHome(self.obj) - self.showData() - #self.obj.Placement = p + + # make the first alignment persistent m = Fem.FemMesh(self.obj.FemMesh) m.setTransform(self.obj.Placement) - self.obj.FemMesh = m self.obj.Placement = FreeCAD.Placement() + + + + + self.showData() + + QtGui.qApp.restoreOverrideCursor() @@ -142,6 +155,7 @@ class _AlignTaskPanel: def minimize(self): QtGui.qApp.setOverrideCursor(QtCore.Qt.WaitCursor) MachDistMoveTools.minimizeBoundVolume(self.obj) + MachDistMoveTools.moveHome(self.obj) self.showData() QtGui.qApp.restoreOverrideCursor() @@ -166,6 +180,7 @@ class _AlignTaskPanel: MachDistMoveTools.moveHome(self.obj) if(self.formUi.checkBox_AutoMinimize.isChecked()): MachDistMoveTools.minimizeBoundVolume(self.obj) + MachDistMoveTools.moveHome(self.obj) self.showData() QtGui.qApp.restoreOverrideCursor() @@ -177,6 +192,7 @@ class _AlignTaskPanel: MachDistMoveTools.moveHome(self.obj) if(self.formUi.checkBox_AutoMinimize.isChecked()): MachDistMoveTools.minimizeBoundVolume(self.obj) + MachDistMoveTools.moveHome(self.obj) self.showData() QtGui.qApp.restoreOverrideCursor() @@ -188,6 +204,7 @@ class _AlignTaskPanel: MachDistMoveTools.moveHome(self.obj) if(self.formUi.checkBox_AutoMinimize.isChecked()): MachDistMoveTools.minimizeBoundVolume(self.obj) + MachDistMoveTools.moveHome(self.obj) self.showData() QtGui.qApp.restoreOverrideCursor()