- edgesFilling = geompy.ExtractShapes(fillingFaceExterne, geompy.ShapeType["EDGE"], False)
- edgesBords = []
- for i, edge in enumerate(edgesFilling):
- edgepeau = geompy.GetInPlace(facePeau, edge)
- name = "edgepeau%d"%i
- geomPublishInFather(initLog.debug, facePeau,edgepeau, name)
- logging.debug("edgepeau %s", geompy.ShapeInfo(edgepeau))
- if geompy.ShapeInfo(edgepeau)['EDGE'] > 1:
- logging.debug(" EDGES multiples")
- edgs = geompy.ExtractShapes(edgepeau, geompy.ShapeType["EDGE"], False)
- edgesBords += edgs
- edgesListees += edgs
- else:
- logging.debug(" EDGE")
- edgesBords.append(edgepeau)
- edgesListees.append(edgepeau)
- groupEdgesBordPeau = geompy.CreateGroup(facePeau, geompy.ShapeType["EDGE"])
- geompy.UnionList(groupEdgesBordPeau, edgesBords)
- bordsVifs = None
- if aretesVivesC is not None:
- logging.debug("identification des bords vifs par GetInPlace")
- bordsVifs = geompy.GetInPlace(facePeau, aretesVivesC)
- if bordsVifs is None:
- logging.debug("pas d'identification des bords vifs par GetInPlace: test par distance")
- edvifs = []
- arvives = geompy.ExtractShapes(aretesVivesC, geompy.ShapeType["EDGE"], False)
- edgs = geompy.ExtractShapes(facePeau, geompy.ShapeType["EDGE"], False)
- for ed in edgs:
- vxs = geompy.ExtractShapes(ed, geompy.ShapeType["VERTEX"], False)
- for ar in arvives:
- d = geompy.MinDistance(vxs[0], ar)
- d += geompy.MinDistance(vxs[1], ar)
- logging.debug("test distance bord face peau - arete vive: %s",d)
- if d < 0.001:
- edvifs.append(ed)
- break
- if len(edvifs) >0:
- bordsVifs = geompy.CreateGroup(facePeau,geompy.ShapeType["EDGE"])
- for ed in edvifs:
- geompy.AddObject(bordsVifs, geompy.GetSubShapeID(facePeau, ed))
- if bordsVifs is not None:
- geomPublishInFather(initLog.debug, facePeau, bordsVifs, "bordsVifs")
- groupEdgesBordPeau = geompy.CutGroups(groupEdgesBordPeau, bordsVifs)
- grptmp = None
- if len(aretesVivesCoupees) > 0:
- grpC = geompy.MakeCompound(aretesVivesCoupees)
- grptmp = geompy.GetInPlace(facePeau, grpC)
- if grptmp is not None:
- grpnew = geompy.CutGroups(bordsVifs, grptmp) # ce qui est nouveau dans bordsVifs
- else:
- grpnew = bordsVifs
- if grpnew is not None:
- edv = geompy.ExtractShapes(grpnew, geompy.ShapeType["EDGE"], False)
- aretesVivesCoupees += edv
- logging.debug("aretesVivesCoupees %s",aretesVivesCoupees)
- geomPublishInFather(initLog.debug, facePeau, groupEdgesBordPeau , "EdgesBords")