mirror of
https://git.salome-platform.org/gitpub/modules/smesh.git
synced 2025-01-13 02:00:34 +05:00
Merge remote-tracking branch 'origin/V8_3_BR' into ngr/python3_dev
Conflicts: src/Tools/ZCracksPlug/casTests/launchCas.py src/Tools/padder/spadderpy/gui/inputdialog.py src/Tools/padder/spadderpy/gui/plugindialog.py src/Tools/padder/unittests/usecase_meshJobManager.py
This commit is contained in:
commit
e8173b4ff1
@ -31,11 +31,11 @@ ENDIF(WIN32)
|
||||
STRING(TOUPPER ${PROJECT_NAME} PROJECT_NAME_UC)
|
||||
|
||||
SET(${PROJECT_NAME_UC}_MAJOR_VERSION 8)
|
||||
SET(${PROJECT_NAME_UC}_MINOR_VERSION 2)
|
||||
SET(${PROJECT_NAME_UC}_MINOR_VERSION 3)
|
||||
SET(${PROJECT_NAME_UC}_PATCH_VERSION 0)
|
||||
SET(${PROJECT_NAME_UC}_VERSION
|
||||
${${PROJECT_NAME_UC}_MAJOR_VERSION}.${${PROJECT_NAME_UC}_MINOR_VERSION}.${${PROJECT_NAME_UC}_PATCH_VERSION})
|
||||
SET(${PROJECT_NAME_UC}_VERSION_DEV 1)
|
||||
SET(${PROJECT_NAME_UC}_VERSION_DEV 0)
|
||||
|
||||
# Common CMake macros
|
||||
# ===================
|
||||
|
@ -3,8 +3,8 @@
|
||||
\page skew_page Skew
|
||||
|
||||
\n \b Skew mesh quality criterion reflects the angle between the lines
|
||||
that join opposite sides of a quadrangle element or the greatesr angle
|
||||
between three medians in triangle elements. This mesh quality
|
||||
that join opposite sides of a quadrangle element or the greatest angle
|
||||
between a median and a midline in a triangle element. This mesh quality
|
||||
criterion can be applied to elements composed of 4 and 3 nodes
|
||||
(quadrangles and triangles).
|
||||
|
||||
|
@ -226,6 +226,8 @@ SET(SMESH_RESOURCES_FILES
|
||||
mesh_extmeth_surf_offset_smooth.png
|
||||
mesh_extmeth_face_offset.png
|
||||
mesh_quality.png
|
||||
mesh_show.png
|
||||
mesh_hide.png
|
||||
)
|
||||
|
||||
INSTALL(FILES ${SMESH_RESOURCES_FILES} DESTINATION ${SALOME_SMESH_INSTALL_RES_DATA})
|
||||
|
BIN
resources/mesh_hide.png
Normal file
BIN
resources/mesh_hide.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 344 B |
BIN
resources/mesh_show.png
Normal file
BIN
resources/mesh_show.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 3.1 KiB |
@ -73,6 +73,19 @@ SMESH_Gen::SMESH_Gen()
|
||||
//vtkDebugLeaks::SetExitError(0);
|
||||
}
|
||||
|
||||
namespace
|
||||
{
|
||||
// a structure used to nullify SMESH_Gen field of SMESH_Hypothesis,
|
||||
// which is needed for SMESH_Hypothesis not deleted before ~SMESH_Gen()
|
||||
struct _Hyp : public SMESH_Hypothesis
|
||||
{
|
||||
void NullifyGen()
|
||||
{
|
||||
_gen = 0;
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
//=============================================================================
|
||||
/*!
|
||||
* Destructor
|
||||
@ -84,9 +97,16 @@ SMESH_Gen::~SMESH_Gen()
|
||||
std::map < int, StudyContextStruct * >::iterator i_sc = _mapStudyContext.begin();
|
||||
for ( ; i_sc != _mapStudyContext.end(); ++i_sc )
|
||||
{
|
||||
delete i_sc->second->myDocument;
|
||||
delete i_sc->second;
|
||||
}
|
||||
StudyContextStruct* context = i_sc->second;
|
||||
std::map < int, SMESH_Hypothesis * >::iterator i_hyp = context->mapHypothesis.begin();
|
||||
for ( ; i_hyp != context->mapHypothesis.end(); ++i_hyp )
|
||||
{
|
||||
if ( _Hyp* h = static_cast< _Hyp*>( i_hyp->second ))
|
||||
h->NullifyGen();
|
||||
}
|
||||
delete context->myDocument;
|
||||
delete context;
|
||||
}
|
||||
}
|
||||
|
||||
//=============================================================================
|
||||
|
@ -25,20 +25,18 @@
|
||||
// Author : Paul RASCLE, EDF
|
||||
// Module : SMESH
|
||||
//
|
||||
#include "SMESH_Hypothesis.hxx"
|
||||
|
||||
#include "SMESH_Gen.hxx"
|
||||
|
||||
#include "SMESHDS_Mesh.hxx"
|
||||
#include "SMESH_Gen.hxx"
|
||||
#include "SMESH_Hypothesis.hxx"
|
||||
#include "SMESH_Mesh.hxx"
|
||||
#include "SMESH_subMesh.hxx"
|
||||
|
||||
#include "utilities.h"
|
||||
|
||||
using namespace std;
|
||||
|
||||
//=============================================================================
|
||||
/*!
|
||||
*
|
||||
*
|
||||
*/
|
||||
//=============================================================================
|
||||
|
||||
@ -63,8 +61,11 @@ SMESH_Hypothesis::SMESH_Hypothesis(int hypId,
|
||||
|
||||
SMESH_Hypothesis::~SMESH_Hypothesis()
|
||||
{
|
||||
StudyContextStruct* myStudyContext = _gen->GetStudyContext(_studyId);
|
||||
myStudyContext->mapHypothesis[_hypId] = 0;
|
||||
if ( _gen )
|
||||
{
|
||||
StudyContextStruct* myStudyContext = _gen->GetStudyContext(_studyId);
|
||||
myStudyContext->mapHypothesis[_hypId] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
//=============================================================================
|
||||
@ -77,20 +78,20 @@ int SMESH_Hypothesis::GetDim() const
|
||||
{
|
||||
int dim = 0;
|
||||
switch (_type)
|
||||
{
|
||||
case ALGO_1D: dim = 1; break;
|
||||
case ALGO_2D: dim = 2; break;
|
||||
case ALGO_3D: dim = 3; break;
|
||||
case ALGO_0D: dim = 0; break;
|
||||
case PARAM_ALGO:
|
||||
dim = ( _param_algo_dim < 0 ) ? -_param_algo_dim : _param_algo_dim; break;
|
||||
}
|
||||
{
|
||||
case ALGO_1D: dim = 1; break;
|
||||
case ALGO_2D: dim = 2; break;
|
||||
case ALGO_3D: dim = 3; break;
|
||||
case ALGO_0D: dim = 0; break;
|
||||
case PARAM_ALGO:
|
||||
dim = ( _param_algo_dim < 0 ) ? -_param_algo_dim : _param_algo_dim; break;
|
||||
}
|
||||
return dim;
|
||||
}
|
||||
|
||||
//=============================================================================
|
||||
/*!
|
||||
*
|
||||
*
|
||||
*/
|
||||
//=============================================================================
|
||||
|
||||
|
@ -4020,8 +4020,8 @@ void SMESHGUI::initialize( CAM_Application* app )
|
||||
createSMESHAction( SMESHOp::OpPropertiesArea, "MEASURE_AREA", "ICON_MEASURE_AREA" );
|
||||
createSMESHAction( SMESHOp::OpPropertiesVolume, "MEASURE_VOLUME", "ICON_MEASURE_VOLUME" );
|
||||
|
||||
createSMESHAction( SMESHOp::OpHide, "HIDE" );
|
||||
createSMESHAction( SMESHOp::OpShow, "SHOW" );
|
||||
createSMESHAction( SMESHOp::OpHide, "HIDE", "ICON_HIDE" );
|
||||
createSMESHAction( SMESHOp::OpShow, "SHOW", "ICON_SHOW" );
|
||||
createSMESHAction( SMESHOp::OpShowOnly, "DISPLAY_ONLY" );
|
||||
|
||||
createSMESHAction( SMESHOp::OpSortChild, "SORT_CHILD_ITEMS" );
|
||||
|
@ -631,5 +631,13 @@
|
||||
<source>ICON_MEASURE_BND_BOX</source>
|
||||
<translation>mesh_bounding_box.png</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>ICON_SHOW</source>
|
||||
<translation>mesh_show.png</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>ICON_HIDE</source>
|
||||
<translation>mesh_hide.png</translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
||||
|
@ -169,6 +169,7 @@ struct SMESH_TNodeXYZ : public gp_XYZ
|
||||
double SquareDistance(const SMDS_MeshNode* n) const { return (SMESH_TNodeXYZ( n )-*this).SquareModulus(); }
|
||||
bool operator==(const SMESH_TNodeXYZ& other) const { return _node == other._node; }
|
||||
};
|
||||
typedef SMESH_TNodeXYZ SMESH_NodeXYZ;
|
||||
|
||||
//--------------------------------------------------
|
||||
/*!
|
||||
|
@ -610,6 +610,148 @@ const char* SMESH_Swig::AddSubMeshOnShape(const char* theMeshEntry,
|
||||
return "";
|
||||
}
|
||||
|
||||
/*!
|
||||
\brief Gets window with specified identifier
|
||||
\internal
|
||||
\param id window identifier
|
||||
\return pointer on the window
|
||||
*/
|
||||
|
||||
SUIT_ViewWindow* getWnd( const int id )
|
||||
{
|
||||
SUIT_ViewWindow* resWnd = 0;
|
||||
SUIT_Session* aSession = SUIT_Session::session();
|
||||
SUIT_Application* anApplication = aSession->activeApplication();
|
||||
SalomeApp_Application* app = dynamic_cast<SalomeApp_Application*>(anApplication);
|
||||
if ( app ) {
|
||||
ViewManagerList vmlist = app->viewManagers();
|
||||
foreach( SUIT_ViewManager* vm, vmlist ) {
|
||||
QVector<SUIT_ViewWindow*> vwlist = vm->getViews();
|
||||
foreach ( SUIT_ViewWindow* vw, vwlist ) {
|
||||
if ( id == vw->getId() ) {
|
||||
resWnd = vw;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return resWnd;
|
||||
}
|
||||
|
||||
class TGetActorAspect: public SALOME_Event
|
||||
{
|
||||
public:
|
||||
typedef actorAspect TResult;
|
||||
TResult myResult;
|
||||
const char* _entry;
|
||||
int _wid;
|
||||
TGetActorAspect( const char* Mesh_Entry, int viewId )
|
||||
{
|
||||
_entry = Mesh_Entry;
|
||||
_wid = viewId;
|
||||
}
|
||||
virtual void Execute()
|
||||
{
|
||||
SMESH_Actor* anActor;
|
||||
if (_wid)
|
||||
{
|
||||
SUIT_ViewWindow* w = getWnd(_wid);
|
||||
anActor = SMESH::FindActorByEntry( w, _entry );
|
||||
}
|
||||
else
|
||||
anActor = SMESH::FindActorByEntry( _entry );
|
||||
if ( !anActor )
|
||||
{
|
||||
MESSAGE("GetActorAspect: no actor corresponding to: " << _entry);
|
||||
return;
|
||||
}
|
||||
anActor->GetSufaceColor(myResult.surfaceColor.r,
|
||||
myResult.surfaceColor.g,
|
||||
myResult.surfaceColor.b,
|
||||
myResult.surfaceColor.delta);
|
||||
anActor->GetVolumeColor(myResult.volumeColor.r,
|
||||
myResult.volumeColor.g,
|
||||
myResult.volumeColor.b,
|
||||
myResult.volumeColor.delta);
|
||||
anActor->GetEdgeColor(myResult.edgeColor.r,
|
||||
myResult.edgeColor.g,
|
||||
myResult.edgeColor.b);
|
||||
anActor->GetNodeColor(myResult.nodeColor.r,
|
||||
myResult.nodeColor.g,
|
||||
myResult.nodeColor.b);
|
||||
myResult.opacity= anActor->GetOpacity();
|
||||
MESSAGE("opacity: " << myResult.opacity);
|
||||
}
|
||||
};
|
||||
|
||||
actorAspect SMESH_Swig::GetActorAspect( const char* Mesh_Entry, int viewId )
|
||||
{
|
||||
return ProcessEvent(new TGetActorAspect( Mesh_Entry, viewId));
|
||||
}
|
||||
|
||||
void SMESH_Swig::SetActorAspect( const actorAspect& actorPres, const char* Mesh_Entry, int viewId )
|
||||
{
|
||||
class TSetActorAspect: public SALOME_Event
|
||||
{
|
||||
public:
|
||||
const char* _entry;
|
||||
actorAspect _actorPres;
|
||||
int _wid;
|
||||
TSetActorAspect(const actorAspect& actorPres, const char* Mesh_Entry, int viewId )
|
||||
{
|
||||
_entry = Mesh_Entry;
|
||||
_actorPres = actorPres;
|
||||
_wid = viewId;
|
||||
}
|
||||
virtual void Execute()
|
||||
{
|
||||
SMESH_Actor* anActor;
|
||||
if (_wid)
|
||||
{
|
||||
SUIT_ViewWindow* w = getWnd(_wid);
|
||||
anActor = SMESH::FindActorByEntry( w, _entry );
|
||||
}
|
||||
else
|
||||
anActor = SMESH::FindActorByEntry( _entry );
|
||||
if ( !anActor )
|
||||
{
|
||||
MESSAGE("SetActorAspect: no actor corresponding to: " << _entry);
|
||||
return;
|
||||
}
|
||||
anActor->SetSufaceColor(_actorPres.surfaceColor.r,
|
||||
_actorPres.surfaceColor.g,
|
||||
_actorPres.surfaceColor.b,
|
||||
_actorPres.surfaceColor.delta);
|
||||
anActor->SetVolumeColor(_actorPres.volumeColor.r,
|
||||
_actorPres.volumeColor.g,
|
||||
_actorPres.volumeColor.b,
|
||||
_actorPres.volumeColor.delta);
|
||||
anActor->SetEdgeColor(_actorPres.edgeColor.r,
|
||||
_actorPres.edgeColor.g,
|
||||
_actorPres.edgeColor.b);
|
||||
anActor->SetNodeColor(_actorPres.nodeColor.r,
|
||||
_actorPres.nodeColor.g,
|
||||
_actorPres.nodeColor.b);
|
||||
anActor->SetOpacity(_actorPres.opacity);
|
||||
if (_wid)
|
||||
{
|
||||
SUIT_ViewWindow* w = getWnd(_wid);
|
||||
w->repaint();
|
||||
}
|
||||
else
|
||||
{
|
||||
SUIT_Session* aSession = SUIT_Session::session();
|
||||
SUIT_Application* anApplication = aSession->activeApplication();
|
||||
SalomeApp_Application* anApp = dynamic_cast<SalomeApp_Application*>(anApplication);
|
||||
SUIT_ViewManager* vman = anApp->getViewManager(VTKViewer_Viewer::Type(),true);
|
||||
vman->getActiveView()->repaint();
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
ProcessVoidEvent(new TSetActorAspect(actorPres, Mesh_Entry, viewId));
|
||||
}
|
||||
|
||||
void SMESH_Swig::CreateAndDisplayActor( const char* Mesh_Entry )
|
||||
{
|
||||
// SMESH_Actor* Mesh = smeshGUI->ReadScript(aM);
|
||||
|
@ -58,6 +58,37 @@ enum
|
||||
Ball = BallSelection
|
||||
};
|
||||
|
||||
typedef struct
|
||||
{
|
||||
double r, g, b;
|
||||
int delta;
|
||||
} surfaceColorStruct;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
double r, g, b;
|
||||
int delta;
|
||||
} volumeColorStruct;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
double r, g, b;
|
||||
} edgeColorStruct;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
double r, g, b;
|
||||
} nodeColorStruct;
|
||||
|
||||
struct actorAspect
|
||||
{
|
||||
surfaceColorStruct surfaceColor;
|
||||
volumeColorStruct volumeColor;
|
||||
edgeColorStruct edgeColor;
|
||||
nodeColorStruct nodeColor;
|
||||
double opacity;
|
||||
};
|
||||
|
||||
class SMESH_SWIG_EXPORT SMESH_Swig
|
||||
{
|
||||
public:
|
||||
@ -94,6 +125,9 @@ public:
|
||||
*/
|
||||
void SetMeshIcon( const char*, const bool, const bool );
|
||||
|
||||
actorAspect GetActorAspect(const char* Mesh_Entry, int viewId = 0 );
|
||||
void SetActorAspect( const actorAspect& actorPres, const char* Mesh_Entry, int viewId = 0 );
|
||||
|
||||
// --------------------- for the test purposes -----------------------
|
||||
int getSelectionMode();
|
||||
void select( const char *id, std::vector<int> ids, bool append = false );
|
||||
|
@ -68,6 +68,37 @@ enum
|
||||
Ball
|
||||
};
|
||||
|
||||
typedef struct
|
||||
{
|
||||
double r, g, b;
|
||||
int delta;
|
||||
} surfaceColorStruct;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
double r, g, b;
|
||||
int delta;
|
||||
} volumeColorStruct;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
double r, g, b;
|
||||
} edgeColorStruct;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
double r, g, b;
|
||||
} nodeColorStruct;
|
||||
|
||||
struct actorAspect
|
||||
{
|
||||
surfaceColorStruct surfaceColor;
|
||||
volumeColorStruct volumeColor;
|
||||
edgeColorStruct edgeColor;
|
||||
nodeColorStruct nodeColor;
|
||||
double opacity;
|
||||
};
|
||||
|
||||
class SMESH_Swig
|
||||
{
|
||||
public:
|
||||
@ -97,6 +128,9 @@ class SMESH_Swig
|
||||
void CreateAndDisplayActor( const char* Mesh_Entry );
|
||||
void EraseActor( const char* Mesh_Entry, const bool allViewers = false );
|
||||
|
||||
actorAspect GetActorAspect(const char* Mesh_Entry, int viewId = 0 );
|
||||
void SetActorAspect( const actorAspect& actorPres, const char* Mesh_Entry, int viewId = 0 );
|
||||
|
||||
// --------------------- for the test purposes -----------------------
|
||||
int getSelectionMode();
|
||||
void select( const char *id, std::vector<int> ids, bool append = false );
|
||||
|
@ -2,15 +2,20 @@ import sys, os, shutil, pickle, tempfile
|
||||
from Zcracks import main, genereCrack, Zset
|
||||
from Zcracks import utilityFunctions as uF
|
||||
|
||||
os.environ['QT_QPA_PLATFORM_PLUGIN_PATH']=os.path.join(os.environ['QTDIR'],'plugins','platforms')
|
||||
|
||||
if 'MESHGEMSHOME' in os.environ:
|
||||
meshgemsdir=os.environ['MESHGEMSHOME']
|
||||
if len(meshgemsdir) > 0:
|
||||
meshgems=meshgemsdir.split(os.sep)[-1]
|
||||
uF.removeFromSessionPath('LD_LIBRARY_PATH', meshgems)
|
||||
|
||||
#commande="/bin/bash -c ""source $HOME/zebulon/Z8.6.6_NEW/do_config_bash"""
|
||||
#os.system(commande)
|
||||
|
||||
def IHM():
|
||||
|
||||
try:
|
||||
from PyQt5.QtWidgets import QApplication
|
||||
except:
|
||||
from PyQt4.QtGui import QApplication
|
||||
from PyQt5.QtWidgets import QApplication
|
||||
|
||||
app = QApplication(sys.argv)
|
||||
myapp = main.ShipHolderApplication()
|
||||
@ -31,8 +36,7 @@ def SCRIPT(dataFile=None, data=None, dim=3, names=None):
|
||||
|
||||
print(data)
|
||||
|
||||
tmpdir=tempfile.mkdtemp()
|
||||
uF.removeFromSessionPath('LD_LIBRARY_PATH', 'Meshgems-2111')
|
||||
tmpdir=tempfile.mkdtemp(prefix='tmpZcracks')
|
||||
|
||||
if names==None: names={'saneGeoName':'salome_sane', 'crackGeoName':'salome_crack', 'crackedGeoName':'salome_cracked'}
|
||||
|
||||
|
@ -18,13 +18,13 @@ import string
|
||||
|
||||
#tmpdir = "/local00/home/B27118/projets/Zcracks/Zcracks/casTests/tmpdir"
|
||||
#if not os.path.isdir(tmpdir): os.mkdir(tmpdir)
|
||||
tmpdir=tempfile.mktemp(prefix='tmpZcracks')
|
||||
tmpdir=tempfile.mkdtemp(prefix='tmpZcracks')
|
||||
print("tmpdir=", tmpdir)
|
||||
|
||||
meshgemsdir=os.environ('MESHGEMSHOME')
|
||||
if len(meshgemsdir) > 0:
|
||||
meshgems=string.split(meshgemsdir,os.sep)[-1]
|
||||
uF.removeFromSessionPath('LD_LIBRARY_PATH', meshgems)
|
||||
#meshgemsdir=os.environ('MESHGEMSHOME')
|
||||
#if len(meshgemsdir) > 0:
|
||||
#meshgems=string.split(meshgemsdir,os.sep)[-1]
|
||||
#uF.removeFromSessionPath('LD_LIBRARY_PATH', meshgems)
|
||||
|
||||
def LAUNCH(listCas=[]):
|
||||
if not isinstance(listCas, list): listCas=[listCas]
|
||||
@ -194,7 +194,7 @@ def LAUNCH(listCas=[]):
|
||||
|
||||
OK=[]
|
||||
NOOK=[]
|
||||
for s in list(synthese.keys()):
|
||||
for s in synthese:
|
||||
if synthese[s]:
|
||||
OK.append(s)
|
||||
else:
|
||||
|
@ -1,13 +1,9 @@
|
||||
import sys, pickle, tempfile, shutil
|
||||
from os import path, getpid, environ, remove, system
|
||||
|
||||
try:
|
||||
from PyQt5.QtCore import *
|
||||
from PyQt5.QtGui import *
|
||||
from PyQt5.QtWidgets import *
|
||||
except:
|
||||
from PyQt4.QtCore import *
|
||||
from PyQt4.QtGui import *
|
||||
from PyQt5.QtCore import *
|
||||
from PyQt5.QtGui import *
|
||||
from PyQt5.QtWidgets import *
|
||||
|
||||
from . import utilityFunctions as uF
|
||||
from . import genereCrack, Zset, output, zcracks_ui
|
||||
@ -21,8 +17,6 @@ from .zcracks_ui import Ui_Zui
|
||||
# ---------------------
|
||||
|
||||
|
||||
uF.removeFromSessionPath('LD_LIBRARY_PATH', 'Meshgems-2111')
|
||||
|
||||
def stringToFloat(string, typ=float):
|
||||
if str(string).replace(' ','')=='':
|
||||
out=[]
|
||||
@ -78,25 +72,6 @@ class ShipHolderApplication(QGroupBox):
|
||||
|
||||
self.verbose=1
|
||||
|
||||
#self.connect(self.ui.CBQuad, SIGNAL("toggled(bool)"),self.pressQuad)
|
||||
#self.connect(self.ui.btReset, SIGNAL("clicked()"),self.pressReset)
|
||||
#self.connect(self.ui.btCancel, SIGNAL("clicked()"),self.pressCancel)
|
||||
#self.connect(self.ui.btApply, SIGNAL("clicked()"),self.pressApply)
|
||||
#self.connect(self.ui.btApplyClose, SIGNAL("clicked()"),self.pressApplyClose)
|
||||
#self.connect(self.ui.btLoad, SIGNAL("clicked()"),self.pressCharger)
|
||||
#self.connect(self.ui.btSave, SIGNAL("clicked()"),self.pressSauver)
|
||||
#self.connect(self.ui.btLoadCracked, SIGNAL("clicked()"),self.pressLoadCracked)
|
||||
#self.connect(self.ui.btLoadSane, SIGNAL("clicked()"),self.pressLoadSane)
|
||||
|
||||
#self.connect(self.ui.btGrVol, SIGNAL("clicked()"),self.pressLoadGroupVOL)
|
||||
#self.connect(self.ui.btGrFace, SIGNAL("clicked()"),self.pressLoadGroupFACE)
|
||||
#self.connect(self.ui.btGrEdge, SIGNAL("clicked()"),self.pressLoadGroupEDGE)
|
||||
#self.connect(self.ui.btGrNode, SIGNAL("clicked()"),self.pressLoadGroupNODE)
|
||||
#self.connect(self.ui.btGrAll, SIGNAL("clicked()"),self.pressLoadGroupALL)
|
||||
#self.connect(self.ui.btVisu, SIGNAL("clicked()"),self.pressVisu)
|
||||
|
||||
#self.connect(self.ui.CBAdvanced, SIGNAL("toggled(bool)"),self.pressAdvanced)
|
||||
|
||||
self.ui.CBQuad.toggled.connect(self.pressQuad)
|
||||
self.ui.btReset.clicked.connect(self.pressReset)
|
||||
self.ui.btCancel.clicked.connect(self.pressCancel)
|
||||
@ -144,9 +119,9 @@ class ShipHolderApplication(QGroupBox):
|
||||
def pressQuad(self):
|
||||
if self.ui.CBQuad.isChecked():
|
||||
self.ui.CBBarsoum.setEnabled(True)
|
||||
self.ui.valGradation.setText(QString('2.3'))
|
||||
self.ui.valGradation.setText('2.3')
|
||||
else:
|
||||
self.ui.valGradation.setText(QString('1.3'))
|
||||
self.ui.valGradation.setText('1.3')
|
||||
self.ui.CBBarsoum.setChecked(False)
|
||||
self.ui.CBBarsoum.setEnabled(False)
|
||||
|
||||
@ -162,10 +137,10 @@ class ShipHolderApplication(QGroupBox):
|
||||
tab=onglet.findChildren(QTableWidget)[0]
|
||||
for irow in range(tab.rowCount()):
|
||||
if tab.item(irow,0) != None:
|
||||
tab.item(irow,0).setText(QString(''))
|
||||
self.ui.valGradation.setText(QString('1.3'))
|
||||
self.ui.valLayers.setText(QString('5'))
|
||||
self.ui.valIterations.setText(QString('2'))
|
||||
tab.item(irow,0).setText('')
|
||||
self.ui.valGradation.setText('1.3')
|
||||
self.ui.valLayers.setText('6')
|
||||
self.ui.valIterations.setText('2')
|
||||
self.ui.CBIs2D.setChecked(False)
|
||||
self.ui.CBRefine.setChecked(False)
|
||||
|
||||
@ -257,7 +232,7 @@ class ShipHolderApplication(QGroupBox):
|
||||
fileNames = fileDiag.selectedFiles()
|
||||
filedef = fileNames[0]
|
||||
filedef = addExtension(str(filedef), 'med')
|
||||
self.ui.valCrackedName.setText(QString(filedef))
|
||||
self.ui.valCrackedName.setText(filedef)
|
||||
|
||||
|
||||
def pressLoadSane(self):
|
||||
@ -268,7 +243,7 @@ class ShipHolderApplication(QGroupBox):
|
||||
if fileDiag.exec_() :
|
||||
fileNames = fileDiag.selectedFiles()
|
||||
filedef = fileNames[0]
|
||||
self.ui.valSaneName.setText(QString(filedef))
|
||||
self.ui.valSaneName.setText(filedef)
|
||||
|
||||
|
||||
def pressCharger(self):
|
||||
@ -287,23 +262,15 @@ class ShipHolderApplication(QGroupBox):
|
||||
|
||||
for cont, obj in enumerate(self.lineEditObjects):
|
||||
if self.lineEditTypes[cont] in [float, int]:
|
||||
obj.setText(QString(self.data['TXT'+self.lineEditNames[cont]]))
|
||||
obj.setText(self.data['TXT'+self.lineEditNames[cont]])
|
||||
else:
|
||||
obj.setText(QString(self.data[self.lineEditNames[cont]]))
|
||||
obj.setText(self.data[self.lineEditNames[cont]])
|
||||
|
||||
self.ui.CBQuad.setChecked(True if 'quad' in list(self.data.keys()) and self.data['quad'] else False)
|
||||
self.ui.CBBarsoum.setChecked(True if 'barsoum' in list(self.data.keys()) and self.data['barsoum'] else False)
|
||||
self.ui.CBIs2D.setChecked(True if 'is2D' in list(self.data.keys()) and self.data['is2D'] else False)
|
||||
self.ui.CBRefine.setChecked(True if 'refine' in list(self.data.keys()) and self.data['refine'] else False)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#if self.data['quad']: self.ui.CBQuad.setChecked(True)
|
||||
#if self.data['barsoum']: self.ui.CBBarsoum.setChecked(True)
|
||||
#if self.data['is2D']: self.ui.CBIs2D.setChecked(True)
|
||||
#if self.data['refine']: self.ui.CBRefine.setChecked(True)
|
||||
self.setTableParameters()
|
||||
|
||||
|
||||
@ -451,7 +418,7 @@ class ShipHolderApplication(QGroupBox):
|
||||
if tab.item(irow,0) == None:
|
||||
item = QTableWidgetItem()
|
||||
tab.setItem(irow, 0, item)
|
||||
tab.item(irow,0).setText(QString(self.data['TXTcrack'][str(self.ui.tabWidget.tabText(iongl))][str(label)]))
|
||||
tab.item(irow,0).setText(self.data['TXTcrack'][str(self.ui.tabWidget.tabText(iongl))][str(label)])
|
||||
if str(self.ui.tabWidget.tabText(iongl)) == self.data['TXTcrack']['actif']:
|
||||
self.ui.tabWidget.setCurrentWidget(onglet)
|
||||
|
||||
@ -475,19 +442,19 @@ class ShipHolderApplication(QGroupBox):
|
||||
|
||||
for group in objetSain.GetGroups():
|
||||
if (self.GroupToLoad in ['VOL','ALL']) and (group.GetType()==SMESH.VOLUME):
|
||||
groupsVOL+=group.GetName().replace(' ','')+" "
|
||||
groupsVOL+=self.cleanGroupName(group)
|
||||
nGr+=1
|
||||
|
||||
if (self.GroupToLoad in ['FACE','ALL']) and (group.GetType()==SMESH.FACE):
|
||||
groupsFAC+=group.GetName().replace(' ','')+" "
|
||||
groupsFAC+=self.cleanGroupName(group)
|
||||
nGr+=1
|
||||
|
||||
if (self.GroupToLoad in ['EDGE','ALL']) and (group.GetType()==SMESH.EDGE):
|
||||
groupsEDG+=group.GetName().replace(' ','')+" "
|
||||
groupsEDG+=self.cleanGroupName(group)
|
||||
nGr+=1
|
||||
|
||||
if (self.GroupToLoad in ['NODE','ALL']) and (group.GetType()==SMESH.NODE):
|
||||
groupsNOD+=group.GetName().replace(' ','')+" "
|
||||
groupsNOD+=self.cleanGroupName(group)
|
||||
nGr+=1
|
||||
|
||||
if groupsVOL!='': self.ui.valGrVol.setText(groupsVOL)
|
||||
@ -503,6 +470,24 @@ class ShipHolderApplication(QGroupBox):
|
||||
remove(f)
|
||||
except:
|
||||
pass
|
||||
|
||||
def cleanGroupName(self, group):
|
||||
name=group.GetName()
|
||||
while name.endswith(' '): name=name[:-1]
|
||||
if ' ' in name:
|
||||
message('A','%s group has a space in its name --> ignored' %name)
|
||||
return('')
|
||||
else:
|
||||
return(name+" ")
|
||||
|
||||
def checkNamesSpaces(self, names):
|
||||
if type(names) is str: names=[names]
|
||||
ok=True
|
||||
for n in names:
|
||||
if ' ' in n:
|
||||
message('E','%s has a space in its name, please remove it' %n, goOn=True)
|
||||
ok=False
|
||||
return(ok)
|
||||
|
||||
|
||||
# ---------------------------------
|
||||
|
@ -22,9 +22,9 @@ class output():
|
||||
pass
|
||||
f = open(self.tmpFile,'w')
|
||||
f.write('\n ------------------------------\n')
|
||||
f.write(' | BIENVENU DANS L\'INTERFACE |\n')
|
||||
f.write(' | BIENVENUE DANS L\'INTERFACE |\n')
|
||||
f.write(' | ZCRACKS DE SALOME |\n')
|
||||
f.write(' | VERSION ALPHA |\n')
|
||||
f.write(' | VERSION BETA |\n')
|
||||
f.write(' ------------------------------\n\n')
|
||||
f.close()
|
||||
|
||||
|
@ -178,7 +178,13 @@ def extendElsets(meshFile, outFile=None):
|
||||
smesh = smeshBuilder.New(theStudy)
|
||||
|
||||
([mesh], status) = smesh.CreateMeshesFromMED(meshFile)
|
||||
|
||||
|
||||
if mesh.NbVolumes()>0:
|
||||
case2D=False
|
||||
mesh.Reorient2DBy3D( [ mesh ], mesh, 1 )
|
||||
else:
|
||||
case2D=True
|
||||
|
||||
mesh=cleanGroups(mesh)
|
||||
|
||||
# Node color status
|
||||
@ -339,91 +345,6 @@ def getMaxAspectRatio(tmpdir):
|
||||
return(float(maxAR))
|
||||
|
||||
|
||||
#def extendElsets(meshFile):
|
||||
#if not path.isfile(meshFile):
|
||||
#message('E','Mesh med file is not valid')
|
||||
#return(-1)
|
||||
|
||||
#import SMESH, salome
|
||||
##salome.salome_init()
|
||||
#theStudy = salome.myStudy
|
||||
#from salome.smesh import smeshBuilder
|
||||
#smesh = smeshBuilder.New(theStudy)
|
||||
|
||||
#([mesh], status) = smesh.CreateMeshesFromMED(meshFile)
|
||||
|
||||
## Node color status
|
||||
#nodeList=mesh.GetNodesId()
|
||||
#colorList=[0]*len(nodeList)
|
||||
|
||||
## Init using SIDE0 SIDE1
|
||||
#for group in mesh.GetGroups():
|
||||
#if group.GetType()==SMESH.FACE :
|
||||
#color=0
|
||||
#if group.GetName()[0:4]=='SIDE0' :
|
||||
#color=1
|
||||
#elif group.GetName()[0:4]=='SIDE1' :
|
||||
#color=2
|
||||
#else : continue
|
||||
## Get faces
|
||||
#faces=group.GetIDs()
|
||||
## Set faces nodes to given color
|
||||
#for face_id in faces :
|
||||
#for face_node_id in mesh.GetElemNodes(face_id) :
|
||||
#colorList[face_node_id-1]=color
|
||||
|
||||
## Propagates color using elem connectivity
|
||||
## Always propagates max color
|
||||
#volElemList=mesh.GetElementsByType(SMESH.VOLUME)
|
||||
#ifChanged=True
|
||||
#while ifChanged :
|
||||
#ifChanged=False
|
||||
#minColor=100
|
||||
#maxColor=0
|
||||
#for elemId in volElemList:
|
||||
#for elemNodeId in mesh.GetElemNodes(elemId) :
|
||||
#nodeColor=colorList[elemNodeId-1]
|
||||
#if nodeColor<minColor : minColor=nodeColor
|
||||
#if nodeColor>maxColor : maxColor=nodeColor
|
||||
#if minColor!=maxColor :
|
||||
#ifChanged = True
|
||||
#for elemNodeId in mesh.GetElemNodes(elemId) :
|
||||
#colorList[elemNodeId-1]=maxColor
|
||||
|
||||
#velem0 = []
|
||||
#velem1 = []
|
||||
#for elemId in volElemList:
|
||||
#elemNodesId=mesh.GetElemNodes(elemId)
|
||||
#elemColor=colorList[elemNodesId[0]-1]
|
||||
#if(elemColor==1) : velem0.append(elemId)
|
||||
#if(elemColor==2) : velem1.append(elemId)
|
||||
|
||||
#mesh.MakeGroupByIds('SIDE_co',SMESH.VOLUME,velem0)
|
||||
#mesh.MakeGroupByIds('SIDE_ext',SMESH.VOLUME,velem1)
|
||||
|
||||
#surfElemList=mesh.GetElementsByType(SMESH.FACE)
|
||||
#selem0 = []
|
||||
#selem1 = []
|
||||
#nbelem0=0
|
||||
#nbelem1=0
|
||||
|
||||
#for elemId in surfElemList:
|
||||
#elemNodesId=mesh.GetElemNodes(elemId)
|
||||
#elemColor=colorList[elemNodesId[0]-1]
|
||||
#if(elemColor==1) : selem0.append(elemId)
|
||||
#if(elemColor==2) : selem1.append(elemId)
|
||||
|
||||
#mesh.MakeGroupByIds('SIDE_co',SMESH.FACE,selem0)
|
||||
#mesh.MakeGroupByIds('SIDE_ext',SMESH.FACE,selem1)
|
||||
|
||||
#maxAR=0.
|
||||
#for elem in volElemList:
|
||||
#maxAR=max(mesh.GetAspectRatio(elem),maxAR)
|
||||
#for elem in surfElemList:
|
||||
#maxAR=max(mesh.GetAspectRatio(elem),maxAR)
|
||||
|
||||
#mesh.ExportMED(meshFile, 0, SMESH.MED_V2_2, 1, None ,1)
|
||||
#return(maxAR)
|
||||
|
||||
|
||||
def removeFromSessionPath(envVar, patern):
|
||||
|
@ -146,11 +146,12 @@ bool SPADDERPluginTester_i::testsmesh(CORBA::Long studyId)
|
||||
//
|
||||
extern "C"
|
||||
{
|
||||
PortableServer::ObjectId * SPADDERPluginTesterEngine_factory( CORBA::ORB_ptr orb,
|
||||
PortableServer::POA_ptr poa,
|
||||
PortableServer::ObjectId * contId,
|
||||
const char *instanceName,
|
||||
const char *interfaceName)
|
||||
SPADDERPLUGINTESTERENGINE_EXPORT PortableServer::ObjectId *
|
||||
SPADDERPluginTesterEngine_factory( CORBA::ORB_ptr orb,
|
||||
PortableServer::POA_ptr poa,
|
||||
PortableServer::ObjectId * contId,
|
||||
const char *instanceName,
|
||||
const char *interfaceName)
|
||||
{
|
||||
MESSAGE("PortableServer::ObjectId * SPADDERPluginTesterEngine_factory()");
|
||||
SPADDERPluginTester_i * myEngine = new SPADDERPluginTester_i(orb, poa, contId, instanceName, interfaceName);
|
||||
|
@ -22,13 +22,23 @@
|
||||
#ifndef _SPADDER_PLUGINTESTER_HXX_
|
||||
#define _SPADDER_PLUGINTESTER_HXX_
|
||||
|
||||
#ifdef WIN32
|
||||
#if defined SPADDERPLUGINTESTERENGINE_EXPORTS || defined SPADDERPluginTesterEngine_EXPORTS
|
||||
#define SPADDERPLUGINTESTERENGINE_EXPORT __declspec( dllexport )
|
||||
#else
|
||||
#define SPADDERPLUGINTESTERENGINE_EXPORT __declspec( dllimport )
|
||||
#endif
|
||||
#else
|
||||
#define SPADDERPLUGINTESTERENGINE_EXPORT
|
||||
#endif
|
||||
|
||||
// include the stubs generating from SPADDERPluginTest.idl
|
||||
#include <SALOMEconfig.h>
|
||||
#include CORBA_SERVER_HEADER(SPADDERPluginTest)
|
||||
#include <SALOME_Component.hh>
|
||||
#include "SALOME_Component_i.hxx"
|
||||
|
||||
class SPADDERPluginTester_i:
|
||||
class SPADDERPLUGINTESTERENGINE_EXPORT SPADDERPluginTester_i:
|
||||
public virtual POA_SPADDERPluginTest::SPADDERPluginTester,
|
||||
public Engines_Component_i
|
||||
{
|
||||
|
@ -38,6 +38,14 @@ from salome.smesh.spadder.gui.inputdata import InputData
|
||||
DEBUG_MODE=True
|
||||
GROUPNAME_MAXLENGTH=8
|
||||
|
||||
INPUTDATA_KEY_FILES="meshfiles"
|
||||
INPUTDATA_KEY_PARAM="parameters"
|
||||
|
||||
PARAM_KEY_NBITER = "NbIteration"
|
||||
PARAM_KEY_RMAXRMIN = "RmaxRmin"
|
||||
PARAM_NBITER_DEFAULT_VALUE = 10
|
||||
PARAM_RMAXRMIN_DEFAULT_VALUE = 3
|
||||
|
||||
class InputDialog(GenericDialog):
|
||||
|
||||
TBL_HEADER_LABEL=["Input Mesh", "Output group name"]
|
||||
@ -116,7 +124,8 @@ class InputDialog(GenericDialog):
|
||||
# name item.
|
||||
|
||||
# Setup default values for numerical parameters
|
||||
self.__ui.txtParamNbIter.setValue(3)
|
||||
self.__ui.txtParamNbIter.setValue(PARAM_NBITER_DEFAULT_VALUE)
|
||||
self.__ui.txtParamRmaxRmin.setValue(PARAM_RMAXRMIN_DEFAULT_VALUE)
|
||||
|
||||
# Note that PADDER does not support group name longer than 8
|
||||
# characters. We apply then this limit in the gui field.
|
||||
@ -138,7 +147,7 @@ class InputDialog(GenericDialog):
|
||||
self.__ui.txtSmeshObject.setEnabled(False)
|
||||
self.__ui.btnAddInput.setEnabled(False)
|
||||
self.__selectedMesh = None
|
||||
self.__dictInputData = {}
|
||||
self.__dictInputFiles = {}
|
||||
self.__nbConcreteMesh = 0
|
||||
self.__nbSteelbarMesh = 0
|
||||
|
||||
@ -231,7 +240,7 @@ class InputDialog(GenericDialog):
|
||||
"""
|
||||
# if the entry already exists, we remove it to replace by a
|
||||
# new one
|
||||
if meshName in self.__dictInputData:
|
||||
if meshName in self.__dictInputFiles:
|
||||
self.__delInputFromMap(meshName)
|
||||
|
||||
inputData = InputData()
|
||||
@ -240,7 +249,7 @@ class InputDialog(GenericDialog):
|
||||
inputData.meshType = meshType
|
||||
inputData.groupName = groupName
|
||||
# The key of the map is the mesh name
|
||||
self.__dictInputData[meshName] = inputData
|
||||
self.__dictInputFiles[meshName] = inputData
|
||||
if inputData.meshType == InputData.MESHTYPES.CONCRETE:
|
||||
self.__nbConcreteMesh += 1
|
||||
else:
|
||||
@ -272,7 +281,7 @@ class InputDialog(GenericDialog):
|
||||
This function removes the specified entry from the internal
|
||||
map (for data management purpose)
|
||||
"""
|
||||
inputData = self.__dictInputData.pop(meshName)
|
||||
inputData = self.__dictInputFiles.pop(meshName)
|
||||
if inputData.meshType == InputData.MESHTYPES.CONCRETE:
|
||||
self.__nbConcreteMesh -= 1
|
||||
else:
|
||||
@ -283,33 +292,51 @@ class InputDialog(GenericDialog):
|
||||
print("nb steelbar mesh ",self.__nbSteelbarMesh)
|
||||
|
||||
|
||||
def setData(self, listInputData=[]):
|
||||
def setData(self, dictInputData={}):
|
||||
"""
|
||||
This function fills the dialog widgets with values provided by
|
||||
the specified data list.
|
||||
"""
|
||||
self.clear()
|
||||
for inputData in listInputData:
|
||||
if INPUTDATA_KEY_FILES in dictInputData:
|
||||
listInputData = dictInputData["meshfiles"]
|
||||
for inputData in listInputData:
|
||||
|
||||
meshName = inputData.meshName
|
||||
meshObject = inputData.meshObject
|
||||
meshType = inputData.meshType
|
||||
groupName = inputData.groupName
|
||||
meshName = inputData.meshName
|
||||
meshObject = inputData.meshObject
|
||||
meshType = inputData.meshType
|
||||
groupName = inputData.groupName
|
||||
|
||||
self.__addInputInGui(meshName, meshObject, meshType, groupName)
|
||||
self.__addInputInMap(meshName, meshObject, meshType, groupName)
|
||||
self.__addInputInGui(meshName, meshObject, meshType, groupName)
|
||||
self.__addInputInMap(meshName, meshObject, meshType, groupName)
|
||||
|
||||
if not DEBUG_MODE:
|
||||
self.onSelectSmeshObject()
|
||||
if not DEBUG_MODE:
|
||||
self.onSelectSmeshObject()
|
||||
|
||||
if INPUTDATA_KEY_PARAM in dictInputData:
|
||||
dictInputParameters = dictInputData[INPUTDATA_KEY_PARAM]
|
||||
if PARAM_KEY_NBITER in dictInputParameters:
|
||||
self.__ui.txtParamNbIter.setValue(dictInputParameters[PARAM_KEY_NBITER])
|
||||
if PARAM_KEY_RMAXRMIN in dictInputParameters:
|
||||
self.__ui.txtParamRminRmax.setValue(dictInputParameters[PARAM_KEY_RMAXRMIN])
|
||||
|
||||
def getData(self):
|
||||
"""
|
||||
This function returns a list of InputData that corresponds to
|
||||
the data in the dialog widgets of the current dialog.
|
||||
"""
|
||||
# Get the list of mesh files
|
||||
# Note that the values() function returns a copy of the list
|
||||
# of values.
|
||||
return list(self.__dictInputData.values())
|
||||
dictInputData={}
|
||||
dictInputData[INPUTDATA_KEY_FILES] = self.__dictInputFiles.values()
|
||||
|
||||
# Get the list of additionnal parameters
|
||||
dictInputParameters = {}
|
||||
dictInputParameters[PARAM_KEY_NBITER] = self.__ui.txtParamNbIter.value()
|
||||
dictInputParameters[PARAM_KEY_RMAXRMIN] = self.__ui.txtParamRmaxRmin.value()
|
||||
dictInputData[INPUTDATA_KEY_PARAM] = dictInputParameters
|
||||
return dictInputData
|
||||
|
||||
def checkData(self):
|
||||
"""
|
||||
@ -328,7 +355,6 @@ class InputDialog(GenericDialog):
|
||||
|
||||
return True
|
||||
|
||||
#def setParameters(self,
|
||||
|
||||
# ==============================================================================
|
||||
# Basic use case
|
||||
|
@ -111,7 +111,7 @@
|
||||
</property>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Béton</string>
|
||||
<string>Beton</string>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset>
|
||||
@ -213,9 +213,9 @@
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="lblParamRminRmax">
|
||||
<widget class="QLabel" name="lblParamRmaxRmin">
|
||||
<property name="text">
|
||||
<string>Rmin / Rmax</string>
|
||||
<string>Rmax / Rmin</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
@ -227,7 +227,7 @@
|
||||
<widget class="QSpinBox" name="txtParamNbIter"/>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QDoubleSpinBox" name="txtParamRminRmax"/>
|
||||
<widget class="QDoubleSpinBox" name="txtParamRmaxRmin"/>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
|
@ -23,7 +23,8 @@
|
||||
from qtsalome import QDialog, QIcon, Qt
|
||||
|
||||
from salome.smesh.spadder.gui.plugindialog_ui import Ui_PluginDialog
|
||||
from salome.smesh.spadder.gui.inputdialog import InputDialog
|
||||
from salome.smesh.spadder.gui.inputdialog import InputDialog, INPUTDATA_KEY_FILES, INPUTDATA_KEY_PARAM
|
||||
from salome.smesh.spadder.gui.inputdialog import PARAM_KEY_NBITER, PARAM_KEY_RMAXRMIN
|
||||
from salome.smesh.spadder.gui.inputdata import InputData
|
||||
# __GBO__: uncomment this line and comment the previous one to use the
|
||||
# demo input dialog instead of the real one.
|
||||
@ -218,6 +219,7 @@ class PluginDialog(QDialog):
|
||||
This function clears the log area and the states of the buttons
|
||||
"""
|
||||
self.__listInputData = []
|
||||
self.__dictInputParameters = {}
|
||||
self.__ui.txtLog.clear()
|
||||
self.__setGuiState(["CAN_SELECT"])
|
||||
self.__isRunning = False
|
||||
@ -241,7 +243,10 @@ class PluginDialog(QDialog):
|
||||
windows to process the validation event (see the slot
|
||||
onProcessInput which is connected to this event).
|
||||
'''
|
||||
self.__inputDialog.setData(self.__listInputData)
|
||||
dictInputData = {}
|
||||
dictInputData[INPUTDATA_KEY_FILES] = self.__listInputData
|
||||
dictInputData[INPUTDATA_KEY_PARAM] = self.__dictInputParameters
|
||||
self.__inputDialog.setData(dictInputData)
|
||||
self.__inputDialog.open()
|
||||
|
||||
def onProcessInput(self):
|
||||
@ -252,7 +257,10 @@ class PluginDialog(QDialog):
|
||||
"""
|
||||
# The processing simply consists in requesting the input data
|
||||
# from the dialog window.
|
||||
self.__listInputData = self.__inputDialog.getData()
|
||||
dictInputData = self.__inputDialog.getData()
|
||||
self.__listInputData = dictInputData[INPUTDATA_KEY_FILES]
|
||||
self.__dictInputParameters = dictInputData[INPUTDATA_KEY_PARAM]
|
||||
|
||||
self.__ui.lblStatusBar.setText("Input data OK")
|
||||
self.__log("INF: Press \"Compute\" to start the job")
|
||||
self.__setGuiState(["CAN_SELECT", "CAN_COMPUTE"])
|
||||
@ -283,8 +291,16 @@ class PluginDialog(QDialog):
|
||||
group_name = inputData.groupName)
|
||||
meshJobFileList.append(parameter)
|
||||
|
||||
# And to create a list of the additional parameters.
|
||||
# WARN: the CORBA interface requires string values.
|
||||
meshJobParameterList=[]
|
||||
for inputParameterKey in self.__dictInputParameters:
|
||||
value = self.__dictInputParameters[inputParameterKey]
|
||||
parameter = MESHJOB.MeshJobParameter(name=inputParameterKey,value=str(value))
|
||||
meshJobParameterList.append(parameter)
|
||||
|
||||
jobManager = self.__getJobManager()
|
||||
self.__jobid = jobManager.initialize(meshJobFileList, self.__configId)
|
||||
self.__jobid = jobManager.initialize(meshJobFileList, meshJobParameterList, self.__configId)
|
||||
if self.__jobid < 0:
|
||||
self.__log("ERR: the job can't be initialized")
|
||||
self.__log("ERR: %s"%jobManager.getLastErrorMessage())
|
||||
|
@ -83,7 +83,7 @@ PADDERTESTDIR = getPadderTestDir(defaultConfig)
|
||||
# padder.cfg).
|
||||
#
|
||||
def test00_parameters():
|
||||
"""Test using a concrete mesh and a single steelbar mesh"""
|
||||
"""Test using a concrete mesh and a single steelbar mesh"""
|
||||
file_concrete=os.path.join(spadder.getTestDataDir(),"concrete.med")
|
||||
file_steelbar=os.path.join(spadder.getTestDataDir(),"ferraill.med")
|
||||
|
||||
@ -109,7 +109,7 @@ def test01_parameters():
|
||||
file_type=MESHJOB.MED_CONCRETE,
|
||||
group_name="concrete")
|
||||
meshJobFileList.append(param)
|
||||
|
||||
|
||||
medfile = os.path.join(datadir,"ferraill.med")
|
||||
param = MESHJOB.MeshJobFile(file_name=medfile,
|
||||
file_type=MESHJOB.MED_STEELBAR,
|
||||
@ -121,7 +121,7 @@ def test01_parameters():
|
||||
file_type=MESHJOB.MED_STEELBAR,
|
||||
group_name="ferrtran")
|
||||
meshJobFileList.append(param)
|
||||
|
||||
|
||||
return meshJobFileList
|
||||
|
||||
def test02_parameters():
|
||||
@ -161,7 +161,7 @@ def test03_parameters():
|
||||
meshJobFileList = test03_parameters()
|
||||
|
||||
meshJobParameterList = []
|
||||
param = MESHJOB.MeshJobParameter(name="RminRmax",value="1.5")
|
||||
param = MESHJOB.MeshJobParameter(name="RmaxRmin",value="1.5")
|
||||
meshJobParameterList.append(param)
|
||||
param = MESHJOB.MeshJobParameter(name="NbIteration",value="3")
|
||||
meshJobParameterList.append(param)
|
||||
@ -174,7 +174,7 @@ if jobid<0:
|
||||
msg = component.getLastErrorMessage()
|
||||
print("ERR: %s"%msg)
|
||||
sys.exit(1)
|
||||
|
||||
|
||||
created = False
|
||||
nbiter = 0
|
||||
while not created:
|
||||
@ -217,11 +217,11 @@ while not ended:
|
||||
ended=True
|
||||
time.sleep(0.5)
|
||||
nbiter+=1
|
||||
|
||||
|
||||
if state not in end_states:
|
||||
print("ERR: jobid = "+str(jobid)+" ended abnormally with state="+str(state))
|
||||
msg = component.getLastErrorMessage()
|
||||
print("ERR: %s"%msg)
|
||||
print("ERR: %s"%msg)
|
||||
else:
|
||||
print("OK: jobid = "+str(jobid)+" ended with state="+str(state))
|
||||
meshJobResults = component.finalize(jobid)
|
||||
|
Loading…
Reference in New Issue
Block a user