1 # -*- coding: utf-8 -*-
4 from geomsmesh import geompy
5 from geomsmesh import geomPublish
6 from geomsmesh import geomPublishInFather
9 # -----------------------------------------------------------------------------
10 # --- faces fissure dans et hors tore, et edges face hors tore
12 def facesFissure(blocp, faceFissure, extrusionDefaut, genint):
14 extraction des faces de fissure dans et hors tore, des edges le long du tore et en paroi
15 @param faceFissure : la face de fissure avec la partie dans le tore elliptique et la partie externe
16 @return (facefissintore, facefissoutore, edgeint, edgeext)
20 [f0,f1] = geompy.ExtractShapes(faceFissure, geompy.ShapeType["FACE"], True)
21 ed0 = geompy.ExtractShapes(f0, geompy.ShapeType["EDGE"], True)
22 ed1 = geompy.ExtractShapes(f1, geompy.ShapeType["EDGE"], True)
23 if len(ed0) > len(ed1):
30 geomPublishInFather(initLog.debug, faceFissure, facefissintore,'facefissintore')
31 geomPublishInFather(initLog.debug, faceFissure, facefissoutore,'facefissoutore')
33 edgeint = geompy.GetShapesOnShape(extrusionDefaut, facefissoutore, geompy.ShapeType["EDGE"], GEOM.ST_IN)
34 edgeext = geompy.GetShapesOnShape(extrusionDefaut, facefissoutore, geompy.ShapeType["EDGE"], GEOM.ST_ON)
36 for i in range(len(edgeint)):
38 geomPublishInFather(initLog.debug, facefissoutore, edgeint[i],name)
39 for i in range(len(edgeext)):
41 geomPublishInFather(initLog.debug, facefissoutore, edgeext[i],name)
45 vertices = geompy.ExtractShapes(genint, geompy.ShapeType["VERTEX"], False)
46 for i in range(len(edgeext)):
47 vertedge = geompy.ExtractShapes(edgeext[i], geompy.ShapeType["VERTEX"], False)
48 if ((geompy.GetSubShapeID(blocp, vertedge[0]) == geompy.GetSubShapeID(blocp, vertices[0])) or
49 (geompy.GetSubShapeID(blocp, vertedge[0]) == geompy.GetSubShapeID(blocp, vertices[1]))):
54 return facefissintore, facefissoutore, edgeint, edgeext, reverext