# -*- coding: utf-8 -*-
-# Copyright (C) 2007-2013 EDF R&D
+# Copyright (C) 2007-2014 EDF R&D
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
-# version 2.1 of the License.
+# version 2.1 of the License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# Modules Eficas
import os, subprocess
-from MGCleanerPlugDialog import Ui_MGCleanerPlugDialog
+from MGCleanerPlugDialog_ui import Ui_MGCleanerPlugDialog
from MGCleanerMonViewText import MGCleanerMonViewText
from PyQt4.QtGui import *
from PyQt4.QtCore import *
#v1.setTop(10000.)
v1.setDecimals(4)
self.SP_MinHoleSize.setValidator(v1)
+ self.SP_MinHoleSize.titleForWarning="MinHoleSize"
v2=QDoubleValidator(self)
v2.setBottom(0.)
#v2.setTop(10000.)
v2.setDecimals(4)
self.SP_ToleranceDisplacement.setValidator(v2)
+ self.SP_ToleranceDisplacement.titleForWarning="ToleranceDisplacement"
v3=QDoubleValidator(self)
v3.setBottom(0.)
#v3.setTop(10000.)
v3.setDecimals(4)
self.SP_ResolutionLength.setValidator(v3)
+ self.SP_ResolutionLength.titleForWarning="ResolutionLength"
v4=QDoubleValidator(self)
v4.setBottom(0.)
#v4.setTop(10000.)
v4.setDecimals(4)
self.SP_OverlapDistance.setValidator(v4)
+ self.SP_OverlapDistance.titleForWarning="OverlapDistance"
self.resize(800, 500)
self.clean()
self.connect(self.CB_ComputedOverlapDistance,SIGNAL("stateChanged(int)"),self.SP_OverlapDistance.setDisabled)
def PBHelpPressed(self):
+ import SalomePyQt
+ sgPyQt = SalomePyQt.SalomePyQt()
try:
mydir=os.environ["SMESH_ROOT_DIR"]
except Exception:
QMessageBox.warning( self, "Help", "Help unavailable $SMESH_ROOT_DIR not found")
return
- maDoc=mydir+"/share/doc/salome/gui/SMESH/MGCleaner/_downloads/mg-cleaner_user_manual.pdf"
- command="xdg-open "+maDoc+";"
- subprocess.call(command, shell=True)
+
+ maDoc=mydir+"/share/doc/salome/gui/SMESH/MGCleaner/index.html"
+ sgPyQt.helpContext(maDoc,"")
+
+ #maDoc=mydir+"/share/doc/salome/gui/SMESH/MGCleaner/_downloads/mg-cleaner_user_manual.pdf"
+ #command="xdg-open "+maDoc+";"
+ #subprocess.call(command, shell=True)
def PBOKPressed(self):
if not(self.PrepareLigneCommande()):
maFenetre=MGCleanerMonViewText(self, self.commande)
def enregistreResultat(self):
- import smesh
- import SMESH
import salome
+ import SMESH
from salome.kernel import studyedit
-
+ from salome.smesh import smeshBuilder
+ smesh = smeshBuilder.New(salome.myStudy)
+
if not os.path.isfile(self.fichierOut):
QMessageBox.warning(self, "Compute", "Result file "+self.fichierOut+" not found")
def PBSaveHypPressed(self):
"""save hypothesis in Object Browser"""
- #QMessageBox.warning(self, "save Object Browser MGCleaner Hypothesis", "TODO")
-
- import smesh
- import SMESH
import salome
+ import SMESH
from salome.kernel import studyedit
+ from salome.smesh import smeshBuilder
+ smesh = smeshBuilder.New(salome.myStudy)
maStudy=studyedit.getActiveStudy()
smesh.SetCurrentStudy(maStudy)
"""
def SP_toStr(self, widget):
+ """only for a QLineEdit widget"""
#cr, pos=widget.validator().validate(res, 0) #n.b. "1,3" is acceptable !locale!
try:
- return str(float(widget.text()))
+ val=float(widget.text())
except:
- widget.setProperty("text", "0.0")
- return "0.0"
+ QMessageBox.warning(self, widget.titleForWarning, "float value is incorrect: '"+widget.text()+"'")
+ res=str(widget.validator().bottom())
+ widget.setProperty("text", res)
+ return res
+ valtest=widget.validator().bottom()
+ if valtest!=None:
+ if val<valtest:
+ QMessageBox.warning(self, widget.titleForWarning, "float value is under minimum: "+str(val)+" < "+str(valtest))
+ res=str(valtest)
+ widget.setProperty("text", res)
+ return res
+ valtest=widget.validator().top()
+ if valtest!=None:
+ if val>valtest:
+ QMessageBox.warning(self, widget.titleForWarning, "float value is over maximum: "+str(val)+" > "+str(valtest))
+ res=str(valtest)
+ widget.setProperty("text", res)
+ return res
+ return str(val)
def getResumeData(self, separator="\n"):
text=""
def PBLoadPressed(self):
"""load last hypothesis saved in tail of file"""
try:
- f=open(self.paramsFile,"r")
- except :
- QMessageBox.warning(self, "File", "Unable to open "+self.paramsFile)
- return
+ f=open(self.paramsFile,"r")
+ except:
+ QMessageBox.warning(self, "File", "Unable to open "+self.paramsFile)
+ return
try:
- text=f.read()
- except :
- QMessageBox.warning(self, "File", "Unable to read "+self.paramsFile)
- return
+ text=f.read()
+ except:
+ QMessageBox.warning(self, "File", "Unable to read "+self.paramsFile)
+ return
f.close()
self.loadResumeData(text, separator="\n")
self.paramsFile=self.LE_ParamsFile.text()
def PBMeshSmeshPressed(self):
+ from omniORB import CORBA
import salome
- import smesh
from salome.kernel import studyedit
from salome.smesh.smeshstudytools import SMeshStudyTools
from salome.gui import helper as guihelper
- from omniORB import CORBA
+ from salome.smesh import smeshBuilder
+ smesh = smeshBuilder.New(salome.myStudy)
mySObject, myEntry = guihelper.getSObjectSelected()
if CORBA.is_nil(mySObject) or mySObject==None:
def prepareFichier(self):
self.fichierIn="/tmp/ForMGCleaner_"+str(self.num)+".mesh"
- #print "prepareFichier"
- import SMESH
self.__selectedMesh.ExportGMF(self.__selectedMesh, self.fichierIn, True)
def PrepareLigneCommande(self):
self.commande+=" --overlap_distance " + self.SP_toStr(self.SP_OverlapDistance)
self.commande+=" --overlap_angle " + str(self.SP_OverlapAngle.value())
return True
-
+
def clean(self):
self.RB_Check.setChecked(False)
self.RB_Fix1.setChecked(False)
"""
global __dialog
if __dialog is None:
- __dialog = MGCleanerMonPlugDialog()
+ __dialog = MGCleanerMonPlugDialog()
#else :
# __dialog.clean()
return __dialog
"""
works only if a salome is launched yet with a study loaded
to launch standalone python do:
- /export/home/wambeke/2013/V6_main_MGC_CO6.4_64/APPLI/runSession
+ ./APPLI/runSession
python
or (do not works)
- python /export/home/wambeke/2013/V6_main_MGC_CO6.4_64/INSTALL/SMESH/share/salome/plugins/smesh/MGCleanerMonPlugDialog.py
+ python ./INSTALL/SMESH/share/salome/plugins/smesh/MGCleanerMonPlugDialog.py
"""
import salome
- import smesh
import SMESH
from salome.kernel import studyedit
salome.salome_init()
# ==============================================================================
#
def TEST_MGCleanerMonPlugDialog():
- #print "TEST_MGCleanerMonPlugDialog"
import sys
from PyQt4.QtGui import QApplication
from PyQt4.QtCore import QObject, SIGNAL, SLOT