EFICAS_en.xml \
eficashomard.png \
eficas.png \
-eficaster.png
+eficaster.png \
+eficasternovice.png \
+moins.png \
+plus.png \
+select1.png \
+
BIN_SCRIPT= \
VERSION
<menubar>
<menu-item label-id="EFICAS" item-id="90" pos-id="3">
<popup-item item-id="941" label-id="Eficas pour Code_Aster" icon-id="eficaster.png" tooltip-id="Editer un jeu de commande ASTER avec Eficas" accel-id="" toggle-id="" execute-action=""/>
- <popup-item item-id="946" label-id="Eficas pour Homard" icon-id="eficashomard.png" tooltip-id="Editer un jeu de commande HOMARD avec Eficas" accel-id="" toggle-id="" execute-action=""/>
+ <popup-item item-id="943" label-id="Etude elastique lineaire isotrope homogene pour Code_Aster" icon-id="eficasternovice.png" tooltip-id="Editer un jeu de commande ASTER pour une etude elastique lineaire isotrope homogene" accel-id="" toggle-id="" execute-action=""/>
+ <popup-item item-id="946" label-id="Eficas pour Homard" icon-id="eficashomard.png" tooltip-id="Editer un jeu de commande HOMARD avec Eficas" accel-id="" toggle-id="" execute-action=""/>
</menu-item>
</menubar>
<toolbar label-id="Eficas">
<toolbutton-item item-id="4041" label-id="Eficas pour Code_Aster" icon-id="eficaster.png" tooltip-id="Editer un jeu de commande ASTER avec Eficas" accel-id="" toggle-id="" execute-action=""/>
+ <toolbutton-item item-id="4043" label-id="Etude elastique lineaire isotrope homogene pour Code_Aster" icon-id="eficasternovice.png" tooltip-id="Editer un jeu de commande ASTER pour une etude elastique lineaire isotrope homogene" accel-id="" toggle-id="" execute-action=""/>
<toolbutton-item item-id="4046" label-id="Eficas pour Homard" icon-id="eficashomard.png" tooltip-id="Editer un jeu de commande HOMARD avec Eficas" accel-id="" toggle-id="" execute-action=""/>
</toolbar>
"""
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
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
# 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 = { }
# -*- 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
"""
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
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)
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 = { }
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")
dict_command={
941:runEficas,
+ 943:runEELIH,
946:runEficaspourHomard,
4041:runEficas,
+ 4043:runEELIH,
4046:runEficaspourHomard,
9042:runEficasFichier,
}
# 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
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
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
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:
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
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
import SalomePyQt
import MonChoixMaillage
import string
+import EFICASGUI
Tag_RefOnShape = 1
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
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)
anAttr = IORAttr._narrow(SALOMEDS.AttributeIOR)
GEOMShapeIOR = anAttr.Value()
self.correspondanceNomIORshape[Name]=GEOMShapeIOR
+
return listeNoms
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)
# 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
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",
f.write(ligne)
f.close()
self.rangeInStudy(sauvegarde)
+ print "==============================="
+ print "fin crreConfigTxt"
# 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
@COMMENCE@
-SUBDIRS = EFICAS EFICASGUI
+SUBDIRS = EFICAS EFICASGUI EELIH
@MODULE@