From f5b887464cedb02655d7b7e0f82c4ff5c8d532af Mon Sep 17 00:00:00 2001 From: =?utf8?q?G=C3=A9rald=20NICOLAS?= Date: Thu, 26 Jan 2023 17:27:12 +0100 Subject: [PATCH] isol_solide --- .../macros/midSurface/surfaceMediane.py | 96 +++++++++++++++---- 1 file changed, 75 insertions(+), 21 deletions(-) diff --git a/src/PythonAddons/macros/midSurface/surfaceMediane.py b/src/PythonAddons/macros/midSurface/surfaceMediane.py index 8949c093d..97ca98d22 100755 --- a/src/PythonAddons/macros/midSurface/surfaceMediane.py +++ b/src/PythonAddons/macros/midSurface/surfaceMediane.py @@ -497,41 +497,95 @@ Sorties : print_tab (n_recur, texte) if ( solide.name() != self.objet_principal.name() ): + objet, recover = self._isole_solide_a ( solide, n_recur ) - if self._verbose_max: - print_tab (n_recur, ". Extraction du solide") + else: + objet, recover = self._isole_solide_b ( solide, n_recur ) + + if self._verbose_max: + print_tab (n_recur, "objet final : ", objet.name()) + print_tab (n_recur, "fonction_0 : ", self.fonction_0) + print_tab (n_recur, "recover : ", recover) + + return objet, recover + +#=========================== Fin de la méthode ================================== + +#=========================== Début de la méthode ================================= + + def _isole_solide_a ( self, solide, n_recur ): + """Isole le solide de son arboresence + +Entrées : + :solide: le solide à traiter + :n_recur: numéro de la récurrence + +Sorties : + :objet: le solide isolé + :recover: la fonction de récupération + """ + + nom_fonction = __name__ + "/_isole_solide_a" + blabla = "\nDans {} :".format(nom_fonction) + if self._verbose_max: + print (blabla) + texte = "Pour le solide '{}' ".format(solide.name()) + texte += "de l'objet principal '{}'".format(self.objet_principal.name()) + print_tab (n_recur, texte) + + if self._verbose_max: + print_tab (n_recur, ". Extraction du solide '{}'".format(self.objet_principal.name())) # 1. Extraction du solide - remove_subshapes = model.addRemoveSubShapes(self.part_doc, model.selection("COMPOUND", self.objet_principal.name())) - remove_subshapes.setSubShapesToKeep([model.selection("SOLID", solide.name())]) + remove_subshapes = model.addRemoveSubShapes(self.part_doc, model.selection("COMPOUND", self.objet_principal.name())) + remove_subshapes.setSubShapesToKeep([model.selection("SOLID", solide.name())]) - self.nom_solide_aux = "{}_S".format(solide.name()) - remove_subshapes.result().setName(self.nom_solide_aux) + self.nom_solide_aux = "{}_S".format(solide.name()) + if self._verbose_max: + print_tab (n_recur, "\tAttribution à remove_subshapes.result() du nom '{}'".format(self.nom_solide_aux)) + remove_subshapes.result().setName(self.nom_solide_aux) - self.fonction_0 = remove_subshapes + self.fonction_0 = remove_subshapes # 2. Récupération de l'objet principal - recover = model.addRecover(self.part_doc, remove_subshapes, [self.objet_principal]) - recover.result().setName(self.objet_principal.name()) + recover = model.addRecover(self.part_doc, remove_subshapes, [self.objet_principal]) + if self._verbose_max: + print_tab (n_recur, "\tAttribution à recover du nom '{}'".format(self.objet_principal.name())) + recover.result().setName(self.objet_principal.name()) - objet = remove_subshapes.result() + return remove_subshapes.result(), recover - else: +#=========================== Fin de la méthode ================================== - if self._verbose_max: - print_tab (n_recur, ". Mise en place du solide") +#=========================== Début de la méthode ================================= + + def _isole_solide_b ( self, solide, n_recur ): + """Isole le solide de son arboresence + +Entrées : + :solide: le solide à traiter + :n_recur: numéro de la récurrence + +Sorties : + :objet: le solide isolé + :recover: la fonction de récupération + """ - objet = solide - self.nom_solide_aux = self.objet_principal.name() - self.fonction_0 = None - recover = None + nom_fonction = __name__ + "/_isole_solide_b" + blabla = "\nDans {} :".format(nom_fonction) + if self._verbose_max: + print (blabla) + texte = "Pour le solide '{}' ".format(solide.name()) + texte += "de l'objet principal '{}'".format(self.objet_principal.name()) + print_tab (n_recur, texte) if self._verbose_max: - print_tab (n_recur, "objet final : ", objet.name()) - print_tab (n_recur, "fonction_0 : ", self.fonction_0) - print_tab (n_recur, "recover : ", recover) + print_tab (n_recur, ". Mise en place du solide") - return objet, recover + self.nom_solide_aux = self.objet_principal.name() + self.fonction_0 = None + + return solide, None #=========================== Fin de la méthode ================================== -- 2.39.2