Salome HOME
projects
/
modules
/
smesh.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
erreur de décodage du dcitionnaire
[modules/smesh.git]
/
src
/
Tools
/
blocFissure
/
gmu
/
orderEdgesFromWire.py
diff --git
a/src/Tools/blocFissure/gmu/orderEdgesFromWire.py
b/src/Tools/blocFissure/gmu/orderEdgesFromWire.py
index 46468f539db41c9bfac70ec1c73f2cd677db271b..112cb2f03347bd43358423d92b11fc5573cc8811 100644
(file)
--- a/
src/Tools/blocFissure/gmu/orderEdgesFromWire.py
+++ b/
src/Tools/blocFissure/gmu/orderEdgesFromWire.py
@@
-1,5
+1,5
@@
# -*- coding: utf-8 -*-
# -*- coding: utf-8 -*-
-# Copyright (C) 2014-202
0
EDF R&D
+# Copyright (C) 2014-202
1
EDF R&D
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
@@
-17,64
+17,61
@@
#
# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
#
#
# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
#
+"""Trouver les vertices intermédiaires d'un wire"""
import logging
import logging
-from .geomsmesh import geompy
-# -----------------------------------------------------------------------------
-# --- trouver les vertices intermediaires d'un wire
+from .geomsmesh import geompy
def orderEdgesFromWire(aWire):
def orderEdgesFromWire(aWire):
- """
- fournit les edges ordonnées d'un wire selon ExtractShapes(,,False),
+ """Fournit les edges ordonnées d'un wire selon ExtractShapes(,,False),
et l'ordre des edges selon le sens de parcours (ordre des indices de la liste d'edges)
"""
logging.info("start")
edges = geompy.ExtractShapes(aWire, geompy.ShapeType["EDGE"], False)
et l'ordre des edges selon le sens de parcours (ordre des indices de la liste d'edges)
"""
logging.info("start")
edges = geompy.ExtractShapes(aWire, geompy.ShapeType["EDGE"], False)
-
+
idverts = dict()
idverts = dict()
- for i, edge in enumerate(edges):
+ for i
_aux
, edge in enumerate(edges):
verts = geompy.ExtractShapes(edge, geompy.ShapeType["VERTEX"], True)
verts = geompy.ExtractShapes(edge, geompy.ShapeType["VERTEX"], True)
-# idverts[(i,0)] = verts[0]
-# idverts[(i,1)] = verts[1]
- v0 = geompy.MakeVertexOnCurve(edge, 0.0)
- dist = geompy.MinDistance(v0, verts[0])
+ vertex_a = geompy.MakeVertexOnCurve(edge, 0.0)
+ dist = geompy.MinDistance(vertex_a, verts[0])
if dist < 1.e-4:
if dist < 1.e-4:
- idverts[(i,0)] = verts[0]
- idverts[(i,1)] = verts[1]
+ idverts[(i
_aux
,0)] = verts[0]
+ idverts[(i
_aux
,1)] = verts[1]
else:
else:
- idverts[(i,0)] = verts[1]
- idverts[(i,1)] = verts[0]
-
+ idverts[(i
_aux
,0)] = verts[1]
+ idverts[(i
_aux
,1)] = verts[0]
+
idsubs = dict()
idsubs = dict()
- for
kv
, sub in idverts.items():
+ for
i_aux
, sub in idverts.items():
subid = geompy.GetSubShapeID(aWire, sub)
subid = geompy.GetSubShapeID(aWire, sub)
- if
subid in list(idsubs.keys()
):
- idsubs[subid].append(
kv
)
+ if
( subid in idsubs
):
+ idsubs[subid].append(
i_aux
)
else:
else:
- idsubs[subid] = [
kv
]
-
+ idsubs[subid] = [
i_aux
]
+
debut = -1
debut = -1
- fin = -1
- for
k
, kvs in idsubs.items():
+ fin = -1
+ for
_
, kvs in idsubs.items():
if len(kvs) == 1: # une extremité
if len(kvs) == 1: # une extremité
- kv = kvs[0]
- if kv[1] == 0:
- debut = kv[0]
+ kv
0
= kvs[0]
+ if kv
0
[1] == 0:
+ debut = kv
0
[0]
else:
else:
- fin = kv[0]
- logging.debug("nombre d'edges: {}, indice edge début: {}, fin: {}".format(len(edges), debut, fin))
+ fin = kv0[0]
+ texte = "nombre d'edges: {}, indice edge début: {}, fin: {}".format(len(edges), debut, fin)
+ logging.debug(texte)
if debut < 0:
logging.critical("les edges du wire ne sont pas orientées dans le même sens: pas de début trouvé")
return edges, list(range(len(edges)))
if debut < 0:
logging.critical("les edges du wire ne sont pas orientées dans le même sens: pas de début trouvé")
return edges, list(range(len(edges)))
-
+
orderedList = [debut]
while len(orderedList) < len(edges):
bout = orderedList[-1]
vertex = idverts[(bout,1)]
orderedList = [debut]
while len(orderedList) < len(edges):
bout = orderedList[-1]
vertex = idverts[(bout,1)]
- for k, v in idverts.items():
+ for k, v
ertex_a
in idverts.items():
if k[0] not in orderedList:
if k[0] not in orderedList:
- if geompy.MinDistance(vertex, v) < 1.e-4:
+ if geompy.MinDistance(vertex, v
ertex_a
) < 1.e-4:
if k[1] == 0:
orderedList.append(k[0])
break
if k[1] == 0:
orderedList.append(k[0])
break
@@
-82,9
+79,12
@@
def orderEdgesFromWire(aWire):
logging.critical("les edges du wire ne sont pas orientées dans le même sens: une edge à l'envers")
return edges, list(range(len(edges)))
logging.critical("les edges du wire ne sont pas orientées dans le même sens: une edge à l'envers")
return edges, list(range(len(edges)))
- logging.debug("liste des edges ordonnées selon le sens de parcours : {}".format(orderedList))
+ texte = "liste des edges ordonnées selon le sens de parcours : {}".format(orderedList)
+ logging.debug(texte)
accessList = list(range(len(orderedList)))
accessList = list(range(len(orderedList)))
- for i,k in enumerate(orderedList):
- accessList[k] = i
- logging.info("position ordonnée des edges selon le sens de parcours : {}".format(accessList))
+ for i_aux,k_aux in enumerate(orderedList):
+ accessList[k_aux] = i_aux
+ texte = "position ordonnée des edges selon le sens de parcours : {}".format(accessList)
+ logging.info(texte)
+
return edges, accessList
return edges, accessList