def split_cooler_to_faces(cooler_obj): groups = [] counter = 0 for each_face in geompy.SubShapeAllSortedCentres(cooler, geompy.ShapeType["FACE"]): groups.append (geompy.CreateGroup(cooler, geompy.ShapeType["FACE"])) geompy.AddObject (groups[counter], geompy.GetSubShapeID(cooler, each_face)) geompy.addToStudyInFather (cooler, groups[counter], 'face_' + str(counter+1)) counter+=1 return groups
def createMesh(): L=0.1 H=0.08 T=0.006 R=0.048 R1=0.0385 Vertex_1 = geompy.MakeVertex(0, -L, 0) Vertex_2 = geompy.MakeVertex(0, 0, 0) Vector_y = geompy.MakeVectorDXDYDZ(0, 1, 0) Vector_z = geompy.MakeVectorDXDYDZ(0, 0, 1) Cylinder_1 = geompy.MakeCylinder(Vertex_1, Vector_y, R, 2*L) Cylinder_2 = geompy.MakeCylinder(Vertex_2, Vector_z, R1, H) Fuse_1 = geompy.MakeFuse(Cylinder_1, Cylinder_2) [Face_1,Face_2,Face_3,Face_4,Face_5] = geompy.SubShapeAllSorted(Fuse_1, geompy.ShapeType["FACE"]) #[Edge_1,Edge_2,Edge_3,Edge_4,Edge_5,Edge_6,Edge_7,Edge_8,Edge_9,Edge_10] = geompy.SubShapeAllSorted(Fuse_1, geompy.ShapeType["EDGE"]) geompy.addToStudy( Vertex_1, "Vertex_1" ) geompy.addToStudy( Vertex_2, "Vertex_2" ) geompy.addToStudy( Vector_y, "Vector_y" ) geompy.addToStudy( Vector_z, "Vector_z" ) geompy.addToStudy( Cylinder_1, "Cylinder_1" ) geompy.addToStudy( Cylinder_2, "Cylinder_2" ) geompy.addToStudy( Fuse_1, "Fuse_1" ) geompy.addToStudyInFather( Fuse_1, Face_1, "Face_1" ) geompy.addToStudyInFather( Fuse_1, Face_2, "Face_2" ) geompy.addToStudyInFather( Fuse_1, Face_3, "Face_3" ) geompy.addToStudyInFather( Fuse_1, Face_4, "Face_4" ) geompy.addToStudyInFather( Fuse_1, Face_5, "Face_5" ) NETGEN_3D_Parameters = smesh.smesh.CreateHypothesis('NETGEN_Parameters', 'NETGENEngine') NETGEN_3D_Parameters.SetMaxSize( 0.005 ) NETGEN_3D_Parameters.SetSecondOrder( 0 ) NETGEN_3D_Parameters.SetOptimize( 1 ) NETGEN_3D_Parameters.SetFineness( 3 ) Mesh_1 = smesh.Mesh(Fuse_1) status = Mesh_1.AddHypothesis(NETGEN_3D_Parameters) Netgen_1D_2D_3D = smesh.smesh.CreateHypothesis('NETGEN_2D3D', 'NETGENEngine') status = Mesh_1.AddHypothesis(Netgen_1D_2D_3D) isDone = Mesh_1.Compute() # create groups for boundaries Faces=[Face_1] inlet_F = group_create(Mesh_1.GetMesh(),Faces,"inlet_F") Faces=[Face_5] outlet_F1 = group_create(Mesh_1.GetMesh(),Faces,"outlet_F1") Faces=[Face_3] outlet_F2 = group_create(Mesh_1.GetMesh(),Faces,"outlet_F2") Faces=[ Face_2, Face_4] pipe = group_create(Mesh_1.GetMesh(),Faces,"pipe") return [Mesh_1,[inlet_F,outlet_F1,outlet_F2,pipe]]
def doFaceGroups(self): dx = geompy.MakeVectorDXDYDZ(0.001,0,0) # FACE groups definition: # 1. inlet # 2. outlet # 5. wall # wall is declared and filled sub_faces = SubShapeAllSorted(self.pipeGeom, ShapeType["FACE"]) print("The faces are:",sub_faces) self.g_wall = CreateGroup(self.pipeGeom, ShapeType["FACE"]) UnionList(self.g_wall, sub_faces) # inlet # This for some reason returns a single shape instead of a list. #sub_faces = GetShapesNearPoint(self.pipeGeom,MakeVertex(-0.01,0,0),4,0.01)#GetShapesOnPlane(self.pipeGeom, ShapeType["FACE"], dx, GEOM.ST_ON) sub_faces = GetShapesOnPlaneWithLocation(self.pipeGeom,ShapeType["FACE"],dx,MakeVertex(0,0,0),GEOM.ST_ON) print("Got shapes on plane:",sub_faces) self.g_inlet = CreateGroup(self.pipeGeom, ShapeType["FACE"]) # Adds to the group g_inlet all the faces in sub_faces UnionList(self.g_inlet, sub_faces) # Removes all the wall group (g_wall) all the faces in sub_faces. These are the faces in the x-plane #DifferenceList(self.g_wall, sub_faces) # Seems to add the group to the "father" v_duct. geompy.addToStudyInFather(self.pipeGeom, self.g_inlet, "inlet") # outlet # Get all the shapes with the normal dx and the location p1 which is the end of our cylinder #sub_faces = GetShapesNearPoint(self.pipeGeom,MakeVertex(self.points[-1][0],0,0),4,0.001)#GetShapesOnPlaneWithLocation(self.pipeGeom, ShapeType["FACE"], dx, MakeVertex(0,0,0), GEOM.ST_ON) sub_faces = GetShapesOnPlaneWithLocation(self.pipeGeom,ShapeType["FACE"],dx,MakeVertex(self.points[-1][0],0,0),GEOM.ST_ON) print("Got shapes on plane,outlet:",sub_faces) self.g_outlet = CreateGroup(self.pipeGeom, ShapeType["FACE"]) UnionList(self.g_outlet, sub_faces) #DifferenceList(self.g_wall, sub_faces) addToStudyInFather(self.pipeGeom, self.g_outlet, "outlet") # subtract out all faces that are perpendicular to the x-axis (the circle faces) for i in xrange(len(self.points)): sub_faces = GetShapesOnPlaneWithLocation(self.pipeGeom,ShapeType["FACE"],dx,MakeVertex(self.points[i][0],0,0),GEOM.ST_ON) DifferenceList(self.g_wall,sub_faces) #DifferenceList(self.g_wall,sub_faces) # wall is finally obtained addToStudyInFather(self.pipeGeom, self.g_wall, "wall") print "FACE groups defined..."
def CreateSalomeGeom(newnode, newline, groupline=[], groupnode=[]): """creation a la volle d une geometrie dans salome n'est disponible que depuis salome""" liennoeudsalome = [] for i in range(0, newnode.shape[0]): liennoeudsalome.append( geompy.MakeVertex(newnode[i, 0], newnode[i, 1], newnode[i, 2])) lienlinesalome = [] for i in range(0, len(newline)): lienlinesalome.append( geompy.MakeLineTwoPnt(liennoeudsalome[newline[i][0]], liennoeudsalome[newline[i][1]])) complist = [] complist.extend(liennoeudsalome) complist.extend(lienlinesalome) outshape = geompy.MakeCompound(complist) sortie = geompy.addToStudy(outshape, "treilli") sortiegr = [] #creation des groupes for groupe in groupline: if (len(groupe[1]) > 0): newgr = geompy.CreateGroup(outshape, geompy.ShapeType["EDGE"]) for a in groupe[1]: lineid = geompy.GetSubShapeID(outshape, lienlinesalome[a]) geompy.AddObject(newgr, lineid) sortiegr.append( geompy.addToStudyInFather(outshape, newgr, groupe[0])) #creation des groupes for groupe in groupnode: if (len(groupe[1]) > 0): newgr = geompy.CreateGroup(outshape, geompy.ShapeType["VERTEX"]) for a in groupe[1]: noeudid = geompy.GetSubShapeID(outshape, liennoeudsalome[a]) geompy.AddObject(newgr, noeudid) sortiegr.append( geompy.addToStudyInFather(outshape, newgr, groupe[0])) #gg = salome.ImportComponentGUI("GEOM") # #gg.createAndDisplayGO(sortie) #for a in sortiegr: # gg.createAndDisplayGO(a) salome.sg.updateObjBrowser(1) print "salome geom done"
def CreateSalomeGeom(newnode,newline,groupline=[],groupnode=[]): """creation a la volle d une geometrie dans salome n'est disponible que depuis salome""" liennoeudsalome=[] for i in range(0,newnode.shape[0]): liennoeudsalome.append(geompy.MakeVertex(newnode[i,0],newnode[i,1],newnode[i,2])) lienlinesalome=[] for i in range(0,len(newline)): lienlinesalome.append(geompy.MakeLineTwoPnt(liennoeudsalome[newline[i][0]],liennoeudsalome[newline[i][1]])) complist=[]; complist.extend(liennoeudsalome) complist.extend(lienlinesalome) outshape=geompy.MakeCompound(complist) sortie= geompy.addToStudy(outshape,"treilli") sortiegr=[] #creation des groupes for groupe in groupline: if (len(groupe[1])>0): newgr=geompy.CreateGroup(outshape,geompy.ShapeType["EDGE"]) for a in groupe[1]: lineid=geompy.GetSubShapeID(outshape,lienlinesalome[a]) geompy.AddObject(newgr,lineid) sortiegr.append(geompy.addToStudyInFather( outshape, newgr, groupe[0] )) #creation des groupes for groupe in groupnode: if (len(groupe[1])>0): newgr=geompy.CreateGroup(outshape,geompy.ShapeType["VERTEX"]) for a in groupe[1]: noeudid=geompy.GetSubShapeID(outshape,liennoeudsalome[a]) geompy.AddObject(newgr,noeudid) sortiegr.append(geompy.addToStudyInFather( outshape, newgr, groupe[0] )) #gg = salome.ImportComponentGUI("GEOM") # #gg.createAndDisplayGO(sortie) #for a in sortiegr: # gg.createAndDisplayGO(a) salome.sg.updateObjBrowser(1) print "salome geom done"
def RebuildData(theStudy): geompy.init_geom(theStudy) global Edge_1, Edge_2, Vertex_3, Revolution_1, Vertex_5, Vertex_4, Vertex_6, Face_1, Cone_1, Edge_5, Edge_3, Cylinder_1, Edge_4, Translation_1, Y, Vertex_2, Common_1, Cut_1, Compound_1, Vector_1, Fillet_1, X, Box_1, Rotation_1, Partition_1, Cone_1_edge_7, Torus_1, Vertex_1, Circle_1 Vertex_1 = geompy.MakeVertex(200, 200, 0) Vertex_2 = geompy.MakeVertexWithRef(Vertex_1, 0, 0, 200) Vector_1 = geompy.MakeVector(Vertex_1, Vertex_2) Cone_1 = geompy.MakeConeR1R2H(100, 0, 300) Cylinder_1 = geompy.MakeCylinder(Vertex_2, Vector_1, 100, 100) geomObj_1 = geompy.GetSubShape(Cone_1, [7]) Circle_1 = geompy.MakeCircle(Vertex_1, Vector_1, 100) Cone_1_edge_7 = geompy.GetSubShape(Cone_1, [7]) Revolution_1 = geompy.MakeRevolution2Ways(Circle_1, Cone_1_edge_7, 45*math.pi/180.0) Box_1 = geompy.MakeBoxDXDYDZ(200, 200, 200) Torus_1 = geompy.MakeTorusRR(200, 75) Common_1 = geompy.MakeCommon(Torus_1, Box_1) Cut_1 = geompy.MakeCut(Torus_1, Box_1) Translation_1 = geompy.MakeTranslation(Torus_1, 190, 190, 0) Y = geompy.MakeVectorDXDYDZ(0, 100, 0) X = geompy.MakeVectorDXDYDZ(100, 0, 0) Rotation_1 = geompy.MakeRotation(Translation_1, Y, -90*math.pi/180.0) Compound_1 = geompy.MakeCompound([Translation_1, Torus_1, Rotation_1]) Fillet_1 = geompy.MakeFilletAll(Box_1, 35) Vertex_3 = geompy.MakeVertex(0, 0, 0) Vertex_4 = geompy.MakeVertex(0, 0, 200) Vertex_5 = geompy.MakeVertex(200, 0, 200) Vertex_6 = geompy.MakeVertex(200, 0, 0) Edge_1 = geompy.MakeEdge(Vertex_3, Vertex_4) Edge_2 = geompy.MakeEdge(Vertex_4, Vertex_5) Edge_3 = geompy.MakeEdge(Vertex_5, Vertex_6) Edge_4 = geompy.MakeEdge(Vertex_6, Vertex_3) Face_1 = geompy.MakeFaceWires([Edge_1, Edge_2, Edge_3, Edge_4], 1) Edge_5 = geompy.MakeEdge(Vertex_3, Vertex_5) Partition_1 = geompy.MakePartition([Face_1], [Edge_5], [], [], geompy.ShapeType["FACE"], 0, [], 0) geompy.addToStudy( Vertex_1, "Vertex_1" ) geompy.addToStudy( Vertex_2, "Vertex_2" ) geompy.addToStudy( Vector_1, "Vector_1" ) geompy.addToStudy( Cone_1, "Cone_1" ) geompy.addToStudy( Cylinder_1, "Cylinder_1" ) geompy.addToStudy( Circle_1, "Circle_1" ) geompy.addToStudyInFather( Cone_1, Cone_1_edge_7, "Cone_1:edge_7" ) geompy.addToStudy( Revolution_1, "Revolution_1" ) geompy.addToStudy( Box_1, "Box_1" ) geompy.addToStudy( Torus_1, "Torus_1" ) geompy.addToStudy( Common_1, "Common_1" ) geompy.addToStudy( Cut_1, "Cut_1" ) geompy.addToStudy( Translation_1, "Translation_1" ) geompy.addToStudy( Y, "Y" ) geompy.addToStudy( X, "X" ) geompy.addToStudy( Rotation_1, "Rotation_1" ) geompy.addToStudy( Compound_1, "Compound_1" ) geompy.addToStudy( Fillet_1, "Fillet_1" ) geompy.addToStudy( Vertex_3, "Vertex_3" ) geompy.addToStudy( Vertex_4, "Vertex_4" ) geompy.addToStudy( Vertex_5, "Vertex_5" ) geompy.addToStudy( Vertex_6, "Vertex_6" ) geompy.addToStudy( Edge_1, "Edge_1" ) geompy.addToStudy( Edge_2, "Edge_2" ) geompy.addToStudy( Edge_3, "Edge_3" ) geompy.addToStudy( Edge_4, "Edge_4" ) geompy.addToStudy( Face_1, "Face_1" ) geompy.addToStudy( Edge_5, "Edge_5" ) geompy.addToStudy( Partition_1, "Partition_1" ) ### Store presentation parameters of displayed objects import iparameters ipar = iparameters.IParameters(theStudy.GetModuleParameters("Interface Applicative", "GEOM", 1)) #Set up entries: # set up entry GEOM_11 (Cut_1) parameters ipar.setParameter("GEOM_11", "OCCViewer_0_Visibility", "On") ipar.setParameter("GEOM_11", "OCCViewer_0_DisplayMode", "1") ipar.setParameter("GEOM_11", "OCCViewer_0_Transparency", "0") ipar.setParameter("GEOM_11", "OCCViewer_0_Isos", "1:1") pass
for aSolid in range(0, len(p1_solids)): id_p1_solids.append(geompy.GetSubShapeID( p1, p1_solids[aSolid])) #get the ID of the solid and add it to the array # make groups (solid) g = [] for aGroup in range(0, len(p1_solids)): g.append(geompy.CreateGroup(p1, geompy.ShapeType["SOLID"])) for aGroup in range(0, len(p1_solids)): geompy.AddObject(g[aGroup], id_p1_solids[aGroup]) # add objects in the study id_p1 = geompy.addToStudy(p1, "Part1") for aGroup in range(0, len(p1_solids)): geompy.addToStudyInFather(p1, g[aGroup], 'body{0}'.format(aGroup + 1)) ################################################# ## GROUP (FACE) # Ref : http://docs.salome-platform.org/latest/gui/GEOM/tui_working_with_groups_page.html ################################################# for aSolid in range(0, len(p1_solids)): # Get ID (surface) p1_sufaces = geompy.ExtractShapes(p1_solids[aSolid], geompy.ShapeType["FACE"], False) id_p1_sufaces = [] for aSurface in range(0, len(p1_solids)): id_p1_sufaces.append(geompy.GetSubShapeID(p1, p1_sufaces[aSurface])) # make groups (surface) gf = [] for aGroup in range(0, len(p1_sufaces)):
## Geometry part ## salome.salome_init() geompy.init_geom(salome.myStudy) cooler = geompy.MakeBoxDXDYDZ(30, 20, 70) group = geompy.CreateGroup(cooler, geompy.ShapeType["FACE"]) geompy.addToStudy(cooler, 'cooler') groups = [] counter = 0 for each_face in geompy.SubShapeAllSortedCentres(cooler, geompy.ShapeType["FACE"]): groups.append(geompy.CreateGroup(cooler, geompy.ShapeType["FACE"])) geompy.AddObject(groups[counter], geompy.GetSubShapeID(cooler, each_face)) geompy.addToStudyInFather(cooler, groups[counter], 'face_' + str(counter + 1)) counter += 1 update_screen() ## Mesh part ## smesh.SetCurrentStudy(salome.myStudy) cooler_mesh = smesh.CreateMesh(cooler) #update_screen() for geom_group in groups: mesh_group = cooler_mesh.CreateGroupFromGEOM(SMESH.FACE, geom_group.GetName(), geom_group) update_screen()
geompy.UnionIDs(BORD, [3, 6, 8, 10]) geomObj_1 = geompy.GetSubShape(Plaque, [3]) geompy.addToStudy(O, 'O') geompy.addToStudy(OX, 'OX') geompy.addToStudy(OY, 'OY') geompy.addToStudy(OZ, 'OZ') geompy.addToStudy(Sommet_1, 'Sommet_1') geompy.addToStudy(Sommet_2, 'Sommet_2') geompy.addToStudy(Sommet_3, 'Sommet_3') geompy.addToStudy(Sommet_4, 'Sommet_4') geompy.addToStudy(Ligne_1, 'Ligne_1') geompy.addToStudy(Ligne_2, 'Ligne_2') geompy.addToStudy(Ligne_3, 'Ligne_3') geompy.addToStudy(Ligne_4, 'Ligne_4') geompy.addToStudy(Plaque, 'Plaque') geompy.addToStudyInFather(Plaque, BORD, 'BORD') ### ### SMESH component ### import smesh, SMESH, SALOMEDS smesh.SetCurrentStudy(theStudy) import NETGENPlugin Maillage_1 = smesh.Mesh(Plaque) NETGEN_2D = Maillage_1.Triangle(algo=smesh.NETGEN_1D2D) NETGEN_2D_Parameters = NETGEN_2D.Parameters() NETGEN_2D_Parameters.SetMaxSize(0.1) NETGEN_2D_Parameters.SetSecondOrder(0) NETGEN_2D_Parameters.SetOptimize(1)
geompy.ShapeType["SOLID"], 0, [], 1) geompy.addToStudy(globalsolid, 'globalsolid') #generation des groupes groupe = [] #EDGE #Rien #FACE #infbase groupe de face qui represente le pied de la structure grinfbase = geompy.CreateGroup(globalsolid, geompy.ShapeType["FACE"]) [geomObj_248] = geompy.SubShapeAll(infbase, geompy.ShapeType["FACE"]) geomObj_temp = geompy.GetSame(globalsolid, geomObj_248) tempid = geompy.GetSubShapeID(globalsolid, geomObj_temp) geompy.AddObject(grinfbase, tempid) geompy.addToStudyInFather(globalsolid, grinfbase, "infbase") groupe.append(grinfbase) #faces de contacte hautes touttop = geompy.CreateGroup(globalsolid, geompy.ShapeType["FACE"]) for a in range(0, nsub + 1): for b in range(0, nsub + 1): grtop = geompy.CreateGroup(globalsolid, geompy.ShapeType["FACE"]) [tempgeomObj] = geompy.SubShapeAll(facenodeup[a][b], geompy.ShapeType["FACE"]) geomObj_temp = geompy.GetSame(globalsolid, tempgeomObj) geompy.UnionList(touttop, [geomObj_temp]) geompy.UnionList(grtop, [geomObj_temp]) #legerement plus long que la ligne au dessus #tempid=geompy.GetSubShapeID(globalsolid,geomObj_temp)
geompy.init_geom(theStudy) Box_1 = geompy.MakeBoxDXDYDZ(18, 18, 6) listSubShapeIDs = geompy.SubShapeAllIDs(Box_1, geompy.ShapeType["FACE"]) listSubShapeIDs = geompy.SubShapeAllIDs(Box_1, geompy.ShapeType["FACE"]) listSubShapeIDs = geompy.SubShapeAllIDs(Box_1, geompy.ShapeType["SOLID"]) forc = geompy.CreateGroup(Box_1, geompy.ShapeType["FACE"]) geompy.UnionIDs(forc, [33]) toutface = geompy.CreateGroup(Box_1, geompy.ShapeType["FACE"]) geompy.UnionIDs(toutface, [3, 13, 23, 27, 31, 33]) tout = geompy.CreateGroup(Box_1, geompy.ShapeType["SOLID"]) geompy.UnionIDs(tout, [1]) geomObj_1 = geompy.GetSubShape(Box_1, [3]) geompy.addToStudy( Box_1, 'Box_1' ) geompy.addToStudyInFather( Box_1, forc, 'forc' ) geompy.addToStudyInFather( Box_1, toutface, 'toutface' ) geompy.addToStudyInFather( Box_1, tout, 'tout' ) ### Store presentation parameters of displayed objects import iparameters ipar = iparameters.IParameters(theStudy.GetModuleParameters("Interface Applicative", "GEOM", 1)) #Set up entries: # set up entry GEOM_1 (Box_1) parameters objId = geompy.getObjectID(Box_1) ipar.setParameter(objId, "OCCViewer_0_Visibility", "On") ipar.setParameter(objId, "OCCViewer_0_Color", "1:1:0") # set up entry GEOM_1:1 (forc) parameters objId = geompy.getObjectID(forc) ipar.setParameter(objId, "OCCViewer_0_Visibility", "On")
geompy.addToStudy( O, 'O' ) geompy.addToStudy( OX, 'OX' ) geompy.addToStudy( OY, 'OY' ) geompy.addToStudy( OZ, 'OZ' ) geompy.addToStudy( Sommet_1, 'Sommet_1' ) geompy.addToStudy( Sommet_2, 'Sommet_2' ) geompy.addToStudy( Sommet_3, 'Sommet_3' ) geompy.addToStudy( Sommet_4, 'Sommet_4' ) geompy.addToStudy( Sommet_5, 'Sommet_5' ) geompy.addToStudy( Sommet_6, 'Sommet_6' ) geompy.addToStudy( Ligne_1, 'Ligne_1' ) geompy.addToStudy( Ligne_2, 'Ligne_2' ) geompy.addToStudy( Ligne_3, 'Ligne_3' ) geompy.addToStudy( Ligne_4, 'Ligne_4' ) geompy.addToStudy( Ligne_5, 'Ligne_5' ) geompy.addToStudyInFather( Ligne_1, Ligne_1_vertex_2, 'Ligne_1:vertex_2' ) geompy.addToStudy( Cercle_1, 'Cercle_1' ) geompy.addToStudyInFather( Ligne_5, Ligne_5_vertex_2, 'Ligne_5:vertex_2' ) geompy.addToStudy( Cercle_2, 'Cercle_2' ) geompy.addToStudyInFather( Ligne_4, Ligne_4_vertex_2, 'Ligne_4:vertex_2' ) geompy.addToStudy( Cercle_3, 'Cercle_3' ) geompy.addToStudy( Contour_1, 'Contour_1' ) geompy.addToStudy( Tuyau_3, 'Tuyau_3' ) geompy.addToStudy( Tuyau_1, 'Tuyau_1' ) geompy.addToStudyInFather( Partition_1, Face_7, 'Face_7' ) geompy.addToStudy( Partition_1, 'Partition_1' ) geompy.addToStudyInFather( Partition_2, Face_1, 'Face_1' ) geompy.addToStudyInFather( Partition_2, Face_2, 'Face_2' ) geompy.addToStudy( joint, 'joint' ) geompy.addToStudy( Partition_2, 'Partition_2' ) geompy.addToStudy( Tuyau_2, 'Tuyau_2' )
# definition du point bas pour application de la force listSameIDs = geompy.GetSameIDs(Anneau, geomObj_2) listSameIDs = geompy.GetSameIDs(Anneau, geomObj_3) Bas = geompy.CreateGroup(Anneau, geompy.ShapeType["VERTEX"]) geompy.UnionIDs(Bas, [6]) listSameIDs = geompy.GetSameIDs(Anneau, geomObj_4) geompy.addToStudy( Sommet_1, 'Sommet_1' ) geompy.addToStudy( Sommet_2, 'Sommet_2' ) geompy.addToStudy( Sommet_3, 'Sommet_3' ) geompy.addToStudy( Sommet_4, 'Sommet_4' ) geompy.addToStudy( Arc_1, 'Arc_1' ) geompy.addToStudy( Ligne_1, 'Ligne_1' ) geompy.addToStudy(Anneau, 'Anneau' ) geompy.addToStudyInFather( Anneau, Haut, 'Haut' ) geompy.addToStudyInFather( Anneau, Bas, 'Bas' ) ### Store presentation parameters of displayed objects import iparameters ipar = iparameters.IParameters(theStudy.GetModuleParameters("Interface Applicative", "GEOM", 1)) #Set up entries: # set up entry GEOM_1 (Sommet_1) parameters import smesh, SMESH, SALOMEDS # Definition du maillage smesh.SetCurrentStudy(theStudy) import StdMeshers Maillage_1 = smesh.Mesh(Anneau)
geompy.addToStudy( Sommet_4, 'Sommet_4' ) geompy.addToStudy( Sommet_5, 'Sommet_5' ) geompy.addToStudy( Sommet_6, 'Sommet_6' ) geompy.addToStudy( Ligne_1, 'Ligne_1' ) geompy.addToStudy( Ligne_2, 'Ligne_2' ) geompy.addToStudy( Ligne_3, 'Ligne_3' ) geompy.addToStudy( Ligne_4, 'Ligne_4' ) geompy.addToStudy( Ligne_5, 'Ligne_5' ) geompy.addToStudy( Ligne_6, 'Ligne_6' ) geompy.addToStudy( Ligne_7, 'Ligne_7' ) geompy.addToStudy( Face_1, 'Face_1' ) geompy.addToStudy( Face_2, 'Face_2' ) geompy.addToStudy( Plaque, 'Plaque' ) geompy.addToStudyInFather( Plaque, gauche, 'gauche' ) geompy.addToStudyInFather( Plaque, droite, 'droite' ) geompy.addToStudyInFather( Plaque, Fin, 'Fin' ) geompy.addToStudyInFather( Plaque, centre, 'centre' ) geompy.addToStudyInFather( Plaque, ext, 'ext' ) ### ### SMESH component ### import smesh, SMESH, SALOMEDS smesh.SetCurrentStudy(theStudy) import StdMeshers import NETGENPlugin
geompy.addToStudy(O, 'O') geompy.addToStudy(OX, 'OX') geompy.addToStudy(OY, 'OY') geompy.addToStudy(OZ, 'OZ') geompy.addToStudy(Sommet_1, 'Sommet_1') geompy.addToStudy(Sommet_2, 'Sommet_2') geompy.addToStudy(Sommet_3, 'Sommet_3') geompy.addToStudy(Sommet_4, 'Sommet_4') geompy.addToStudy(Sommet_5, 'Sommet_5') geompy.addToStudy(Sommet_6, 'Sommet_6') geompy.addToStudy(Ligne_1, 'Ligne_1') geompy.addToStudy(Ligne_2, 'Ligne_2') geompy.addToStudy(Ligne_3, 'Ligne_3') geompy.addToStudy(Ligne_4, 'Ligne_4') geompy.addToStudy(Ligne_5, 'Ligne_5') geompy.addToStudyInFather(Ligne_1, Ligne_1_vertex_2, 'Ligne_1:vertex_2') geompy.addToStudy(Cercle_1, 'Cercle_1') geompy.addToStudyInFather(Ligne_5, Ligne_5_vertex_2, 'Ligne_5:vertex_2') geompy.addToStudy(Cercle_2, 'Cercle_2') geompy.addToStudyInFather(Ligne_4, Ligne_4_vertex_2, 'Ligne_4:vertex_2') geompy.addToStudy(Cercle_3, 'Cercle_3') geompy.addToStudy(Contour_1, 'Contour_1') geompy.addToStudy(Tuyau_3, 'Tuyau_3') geompy.addToStudy(Tuyau_1, 'Tuyau_1') geompy.addToStudyInFather(Partition_1, Face_7, 'Face_7') geompy.addToStudy(Partition_1, 'Partition_1') geompy.addToStudyInFather(Partition_2, Face_1, 'Face_1') geompy.addToStudyInFather(Partition_2, Face_2, 'Face_2') geompy.addToStudy(joint, 'joint') geompy.addToStudy(Partition_2, 'Partition_2') geompy.addToStudy(Tuyau_2, 'Tuyau_2')
Encastre = geompy.CreateGroup(Plaque, geompy.ShapeType["EDGE"]) geompy.UnionIDs(Encastre, [9]) geomObj_11 = geompy.CreateGroup(Plaque, geompy.ShapeType["EDGE"]) geompy.UnionIDs(geomObj_11, [3]) listSameIDs = geompy.GetSameIDs(Plaque, geomObj_7) Moment = geompy.CreateGroup(Plaque, geompy.ShapeType["EDGE"]) geompy.UnionIDs(Moment, [10]) listSameIDs = geompy.GetSameIDs(Plaque, geomObj_8) geompy.addToStudy(Centre, 'Centre') geompy.addToStudy(Vertex_droite, 'Vertex_droite') geompy.addToStudy(Vertex_gauche, 'Vertex_gauche') geompy.addToStudy(Arc_1, 'Arc_1') geompy.addToStudy(centre_loin, 'centre_loin') geompy.addToStudy(Line_extrusion, 'Line_extrusion') geompy.addToStudy(Plaque, 'Plaque') geompy.addToStudyInFather(Plaque, Edge_2, 'Edge_2') geompy.addToStudyInFather(Plaque, Edge_3, 'Edge_3') geompy.addToStudyInFather(Plaque, Edge_4, 'Edge_4') geompy.addToStudyInFather(Plaque, Encastre, 'Encastre') geompy.addToStudyInFather(Plaque, Moment, 'Moment') ### Store presentation parameters of displayed objects import iparameters ipar = iparameters.IParameters( theStudy.GetModuleParameters("Interface Applicative", "GEOM", 1)) #Set up entries: ### ### SMESH component ###
Encastre = geompy.CreateGroup(Plaque, geompy.ShapeType["EDGE"]) geompy.UnionIDs(Encastre, [9]) geomObj_11 = geompy.CreateGroup(Plaque, geompy.ShapeType["EDGE"]) geompy.UnionIDs(geomObj_11, [3]) listSameIDs = geompy.GetSameIDs(Plaque, geomObj_7) Moment = geompy.CreateGroup(Plaque, geompy.ShapeType["EDGE"]) geompy.UnionIDs(Moment, [10]) listSameIDs = geompy.GetSameIDs(Plaque, geomObj_8) geompy.addToStudy( Centre, 'Centre' ) geompy.addToStudy( Vertex_droite, 'Vertex_droite' ) geompy.addToStudy( Vertex_gauche, 'Vertex_gauche' ) geompy.addToStudy( Arc_1, 'Arc_1' ) geompy.addToStudy( centre_loin, 'centre_loin' ) geompy.addToStudy( Line_extrusion, 'Line_extrusion' ) geompy.addToStudy( Plaque, 'Plaque' ) geompy.addToStudyInFather( Plaque, Edge_2, 'Edge_2' ) geompy.addToStudyInFather( Plaque, Edge_3, 'Edge_3' ) geompy.addToStudyInFather( Plaque, Edge_4, 'Edge_4' ) geompy.addToStudyInFather( Plaque, Encastre, 'Encastre' ) geompy.addToStudyInFather( Plaque, Moment, 'Moment' ) ### Store presentation parameters of displayed objects import iparameters ipar = iparameters.IParameters(theStudy.GetModuleParameters("Interface Applicative", "GEOM", 1)) #Set up entries: ### ### SMESH component ###
# build 1/4 part_1_4 = geompy.MakeCompound([part_1_8, part_1_8_mirr, comp_blocks_5]) part_1_4 = geompy.MakeGlueFaces(part_1_4, 0.00001) geompy.addToStudy(part_1_4, "part_1_4") # build whole tower from 1/4 tower_whole = geompy.MultiRotate1D(part_1_4, Oz, 4) tower_whole = geompy.MakeGlueFaces(tower_whole, 0.00001) geompy.addToStudy(tower_whole, "tower_whole") # Find two edges to do special discretisation on them # and on their opposite edges, using hypotheses propagation thickness_edge_1 = geompy.GetEdge(tower_whole, pp1, pp2) geompy.addToStudyInFather(tower_whole, thickness_edge_1, "thickness_edge_1") pp0_low = points_5[0][0] pp0_hig = geompy.MakeTranslation(pp0_low, 0, 0, thickness) thickness_edge_2 = geompy.GetEdge(tower_whole, pp0_low, pp0_hig) geompy.addToStudyInFather(tower_whole, thickness_edge_2, "thickness_edge_2") ######################################### # # Tower Mesh # ######################################### import smesh
# Get ID (solid) id_p1_solids = [] #initialize the array for aSolid in range(0,len(p1_solids)): id_p1_solids.append(geompy.GetSubShapeID(p1, p1_solids[aSolid])) #get the ID of the solid and add it to the array # make groups (solid) g = [] for aGroup in range(0,len(p1_solids)): g.append(geompy.CreateGroup(p1, geompy.ShapeType["SOLID"])) for aGroup in range(0,len(p1_solids)): geompy.AddObject(g[aGroup], id_p1_solids[aGroup]) # add objects in the study id_p1 = geompy.addToStudy(p1,"Part1") for aGroup in range(0,len(p1_solids)): geompy.addToStudyInFather(p1, g[aGroup], 'body{0}'.format(aGroup+1) ) ################################################# ## GROUP (FACE) # Ref : http://docs.salome-platform.org/latest/gui/GEOM/tui_working_with_groups_page.html ################################################# for aSolid in range(0,len(p1_solids)): # Get ID (surface) p1_sufaces = geompy.ExtractShapes(p1_solids[aSolid], geompy.ShapeType["FACE"],False) id_p1_sufaces = [] for aSurface in range(0,len(p1_solids)): id_p1_sufaces.append(geompy.GetSubShapeID(p1, p1_sufaces[aSurface])) # make groups (surface) gf = [] for aGroup in range(0,len(p1_sufaces)): gf.append(geompy.CreateGroup(p1, geompy.ShapeType["FACE"]))
geompy.addToStudy( Sommet_2, 'Sommet_2' ) geompy.addToStudy( Sommet_3, 'Sommet_3' ) geompy.addToStudy( Sommet_4, 'Sommet_4' ) geompy.addToStudy( Sommet_5, 'Sommet_5' ) geompy.addToStudy( Sommet_6, 'Sommet_6' ) geompy.addToStudy( Sommet_7, 'Sommet_7' ) geompy.addToStudy( Ligne_1, 'Ligne_1' ) geompy.addToStudy( Ligne_2, 'Ligne_2' ) geompy.addToStudy( Ligne_3, 'Ligne_3' ) geompy.addToStudy( Ligne_4, 'Ligne_4' ) geompy.addToStudy( Ligne_5, 'Ligne_5' ) geompy.addToStudy( Ligne_6, 'Ligne_6' ) geompy.addToStudy( Ligne_7, 'Ligne_7' ) geompy.addToStudy( Ligne_8, 'Ligne_8' ) geompy.addToStudy( Ligne_9, 'Ligne_9' ) geompy.addToStudyInFather( Ligne_1, Ligne_1_vertex_2, 'Ligne_1:vertex_2' ) geompy.addToStudyInFather( Ligne_8, Ligne_8_vertex_3, 'Ligne_8:vertex_3' ) geompy.addToStudy( Ligne_10, 'Ligne_10' ) geompy.addToStudy( Ligne_11, 'Ligne_11' ) geompy.addToStudy( Treillis, 'Treillis' ) ### ### SMESH component ### import smesh, SMESH, SALOMEDS smesh.SetCurrentStudy(theStudy) import StdMeshers Maillage_1 = smesh.Mesh(Treillis) Regular_1D = Maillage_1.Segment()
geompy.addToStudy(Sommet_4, 'Sommet_4') geompy.addToStudy(Sommet_5, 'Sommet_5') geompy.addToStudy(Sommet_6, 'Sommet_6') geompy.addToStudy(Ligne_1, 'Ligne_1') geompy.addToStudy(Ligne_2, 'Ligne_2') geompy.addToStudy(Ligne_3, 'Ligne_3') geompy.addToStudy(Ligne_4, 'Ligne_4') geompy.addToStudy(Ligne_5, 'Ligne_5') geompy.addToStudy(Ligne_6, 'Ligne_6') geompy.addToStudy(Ligne_7, 'Ligne_7') geompy.addToStudy(Face_1, 'Face_1') geompy.addToStudy(Face_2, 'Face_2') geompy.addToStudy(Plaque, 'Plaque') geompy.addToStudyInFather(Plaque, gauche, 'gauche') geompy.addToStudyInFather(Plaque, droite, 'droite') geompy.addToStudyInFather(Plaque, Fin, 'Fin') geompy.addToStudyInFather(Plaque, centre, 'centre') geompy.addToStudyInFather(Plaque, ext, 'ext') ### ### SMESH component ### import smesh, SMESH, SALOMEDS smesh.SetCurrentStudy(theStudy) import StdMeshers import NETGENPlugin
# Finally we have the Gear Wheel geometry gear_wheel = geompy.MakeGlueFaces(compound_5, 1e-05) geompy.addToStudy(gear_wheel, "Gear wheel") # Find two edges to assign on them local hypotheses pp_local_hyp_2 = geompy.MakeTranslation(pp_local_hyp_1, 0, 0, h_thin) pp_local_hyp_3 = geompy.MakeTranslation(pp_local_hyp_2, 0, 0, h_thick) pp_local_hyp_4 = geompy.MakeTranslation(pp_local_hyp_3, 0, 0, h_thin) ee_local_hyp_1 = geompy.GetEdge(gear_wheel, pp_local_hyp_1, pp_local_hyp_2) ee_local_hyp_2 = geompy.GetEdge(gear_wheel, pp_local_hyp_3, pp_local_hyp_4) geompy.addToStudyInFather(gear_wheel, ee_local_hyp_1, "ee_local_hyp_1") geompy.addToStudyInFather(gear_wheel, ee_local_hyp_2, "ee_local_hyp_2") ######################################### # # Gear Wheel Mesh # ######################################### gear_mesh = smesh.Mesh(gear_wheel) # Assign hypotheses and algorithms algo1D = gear_mesh.Segment() algo1D.NumberOfSegments(mesh_nb_segments) gear_mesh.Quadrangle() gear_mesh.Hexahedron()
geompy.addToStudy( Extrusion_1, 'Extrusion_1' ) geompy.addToStudy( Cercle_2, 'Cercle_2' ) geompy.addToStudy( Ligne_3, 'Ligne_3' ) geompy.addToStudy( Ligne_4, 'Ligne_4' ) geompy.addToStudy( Ligne_5, 'Ligne_5' ) geompy.addToStudy( Ligne_6, 'Ligne_6' ) geompy.addToStudy( Ligne_7, 'Ligne_7' ) geompy.addToStudy( Ligne_8, 'Ligne_8' ) geompy.addToStudy( Ligne_9, 'Ligne_9' ) geompy.addToStudy( Ligne_10, 'Ligne_10' ) geompy.addToStudy( Face_1, 'Face_1' ) geompy.addToStudy( Face_15, 'Face_15' ) geompy.addToStudy( Face_16, 'Face_16' ) geompy.addToStudy( Partition_1, 'Partition_1' ) geompy.addToStudy( Partition_2, 'Partition_2' ) geompy.addToStudyInFather( Partition_1, Face_3, 'Face_3' ) geompy.addToStudyInFather( Partition_2, Face_2, 'Face_2' ) geompy.addToStudyInFather( Partition_2, Face_4, 'Face_4' ) geompy.addToStudyInFather( Partition_2, Face_7, 'Face_7' ) geompy.addToStudy( Partition_3, 'Partition_3' ) geompy.addToStudyInFather( Partition_3, Face_5, 'Face_5' ) geompy.addToStudy( Virole, 'Virole' ) geompy.addToStudyInFather( Partition_3, Face_8, 'Face_8' ) geompy.addToStudy( Fonds, 'Fonds' ) geompy.addToStudy( Piquage, 'Piquage' ) geompy.addToStudy( Supports, 'Supports' ) geompy.addToStudy( ViroleS, 'ViroleS' ) geompy.addToStudy( Bidon, 'Bidon' ) geompy.addToStudyInFather( Bidon, Encastre, 'Encastre' ) geompy.addToStudyInFather( Bidon, Appui, 'Appui' )
geompy.UnionIDs(BORD, [3, 6, 8, 10]) geomObj_1 = geompy.GetSubShape(Plaque, [3]) geompy.addToStudy( O, 'O' ) geompy.addToStudy( OX, 'OX' ) geompy.addToStudy( OY, 'OY' ) geompy.addToStudy( OZ, 'OZ' ) geompy.addToStudy( Sommet_1, 'Sommet_1' ) geompy.addToStudy( Sommet_2, 'Sommet_2' ) geompy.addToStudy( Sommet_3, 'Sommet_3' ) geompy.addToStudy( Sommet_4, 'Sommet_4' ) geompy.addToStudy( Ligne_1, 'Ligne_1' ) geompy.addToStudy( Ligne_2, 'Ligne_2' ) geompy.addToStudy( Ligne_3, 'Ligne_3' ) geompy.addToStudy( Ligne_4, 'Ligne_4' ) geompy.addToStudy( Plaque, 'Plaque' ) geompy.addToStudyInFather( Plaque, BORD, 'BORD' ) ### ### SMESH component ### import smesh, SMESH, SALOMEDS smesh.SetCurrentStudy(theStudy) import NETGENPlugin Maillage_1 = smesh.Mesh(Plaque) NETGEN_2D = Maillage_1.Triangle(algo=smesh.NETGEN_1D2D) NETGEN_2D_Parameters = NETGEN_2D.Parameters() NETGEN_2D_Parameters.SetMaxSize( 0.1 ) NETGEN_2D_Parameters.SetSecondOrder( 0 ) NETGEN_2D_Parameters.SetOptimize( 1 )
# definition du point bas pour application de la force listSameIDs = geompy.GetSameIDs(Anneau, geomObj_2) listSameIDs = geompy.GetSameIDs(Anneau, geomObj_3) Bas = geompy.CreateGroup(Anneau, geompy.ShapeType["VERTEX"]) geompy.UnionIDs(Bas, [6]) listSameIDs = geompy.GetSameIDs(Anneau, geomObj_4) geompy.addToStudy(Sommet_1, 'Sommet_1') geompy.addToStudy(Sommet_2, 'Sommet_2') geompy.addToStudy(Sommet_3, 'Sommet_3') geompy.addToStudy(Sommet_4, 'Sommet_4') geompy.addToStudy(Arc_1, 'Arc_1') geompy.addToStudy(Ligne_1, 'Ligne_1') geompy.addToStudy(Anneau, 'Anneau') geompy.addToStudyInFather(Anneau, Haut, 'Haut') geompy.addToStudyInFather(Anneau, Bas, 'Bas') ### Store presentation parameters of displayed objects import iparameters ipar = iparameters.IParameters( theStudy.GetModuleParameters("Interface Applicative", "GEOM", 1)) #Set up entries: # set up entry GEOM_1 (Sommet_1) parameters import smesh, SMESH, SALOMEDS # Definition du maillage smesh.SetCurrentStudy(theStudy) import StdMeshers Maillage_1 = smesh.Mesh(Anneau)
def injectorFaceGroups (injGeom, aInjLens, aInjRads, aWallS ,aTol): # L1= aInjLens[0] L2= aInjLens[1] L3= aInjLens[2] L4= aInjLens[3] L5= aInjLens[4] L6= aInjLens[5] # R0= aInjRads[0] R1= aInjRads[1] R2= aInjRads[2] R3= aInjRads[3] R4= aInjRads[4] # S = aWallS # RMAX = R0 LSUMM = L1 + L2 + L3 + L4 + L5 + L6 XMIN = -L1 -L2 XMAX = LSUMM + XMIN HALFR2= R2*0.5 # vertex1 = geompy.MakeVertex(0, 0, 0) vertex2 = geompy.MakeVertex(0, 0, 1) vector1 = geompy.MakeVector(vertex1, vertex2) # vertex3 = geompy.MakeVertex(1, 0, 0) vertex4 = geompy.MakeVertex(XMIN, 0, 0) Xvector = geompy.MakeVector(vertex1, vertex3) # symmWalls = faceSelect.SelectFacesWithNormalParallelToVec(injGeom, [vector1], aTol) # # now, remove all faces which are in small quadrangle # selGroup0faces = [] selGroup0faces = geompy.SubShapeAll(symmWalls, geompy.ShapeType["FACE"]) nFaces = len(selGroup0faces) idsToRemove = [] nToRemove=0 for jFace in range(0,nFaces): jFaceCOM = geompy.MakeCDG(selGroup0faces[jFace]) COMCoords = geompy.PointCoordinates(jFaceCOM) jFaceID = geompy.GetSubShapeID(injGeom, selGroup0faces[jFace]) ZCoord = COMCoords[2] Cond = (ZCoord >= aTol) if Cond: idsToRemove.append (jFaceID) nToRemove = nToRemove + 1 print "---" print nToRemove print "---" # for jFace in range(0,nToRemove): geompy.RemoveObject(symmWalls, idsToRemove[jFace]) # id_symmWalls = geompy.addToStudyInFather(injGeom,symmWalls,"symm-walls") # activeInlet = faceSelect.SelectFacesWithCoordinateAndLessRadius(injGeom,XMIN,0,vertex4,R1, aTol) id_activeInlet = geompy.addToStudyInFather(injGeom,activeInlet,"active-inlet") # passiveInlet = faceSelect.SelectFacesWithCoordinateAndGreaterRadius(injGeom,XMIN,0,vertex4,R1+S, aTol) id_passiveInlet = geompy.addToStudyInFather(injGeom,passiveInlet,"passive-inlet") Outlet = faceSelect.SelectFacesWithCOM_OnCoordinate(injGeom, XMAX, 0, aTol) id_Outlet = geompy.addToStudyInFather(injGeom,Outlet,"outlet") # faceGroups = [symmWalls, activeInlet, passiveInlet, Outlet] return faceGroups
OX = geompy.MakeVectorDXDYDZ(1, 0, 0) OY = geompy.MakeVectorDXDYDZ(0, 1, 0) OZ = geompy.MakeVectorDXDYDZ(0, 0, 1) Corps_principal = geompy.ImportSTEP("/home/bordreuil/Enseignement/elementsFiNimes/Examples/3D/G_RepMart/piedRepMart.stp") [Esquisse_1] = geompy.SubShapes(Corps_principal, [56]) geomObj_1 = geompy.MakeMarker(0, 0, 0, 1, 0, 0, 0, 1, 0) geomObj_2 = geompy.MakeMarker(0, 0, 0, 1, 0, 0, 0, 1, 0) Corps_principal_1 = geompy.GetSubShape(Corps_principal, [261]) Esquisse_1 = geompy.MakeSketcherOnPlane("Sketcher:F -0.050000 0.000000:TT 0.050000 0.000000:TT 0.050000 -0.050000:TT -0.050000 -0.050000:WW", Corps_principal_1 ) Enl_vement_extrud__1 = geompy.MakeExtrudedCut(Corps_principal, Esquisse_1, 90, 0) [Appui1] = geompy.SubShapes(Enl_vement_extrud__1, [278]) [Appui2] = geompy.SubShapes(Enl_vement_extrud__1, [309]) [Tige] = geompy.SubShapes(Enl_vement_extrud__1, [349]) geompy.addToStudy( O, 'O' ) geompy.addToStudy( OX, 'OX' ) geompy.addToStudy( OY, 'OY' ) geompy.addToStudy( OZ, 'OZ' ) geompy.addToStudy( Corps_principal, 'Corps principal' ) geompy.addToStudy( Esquisse_1, 'Esquisse_1' ) geompy.addToStudyInFather( Corps_principal, Corps_principal_1, 'Corps principal' ) geompy.addToStudy( Enl_vement_extrud__1, 'Enlèvement_extrudé_1' ) geompy.addToStudyInFather( Enl_vement_extrud__1, Appui1, 'Appui1' ) geompy.addToStudyInFather( Enl_vement_extrud__1, Appui2, 'Appui2' ) geompy.addToStudyInFather( Enl_vement_extrud__1, Tige, 'Tige' ) if salome.sg.hasDesktop(): salome.sg.updateObjBrowser(1)
geompy.addToStudy( globalsolid, 'globalsolid' ) #generation des groupes groupe=[] #EDGE #Rien #FACE #infbase groupe de face qui represente le pied de la structure grinfbase=geompy.CreateGroup(globalsolid,geompy.ShapeType["FACE"]) [geomObj_248] = geompy.SubShapeAll(infbase, geompy.ShapeType["FACE"]) geomObj_temp = geompy.GetSame(globalsolid, geomObj_248) tempid=geompy.GetSubShapeID(globalsolid,geomObj_temp) geompy.AddObject(grinfbase,tempid) geompy.addToStudyInFather( globalsolid, grinfbase, "infbase" ) groupe.append(grinfbase) #faces de contacte hautes touttop = geompy.CreateGroup(globalsolid, geompy.ShapeType["FACE"]) for a in range(0,nsub+1): for b in range(0,nsub+1): grtop=geompy.CreateGroup(globalsolid,geompy.ShapeType["FACE"]) [tempgeomObj] = geompy.SubShapeAll(facenodeup[a][b], geompy.ShapeType["FACE"]) geomObj_temp = geompy.GetSame(globalsolid, tempgeomObj) geompy.UnionList(touttop,[geomObj_temp]) geompy.UnionList(grtop,[geomObj_temp]) #legerement plus long que la ligne au dessus #tempid=geompy.GetSubShapeID(globalsolid,geomObj_temp) #geompy.AddObject(grtop,tempid)
def injectorEdgeGroups (aInjGeom, aInjLens, aInjRads, aWallS ,aTol): # L1= aInjLens[0] L2= aInjLens[1] L3= aInjLens[2] L4= aInjLens[3] L5= aInjLens[4] L6= aInjLens[5] # R0= aInjRads[0] R1= aInjRads[1] R2= aInjRads[2] R3= aInjRads[3] R4= aInjRads[4] # S = aWallS # RMAX = R4 LSUMM = L1 + L2 + L3 + L4 + L5 + L6 X = [-(L1+L2), -L2, 0, L3, L3+L4, L3+L4+L5, L3+L4+L5+L6] Sqrt2By2 = math.sqrt(2.0)/2.0 YL1 = R2 * Sqrt2By2 * 0.5 ZL1 = R2 * Sqrt2By2 * 0.5 YL2 = (R1+S) * Sqrt2By2 ZL2 = (R1+S) * Sqrt2By2 YL2b= (R1) * Sqrt2By2 ZL2b= (R1) * Sqrt2By2 YL3 = (R2+S) * Sqrt2By2 ZL3 = (R2+S) * Sqrt2By2 YL3b= (R2) * Sqrt2By2 ZL3b= (R2) * Sqrt2By2 # v0 = geompy.MakeVertex(X[0], YL1, ZL1) v0a= geompy.MakeVertex(X[0], YL2, ZL2) v0b= geompy.MakeVertex(X[0], YL2b, ZL2b) v1 = geompy.MakeVertex(X[1], YL1, ZL1) v1a= geompy.MakeVertex(X[1], YL2, ZL2) v2 = geompy.MakeVertex(X[2], YL1, ZL1) v2a= geompy.MakeVertex(X[2], YL3, ZL3) v2b= geompy.MakeVertex(X[2], YL3b, ZL3b) v3 = geompy.MakeVertex(X[3], YL1, ZL1) v4 = geompy.MakeVertex(X[4], YL1, ZL1) v5 = geompy.MakeVertex(X[5], YL1, ZL1) v6 = geompy.MakeVertex(X[6], YL1, ZL1) # Edge_L1 = edgeSelect.EdgeOnEnds (aInjGeom, v0, v1, aTol) Edge_L1a= edgeSelect.EdgeOnEnds (aInjGeom, v0a,v1a,aTol) Edge_L2a= edgeSelect.EdgeOnEnds (aInjGeom, v1a,v2a,aTol) Edge_L2 = edgeSelect.EdgeOnEnds (aInjGeom, v1, v2, aTol) Edge_L3 = edgeSelect.EdgeOnEnds (aInjGeom, v2, v3, aTol) Edge_L4 = edgeSelect.EdgeOnEnds (aInjGeom, v3, v4, aTol) Edge_L5 = edgeSelect.EdgeOnEnds (aInjGeom, v4, v5, aTol) Edge_L6 = edgeSelect.EdgeOnEnds (aInjGeom, v5, v6, aTol) # Edge_L1_Group = geompy.CreateGroup(aInjGeom, geompy.ShapeType["EDGE"]) Edge_L1_ID = geompy.GetSubShapeID(aInjGeom, Edge_L1) geompy.AddObject(Edge_L1_Group, Edge_L1_ID) geompy.addToStudyInFather(aInjGeom,Edge_L1_Group,"LE1") # Edge_L1a_Group = geompy.CreateGroup(aInjGeom, geompy.ShapeType["EDGE"]) Edge_L1a_ID = geompy.GetSubShapeID(aInjGeom, Edge_L1a) geompy.AddObject(Edge_L1a_Group, Edge_L1a_ID) geompy.addToStudyInFather(aInjGeom,Edge_L1a_Group,"LE1a") # Edge_L2_Group = geompy.CreateGroup(aInjGeom, geompy.ShapeType["EDGE"]) Edge_L2_ID = geompy.GetSubShapeID(aInjGeom, Edge_L2) geompy.AddObject(Edge_L2_Group, Edge_L2_ID) geompy.addToStudyInFather(aInjGeom,Edge_L2_Group,"LE2") # Edge_L2a_Group = geompy.CreateGroup(aInjGeom, geompy.ShapeType["EDGE"]) Edge_L2a_ID = geompy.GetSubShapeID(aInjGeom, Edge_L2a) geompy.AddObject(Edge_L2a_Group, Edge_L2a_ID) geompy.addToStudyInFather(aInjGeom,Edge_L2a_Group,"LE2a") # Edge_L3_Group = geompy.CreateGroup(aInjGeom, geompy.ShapeType["EDGE"]) Edge_L3_ID = geompy.GetSubShapeID(aInjGeom, Edge_L3) geompy.AddObject(Edge_L3_Group, Edge_L3_ID) geompy.addToStudyInFather(aInjGeom,Edge_L3_Group,"LE3") # Edge_L4_Group = geompy.CreateGroup(aInjGeom, geompy.ShapeType["EDGE"]) Edge_L4_ID = geompy.GetSubShapeID(aInjGeom, Edge_L4) geompy.AddObject(Edge_L4_Group, Edge_L4_ID) geompy.addToStudyInFather(aInjGeom,Edge_L4_Group,"LE4") # Edge_L5_Group = geompy.CreateGroup(aInjGeom, geompy.ShapeType["EDGE"]) Edge_L5_ID = geompy.GetSubShapeID(aInjGeom, Edge_L5) geompy.AddObject(Edge_L5_Group, Edge_L5_ID) geompy.addToStudyInFather(aInjGeom,Edge_L5_Group,"LE5") # Edge_L6_Group = geompy.CreateGroup(aInjGeom, geompy.ShapeType["EDGE"]) Edge_L6_ID = geompy.GetSubShapeID(aInjGeom, Edge_L6) geompy.AddObject(Edge_L6_Group, Edge_L6_ID) geompy.addToStudyInFather(aInjGeom,Edge_L6_Group,"LE6") # YL5 = R2 * 0.5 ZL5 = 0.0 YL6 = -R2 * 0.5 ZL6 = 0.0 YL7 = YL5 * Sqrt2By2 ZL7 = YL7 YL8 = YL6 * Sqrt2By2 ZL8 = YL7 # v7 = geompy.MakeVertex(X[0], YL5, ZL5) v8 = geompy.MakeVertex(X[0], YL7, ZL7) v9 = geompy.MakeVertex(X[0], YL6, ZL6) v10 = geompy.MakeVertex(X[0], YL8, ZL8) # Edge_A11 = edgeSelect.EdgeOnEnds (aInjGeom, v7, v8, aTol) Edge_A12 = edgeSelect.EdgeOnEnds (aInjGeom, v9, v10, aTol) Edge_A2 = edgeSelect.EdgeOnEnds (aInjGeom, v8, v10, aTol) # Edge_A1_Group = geompy.CreateGroup(aInjGeom, geompy.ShapeType["EDGE"]) Edge_A11_ID = geompy.GetSubShapeID(aInjGeom, Edge_A11) Edge_A12_ID = geompy.GetSubShapeID(aInjGeom, Edge_A12) geompy.AddObject(Edge_A1_Group, Edge_A11_ID) geompy.AddObject(Edge_A1_Group, Edge_A12_ID) geompy.addToStudyInFather(aInjGeom,Edge_A1_Group,"AE1") # Edge_A2_Group = geompy.CreateGroup(aInjGeom, geompy.ShapeType["EDGE"]) Edge_A2_ID = geompy.GetSubShapeID(aInjGeom, Edge_A2) geompy.AddObject(Edge_A2_Group, Edge_A2_ID) geompy.addToStudyInFather(aInjGeom,Edge_A2_Group,"AE2") # Edge_R1 = edgeSelect.EdgeOnEnds (aInjGeom, v8, v0b, aTol) Edge_R2 = edgeSelect.EdgeOnEnds (aInjGeom, v2a,v2b,aTol) # Edge_R1_Group = geompy.CreateGroup(aInjGeom, geompy.ShapeType["EDGE"]) Edge_R1_ID = geompy.GetSubShapeID(aInjGeom, Edge_R1) geompy.AddObject(Edge_R1_Group, Edge_R1_ID) geompy.addToStudyInFather(aInjGeom,Edge_R1_Group,"RE1") # Edge_R2_Group = geompy.CreateGroup(aInjGeom, geompy.ShapeType["EDGE"]) Edge_R2_ID = geompy.GetSubShapeID(aInjGeom, Edge_R2) geompy.AddObject(Edge_R2_Group, Edge_R2_ID) geompy.addToStudyInFather(aInjGeom,Edge_R2_Group,"RE2") # subMeshEdges = [Edge_L1_Group, Edge_L1a_Group, Edge_L2_Group, Edge_L2a_Group, Edge_L3_Group, Edge_L4_Group, Edge_L5_Group, Edge_L6_Group, Edge_A1_Group, Edge_A2_Group, Edge_R1_Group, Edge_R2_Group] return subMeshEdges