Advanced Geometrical Objects

Creation of an Edge

import geompy

import salome

gg = salome.ImportComponentGUI("GEOM")

 

# create vertices

p0   = geompy.MakeVertex(0.  , 0.  , 0.  )

pxyz = geompy.MakeVertex(100., 100., 100.)

 

# create an edge

edge = geompy.MakeEdge(p0, pxyz)

 

# add object in the study

id_edge = geompy.addToStudy(edge,"Edge")

 

# display an edge

gg.createAndDisplayGO(id_edge)

 

Creation of a Wire

import geompy

import salome

gg = salome.ImportComponentGUI("GEOM")

 

# create vertices

px   = geompy.MakeVertex(100., 0.  , 0.  )

py   = geompy.MakeVertex(0.  , 100., 0.  )

pz   = geompy.MakeVertex(0.  , 0.  , 100.)

 

# create a vector from two points

vxy = geompy.MakeVector(px, py)

 

# create an arc from three points

arc = geompy.MakeArc(py, pz, px)

 

# create a wire

wire = geompy.MakeWire([vxy, arc])

 

# add an object in the study

id_wire = geompy.addToStudy(wire,"Wire")

 

# display the wire

gg.createAndDisplayGO(id_wire)

 

Creation of a Face

import salome

salome.salome_init()

 

import geompy

geompy.init_geom(salome.myStudy)

 

Box_1 = geompy.MakeBoxDXDYDZ(200, 200, 200)

geompy.addToStudy(Box_1, "Box_1")

 

edges = geompy.SubShapeAllSorted(Box_1, geompy.ShapeType["EDGE"])

 

Edge_1 = edges[0]

Edge_2 = edges[4]

Edge_3 = edges[5]

Edge_4 = edges[8]

Edge_5 = edges[9]

 

geompy.addToStudyInFather(Box_1, Edge_1, "Edge_1")

geompy.addToStudyInFather(Box_1, Edge_2, "Edge_2")

geompy.addToStudyInFather(Box_1, Edge_3, "Edge_3")

geompy.addToStudyInFather(Box_1, Edge_4, "Edge_4")

geompy.addToStudyInFather(Box_1, Edge_5, "Edge_5")

 

Wire_1 = geompy.MakeWire([Edge_1, Edge_2])

geompy.addToStudy(Wire_1, "Wire_1")

 

Comp_1 = geompy.MakeCompound([Wire_1, Edge_3, Edge_4])

geompy.addToStudy(Comp_1, "Compound_1")

 

salome.sg.updateObjBrowser(1)

 

Face_1 = geompy.MakeFaceWires([Comp_1], True)

geompy.addToStudy(Face_1, "Face_1")

 

Face_2 = geompy.MakeFaceWires([Wire_1, Edge_3, Edge_4], True)

geompy.addToStudy(Face_2, "Face_2")

 

Vertex_1 = geompy.MakeVertex(0, 0, 0)

Vertex_2 = geompy.MakeVertex(0, 210, 0)

Vertex_3 = geompy.MakeVertex(100, 210, 0)

Vertex_4 = geompy.MakeVertex(100, 0, 0)

Vertex_5 = geompy.MakeVertex(140, 105, 0)

Vertex_6 = geompy.MakeVertex(-190, 105, 0)

 

geompy.addToStudy(Vertex_1, "Vertex_1")

geompy.addToStudy(Vertex_2, "Vertex_2")

geompy.addToStudy(Vertex_3, "Vertex_3")

geompy.addToStudy(Vertex_4, "Vertex_4")

geompy.addToStudy(Vertex_5, "Vertex_5")

geompy.addToStudy(Vertex_6, "Vertex_6")

 

Arc_1 = geompy.MakeArc(Vertex_1, Vertex_6, Vertex_2)

Arc_2 = geompy.MakeArc(Vertex_4, Vertex_5, Vertex_3)

 

geompy.addToStudy(Arc_1, "Arc_1")

geompy.addToStudy(Arc_2, "Arc_2")

 

# Fails

Face_3 = geompy.MakeFaceWires([Arc_1, Arc_2], True)

if Face_3 is not None:

    print "Error. Face must not be built from wire with gaps."

 

Translation_1 = geompy.MakeTranslation(Arc_1, 100, 0, 0)

geompy.addToStudy(Translation_1, "Translation_1")

 

Face_3 = geompy.MakeFaceWires([Translation_1, Arc_2], True)

geompy.addToStudy(Face_3, "Face_3")

 

salome.sg.updateObjBrowser(1)

 

Creation of a Shell

import geompy

import salome

gg = salome.ImportComponentGUI("GEOM")

 

#create vertices

p0   = geompy.MakeVertex( 0.,  0.,  0.)

pxyz = geompy.MakeVertex( 5.,  5., 40.)

 

# create sketchers

sketcher1 = geompy.MakeSketcher("Sketcher:F 0 0:TT 70 0:TT 70 70:TT 0 70:WW")

sketcher2 = geompy.MakeSketcher("Sketcher:F 20 20:TT 50 20:TT 50 50:TT 20 50:WW")

isPlanarFace = 1

 

# create a face from two wires

face = geompy.MakeFaces([sketcher1, sketcher2],isPlanarFace)

 

# create a prism

prism = geompy.MakePrism(face, p0, pxyz)

 

# explode the prism into faces

prism_faces = geompy.SubShapeAllSorted(prism, geompy.ShapeType["FACE"])

 

# create a shell from a set of faces

shell = geompy.MakeShell([prism_faces[0], prism_faces[2], prism_faces[3],

                          prism_faces[7], prism_faces[9]])

 

# add objects in the study

id_shell = geompy.addToStudy(shell,"Shell")

 

# display the shell

gg.createAndDisplayGO(id_shell)

gg.setDisplayMode(id_shell,1)

 

Creation of a Solid

import geompy

import salome

gg = salome.ImportComponentGUI("GEOM")

 

#create vertices

p0 = geompy.MakeVertex( 0.,  0.,  0.)

pz = geompy.MakeVertex( 0.,  0., 40.)

 

# create sketchers

sketcher = geompy.MakeSketcher("Sketcher:F -50 -50:TT 100 -50:R 0:C 50 70:R 0:L 100:WW")

 

# create faces from two wires

face = geompy.MakeFace(sketcher,1)

 

# create a prism

prism = geompy.MakePrism(face, p0, pz)

 

# explode the prism into faces

prism_faces = geompy.SubShapeAllSorted(prism, geompy.ShapeType["FACE"])

 

# create a shell from a set of faces

shell = geompy.MakeShell([prism_faces[0], prism_faces[1],

                          prism_faces[3], prism_faces[4],

                          prism_faces[5], prism_faces[2]])

 

# create a solid, bounded by the given shells

solid = geompy.MakeSolid([shell])

 

# add objects in the study

id_solid = geompy.addToStudy(solid,"Solid")

 

# display the solid

gg.createAndDisplayGO(id_solid)

gg.setDisplayMode(id_solid,1)

 

Creation of a Compound

import geompy

import salome

 

gg = salome.ImportComponentGUI("GEOM")

 

# create a vertex and a vector

p1 = geompy.MakeVertex(  -30.,  -30.,  50.)

p2 = geompy.MakeVertex(  -60.,  -60.,  30.)

p3 = geompy.MakeVertex(  -30.,  -30.,  10.)

 

# create an arc from three points

arc = geompy.MakeArc(p1, p2, p3)

ShapeListCompound = []

i = 0

while i <= 3 :

    S = geompy.MakeTranslation(arc, i * 50., 0., 0.)

    ShapeListCompound.append(S)

    i = i + 1

 

# create a compund of the given shapes

compound = geompy.MakeCompound(ShapeListCompound)

 

# add object in the study

id_compound = geompy.addToStudy(compound,"Compound")

 

# display the compound

gg.createAndDisplayGO(id_compound)