From c4233b867eded0bbdcd6f3814bd03960368c083b Mon Sep 17 00:00:00 2001 From: "pascale.noyret" Date: Tue, 4 May 2021 18:22:39 +0200 Subject: [PATCH] mini binding v2 --- Noyau/N_MCCOMPO.py | 19 +++++++++++++++++++ Noyau/N_OBJECT.py | 2 +- Poc/essaiGetattr.py | 8 ++++---- 3 files changed, 24 insertions(+), 5 deletions(-) diff --git a/Noyau/N_MCCOMPO.py b/Noyau/N_MCCOMPO.py index e5bf186d..08830c56 100644 --- a/Noyau/N_MCCOMPO.py +++ b/Noyau/N_MCCOMPO.py @@ -437,6 +437,25 @@ class MCCOMPO(N_OBJECT.OBJECT): return None + def getChildOrChildInBloc(self, name, restreint='non'): + # cherche dans les fils et les fils des blocs + # tout est base sur le fait que deux freres ne peuvent pas avoir le meme nom + # dans des blocs non exclusifs, sinon le .comm n est pas du python valide + for v in self.mcListe: + if v.nom == name: return v + if restreint == 'non': + try: + entite = self.definition.entites[name] + if entite.label == 'SIMP' or (entite.label == 'FACT' and entite.statut in ('c', 'd')): + return entite(None, name, None) + except: + pass + for v in self.mcListe: + if v.nature == 'MCBLOC' : + petitFils=v.getChildOrChildInBloc(name, restreint) + if petitFils !=None : return petitFils + return None + def append_mc_global_avecRecalcule(self, mc): etape = self.getEtape() if etape: diff --git a/Noyau/N_OBJECT.py b/Noyau/N_OBJECT.py index d08f9fce..80f31056 100644 --- a/Noyau/N_OBJECT.py +++ b/Noyau/N_OBJECT.py @@ -151,7 +151,7 @@ class ErrorObj(OBJECT): def newGetattr(self,name): try : - fils=self.getChild(name) + fils=self.getChildOrChildInBloc(name,restreint='non') if fils : if fils.nature == 'MCSIMP' : return fils.valeur if fils.nature == 'MCList' : diff --git a/Poc/essaiGetattr.py b/Poc/essaiGetattr.py index 741f6ee0..c2f786c5 100755 --- a/Poc/essaiGetattr.py +++ b/Poc/essaiGetattr.py @@ -50,8 +50,8 @@ except : pass print (techno.radial_description) print (techno.radial_description.nb_assembly) -print (techno.radial_description.assembly_map_6.xaxis) -print (techno.radial_description.assembly_map_6.yaxis) -print (techno.radial_description.assembly_map_6.assembly_map) -print (techno.radial_description.assembly_map_6.assembly_map[0][3]) +print (techno.radial_description.xaxis) +print (techno.radial_description.yaxis) +print (techno.radial_description.assembly_map) +print (techno.radial_description.assembly_map[0][3]) -- 2.39.2