Salome HOME
Règles python - Fin
authorGERALD NICOLAS <D68518@dsp0864451.atlas.edf.fr>
Fri, 2 Apr 2021 11:48:18 +0000 (13:48 +0200)
committerGERALD NICOLAS <D68518@dsp0864451.atlas.edf.fr>
Fri, 2 Apr 2021 11:48:18 +0000 (13:48 +0200)
src/Tools/blocFissure/gmu/substractSubShapes.py
src/Tools/blocFissure/gmu/toreFissure.py
src/Tools/blocFissure/gmu/triedreBase.py
src/Tools/blocFissure/gmu/trouveEdgesFissPeau.py
src/Tools/blocFissure/gmu/whichSide.py
src/Tools/blocFissure/gmu/whichSideMulti.py
src/Tools/blocFissure/gmu/whichSideVertex.py

index 84ad6b85216ca89eec52700be9fa645a3e0da408..9f867ebf9ec9363a27b677b3bfd1fae8e33d58fa 100644 (file)
 #
 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
+"""Substract a list of subShapes from another"""
 
 import logging
-from .geomsmesh import geompy
 
-# -----------------------------------------------------------------------------
-# --- substract a list of subShapes from another
+from .geomsmesh import geompy
 
 def substractSubShapes(obj, subs, toRemove):
-  """
-  liste de subshapes par difference
-  """
+  """liste de subshapes par difference"""
   logging.info("start")
-  idToremove = {}
-  subList = []
-  for s in toRemove:
-    idToremove[geompy.GetSubShapeID(obj, s)] = s
-  for s in subs:
-    idsub = geompy.GetSubShapeID(obj, s)
-    if idsub not in list(idToremove.keys()):
-      subList.append(s)
+  idToremove = dict()
+  for shape in toRemove:
+    idToremove[geompy.GetSubShapeID(obj, shape)] = shape
+
+  subList = list()
+  for shape in subs:
+    idsub = geompy.GetSubShapeID(obj, shape)
+    if ( idsub not in idToremove ):
+      subList.append(shape)
+
   logging.debug("subList=%s", subList)
+
   return subList
index 85d10b8ee7febc7340ed4de4f95a8bf239be79cd..383ccb05d877e6363c668c0e2e00f11ab487ae49 100644 (file)
 #
 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
+"""tore et plan de fissure"""
 
 import logging
+import math
+
 from .geomsmesh import geompy
 from .geomsmesh import geomPublish
-from .geomsmesh import geomPublishInFather
+
 from . import initLog
-import math
+
 from .triedreBase import triedreBase
 
 O, OX, OY, OZ = triedreBase()
 
-# -----------------------------------------------------------------------------
-# --- tore et plan de fissure
-
 def toreFissure(minRad,allonge,rayTore):
   """
   Construction de la geometrie du tore elliptique autour du front de fissure.
@@ -38,53 +38,53 @@ def toreFissure(minRad,allonge,rayTore):
   @param minRad :petit rayon
   @param allonge :rapport grand rayon / petit rayon
   @param rayTore :rayon du tore construit autour de la generatrice de l'ellipse
-  @return (generatrice, FaceGenFiss, Pipe_1, FaceFissure, Plane_1, Pipe1Part) : ellipse, section du tore,
+  @return (generatrice, face_gen_fiss, pipe, face_fissure, plane, pipe_part) : ellipse, section du tore,
   tore plein, face plane de le fissure, plan de la fissure, tore partitioné par le plan de fissure.
   """
-  logging.info("start ", minRad, allonge, rayTore)
-  
-  Vertex_1 = geompy.MakeVertex( minRad, 0, 0)
-  Vertex_2 = geompy.MakeVertex(-minRad, 0, 0)
-  Vertex_3 = geompy.MakeRotation(Vertex_1, OZ,  45*math.pi/180.0)
-  Arc_1 = geompy.MakeArc(Vertex_1, Vertex_2, Vertex_3)
-  generatrice = geompy.MakeScaleAlongAxes(Arc_1, O, 1, allonge, 1)
-
-  #geomPublish(initLog.debug,  Vertex_1, 'Vertex_1' )
-  #geomPublish(initLog.debug,  Vertex_2, 'Vertex_2' )
-  #geomPublish(initLog.debug,  Vertex_3, 'Vertex_3' )
-  #geomPublish(initLog.debug,  Arc_1, 'Arc_1' )
+  logging.info("start %s %s %s", minRad, allonge, rayTore)
+
+  vertex_1 = geompy.MakeVertex( minRad, 0., 0.)
+  vertex_2 = geompy.MakeVertex(-minRad, 0., 0.)
+  vertex_3 = geompy.Makerotation(vertex_1, OZ,  45.*math.pi/180.0)
+  arc = geompy.MakeArc(vertex_1, vertex_2, vertex_3)
+  generatrice = geompy.MakeScaleAlongAxes(arc, O, 1, allonge, 1)
+
+  #geomPublish(initLog.debug,  vertex_1, 'vertex_1' )
+  #geomPublish(initLog.debug,  vertex_2, 'vertex_2' )
+  #geomPublish(initLog.debug,  vertex_3, 'vertex_3' )
+  #geomPublish(initLog.debug,  arc, 'arc' )
   #geomPublish(initLog.debug,  generatrice, 'generatrice' )
 
   # --- face circulaire sur la generatrice, pour extrusion
 
-  Circle_1 = geompy.MakeCircle(O, OY, rayTore)
-  Rotation_1 = geompy.MakeRotation(Circle_1, OY, -90*math.pi/180.0)
-  Translation_1 = geompy.MakeTranslation(Rotation_1, minRad, 0, 0)
-  FaceGenFiss = geompy.MakeFaceWires([Translation_1], 1)
+  circle = geompy.MakeCircle(O, OY, rayTore)
+  rotation = geompy.MakeRotation(circle, OY, -90.*math.pi/180.0)
+  translation = geompy.MakeTranslation(rotation, minRad, 0., 0.)
+  face_gen_fiss = geompy.MakeFaceWires([translation], 1)
 
-  #geomPublish(initLog.debug,  Circle_1, 'Circle_1' )
-  #geomPublish(initLog.debug,  Rotation_1, 'Rotation_1' )
-  #geomPublish(initLog.debug,  Translation_1, 'Translation_1' )
-  #geomPublish(initLog.debug,  FaceGenFiss, 'FaceGenFiss' )
+  #geomPublish(initLog.debug,  circle, 'circle' )
+  #geomPublish(initLog.debug,  rotation, 'rotation' )
+  #geomPublish(initLog.debug,  translation, 'translation' )
+  #geomPublish(initLog.debug,  face_gen_fiss, 'face_gen_fiss' )
 
   # --- tore extrude
 
-  Pipe_1 = geompy.MakePipe(FaceGenFiss, generatrice)
+  pipe = geompy.MakePipe(face_gen_fiss, generatrice)
 
   # --- plan fissure, delimite par la generatrice
 
-  Scale_1_vertex_3 = geompy.GetSubShape(generatrice, [3])
-  Line_1 = geompy.MakeLineTwoPnt(Vertex_1, Scale_1_vertex_3)
-  FaceFissure = geompy.MakeFaceWires([generatrice, Line_1], 1)
+  scale_vertex_3 = geompy.GetSubShape(generatrice, [3])
+  line = geompy.MakeLineTwoPnt(vertex_1, scale_vertex_3)
+  face_fissure = geompy.MakeFaceWires([generatrice, line], 1)
 
-  #geomPublishInFather(initLog.debug, generatrice, Scale_1_vertex_3, 'Scale_1:vertex_3' )
-  #geomPublish(initLog.debug,  Line_1, 'Line_1' )
-  #geomPublish(initLog.debug,  FaceFissure, 'FaceFissure' )
+  #geomPublishInFather(initLog.debug, generatrice, scale_vertex_3, 'scale_1:vertex_3' )
+  #geomPublish(initLog.debug,  line, 'line' )
+  #geomPublish(initLog.debug,  face_fissure, 'face_fissure' )
 
   # --- tore coupe en 2 demi tore de section 1/2 disque
 
-  Plane_1 = geompy.MakePlane(O, OZ, 2000)
-  Pipe1Part = geompy.MakePartition([Pipe_1], [Plane_1], [], [], geompy.ShapeType["SOLID"], 0, [], 1)
-  geomPublish(initLog.debug, Pipe1Part , 'Pipe1Part' )
+  plane = geompy.MakePlane(O, OZ, 2000)
+  pipe_part = geompy.MakePartition([pipe], [plane], [], [], geompy.ShapeType["SOLID"], 0, [], 1)
+  geomPublish(initLog.debug, pipe_part , 'pipe_part' )
 
-  return generatrice, FaceGenFiss, Pipe_1, FaceFissure, Plane_1, Pipe1Part
+  return generatrice, face_gen_fiss, pipe, face_fissure, plane, pipe_part
index 0b0528e1ee215c3a7ec93ce2b365791361e540ff..bae2fc181b0395082456592b5698f0eedb6d89c0 100644 (file)
 #
 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
+"""Origine et vecteurs de base"""
 
 import logging
+
 from .geomsmesh import geompy
 from .geomsmesh import geomPublish
-from .geomsmesh import geomPublishInFather
-from . import initLog
 
-# --- origine et vecteurs de base
+from . import initLog
 
 O = None
 OX = None
@@ -37,14 +37,14 @@ def triedreBase():
   objets partages par plusieurs methodes
   """
   global O, OX, OY, OZ
-  
-  if O == None:
+
+  if ( O is None ):
     logging.info("start")
     O = geompy.MakeVertex(0, 0, 0)
     OX = geompy.MakeVectorDXDYDZ(1, 0, 0)
     OY = geompy.MakeVectorDXDYDZ(0, 1, 0)
     OZ = geompy.MakeVectorDXDYDZ(0, 0, 1)
-  
+
     if not geompy.myStudy.FindObjectByName( 'OX', geompy.ComponentDataType() ):
       geomPublish(initLog.debug,  O, 'O' )
       geomPublish(initLog.debug,  OX, 'OX' )
index db73d067bb164d1b39e09a93dae043d29aab1546..1fbfd5fd7d95304ec35a920ff4439262bdc3dc8b 100644 (file)
 #
 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
+"""Pour les faces de peau sans extremité débouchante de fissure, il faut recenser les edges de fissure sur la face de peau"""
 
 import logging
 
 from .geomsmesh import geompy
-from .geomsmesh import geomPublish
 from .geomsmesh import geomPublishInFather
+
 from . import initLog
 
 def trouveEdgesFissPeau(facesInside, facesOnside, edgesPipeIn, edgesFondIn, partitionPeauFissFond, edgesFissExtPeau):
-  """
-  pour les faces de peau sans extremité débouchante de fissure, il faut recenser les edges de fissure sur la face de peau
-  """
+  """Pour les faces de peau sans extremité débouchante de fissure, il faut recenser les edges de fissure sur la face de peau"""
   logging.info('start')
-  
-  j = 0
+
+  i_aux = 0
   for face in facesInside:
-    edgesPeauFis = []
-    edgesPipeFis = []
-    edgesPipeFnd = []
+
+    edgesPeauFis = list()
+    edgesPipeFis = list()
+    edgesPipeFnd = list()
     try:
       edgesPeauFis = geompy.GetSharedShapesMulti([geompy.MakeCompound(facesOnside), face], geompy.ShapeType["EDGE"])
       edgesPipeFis = geompy.GetSharedShapesMulti([geompy.MakeCompound(edgesPipeIn), face], geompy.ShapeType["EDGE"])
       edgesPipeFnd = geompy.GetSharedShapesMulti([geompy.MakeCompound(edgesFondIn), face], geompy.ShapeType["EDGE"])
     except:
       pass
-    if (len(edgesPeauFis) > 0) and (len(edgesPipeFis) > 0) and (len(edgesPipeFnd) == 0):
+
+    if ( edgesPeauFis and edgesPipeFis and ( not edgesPipeFnd ) ):
       edgesFissExtPeau.append(edgesPeauFis[0])
-      name="edgesFissExtPeau%d"%j
+      name="edgesFissExtPeau{}".format(i_aux)
       geomPublishInFather(initLog.debug,partitionPeauFissFond, edgesPeauFis[0], name)
-      j += 1
-  return edgesFissExtPeau
\ No newline at end of file
+      i_aux += 1
+
+  return edgesFissExtPeau
index 55e16a9e776c54dafd646d0e231a953d42d7e63f..c88a9097d03f6c13660f3064087e88ca89877022 100644 (file)
 #
 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
+"""Calcul de la position d'une shape par rapport à une face (dessus, dessous, sur la surface même)"""
 
 import logging
 from .geomsmesh import geompy
 
-# -----------------------------------------------------------------------------
-# --- calcul de la position d'une shape par rapport à une face (dessus, dessous, sur la surface même)
-
 def whichSide(face, obj, tol = 1.e-3):
   """
   Position d'un objet par rapport a une face (non nécessairement plane).
@@ -40,6 +38,7 @@ def whichSide(face, obj, tol = 1.e-3):
   nbFaces = geompy.NbShapes(obj, geompy.ShapeType["FACE"]) # --- attention ! pour une seule face presente, renvoie 2
   logging.debug("   nbFaces %s", nbFaces)
   vertices = geompy.ExtractShapes(obj, geompy.ShapeType["VERTEX"], False)
+
   if nbEdges > 0 and nbFaces == 0: # --- edges
     if nbEdges <= 2:
       point = geompy.MakeVertexOnCurve(obj, 0.5)
@@ -49,17 +48,20 @@ def whichSide(face, obj, tol = 1.e-3):
       for anEdge in edges:
         point = geompy.MakeVertexOnCurve(anEdge, 0.5)
         vertices.append(point)
+
   elif nbFaces >0: # --- faces
     if nbFaces <=2:
       point = geompy.MakeVertexOnSurface(obj, 0.5, 0.5)
       vertices.append(point)
-    if nbFaces > 2:
+    else:
       faces = geompy.ExtractShapes(obj, geompy.ShapeType["FACE"], False)
       for aFace in faces:
         point = geompy.MakeVertexOnSurface(aFace, 0.5, 0.5)
         vertices.append(point)
+
   else: # --- vertices
     vertices = [obj]
+
   for vertex in vertices:
     distance = geompy.MinDistance(vertex, face)
     logging.debug("    distance %s", distance)
@@ -74,5 +76,5 @@ def whichSide(face, obj, tol = 1.e-3):
         side = -1
       break
   logging.debug("  side %s", side)
-  return side
 
+  return side
index 31f7e2d5272a1a858c5718b7df39555f5b94b956..74cb172182de373c5b686b305f7679312c5aa788 100644 (file)
 #
 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
+"""Calcul de la position d'une shape par rapport à une face (dessus, dessous, sur la surface même)"""
 
 import logging
-from .geomsmesh import geompy
 
-# -----------------------------------------------------------------------------
-# --- calcul de la position d'une shape par rapport à une face (dessus, dessous, sur la surface même)
+from .geomsmesh import geompy
 
 def whichSideMulti(facerefs, ifil, obj, centre, tol = 1.e-3):
   """
@@ -39,6 +38,7 @@ def whichSideMulti(facerefs, ifil, obj, centre, tol = 1.e-3):
   nbEdges = geompy.NbShapes(obj, geompy.ShapeType["EDGE"]) # --- attention ! pour une seule edge presente, renvoie 2
   logging.debug("   nbEdges %s", nbEdges)
   vertices = geompy.ExtractShapes(obj, geompy.ShapeType["VERTEX"], False)
+
   if nbEdges > 0 : # --- edges
     if nbEdges <= 2:
       point = geompy.MakeVertexOnCurve(obj, 0.5)
@@ -50,6 +50,7 @@ def whichSideMulti(facerefs, ifil, obj, centre, tol = 1.e-3):
         vertices.append(point)
   else: # --- vertices
     vertices = [obj]
+
   nbOnRef = 0
   nbOnOther = 0
   for vertex in vertices:
@@ -70,20 +71,21 @@ def whichSideMulti(facerefs, ifil, obj, centre, tol = 1.e-3):
           break
         else:
           nbMiss += 1
-          pass           # peut-être inside, tester les autres faces
+          # peut-être inside, tester les autres faces
       else:
         if i == ifil:
           nbOnRef +=1    # le point est sur la face de référence, on continue avec les autres points
           break
         else:
           nbOnOther += 1 # le point est sur une autre face, mais il peut aussi être sur la face de référence...
-          pass           # on peut tester les autres faces
+         # on peut tester les autres faces
     if nbMiss == len(facerefs):
       side = 1 # inside
     if side != 0:
       break
+
   if side == 0 and nbOnRef < len(vertices):
-    side = 1   # inside  
+    side = 1   # inside
   logging.debug("  side %s", side)
-  return side
 
+  return side
index 86512c91d6e9954cbcffe717fe02a05fdaa3db6e..eb67c51c8c01135a8e0fff5ba827dbe2dafe855d 100644 (file)
 #
 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
+"""Calcul de la position d'une shape par rapport à une face (dessus, dessous, sur la surface même)"""
 
 import logging
-from .geomsmesh import geompy
 
-# -----------------------------------------------------------------------------
-# --- calcul de la position d'une shape par rapport à une face (dessus, dessous, sur la surface même)
+from .geomsmesh import geompy
 
 def whichSideVertex(face, vertex, tol = 1.e-3):
   """
@@ -34,6 +33,7 @@ def whichSideVertex(face, vertex, tol = 1.e-3):
   side = 0
   distance = geompy.MinDistance(vertex, face)
   #logging.debug("    distance %s", distance)
+
   if distance > tol:
     projection = geompy.MakeProjection(vertex, face)
     normal = geompy.GetNormal(face, projection)
@@ -41,8 +41,8 @@ def whichSideVertex(face, vertex, tol = 1.e-3):
     angle = geompy.GetAngle(normal, vect)
     #logging.debug("  angle %s", angle)
     side = 1
-    if abs(angle) > 10:
+    if ( abs(angle) > 10 ):
       side = -1
   logging.debug("side %s distance %s", side, distance)
-  return side
 
+  return side