connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk()));
connect(buttonCancel, SIGNAL(clicked()), this, SLOT(ClickOnCancel()));
connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply()));
- connect(GroupConstructors, SIGNAL(clicked(int)), SLOT(ConstructorsClicked(int)));
+ // to update state of the Ok & Apply buttons
+ connect(SpinBox_Dx, SIGNAL(valueChanged(double)), SLOT(CheckIsEnable()));
+ connect(SpinBox_Dy, SIGNAL(valueChanged(double)), SLOT(CheckIsEnable()));
+ connect(SpinBox_Dz, SIGNAL(valueChanged(double)), SLOT(CheckIsEnable()));
+
+ connect(GroupConstructors, SIGNAL(clicked(int)), SLOT(ConstructorsClicked(int)));
connect(SelectElementsButton, SIGNAL (clicked()), this, SLOT(SetEditCurrentArgument()));
connect(mySMESHGUI, SIGNAL (SignalDeactivateActiveDialog()), this, SLOT(DeactivateActiveDialog()));
connect(mySelectionMgr, SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()));
myElementsId = "";
myNbOkElements = 0;
- buttonOk->setEnabled(false);
- buttonApply->setEnabled(false);
-
myActor = 0;
myMesh = SMESH::SMESH_Mesh::_nil();
CheckBoxMesh->setChecked(false);
onSelectMesh(false);
}
+
+ CheckIsEnable();
+}
+
+//=================================================================================
+// function : CheckIsEnable()
+// purpose : Check whether the Ok and Apply buttons should be enabled or not
+//=================================================================================
+void SMESHGUI_ExtrusionDlg::CheckIsEnable()
+{
+ double aX = SpinBox_Dx->GetValue();
+ double aY = SpinBox_Dy->GetValue();
+ double aZ = SpinBox_Dz->GetValue();
+ double aModule = sqrt(aX*aX + aY*aY + aZ*aZ);
+
+ bool anIsEnable = myNbOkElements > 0 && aModule > 1.0E-38;
+
+ buttonOk->setEnabled(anIsEnable);
+ buttonApply->setEnabled(anIsEnable);
}
//=================================================================================
if (send == LineEditElements)
myNbOkElements = 0;
- buttonOk->setEnabled(false);
- buttonApply->setEnabled(false);
-
// hilight entered elements/nodes
SMDS_Mesh* aMesh = 0;
if (myActor)
}
}
- if (myNbOkElements) {
- buttonOk->setEnabled(true);
- buttonApply->setEnabled(true);
- }
+ CheckIsEnable();
myBusy = false;
}
myEditCurrentArgument->setText(aString);
myNbOkElements = 0;
- buttonOk->setEnabled(false);
- buttonApply->setEnabled(false);
myBusy = false;
// get selected mesh
myBusy = false;
// OK
- if (myNbOkElements) {
- buttonOk->setEnabled(true);
- buttonApply->setEnabled(true);
- }
+ CheckIsEnable();
}
//=================================================================================
#include "SMESH_Gen_i.hxx"
#include "SMESH_Filter_i.hxx"
#include "SMESH_PythonDump.hxx"
+#include "CASCatch.hxx"
#include "utilities.h"
const SMESH::DirStruct & theStepVector,
CORBA::Long theNbOfSteps)
{
- SMESHDS_Mesh* aMesh = GetMeshDS();
-
- set<const SMDS_MeshElement*> elements;
- for (int i = 0; i < theIDsOfElements.length(); i++)
- {
- CORBA::Long index = theIDsOfElements[i];
- const SMDS_MeshElement * elem = aMesh->FindElement(index);
- if ( elem )
- elements.insert( elem );
- }
- const SMESH::PointStruct * P = &theStepVector.PS;
- gp_Vec stepVec( P->x, P->y, P->z );
+ CASCatch_TRY {
+ SMESHDS_Mesh* aMesh = GetMeshDS();
+
+ set<const SMDS_MeshElement*> elements;
+ for (int i = 0; i < theIDsOfElements.length(); i++)
+ {
+ CORBA::Long index = theIDsOfElements[i];
+ const SMDS_MeshElement * elem = aMesh->FindElement(index);
+ if ( elem )
+ elements.insert( elem );
+ }
+ const SMESH::PointStruct * P = &theStepVector.PS;
+ gp_Vec stepVec( P->x, P->y, P->z );
+
+ TElemOfElemListMap aHystory;
+ ::SMESH_MeshEditor anEditor( _myMesh );
+ anEditor.ExtrusionSweep (elements, stepVec, theNbOfSteps, aHystory);
- ::SMESH_MeshEditor anEditor( _myMesh );
- //anEditor.ExtrusionSweep (elements, stepVec, theNbOfSteps);
- TElemOfElemListMap aHystory;
- anEditor.ExtrusionSweep (elements, stepVec, theNbOfSteps, aHystory);
+ // Update Python script
+ TPythonDump() << "stepVector = " << theStepVector;
+ TPythonDump() << this << ".ExtrusionSweep( "
+ << theIDsOfElements << ", stepVector, " << theNbOfSteps << " )";
- // Update Python script
- TPythonDump() << "stepVector = " << theStepVector;
- TPythonDump() << this << ".ExtrusionSweep( "
- << theIDsOfElements << ", stepVector, " << theNbOfSteps << " )";
+ }CASCatch_CATCH(Standard_Failure) {
+ Handle(Standard_Failure) aFail = Standard_Failure::Caught();
+ INFOS( "SMESH_MeshEditor_i::ExtrusionSweep fails - "<< aFail->GetMessageString() );
+ }
}