]> SALOME platform Git repositories - tools/eficas.git/commitdiff
Salome HOME
PN Pour Visualisation Elt Structures
authoreficas <>
Mon, 27 Feb 2006 09:21:11 +0000 (09:21 +0000)
committereficas <>
Mon, 27 Feb 2006 09:21:11 +0000 (09:21 +0000)
Editeur/TroisDPal.py [new file with mode: 0644]
Editeur/panels.py
Editeur/panelsSalome.py
Editeur/uniqueassdpanel.py

diff --git a/Editeur/TroisDPal.py b/Editeur/TroisDPal.py
new file mode 100644 (file)
index 0000000..28a9294
--- /dev/null
@@ -0,0 +1,47 @@
+# -*- coding: utf-8 -*-
+#            CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2002  EDF R&D                  WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+#
+#
+# ======================================================================
+"""
+   Ce module contient la classe 3Dpilote qui va creer les ordres 
+   de pilotage de l idl PAL pour un element de structure
+"""
+import generator
+
+class TroisDPilote:
+
+   def __init__(self,node,appli,parent):
+      self.node=node
+      self.appli=appli
+      self.parent=parent
+
+   def envoievisu(self):
+      """ 
+      """
+      format="vers3DSalome"
+      if generator.plugins.has_key(format):
+         # Le generateur existe on l'utilise
+         g=generator.plugins[format]()
+         texte=g.gener(self.node)
+      else:
+         print "Le generateur n a pas ete trouvé"
+         print "Erreur ! Erreur!"
+         return ""
+      self.appli.envoievisu(texte)
+
index 0610919fc9ca47ede73e7ff568cba8fd3c8502f8..df621595ff0a94e9f5289832ed9c5e8522d6111e 100644 (file)
@@ -113,6 +113,12 @@ class Panel(Frame) :
           self.bouton_sup.place(relx=0.25,rely = 0.5,relheight = 0.8,anchor='center')
           self.bouton_cata.place(relx=0.5,rely = 0.5,relheight = 0.8,anchor='center')
           self.bouton_doc.place(relx=0.75,rely = 0.5,relheight = 0.8,anchor='center')
+      elif ((hasattr( self.parent.appli, 'salome' )) and (self.node.item.GetLabelText()[0] == 'AFFE_CARA_ELEM : ')) :
+          self.bouton_visu = Button(self.fr_but, text = " 3D ", command=self.visu_3D, width=14)
+          self.bouton_sup.place(relx=0.20,rely = 0.5,relheight = 0.8,anchor='center')
+          self.bouton_visu.place(relx=0.5,rely = 0.5,relheight = 0.8,anchor='center')
+          self.bouton_doc.place(relx=0.80,rely = 0.5,relheight = 0.8,anchor='center')
+          
       else:
           self.bouton_sup.place(relx=0.3,rely = 0.5,relheight = 0.8,anchor='center')
           self.bouton_doc.place(relx=0.7,rely = 0.5,relheight = 0.8,anchor='center')
@@ -124,6 +130,12 @@ class Panel(Frame) :
       except Exception,e:
           traceback.print_exc()
       
+  def visu_3D(self) :
+      import TroisDPal
+      troisD=TroisDPal.TroisDPilote(self.node.item,self.parent.appli,self.parent)
+      troisD.envoievisu() 
+      
+
   def efface(self):
       self.node.efface()
 
index b0d7aefe30db92856f7842a8a85681d52b079304..6e18abeb4b3401fedff030b7cca0412463bbe2eb 100644 (file)
@@ -21,11 +21,8 @@ from uniqueassdpanel    import UNIQUE_ASSD_Panel_Reel
 from Noyau.N_CR import justify_text
 
 import traceback
-#import SalomePyQt
 import salome           # CS_pbruno à poubelliser
 import images
-#import SMESH_utils
-#sgQt=SalomePyQt.SalomePyQt() 
 
 
 
@@ -93,8 +90,6 @@ class SALOME_UNIQUE_ASSD_Panel_Reel (UNIQUE_ASSD_Panel_Reel):
 class SALOME_PLUSIEURS_BASE_OR_UNELISTE_Panel(PLUSIEURS_BASE_OR_UNELISTE_Panel):
       ""        
 
-
-
 class SALOME_PLUSIEURS_BASE_Panel(PLUSIEURS_BASE_Panel):
 
   def __init__(self,parent,panneau,node):
@@ -141,8 +136,6 @@ class SALOME_PLUSIEURS_BASE_Panel(PLUSIEURS_BASE_Panel):
       self.c = Button( self.frame_choix, text='Visualiser',command=self.displayInSalomeGeom )      
       self.c.place( relx=0.3, rely=0.0,relwidth=0.55)
       
-      #self.c.place(relx=0.08,rely=0.55,relwidth=0.35)
-      #self.c.place(relx=0.08,rely=0.55 )      
       
   def displayInSalomeGeom( self ):
       if self.selected_valeur:        
@@ -151,309 +144,6 @@ class SALOME_PLUSIEURS_BASE_Panel(PLUSIEURS_BASE_Panel):
             self.parent.appli.affiche_infos(msgError)
       
       
-"""      
-class SALOME_PLUSIEURS_BASE_Panel(PLUSIEURS_BASE_Panel):      
-
-  def convertit_group_no_from_salome(self,liste_in):
-      newr=[]
-      #try:
-      if ( 1 == 1 ) :
-          for entree in liste_in :
-               travail=[]
-               travail.append(entree)
-               entryname_list=SMESH_utils.entryToName(salome.myStudy,travail)
-               entreeName=entryname_list[0]
-               if dict_geom_numgroupe.has_key(entreeName):
-                   r=dict_geom_numgroupe[entreeName]
-               else:
-                   r=SMESH_utils.getAsterGroupNo(salome.myStudy,travail)
-                   dict_geom_numgroupe[entreeName]=r
-               for i in r :
-                   newr.append(i)
-      #except:
-      else :
-           print "pas de groupe de noeuds associé"
-           showerror("Pas de groupe associé","Cet Objet ne peut pas être défini comme un ensemble de groupe de noeuds")
-      return newr
-
-  def convertit_group_maille_from_salome(self,liste_in):
-      newr=[]
-      #try:
-      if [ 1 == 1 ]:
-          print liste_in
-          for entree in liste_in :
-               travail=[]
-               travail.append(entree)
-               entryname_list=SMESH_utils.entryToName(salome.myStudy,travail)
-               entreeName=entryname_list[0]
-               if dict_geom_numgroupe.has_key(entreeName):
-                   r=dict_geom_numgroupe[entreeName]
-               else:
-                   r=SMESH_utils.getAsterGroupMa(salome.myStudy,travail)
-                   dict_geom_numgroupe[entreeName]=r
-               if r != None :
-                   for i in r :
-                      newr.append(i)
-      #except:
-      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,entrychaine):
-      if SALOME_PLUSIEURS_BASE_OR_UNELISTE_Panel.__dict__.has_key(self.clef_fonction):
-           print 'CS_pbruno AAAAAAAAAAAAA'
-           valeur=apply(SALOME_PLUSIEURS_BASE_OR_UNELISTE_Panel.__dict__[self.clef_fonction],(self,entrychaine))           
-      else :
-           if (self.clef_fonction.find("GROUP_NO") != -1) and (self.clef_fonction.find("GROUP_MA") != -1) :
-              print 'CS_pbruno BBBBBBBBBBBBBBBBBBB'
-              if (self.clef_fonction.find("GROUP_NO") < self.clef_fonction.find("GROUP_MA")) :
-                print 'CS_pbruno CCCCCCCCCCCCCCCCCCCCCCCCCC'
-                valeur=self.convertit_group_maille_from_salome(entrychaine)
-              else :
-                print 'CS_pbruno DDDDDDDDDDDDDDDDDDDDDDDDD'
-                valeur=self.convertit_group_no_from_salome(entrychaine)  
-           elif self.clef_fonction.find("GROUP_NO") != -1 :
-               print 'CS_pbruno EEEEEEEEEEEEEEEEEEEEEEEEE'
-               valeur=self.convertit_group_no_from_salome(entrychaine)
-           else :
-               print 'CS_pbruno FFFFFFFFFFFFFFFFFFFFFFFF'
-               if self.clef_fonction.find("GROUP_MA") != -1 :
-                   print 'CS_pbruno GGGGGGGGGGGGGGGGGGGGGGGGGGG'
-                   valeur=self.convertit_group_maille_from_salome(entrychaine)
-               else :
-                    print 'CS_pbruno HHHHHHHHHHHHHHHHHHHHHH'
-                    print "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
-                    print "Pb pas de fonction de conversion de la valeur Salome en valeur Aster"
-                    print "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
-                    valeur=[]
-      print "VALEUR", valeur
-      return valeur
-
-  def sup_valeur_from_salome(self,name=None):
-      #""
-      Méthode qui sert à retirer de la liste des valeurs la valeur sélectionnée
-      #""
-      liste_valeurs = self.Liste_valeurs.get_liste()
-      liste_valeurs_salome=self.Liste_valeurs_salome.get_liste()
-      entrychaine=salome.sg.getAllSelected()
-
-      try:
-          valeur = self.convertit_entrees_en_valeurs(entrychaine)
-          for i in valeur :
-            if i in liste_valeurs :
-                  liste_valeurs.remove(i)
-                print "enleve" , i
-      except:
-          # la valeur sélectionnée n'est pas dans la liste
-          pass
-
-      entryname_list=SMESH_utils.entryToName(salome.myStudy,entrychaine)
-      self.entrygroupe.delete(0,END)
-      self.sortie.delete(0,END)
-      for entryname in entryname_list:
-          try:
-             liste_valeurs_salome.remove(entryname)
-          except:
-             print "la valeur ", entryname, "n est pas dans la liste"
-          entryname=entryname + " "
-          self.sortie.insert(0,entryname)
-      self.selected_valeur = None
-      self.Liste_valeurs.put_liste(liste_valeurs)
-      self.Liste_valeurs_salome.put_liste(liste_valeurs_salome)
-      self.recalcule()
-
-  def visu_in_salome(self):
-      liste_valeurs = self.Liste_valeurs.get_liste()
-      entryname_list=SMESH_utils.VisuGroupe(salome.myStudy,liste_valeurs)
-
-  def visu3D_in_salome(self):
-      liste_valeurs = self.Liste_valeurs.get_liste()
-      entryname_list=SMESH_utils.VisuGroupe(salome.myStudy,liste_valeurs)
-
-  def recalcule(self):
-      liste_valeurs_salome=self.Liste_valeurs_salome.get_liste()
-      groups={}
-      liste_valeurs = self.Liste_valeurs.get_liste()
-      for valeur in liste_valeurs_salome:
-          r=dict_geom_numgroupe[valeur]
-          for i in r :
-              if i not in liste_valeurs :
-                    liste_valeurs.append(i)
-      self.Liste_valeurs.put_liste(liste_valeurs)
-      
-  
-  def add_valeur_from_salome(self,name=None):       
-       entrychaine=salome.sg.getAllSelected()
-       self.sortie.delete(0,END)
-       self.entrygroupe.delete(0,END)
-       if entrychaine != '':
-          entryname_list=SMESH_utils.entryToName(salome.myStudy,entrychaine)
-          touteslesvaleurs = self.convertit_entrees_en_valeurs(entrychaine)
-         
-          valeur=[]
-          liste_valeurs  = self.Liste_valeurs.get_liste()
-          for i in touteslesvaleurs:
-              if i not in liste_valeurs:
-                 valeur.append(i)
-              
-          if valeur==[]:
-             entryname_list=[]
-
-          liste_valeurs_salome = self.Liste_valeurs_salome.get_liste()
-          for entryname in entryname_list:
-              if entryname not in liste_valeurs_salome: 
-                 liste_valeurs_salome.append(entryname)
-              entryname=entryname + " "
-              self.entrygroupe.insert(0,entryname)
-          self.Liste_valeurs_salome.put_liste(liste_valeurs_salome)
-
-          if self.node.item.wait_reel():
-             print "wait_reel()"
-             valeur = self.traite_reel(valeur)
-          if self.node.item.wait_geom():
-             print "wait_geom()"
-             val,test1 = valeur,1
-          else:
-             print "else wait"
-             val,test1 = self.node.item.object.eval_valeur(valeur)
-
-          if test1 :
-             test2 = self.node.item.object.verif_type(val)
-             if test2 :
-                 liste_valeurs = self.Liste_valeurs.get_liste()
-                 if len(liste_valeurs) >= max :
-                     self.parent.appli.affiche_infos("La liste a déjà atteint le nombre maximum d'éléments, ajout refusé")
-                     self.erase_valeur()
-                     return
-                 if type(val) == type([]):
-                   for groupe in val:
-                     liste_valeurs.append(groupe)
-                 else:
-                   liste_valeurs.append(val)
-                 self.Liste_valeurs.put_liste(liste_valeurs)
-                 self.parent.appli.affiche_infos("Nouvelle valeur acceptée")
-             else:
-                 self.parent.appli.affiche_infos("Valeur incorrecte : ajout à la liste refusé")
-          else:
-             print "impossible d'évaluer %s" %val
-             self.parent.appli.affiche_infos("Valeur incorrecte : ajout à la liste refusé")
-
-                
-  def makeValeurPage(self,page):
-      #""
-      Crée la page de saisie d'une liste de valeurs à priori quelconques,
-      cad qui ne sont  pas à choisir dans une liste prédéfinie
-      #""
-      
-      # On récupère la bulle d'aide du panneau, l'objet, l'aide,min et max (cardinalité de la liste),
-      # et la liste des valeurs déjà affectées à l'objet courant
-      bulle_aide=self.get_bulle_aide()
-      objet_mc = self.node.item.get_definition()
-      aide = self.get_aide()
-      aide = justify_text(texte=aide)
-      min,max = self.node.item.GetMinMax()
-      self.clef_fonction=  self.node.item.clef_fonction
-      l_valeurs = self.node.item.GetListeValeurs()
-
-      self.frame1 = Frame(page,relief='groove',bd=2)
-      self.frame2 = Frame(page)
-      self.frame1.place(relx=0.,rely=0.,relwidth=1.,relheight=0.85)
-      self.frame2.place(relx=0.,rely=0.85,relwidth=1,relheight=0.15)
-      self.frame_right = Frame(self.frame1)
-      self.frame_right.place(relx=0.35,rely=0.,relwidth=0.65,relheight=1.)
-
-      # création des frames internes
-      self.frame_valeurs = Frame(self.frame1)
-      self.frame_valeurs.place(relx=0.0,rely=0.0,relwidth=0.35,relheight=0.95)
-
-      self.frame_choix = Frame(self.frame_right)
-      self.frame_choix.place(relx=0.0,rely=0.0,relwidth=1,relheight=0.9)
-      self.frame_valeurs_salome = Frame(self.frame_right)
-      self.frame_valeurs_salome.place(relx=0.02,rely=0.7,relwidth=0.9,relheight=0.3)
-
-      self.frame_boutons = Frame(self.frame2)
-      self.frame_boutons.place(relx=0.1,rely=0.,relwidth=0.5,relheight=1.)
-      self.frame_aide = Frame(self.frame2)
-      self.frame_aide.place(relx=0.6,rely=0.,relwidth=0.5,relheight=1)
-
-      for fram in (self.frame1,self.frame2,self.frame_right,self.frame_valeurs,
-                 self.frame_choix,self.frame_aide,self.frame_boutons):
-            fram.bind("<Button-3>",lambda e,s=self,a=bulle_aide : s.parent.appli.affiche_aide(e,a))
-            fram.bind("<ButtonRelease-3>",self.parent.appli.efface_aide)
-
-      # création des objets dans les frames
-      liste_commandes_valeurs = (("<Button-1>",self.selectValeur),
-                                 ("<Button-3>",self.deselectValeur),
-                                 ("<Double-Button-1>",self.sup_valeur_sans_into))
-      self.Liste_valeurs = ListeChoix(self,self.frame_valeurs,l_valeurs,
-                                      liste_commandes = liste_commandes_valeurs,
-                                      titre="Valeur(s) actuelle(s)")
-
-    # PN : pour ajouter les validators
-      self.make_entry(frame = self.frame_choix,command = self.add_valeur_plusieurs_base,y=0.55)
-
-      bouton_valeurs_fichier = Button(self.frame_choix,
-                                      text="Importer ...",
-                                      command=self.select_in_file)
-      bouton_valeurs_fichier.place(relx=0.28,rely=0.65,relwidth=0.6)
-
-      self.ajout_valeurs = None
-      self.b = Button(self.frame_choix,text='ajout select.',command=self.add_valeur_from_salome)
-
-      self.b.place(relx=0.03,rely=0.05,relwidth=0.35)
-      self.entrygroupe = Entry(self.frame_choix,relief='sunken')
-      self.entrygroupe.place(relx=0.4,rely=0.05,relwidth=0.6)
-
-      self.a = Button(self.frame_choix,text='enlev. select.',command=self.sup_valeur_from_salome)
-      self.a.place(relx=0.03,rely=0.2,relwidth=0.35)
-      self.sortie = Entry(self.frame_choix,relief='sunken')
-      self.sortie.place(relx=0.4,rely=0.2,relwidth=0.6)
-      self.c = Button(self.frame_choix,text='Visualiser',command=self.visu_in_salome)
-      self.c.place(relx=0.03,rely=0.35,relwidth=0.35)
-
-      self.genea =self.node.item.get_genealogie()
-      print self.genea
-      if "AFFE_CARA_ELEM" in self.genea :
-         self.d=Button(self.frame_choix,text='Visu 3D',command=self.visu3D_in_salome)
-         self.d.place(relx=0.47,rely=0.35,relwidth=0.35)
-
-      l_salome_valeurs=self.node.item.get_salome_valeurs()
-      self.Liste_valeurs_salome=ListeChoix(self,self.frame_valeurs_salome,l_salome_valeurs,
-                                        liste_commandes = liste_commandes_valeurs,
-                                             titre="Valeur(s) Salome actuelle(s) ")
-      self.Liste_valeurs_salome.affiche_liste()
-
-
-      # boutons Ajouter et Supprimer
-      bouton_add = Button(self.frame_choix,
-                          image = images.get_image('arrow_left'),
-                          command = self.add_valeur_plusieurs_base)
-      bouton_sup = Button(self.frame_choix,
-                          image = images.get_image('arrow_right'),
-                          command = self.sup_valeur_sans_into)
-      bouton_add.place(relx=0.08,rely=0.55)
-      bouton_sup.place(relx=0.08,rely=0.65)
-
-      # affichage de l'aide
-      self.frame_aide.update()
-      self.aide = Label(self.frame_aide, text = aide,
-                        justify='center', anchor='center',
-                        wraplength=int(self.frame_aide.winfo_width()*0.8))
-      self.aide.place(relx=0.5,rely=0.5,anchor='center',relwidth=1)
-      self.Liste_valeurs.affiche_liste()
-
-      # boutons Accepter et Annuler
-      bouton_accepter = Button(self.frame_boutons,
-                               text='Valider',
-                               command = lambda s=self,m=min,M=max : s.accepte_modifs_valeur(m,M))
-      bouton_annuler = Button(self.frame_boutons,
-                              text = 'Annuler',
-                              command = self.annule_modifs_valeur)
-      for but in (bouton_accepter,bouton_annuler):
-          but.pack(side='left',padx=5)
-
-"""          
 
 
 # ------------------------------------------------------------------------------#
index f40e8991eca01012761374487d74de2cb42adf93..6498a2c74ad45eb55cc33b795528bc812591bf8e 100644 (file)
@@ -168,6 +168,7 @@ class UNIQUE_ASSD_Panel(UNIQUE_Panel):
       Exécute command
       """
       if len(self.listbox.get()) == 0 : return
+      if len(self.listbox.getcurselection()) == 0 : return
       choix = self.listbox.getcurselection()[0]
       self.valeur_choisie.set(choix)
       apply(command,(),{})