msgErrorNeedSubShape = "Sélection d'un élément sous géométrique seulement"
+msgErrorGroupMaSelection = "Sélection GROUP_MA ne peut pas prendre un point ou un noeud"
+msgWarningGroupNoSelection = "Attention, GROUP_NO devrait prendre un point ou un noeud"
+
+
+
# couleur pour visualisation des géometrie CS_CBO
COLORS = ( studyManager.RED,
studyManager.GREEN,
- def __selectShape( self, jdcID, selectedEntry ):
+ def __selectShape( self, jdcID, selectedEntry, kwType = None ):
"""
sélection sous-géométrie dans Salome:
-test1) si c'est un élément sous-géométrique .
met à jours la liste self.subShapes si test ok
"""
- name, msgError = '',''
-
+ name, msgError = '',''
+
selectedMainShapeEntry = studyManager.palStudy.getMainShapeEntry( selectedEntry )
- if selectedMainShapeEntry and selectedMainShapeEntry != selectedEntry: #ok test1)
+ if selectedMainShapeEntry and selectedMainShapeEntry != selectedEntry: #ok test1)
+
+ tGeo = studyManager.palStudy.getRealShapeType( selectedEntry )
+ if kwType == "GROUP_NO" and tGeo != studyManager.VERTEX:
+ msgError = msgWarningGroupNoSelection
+ elif kwType == "GROUP_MA" and tGeo == studyManager.VERTEX:
+ name, msgError = '', msgErrorGroupMaSelection
+ return name, msgError
+
if not self.mainShapeEntries.has_key( jdcID ):
self.mainShapeEntries[ jdcID ] = selectedMainShapeEntry
name = studyManager.palStudy.getName( selectedMainShapeEntry )
else:
if not self.mainShapeNames.has_key( jdcID ):
self.mainShapeNames[ jdcID ] = studyManager.palStudy.getName( self.mainShapeEntries[ jdcID ] )
- msgError = msgSubShapeBadMainShape + self.mainShapeNames[ jdcID ]
+ msgError = msgSubShapeBadMainShape + self.mainShapeNames[ jdcID ]
else:
name, msgError = '', msgErrorNeedSubShape
- def __selectMeshGroup( self, jdcID, selectedEntry ):
+ def __selectMeshGroup( self, jdcID, selectedEntry, kwType = None ):
"""
sélection groupe de maille dans Salome:
-test 1) si c'est un groupe de maille
-test 2) si le maillage fait référence à la géométrie principale
"""
- name, msgError = '',''
+ name, msgError = '',''
selectedMeshEntry = studyManager.palStudy.getMesh( selectedEntry )
if selectedMeshEntry: # ok test 1)
+ tGroup = studyManager.palStudy.getGroupType( selectedEntry )
+ if kwType == "GROUP_NO" and tGroup != studyManager.NodeGroups:
+ msgError = msgWarningGroupNoSelection
+ elif kwType == "GROUP_MA" and tGroup == studyManager.NodeGroups:
+ name, msgError = '', msgErrorGroupMaSelection
+ return name, msgError
+
selectedMainShapeEntry = studyManager.palStudy.getShapeFromMesh( selectedMeshEntry )
if selectedMainShapeEntry: #test 2)
children = item._GetSubList()
for child in children:
groupMa += self.__getAllGroupeMa( child )
- except: # à cause de _GetSubList()...
+ except:
pass
return groupMa
children = item._GetSubList()
for child in children:
groupNo += self.__getAllGroupeNo( child )
- except: # à cause de _GetSubList()...
+ except:
pass
return groupNo
#----------------------- LISTE DES NOUVEAUX CAS D'UTILISATIONS -----------
- def selectGroupFromSalome( self ):
+ def selectGroupFromSalome( self, kwType ):
"""
Sélection d'élément(s) d'une géométrie ( sub-shape ) ou d'élément(s) de maillage ( groupe de maille) à partir de l'arbre salome
retourne ( la liste des noms des groupes, message d'erreur )
Note: Appelé par EFICAS lorsqu'on clique sur le bouton ajouter à la liste du panel AFF_CHAR_MECA
"""
names, msg = [], ''
- try:
+ try:
atLeastOneStudy = self.__studySync()
if not atLeastOneStudy:
return names, msg
nbEntries = len( entries )
if nbEntries >= 1:
print 'CS_pbruno len( entries ) >= 1:'
- jdcID = self.bureau.nb.getcurselection()
+# jdcID = self.bureau.nb.getcurselection()
+ jdcID = self.bureau.JDCDisplay_courant
for entry in entries:
if studyManager.palStudy.isMeshGroup( entry ): #sélection d'un groupe de maille
- name, msg = self.__selectMeshGroup( jdcID, entry )
+ name, msg = self.__selectMeshGroup( jdcID, entry, kwType )
elif studyManager.palStudy.isShape( entry ): #sélection d'une sous-géométrie
- name, msg = self.__selectShape( jdcID, entry )
+ name, msg = self.__selectShape( jdcID, entry, kwType )
else:
name, msg = '', msgUnAuthorizedSelecion
if name:
if not atLeastOneStudy:
return
- jdcID = self.bureau.nb.getcurselection()
+# jdcID = self.bureau.nb.getcurselection()
+ jdcID = self.bureau.JDCDisplay_courant
groupeMaNames = self.__getAllGroupeMa( self.bureau.JDCDisplay_courant.tree.item )
groupeNoNames = self.__getAllGroupeNo( self.bureau.JDCDisplay_courant.tree.item )