From: salome <>
Date: Fri, 30 Sep 2005 17:41:46 +0000 (+0000)
Subject: Intégration eficas_novice
X-Git-Tag: EFICAS_before_burge~8
X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=2b1b3215c0821d29718b6c82a9c76cbeee52bf89;p=modules%2Feficas.git
Intégration eficas_novice
---
diff --git a/Makefile.in b/Makefile.in
index c2a8ba15..228277ba 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -20,7 +20,12 @@ EFICASCatalog.xml \
EFICAS_en.xml \
eficashomard.png \
eficas.png \
-eficaster.png
+eficaster.png \
+eficasternovice.png \
+moins.png \
+plus.png \
+select1.png \
+
BIN_SCRIPT= \
VERSION
diff --git a/resources/EFICAS_en.xml b/resources/EFICAS_en.xml
index a21d30b9..0e01f3ba 100644
--- a/resources/EFICAS_en.xml
+++ b/resources/EFICAS_en.xml
@@ -16,7 +16,8 @@
-
+
+
@@ -24,6 +25,7 @@
+
diff --git a/resources/eficasternovice.png b/resources/eficasternovice.png
new file mode 100644
index 00000000..ba943d96
Binary files /dev/null and b/resources/eficasternovice.png differ
diff --git a/resources/moins.png b/resources/moins.png
new file mode 100644
index 00000000..7be1bc4f
Binary files /dev/null and b/resources/moins.png differ
diff --git a/resources/plus.png b/resources/plus.png
new file mode 100644
index 00000000..518109df
Binary files /dev/null and b/resources/plus.png differ
diff --git a/resources/select1.png b/resources/select1.png
new file mode 100644
index 00000000..a1a4ee1d
Binary files /dev/null and b/resources/select1.png differ
diff --git a/src/EELIH/c_geometrie.py b/src/EELIH/c_geometrie.py
index 8a906093..fff226a9 100644
--- a/src/EELIH/c_geometrie.py
+++ b/src/EELIH/c_geometrie.py
@@ -15,9 +15,6 @@ class C_geometrie:
"""
controleur de la classe Geometrie, permet la sélection de la géométrie dans l'arbre d'étude
de Salome. Met à jour les champs correspondants (sous-géométries, ...)
- - geometrie = référence sur le panneau géométrie
- - dicoSousGeom = clé = IORString
- valeur = name
"""
def __init__(self, appli, geometrie):
self.appli = appli
@@ -126,32 +123,6 @@ class C_geometrie:
listeSousGeom.sort()
self.appli.etude.setSousGeometrie(listeSousGeom)
- # on cree le bon nombre de panneaux maillages : autant qu'il y a de sous geometries
- #self.createMeshPanel()
- #print "-----------------------------"
- #print "-----------------------------"
- #print "-----------------------------"
- #print "-----------------------------"
- #print "-----------------------------"
- #print "-----------------------------"
- #print "-----------------------------"
- #print "liste des panneaux ="
- #print self.appli.mw.listePanels
-
-# def createMeshPanel(self):
-# """
-# cree autant de panneaux maillages que de sous geometries
-# """
-# self.listeMaillages = []
-# for i in self.appli.etude.sousGeometrie:
-# mesh = maillage.Maillage(self.appli.mw.ws, self.appli)
-# self.listeMaillages.append(mesh)
-# self.appli.mw.listePanels.append(mesh)
-# #self.appli.mw.listePanels.insert(0, self.appli.mw.listePanels[0] + 1)
-# #del self.appli.mw.listePanels[1]
-
-# self.updateGeomMaillage(mesh, i)
-
def getSousGeometrie(self):
"""
retourne les sous-géométries de la géométrie sélectionnée dans l'arbre d'étude de Salome
@@ -172,118 +143,3 @@ class C_geometrie:
# insertion pour le panneau pression
for cmb in self.geometrie.appli.mw.pression.controleurNouvelleLigneTable.controleurTable.listeComboGeom:
cmb.insertStrList(self.geometrie.appli.etude.sousGeometrie)
-
- def updateGeomMaillage(self, maillage, sousGeom):
- """
- affecte le label indiquant la géométrie sélectionnée du panneau maillage
- affecte la listbox du panneau maillage avec les valeurs des maillages trouvés dans l'arbre d'étude
- Salome correspondant à la géométrie sélectionnée
- """
- # affectation de la géométrie sélectionnée au label du panneau maillage
- maillage.lblGeom2.setText(str(self.appli.etude.geometrie[0]))
-
- # affectation de la sous géométrie au label du panneau maillage
- maillage.lblSousGeom2.setText(str(sousGeom))
-
- # récupération des mailles correspondants
- import eelihCL
- maillage.cl=eelihCL.CLinit()
- # récupération de l'IOR des sous géométries
- GEOMIor = []
- for iorSousGeom in self.dicoSousGeom.keys():
- GEOMIor.append(iorSousGeom)
- maillage.cl.GetOrCreateCL(iorSousGeom)
- #self.appli.mw.maillage.cl.traiteCL()
- maillage.cl.get_geoms()
- maillage.cl.get_maillages()
-#
- maillage.cl.MainShapes(0)
-#
- listeMaillage = maillage.cl.Possibles(0, str(self.appli.etude.geometrie[0]))
- # insertion des maillages trouvés dans la listbox du panneau maillage
- # si aucun maillage on disable la listbox
- # sinon on disable le lineedit pour donner le nom d'un nouveau maillage
- if listeMaillage != []:
- maillage.lbMaillage.insertStrList(listeMaillage)
- #maillage.lbMaillage.setEnabled(1)
- #maillage.lblMaillage.setEnabled(1)
- #maillage.lblNouveauMaillage.setEnabled(0)
- #maillage.lnNouveauMaillage.setEnabled(0)
- #else:
- #maillage.lnNouveauMaillage.setEnabled(1)
- #maillage.lblNouveauMaillage.setEnabled(1)
- #maillage.lbMaillage.setEnabled(0)
- #maillage.lblMaillage.setEnabled(0)
-
-
- def convertit_group_maille_from_salome(self,liste_in):
- """
- convertit les groupes de maille
- """
- newr=[]
- if [ 1 == 1 ]:
- for entree in liste_in :
- travail=[]
- travail.append(entree)
- if dict_geom_numgroupe.has_key(entree):
- r=dict_geom_numgroupe[entree]
- else:
- r=SMESH_utils.getAsterGroupMa(salome.myStudy,travail)
- dict_geom_numgroupe[entree]=r
- for i in r :
- newr.append(i)
- else :
- print "pas de groupe de maille associé"
- showerror("Pas de groupe associé","Cet Objet ne peut pas être défini comme un ensemble de groupe de maille")
- return newr
-
- def convertit_entrees_en_valeurs(self,liste_faces):
- """
- convertit les entry de l'arbre d'étude en valeur
- """
- valeur=self.convertit_group_maille_from_salome(liste_faces)
- if valeur == []:
- print "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
- print "Pb pas de fonction de conversion de la valeur Salome en valeur Aster"
- print "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
- print "VALEUR", valeur
- if len(valeur) == 1:
- valeur = "'" + str(valeur[0]) + "'"
- return valeur
-
- def add_selection(self):
- """
- retourne le nom des objets sélectionnés dans l'arbre d'étude
- """
- entrychaine=salome.sg.getAllSelected()
- if len(entrychaine) >= 1:
- print "1 seule géométrie doit être sélectionnée"
-
-
- # liste des faces sélectionnées dans ddl et pression
-# liste_faces = []
-# for face in self.appli.etude.ddls:
-# if face[0] not in liste_faces:
-# liste_faces.append(face[0])
-
-# for face in self.appli.etude.chargements:
-# if face[0] not in liste_faces:
-# liste_faces.append(face[0])
-# if liste_faces != '':
- liste_faces = []
- #liste_faces.append('0:1:2:1:1')
- #liste_faces.append('0:1:2:1:2')
-
- # récupération de toutes les sous géométries
- for sousGeom in self.appli.etude.sousGeometrie:
- SO = salome.myStudy.FindObject(str(sousGeom))
- liste_faces.append(SO.GetID())
-
- touteslesvaleurs = self.convertit_entrees_en_valeurs(liste_faces)
- #liste_faces = []
- #liste_faces.append('0:1:2:1:2')
- #touteslesvaleurs = self.convertit_entrees_en_valeurs(liste_faces)
- return touteslesvaleurs
-
-dict_geom_numgroupe = { }
-dict_geom_numface = { }
diff --git a/src/EELIH/c_maillage.py b/src/EELIH/c_maillage.py
index b351a92e..6da0bebe 100644
--- a/src/EELIH/c_maillage.py
+++ b/src/EELIH/c_maillage.py
@@ -1,13 +1,11 @@
# -*- coding: utf-8 -*-
from panelbase import *
-
class C_maillage:
"""
controleur de la classe Maillage, traite les maillages correspondants à la géométrie
sélectionnée ou crée un maillage avec le nom saisi
- - maillage = référence sur le panneau maillage
"""
def __init__(self, maillage):
self.maillage = maillage
diff --git a/src/EELIH/geometrie.py b/src/EELIH/geometrie.py
index 49553aa1..9c1c4100 100644
--- a/src/EELIH/geometrie.py
+++ b/src/EELIH/geometrie.py
@@ -14,8 +14,6 @@ class Geometrie(PanelBase):
"""
Hérite de la classe mère PanelBase
Définit le panneau pour le choix de la géométrie sur laquelle on veut travailler
- - pbSelection = bouton pour la sélection dans l'arbre d'étude Salome
- - ln = lineedit pour l'affichage de la sélection
"""
def __init__(self, parent, appli):
# hérite de la classe mère des panneaux
diff --git a/src/EELIH/publication.py b/src/EELIH/publication.py
index 0398e959..00164cb9 100644
--- a/src/EELIH/publication.py
+++ b/src/EELIH/publication.py
@@ -132,8 +132,6 @@ class Publication(PanelBase):
mesh = maillage.Maillage(self.appli.mw.ws, self.appli)
self.listeMaillages.append(mesh)
self.appli.mw.listePanels.append(mesh)
- #self.appli.mw.listePanels.insert(0, self.appli.mw.listePanels[0] + 1)
- #del self.appli.mw.listePanels[1]
self.updateGeomMaillage(mesh, i)
@@ -157,29 +155,17 @@ class Publication(PanelBase):
for iorSousGeom in self.appli.mw.geometrie.controleurGeom.dicoSousGeom.keys():
GEOMIor.append(iorSousGeom)
maillage.cl.GetOrCreateCL(iorSousGeom)
- #self.appli.mw.maillage.cl.traiteCL()
maillage.cl.get_geoms()
maillage.cl.get_maillages()
-#
+
maillage.cl.MainShapes(0)
-#
+
listeMaillage = maillage.cl.Possibles(0, str(self.appli.etude.geometrie[0]))
# insertion des maillages trouvés dans la listbox du panneau maillage
# si aucun maillage on disable la listbox
# sinon on disable le lineedit pour donner le nom d'un nouveau maillage
if listeMaillage != []:
maillage.lbMaillage.insertStrList(listeMaillage)
- #maillage.lbMaillage.setEnabled(1)
- #maillage.lblMaillage.setEnabled(1)
- #maillage.lblNouveauMaillage.setEnabled(0)
- #maillage.lnNouveauMaillage.setEnabled(0)
- #else:
- #maillage.lnNouveauMaillage.setEnabled(1)
- #maillage.lblNouveauMaillage.setEnabled(1)
- #maillage.lbMaillage.setEnabled(0)
- #maillage.lblMaillage.setEnabled(0)
-
-
dict_geom_numgroupe = { }
dict_geom_numface = { }
diff --git a/src/EFICASGUI/EFICASGUI.py b/src/EFICASGUI/EFICASGUI.py
index a4d8df4f..17e41c85 100644
--- a/src/EFICASGUI/EFICASGUI.py
+++ b/src/EFICASGUI/EFICASGUI.py
@@ -114,8 +114,22 @@ def customPopup(popup, theContext, theObject, theParent):
import eficasSalome
def runEficas(ws):
+ print "--------------------------------------------------"
+ print currentStudyId
eficasSalome.runEficas(ws,"ASTER",studyId=currentStudyId)
+def runEELIH(ws,code="ASTER"):
+ # Enregistrement dans l étude
+ import eficasEtude
+ import appli
+ print "++++++++++++++++++++++++++++++++++++++++++++++++++++"
+ print currentStudyId
+
+ MaRef=eficasEtude.Eficas_In_Study(code,studyId=currentStudyId)
+ # flag = E pour Eficas (enregistrement manuel du fichier de commandes)
+ flag = 'E'
+ moi=appli.Appli(MaRef, flag)
+
def runEficaspourHomard(ws):
print "runEficas"
eficasSalome.runEficas(ws,"HOMARD")
@@ -148,8 +162,10 @@ def runEficasFichier(ws):
dict_command={
941:runEficas,
+ 943:runEELIH,
946:runEficaspourHomard,
4041:runEficas,
+ 4043:runEELIH,
4046:runEficaspourHomard,
9042:runEficasFichier,
}
diff --git a/src/EFICASGUI/SMESH_utils.py b/src/EFICASGUI/SMESH_utils.py
index d5be97dd..99a72696 100644
--- a/src/EFICASGUI/SMESH_utils.py
+++ b/src/EFICASGUI/SMESH_utils.py
@@ -4,7 +4,7 @@
# Author : Paul RASCLE, EDF
# Project : SALOME
# Copyright : EDF 2003
-# $Header: /home/salome/PlateFormePAL/Bases_CVS_EDF/Modules_EDF/EFICAS_SRC/src/EFICASGUI/SMESH_utils.py,v 1.5 2005/02/03 15:15:09 salome Exp $
+# $Header: /home/salome/PlateFormePAL/Bases_CVS_EDF/Modules_EDF/EFICAS_SRC/src/EFICASGUI/SMESH_utils.py,v 1.6 2005/08/18 09:05:55 salome Exp $
#=============================================================================
from omniORB import CORBA
@@ -35,6 +35,13 @@ def entryToIor(myStudy,entry):
ior = orb.string_to_object(iorString)
return ior
+def iorStringToIor(iorString):
+ """
+ retourne une référence ior de l'iorString passée en argument
+ """
+ ior = orb.string_to_object(iorString)
+ return ior
+
def entryToIorString(myStudy,entry):
"""
Retourne la sérialisation de l'ior de l'entry passée en
@@ -50,6 +57,7 @@ def entryToIorString(myStudy,entry):
print "invalid entry: ",entry
SO = None
if SO != None:
+
boo,iorso = myBuilder.FindAttribute(SO,"AttributeIOR")
if boo == 0:
print "no IOR attribute on study object: ", entry
@@ -162,16 +170,19 @@ def getSMESHSubShapeIndexes(myStudy, entryList, typenoeudorcell = 0):
for idShape in entryList:
try:
anObject=entryToIor(myStudy,idShape)
- Shape=anObject._narrow(GEOM.GEOM_Object)
+ if not anObject: # l'objet n'a pas encore chargé
+ strContainer, strComponentName = "FactoryServer", "GEOM"
+ myComponent = salome.lcc.FindOrLoadComponent( strContainer, strComponentName )
+ SCom=myStudy.FindComponent( strComponentName )
+ myBuilder = myStudy.NewBuilder()
+ myBuilder.LoadWith( SCom , myComponent )
+ anObject=entryToIor(myStudy,idShape)
+
+ Shape=anObject._narrow(GEOM.GEOM_Object)
iorStringMain=orb.object_to_string(Shape)
except :
print "pb avec l IOR: pas un objet"
- if iorStringMain == None:
- # C'est le cas ou on a loade un fichier hdf et on est pas passe par geom
- # par exemple ....
- return refList
-
myCL=myCLinit.GetOrCreateCL(iorStringMain)
refShape = singleEntryToName(myStudy,idShape)
if refShape != None:
@@ -220,3 +231,33 @@ def VisuGroupe(myStudy,GroupesListe):
aGuiDS.ClearSelection()
aGuiDS.DisplayByNameInGeom(GroupesListe)
+def getSubGeometry(myStudy, list):
+ IORMainShape = entryToIorString(myStudy,list[1])
+
+ SO = myStudy.FindObjectIOR(IORMainShape)
+ childIt = myStudy.NewChildIterator(SO)
+ childIt.InitEx(1)
+ childListe = []
+ while childIt.More():
+ childSO = childIt.Value()
+ childListe.append(childSO.GetName())
+ childIt.Next()
+ return childListe
+
+def getSubGeometryIorAndName(myStudy, list):
+ """
+ retourne un dictionnaire avec clé = IOR
+ valeur = name
+ """
+ dico = {}
+ IORMainShape = entryToIorString(myStudy,list[1])
+
+ SO = myStudy.FindObjectIOR(IORMainShape)
+ childIt = myStudy.NewChildIterator(SO)
+ childIt.InitEx(1)
+ while childIt.More():
+ childSO = childIt.Value()
+ if childSO.GetIOR() != '':
+ dico[childSO.GetIOR()] = childSO.GetName()
+ childIt.Next()
+ return dico
diff --git a/src/EFICASGUI/dataEficas.py b/src/EFICASGUI/dataEficas.py
index 49e352b5..d5683cfa 100644
--- a/src/EFICASGUI/dataEficas.py
+++ b/src/EFICASGUI/dataEficas.py
@@ -49,3 +49,20 @@ def init(top,code="ASTER",fichier=None,studyId=None):
moi=MyEficas(top,code=code)
moi.contexte()
+
+def initNovice(code="ASTER",fichier=None,studyId=None):
+ # Enregistrement dans l étude
+ import eficasEtude
+ MaRef=eficasEtude.Eficas_In_Study(code,studyId=studyId)
+
+ #import eficas
+ class MyEficas(appli.Appli):
+ #def exit(self, event=None):
+ #appli.Appli.exit(self, event=None)
+
+ def contexte(self):
+ self.salome=MaRef
+
+ moi=MyEficas()
+ mainwindow.MainWindow(moi)
+ moi.contexte()
\ No newline at end of file
diff --git a/src/EFICASGUI/eficasCL.py b/src/EFICASGUI/eficasCL.py
index 40c791b2..c415b221 100644
--- a/src/EFICASGUI/eficasCL.py
+++ b/src/EFICASGUI/eficasCL.py
@@ -5,6 +5,7 @@ import GEOM
import SalomePyQt
import MonChoixMaillage
import string
+import EFICASGUI
Tag_RefOnShape = 1
dict_CL={}
@@ -12,27 +13,25 @@ dict_CL={}
class CLinit:
def __init__(self):
geom = salome.lcc.FindOrLoadComponent("FactoryServer", "GEOM")
- self.GroupOp = geom.GetIGroupOperations(salome.myStudyId)
+ #self.GroupOp = geom.GetIGroupOperations(salome.myStudyId)
+ self.GroupOp = geom.GetIGroupOperations(EFICASGUI.currentStudyId)
self.smesh=None
self.geomcompID=None
self._d = SalomePyQt.SalomePyQt().getDesktop()
self.correspondanceNomIOR = {}
self.correspondanceNomIORshape = {}
self.dict_listedep={}
- print "fin init"
def clean(self):
dict_CL={}
def GetOrCreateCL(self,myShapeName):
- print "GetOrCreateCL" , myShapeName
if not (dict_CL.has_key(myShapeName)):
dict_CL[myShapeName] = CL()
return dict_CL[myShapeName]
def traiteCL(self):
- #print "Debut de TraiteCL"
self.get_geoms()
self.get_maillages()
# Récupere tous les Mesh
@@ -123,7 +122,6 @@ class CLinit:
for MainID in self.Liste_geoms[GEOMIor]:
aSO = salome.myStudy.FindObjectID(MainID)
if aSO==None:
- print "pb dans MainShapes"
return listeNoms
attrName = aSO.FindAttribute("AttributeName")[1]
anAttr = attrName._narrow(SALOMEDS.AttributeName)
@@ -133,6 +131,7 @@ class CLinit:
anAttr = IORAttr._narrow(SALOMEDS.AttributeIOR)
GEOMShapeIOR = anAttr.Value()
self.correspondanceNomIORshape[Name]=GEOMShapeIOR
+
return listeNoms
@@ -166,11 +165,15 @@ class CLinit:
return type
def get_maillages(self):
+ salome.myStudy = salome.myStudyManager.GetStudyByID( EFICASGUI.currentStudyId )
+
+
self.Liste_maillages={}
if self.smesh == None :
self.smesh = salome.lcc.FindOrLoadComponent("FactoryServer", "SMESH")
self.smesh.SetCurrentStudy(salome.myStudy)
stringIOR=salome.orb.object_to_string(self.smesh)
+
SO_smesh=salome.myStudy.FindObjectIOR(stringIOR)
if SO_smesh != None:
ChildIterator = salome.myStudy.NewChildIterator(SO_smesh)
diff --git a/src/EFICASGUI/eficasEtude.py b/src/EFICASGUI/eficasEtude.py
index fa2f8b69..0067f2a8 100644
--- a/src/EFICASGUI/eficasEtude.py
+++ b/src/EFICASGUI/eficasEtude.py
@@ -4,7 +4,7 @@
# Author : Pascale NOYRET, EDF
# Project : SALOME
# Copyright : EDF 2003
-# $Header: /home/salome/PlateFormePAL/Bases_CVS_EDF/Modules_EDF/EFICAS_SRC/src/EFICASGUI/eficasEtude.py,v 1.3 2005/06/03 07:25:24 salome Exp $
+# $Header: /home/salome/PlateFormePAL/Bases_CVS_EDF/Modules_EDF/EFICAS_SRC/src/EFICASGUI/eficasEtude.py,v 1.4 2005/06/22 18:50:13 salome Exp $
#=============================================================================
import salome
@@ -44,6 +44,8 @@ class Eficas_In_Study:
if self.commId != None:
self.aGuiDS.setExternalFileAttribute(self.commId,"FICHIER_EFICAS_"+self.code+suf,fichier)
salome.sg.updateObjBrowser(0)
+ print "(((((((((((((((((((((((((((((((((((((("
+ print "fin range in study"
def creeConfigTxt(self,fichier,dico):
sauvegarde = asksaveasfilename(title="fichier config.txt",
@@ -58,4 +60,6 @@ class Eficas_In_Study:
f.write(ligne)
f.close()
self.rangeInStudy(sauvegarde)
+ print "==============================="
+ print "fin crreConfigTxt"
diff --git a/src/Makefile.in b/src/Makefile.in
index 4cbcbf35..d62801ee 100644
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -4,7 +4,7 @@
# Author : Paul RASCLE, EDF
# Project : SALOME
# Copyright : EDF 2001
-# $Header: /home/salome/PlateFormePAL/Bases_CVS_EDF/Modules_EDF/EFICAS_SRC/src/Makefile.in,v 1.2 2004/12/10 16:43:25 salome Exp $
+# $Header: /home/salome/PlateFormePAL/Bases_CVS_EDF/Modules_EDF/EFICAS_SRC/src/Makefile.in,v 1.3 2005/08/03 10:06:01 salome Exp $
#==============================================================================
# source path
@@ -15,6 +15,6 @@ VPATH=.:@srcdir@
@COMMENCE@
-SUBDIRS = EFICAS EFICASGUI
+SUBDIRS = EFICAS EFICASGUI EELIH
@MODULE@