+ def _calcul_lg_caract_0 ( self, objet, tb_caract, n_recur ):
+ """Crée une longueur caractéristique de l'objet formés de surfaces planes
+
+Les caractéristiques sont comme en IHM avec 'Inspection' :
+. Si la face est un rectangle, la caractéristique est :
+ Xcoin, Ycoin, Zcoin, Xnormale, Ynormale, Znormale, Largeur, Hauteur
+. Si la face est un polygone, elle est vue comme un plan et la caractéristique est :
+ Xcentre, Ycentre, Zcentre, Xnormale, Ynormale, Znormale
+. Si la face est un disque, elle est vue comme un plan et la caractéristique est :
+ Xcentre, Ycentre, Zcentre, Xnormale, Ynormale, Znormale, Rayon
+
+Si on se contente de raisonner avec la boîte englobante de la face, on a le risque qu'elle ne soit pas au bon endroit.
+
+Il faut ici calculer la dimension d'une boîte centrée sur l'origine qui englobe à coup sûr le solide.
+
+Entrées :
+ :objet: l'objet à traiter
+ :tb_caract: tableau des caractéristiques géométriques des faces
+ :n_recur: niveau de récursivité
+
+Sorties :
+ :l_caract: longueur caractéristique de l'objet
+"""
+
+ nom_fonction = __name__ + "/_calcul_lg_caract_0"
+ blabla = "Dans {} :".format(nom_fonction)
+
+ if self._verbose_max:
+ print_tab (n_recur, blabla)
+
+# 1. On parcourt toutes les faces en repérant les rectangles.
+# Pour ces rectangles on va calculer les plus grandes valeurs des coordonnées et des épaisseurs.
+
+ avec_rectangle = False
+ xyz_max = 0.
+ d_max = 0.
+ for iaux, caract in enumerate(tb_caract):
+ if self._verbose_max:
+ print_tab (n_recur, "Face {} : ".format(iaux), caract)
+ if ( caract[-1][0] == "Rectangle" ):
+ avec_rectangle = True
+ xyz_max = max(xyz_max,abs(caract[-1][1]),abs(caract[-1][2]),abs(caract[-1][3]))
+ d_max = max(d_max,caract[-1][7],caract[-1][8])
+
+ if self._verbose_max:
+ print_tab (n_recur, "xyz_max : ", xyz_max)
+ print_tab (n_recur, "d_max : ", d_max)
+
+# 2. Longueur
+# 2.1. S'il y avait des rectangles, on prend un cube plus grand
+ if avec_rectangle:
+ l_caract = (xyz_max+d_max)*np.sqrt(3.)
+# 2.2. Sinon, on peut utiliser la formule classique
+ else:
+ l_caract = self._calcul_lg_caract_1 ( objet, n_recur )
+
+ if self._verbose_max:
+ print_tab (n_recur, "Longueur caractéristique : ", l_caract)
+
+ return l_caract
+
+#=========================== Fin de la méthode ==================================
+
+#=========================== Début de la méthode =================================
+
+ def _calcul_lg_caract_1 ( self, objet, n_recur ):