]> SALOME platform Git repositories - modules/geom.git/commitdiff
Salome HOME
Manage Min / Max for locate Subhapes
authorNATHALIE GORE <ng13417n@dsp1077169.postes.calibre.edf.fr>
Thu, 23 May 2024 13:59:14 +0000 (15:59 +0200)
committerKonstantin Leontev <Konstantin.LEONTEV@opencascade.com>
Fri, 14 Jun 2024 17:03:06 +0000 (18:03 +0100)
src/RepairGUIAdv/locate_subshapes_limits.py

index a65f840830f4c3588c4f9107282ebaeeb6cbace5..16fc4fbeffd1e045c67c3e38f2c220104790af49 100755 (executable)
@@ -69,8 +69,31 @@ def run(args_dict, progress_emitter):
 
     sleep(1)
 
-    logging.warning('The algo script is not implemented! Return default values...')
-    limits = [0.0, 100.0]
+    geom_builder_types = { GEOM.EDGE : 'EDGE', GEOM.FACE : 'FACE', GEOM.SOLID : 'SOLID' }
+    type_str = geom_builder_types[selection_level]
+    shape_type = geompy.ShapeType[type_str]
+
+    logging.info('Computing Min / Max...')
+    if type_str == "EDGE":
+        basicProp = 0
+    elif type_str == "FACE":
+        basicProp = 1
+    elif type_str == "SOLID":
+        basicProp = 2
+    else :
+        logging.info("Problème avec la définition du type d'élément !")
+        return False
+
+    lElements = geompy.SubShapeAll(source_solid, shape_type)
+    minSize = 1e7
+    maxSize = -1
+    for element in lElements:
+        size = geompy.BasicProperties(element)[basicProp]
+        if size < minSize :
+            minSize = size
+        if size > maxSize :
+            maxSize = size
+    limits = [minSize, maxSize]
 
     logging.info('Done.')
     progress_emitter.emit()