Beispiel #1
0
    def __generation_salomesubsurface(self, liste):
        lpsalo = []
        #print 'liste',liste
        for a in liste[0]:
            lpsalo.append(geompy.MakeVertex(a[0], a[1], 0))

        llsalo = []
        for i in range(0, len(liste[1]) - 1):

            if liste[1][i][0] == 'l':
                ligne = geompy.MakeLineTwoPnt(lpsalo[i], lpsalo[i + 1])
            elif liste[1][i][0] == 'c':
                ligne = geompy.MakeArcCenter(
                    geompy.MakeVertex(liste[1][i][1][0], liste[1][i][1][1], 0),
                    lpsalo[i], lpsalo[i + 1], 0)
            else:
                print "erreur type de ligne non reconue"

            llsalo.append(ligne)
        if liste[1][len(lpsalo) - 1][0] == 'l':
            ligne = geompy.MakeLineTwoPnt(lpsalo[len(lpsalo) - 1], lpsalo[0])
        elif liste[1][len(lpsalo) - 1][0] == 'c':
            ligne = geompy.MakeArcCenter(
                geompy.MakeVertex(liste[1][len(lpsalo) - 1][1][0],
                                  liste[1][len(lpsalo) - 1][1][1], 0),
                lpsalo[len(lpsalo) - 1], lpsalo[0], 0)
        else:
            print "erreur type de ligne non reconue"

        #dist=math.sqrt((liste[0][len(liste[1])-1][0]-liste[0][0][0])**2+(liste[0][len(liste[1])-1][1]-liste[0][0][1])**2)
        #ligne.Transfinite(int(dist/dcar))
        llsalo.append(ligne)

        return llsalo
Beispiel #2
0
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"
Beispiel #3
0
z_7 = 0.

# Definition des points
Sommet_1 = geompy.MakeVertex(x_0, y_0, 0.)
Sommet_2 = geompy.MakeVertex(x_1, y_1, 0.)
Sommet_3 = geompy.MakeVertex(x_2, y_2, 0.)
Sommet_4 = geompy.MakeVertex(x_3, y_3, 0.)
Sommet_5 = geompy.MakeVertex(x_4, y_4, z_4)
Sommet_6 = geompy.MakeVertex(x_4, y_4, -z_4)
Sommet_7 = geompy.MakeVertex(x_5, y_5, z_5)
Sommet_8 = geompy.MakeVertex(x_5, y_5, -z_5)
Sommet_9 = geompy.MakeVertex(x_6, y_6, z_6)
Sommet_10 = geompy.MakeVertex(x_6, y_6, -z_6)
Sommet_11 = geompy.MakeVertex(x_7, y_7, z_7)

Direction = geompy.MakeLineTwoPnt(Sommet_1, Sommet_2)
Barre_sup = geompy.MakeLineTwoPnt(Sommet_1, Sommet_3)
Barre_inf = geompy.MakeLineTwoPnt(Sommet_2, Sommet_4)
Barre_selle = geompy.MakeLineTwoPnt(Sommet_3, Sommet_4)
Arriere_bas_1 = geompy.MakeLineTwoPnt(Sommet_4, Sommet_5)
Arriere_bas_2 = geompy.MakeLineTwoPnt(Sommet_4, Sommet_6)
Arriere_bas_3 = geompy.MakeLineTwoPnt(Sommet_6, Sommet_10)
Arriere_bas_4 = geompy.MakeLineTwoPnt(Sommet_5, Sommet_9)
Arriere_haut_1 = geompy.MakeLineTwoPnt(Sommet_3, Sommet_7)
Arriere_haut_2 = geompy.MakeLineTwoPnt(Sommet_3, Sommet_8)
Arriere_haut_3 = geompy.MakeLineTwoPnt(Sommet_8, Sommet_10)
Arriere_haut_4 = geompy.MakeLineTwoPnt(Sommet_7, Sommet_9)

Renfort = geompy.MakeLineTwoPnt(Sommet_7, Sommet_8)

Fourche = geompy.MakeLineTwoPnt(Sommet_2, Sommet_11)

geompy.init_geom(theStudy)

O = geompy.MakeVertex(0, 0, 0)
OX = geompy.MakeVectorDXDYDZ(1, 0, 0)
OY = geompy.MakeVectorDXDYDZ(0, 1, 0)
OZ = geompy.MakeVectorDXDYDZ(0, 0, 1)
Sommet_1 = geompy.MakeVertex(0, 0, 0)
Sommet_2 = geompy.MakeVertex(2000, 0, 0)
Sommet_3 = geompy.MakeVertex(4000, 0, 0)
Sommet_4 = geompy.MakeVertex(6000, 0, 0)
Sommet_5 = geompy.MakeVertex(1000, 1500, 0)
Sommet_6 = geompy.MakeVertex(3000, 1500, 0)
Sommet_7 = geompy.MakeVertex(5000, 1500, 0)
Ligne_1 = geompy.MakeLineTwoPnt(Sommet_1, Sommet_2)
Ligne_2 = geompy.MakeLineTwoPnt(Sommet_2, Sommet_3)
Ligne_3 = geompy.MakeLineTwoPnt(Sommet_3, Sommet_4)
Ligne_4 = geompy.MakeLineTwoPnt(Sommet_4, Sommet_7)
Ligne_5 = geompy.MakeLineTwoPnt(Sommet_7, Sommet_3)
Ligne_6 = geompy.MakeLineTwoPnt(Sommet_3, Sommet_6)
Ligne_7 = geompy.MakeLineTwoPnt(Sommet_6, Sommet_2)
Ligne_8 = geompy.MakeLineTwoPnt(Sommet_2, Sommet_5)
Ligne_1_vertex_2 = geompy.GetSubShape(Ligne_1, [2])
Ligne_9 = geompy.MakeLineTwoPnt(Sommet_5, Ligne_1_vertex_2)
Ligne_8_vertex_3 = geompy.GetSubShape(Ligne_8, [3])
Ligne_10 = geompy.MakeLineTwoPnt(Ligne_8_vertex_3, Sommet_6)
Ligne_11 = geompy.MakeLineTwoPnt(Sommet_6, Sommet_7)
Treillis = geompy.MakeCompound([Ligne_1, Ligne_2, Ligne_3, Ligne_4, Ligne_5, Ligne_6, Ligne_7, Ligne_8, Ligne_9, Ligne_10, Ligne_11])
listSubShapeIDs = geompy.SubShapeAllIDs(Treillis, geompy.ShapeType["SHAPE"])
geomObj_1 = geompy.GetSubShape(Treillis, [2])
import GEOM
import geompy
import math
import SALOMEDS


geompy.init_geom(theStudy)

O = geompy.MakeVertex(0, 0, 0)
OX = geompy.MakeVectorDXDYDZ(1, 0, 0)
OY = geompy.MakeVectorDXDYDZ(0, 1, 0)
OZ = geompy.MakeVectorDXDYDZ(0, 0, 1)
Sommet_1 = geompy.MakeVertex(0, 0, 0)
Sommet_2 = geompy.MakeVertex(0, 1, 0)
Ligne_1 = geompy.MakeLineTwoPnt(Sommet_1, Sommet_2)
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( Ligne_1, 'Ligne_1' )

###
### SMESH component
###

import smesh, SMESH, SALOMEDS

smesh.SetCurrentStudy(theStudy)
Beispiel #6
0
OZ = geompy.MakeVectorDXDYDZ(0, 0, 1)
O_1 = geompy.MakeVertex(0, 0, 0)
OX_1 = geompy.MakeVectorDXDYDZ(1, 0, 0)
OY_1 = geompy.MakeVectorDXDYDZ(0, 1, 0)
OZ_1 = geompy.MakeVectorDXDYDZ(0, 0, 1)
Distance = 2000.
Sommet_1 = geompy.MakeVertex(0, 0, 0)
Sommet_2 = geompy.MakeVertex(2000, 0, 0)
Sommet_3 = geompy.MakeVertex(4000, 0, 0)
Sommet_4 = geompy.MakeVertex(6000, 0, 0)
Sommet_5 = geompy.MakeVertex(7000, 0, 0)
Sommet_6 = geompy.MakeVertex(8000, 0, 0)
Sommet_7 = geompy.MakeVertex(6000, 500, 0)
Sommet_8 = geompy.MakeVertex(4000, 1000, 0)
Sommet_9 = geompy.MakeVertex(2000, 500, 0)
Ligne_1 = geompy.MakeLineTwoPnt(Sommet_1, Sommet_2)
Ligne_2 = geompy.MakeLineTwoPnt(Sommet_2, Sommet_3)
Ligne_3 = geompy.MakeLineTwoPnt(Sommet_3, Sommet_4)
Ligne_4 = geompy.MakeLineTwoPnt(Sommet_4, Sommet_5)
Ligne_5 = geompy.MakeLineTwoPnt(Sommet_5, Sommet_6)
Ligne_6 = geompy.MakeLineTwoPnt(Sommet_6, Sommet_7)
Ligne_7 = geompy.MakeLineTwoPnt(Sommet_7, Sommet_8)
Ligne_8 = geompy.MakeLineTwoPnt(Sommet_8, Sommet_9)
Ligne_9 = geompy.MakeLineTwoPnt(Sommet_9, Sommet_1)
Ligne_10 = geompy.MakeLineTwoPnt(Sommet_2, Sommet_9)
Ligne_11 = geompy.MakeLineTwoPnt(Sommet_8, Sommet_3)
Ligne_12 = geompy.MakeLineTwoPnt(Sommet_7, Sommet_4)
Assemblage_1 = geompy.MakeCompound([
    Ligne_1, Ligne_2, Ligne_3, Ligne_4, Ligne_5, Ligne_6, Ligne_7, Ligne_8,
    Ligne_9, Ligne_10, Ligne_11, Ligne_12
])
Sommet_2 = geompy.MakeVertex(Rayon, 0., 0.)
Sommet_3 = geompy.MakeVertex(Rtrou, 0., 0.)
Sommet_4 = geompy.MakeVertex(0., Rtrou, 0.)
Sommet_5 = geompy.MakeVertex(-Rtrou, 0., 0.)
Sommet_6 = geompy.MakeVertex(0., -Rtrou, 0.)
Sommet_7 = geompy.MakeVertex(Lhaut, 200., 0.)
Sommet_8 = geompy.MakeVertex(0., 200., 0.)
Sommet_9 = geompy.MakeVertex(0., 200. + Rgorge, 0.)
Sommet_10 = geompy.MakeVertex(0., 200. + 2. * Rgorge, 0.)
Sommet_11 = geompy.MakeVertex(Lhaut, 200. + 2 * Rgorge, 0.)
Sommet_12 = geompy.MakeVertex(-Lhaut, 200. + 2 * Rgorge, 0.)
Sommet_13 = geompy.MakeVertex(-Rayon, 0., 0.)
Sommet_14 = geompy.MakeVertex(0., -Rayon, 0.)
Sommet_15 = geompy.MakeVertex(-Rgorge, 200. + Rgorge, 0.)
Sommet_16 = geompy.MakeVertex(0., 200. + 2. * Rgorge + Lhaut, 0.)
Ligne_1 = geompy.MakeLineTwoPnt(Sommet_2, Sommet_7)
Ligne_2 = geompy.MakeLineTwoPnt(Sommet_7, Sommet_8)
Ligne_3 = geompy.MakeLineTwoPnt(Sommet_10, Sommet_11)
Ligne_4 = geompy.MakeLineTwoPnt(Sommet_12, Sommet_13)

Arc_1 = geompy.MakeArcCenter(Sommet_9, Sommet_8, Sommet_15, False)
Arc_2 = geompy.MakeArcCenter(Sommet_9, Sommet_15, Sommet_10, False)
Arc_3 = geompy.MakeArcCenter(Sommet_10, Sommet_11, Sommet_16, False)
Arc_4 = geompy.MakeArcCenter(Sommet_10, Sommet_16, Sommet_12, False)
Arc_5 = geompy.MakeArcCenter(Sommet_1, Sommet_3, Sommet_4, False)
Arc_6 = geompy.MakeArcCenter(Sommet_1, Sommet_4, Sommet_5, False)
Arc_7 = geompy.MakeArcCenter(Sommet_1, Sommet_5, Sommet_6, False)
Arc_8 = geompy.MakeArcCenter(Sommet_1, Sommet_6, Sommet_3, False)
Arc_9 = geompy.MakeArcCenter(Sommet_1, Sommet_13, Sommet_14, False)
Arc_10 = geompy.MakeArcCenter(Sommet_1, Sommet_14, Sommet_2, False)
Beispiel #8
0
Sommet_7  = geompy.MakeVertex(Lx+Rb, 0, 0)
Sommet_8  = geompy.MakeVertex(-(Lx+Rb), 0, 0)

Sommet_9  = geompy.MakeVertex(-Xber, -Rb+dBer, -Lber/2.)
Sommet_10 = geompy.MakeVertex(-Xber, -Rb+dBer, Lber/2.)
Sommet_11 = geompy.MakeVertex(-Xber, -Rb-dBer, Lber/2.)
Sommet_12 = geompy.MakeVertex(-Xber, -Rb-dBer, -Lber/2.)

Sommet_13  = geompy.MakeVertex(Xber, -Rb+dBer, -Lber/2.)
Sommet_14 = geompy.MakeVertex(Xber, -Rb+dBer, Lber/2.)
Sommet_15 = geompy.MakeVertex(Xber, -Rb-dBer, Lber/2.)
Sommet_16 = geompy.MakeVertex(Xber, -Rb-dBer, -Lber/2.)

# Creation de la forme de revolution
Ligne_1 = geompy.MakeLineTwoPnt(Sommet_2, Sommet_3)
Arc_1 = geompy.MakeArcCenter(Sommet_1, Sommet_8, Sommet_2,False)
Arc_2 = geompy.MakeArcCenter(Sommet_4, Sommet_3, Sommet_7,False)
profil = geompy.MakeWire([Ligne_1, Arc_1, Arc_2], 1e-07)
R_volution_1 = geompy.MakeRevolution(profil, OX, 360*math.pi/180.0)

# Creation de la geometrie du piquage
Ligne_2 = geompy.MakeLineTwoPnt(Sommet_6, Sommet_5)
Cercle_1 = geompy.MakeCircle(Sommet_6, Ligne_2, Rp)
Extrusion_1 = geompy.MakePrismVecH(Cercle_1, Ligne_2, 100)
Cercle_2 = geompy.MakeCircle(Sommet_6, Ligne_2, Rbri)


Ligne_3 = geompy.MakeLineTwoPnt(Sommet_9, Sommet_10)
Ligne_4 = geompy.MakeLineTwoPnt(Sommet_10, Sommet_11)
Ligne_5 = geompy.MakeLineTwoPnt(Sommet_11, Sommet_12)
Beispiel #9
0
    def getnodebyintersection(shape,
                              porigine,
                              vect,
                              default=(0, 0, 0),
                              extend=10,
                              tolerance=0.1):
        p0 = geompy.MakeVertex(porigine[0] + extend * vect[0],
                               porigine[1] + extend * vect[1],
                               porigine[2] + extend * vect[2])
        p1 = geompy.MakeVertex(porigine[0] - extend * vect[0],
                               porigine[1] - extend * vect[1],
                               porigine[2] - extend * vect[2])
        line = geompy.MakeLineTwoPnt(p0, p1)
        partition = geompy.MakeHalfPartition(line, shape)

        # recherche du point de la partition par difference avec les premiers points
        #remplir les localisation des points
        subnew = geompy.SubShapeAllSorted(partition,
                                          geompy.ShapeType["VERTEX"])
        subnewp = []
        for a in subnew:
            subnewp.append(geompy.PointCoordinates(a))
        subold = geompy.SubShapeAllSorted(line, geompy.ShapeType["VERTEX"])
        #recuperarion des deux extremite existante de la ligne
        suboldp = []
        for a in subold:
            suboldp.append(geompy.PointCoordinates(a))

        #    #affichage pour debug
        #gg = salome.ImportComponentGUI("GEOM")
        #id_partition= geompy.addToStudy(partition,"Partitionfun")
        #gg.createAndDisplayGO(id_partition)
        #id_line= geompy.addToStudy(line,"linefun")
        #gg.createAndDisplayGO(id_line)
        #gg.setDisplayMode(id_partition,1)
        #
        #print subnewp
        #print suboldp

        if (len(subnew) == len(subold)):
            print "default", default
            return default
        else:
            couple = []
            for i in range(0, len(subold)):
                oldpts = suboldp[i]
                ii = 0
                poursuite = True
                while (ii < len(subnew) and poursuite):
                    newpts = subnewp[ii]
                    if not (ii in couple):
                        #print "i",i,"ii",ii
                        #print "match",newpts,oldpts
                        #print "test",abs(oldpts[0]-newpts[0])+abs(oldpts[1]-newpts[1])+abs(oldpts[2]-newpts[2])
                        if (abs(oldpts[0] - newpts[0]) +
                                abs(oldpts[1] - newpts[1]) +
                                abs(oldpts[2] - newpts[2]) < tolerance):
                            #print "match",newpts,oldpts
                            poursuite = False
                            couple.append(ii)
                    ii += 1
            for i in range(0, len(subnew)):
                if (not (i in couple)):
                    #print "subnewp[i]",subnewp[i]
                    return subnewp[i]
        print "default", default
        return default
nPts = len(x)
x = append(x, max(a * 200, 3600))
y = append(y, 0)
nPts = nPts + 1

ptList = []
print "Creating %s points" % nPts
for i in range(nPts):
    v = geompy.MakeVertex(x[i], 0, y[i])
    geompy.addToStudy(v, "Vertex_%d" % (i + 1))
    ptList.append(v)
print str([i, x[i], y[i], 0])

print "creating polyLine"
polyline = geompy.MakePolyline(ptList)
#interpol = geompy.MakeInterpol(ptList)
geompy.addToStudy(polyline, "polyline")
#geompy.addToStudy(interpol, "interpol" )

print "creating revolution"
Vertex_a = geompy.MakeVertex(0, 0, 0)
Vertex_b = geompy.MakeVertex(0, 0, H)
Line_1 = geompy.MakeLineTwoPnt(Vertex_a, Vertex_b)
Revolution_1 = geompy.MakeRevolution(polyline, Line_1, 360 * math.pi / 180.0)
newName = "Martinez3D_h_" + str(H) + "_AR_" + str(AR)
print "exporting stl"
geompy.Export(Revolution_1, newName + ".stl", "STL_ASCII")
print "saved file name " + newName

geompy.addToStudy(Revolution_1, 'Revolution_1')
Beispiel #11
0
## Geometry part ##
salome.salome_init()
geompy.init_geom(salome.myStudy)

cyl_rad = 10
cyl_height = 40
box_final_coords = [ 100, 30, 100 ]
points_offset = 35
vectorOY = geompy.MakeVector(geompy.MakeVertex(0,0,0), geompy.MakeVertex(0,100,0))

box = geompy.MakeBoxDXDYDZ(box_final_coords[0], box_final_coords[1],box_final_coords[2])
box = geompy.MakeRotation(box, vectorOY, 45)
geompy.addToStudy ( box, 'box' )

diagons = [ geompy.MakeLineTwoPnt(geompy.MakeVertex( 0,box_final_coords[1], 0 ), geompy.MakeVertex( box_final_coords[0],box_final_coords[1], box_final_coords[2])), geompy.MakeLineTwoPnt(geompy.MakeVertex( box_final_coords[0], box_final_coords[1], 0 ), geompy.MakeVertex( 0, box_final_coords[1], box_final_coords[2]))]
for counter in range(1,3):
    diagons[counter-1] = geompy.MakeRotation(diagons[counter-1], vectorOY, 45)
    geompy.addToStudy( diagons[counter-1], 'diagon_' + str(counter) )

central_point = geompy.MakeVertexOnLinesIntersection(diagons[0], diagons[1])

points = [ geompy.MakeVertexWithRef(central_point, -points_offset, 0, 0), geompy.MakeVertexWithRef(central_point, points_offset, 0, 0) ]
for each_point,counter in zip(points, range(1,3)):
    geompy.addToStudy ( each_point, 'point_' + str(counter) )

cyls = []
for each_point,counter in zip(points, range(0,2)):
    cyls.append( geompy.MakeCylinder(each_point, vectorOY, cyl_rad, cyl_height) )
    geompy.addToStudy ( cyls[counter], 'Cylinder_' + str(counter + 1) )
Beispiel #12
0
import GEOM
import geompy
import math
import SALOMEDS

geompy.init_geom(theStudy)

Centre = geompy.MakeVertex(0, 0, 0)
Vertex_droite = geompy.MakeVertex(6, 34, 0)
Vertex_gauche = geompy.MakeVertex(-6, 34, 0)
Arc_1 = geompy.MakeArcCenter(Centre, Vertex_droite, Vertex_gauche, False)
[geomObj_1] = geompy.SubShapeAll(Arc_1, geompy.ShapeType["EDGE"])
[geomObj_2] = geompy.SubShapeAll(Arc_1, geompy.ShapeType["EDGE"])
centre_loin = geompy.MakeVertex(0, 0, 42)
Line_extrusion = geompy.MakeLineTwoPnt(centre_loin, Centre)

Plaque = geompy.MakePrismVecH(Arc_1, Line_extrusion, -42)
listSubShapeIDs = geompy.SubShapeAllIDs(Plaque, geompy.ShapeType["EDGE"])
[Edge_1, Edge_2, Edge_3,
 Edge_4] = geompy.ExtractShapes(Plaque, geompy.ShapeType["EDGE"], True)
listSubShapeIDs = geompy.SubShapeAllIDs(Plaque, geompy.ShapeType["EDGE"])
listSubShapeIDs = geompy.SubShapeAllIDs(Plaque, geompy.ShapeType["EDGE"])
listSameIDs = geompy.GetSameIDs(Plaque, geomObj_1)
listSameIDs = geompy.GetSameIDs(Plaque, geomObj_2)

listSubShapeIDs = geompy.SubShapeAllIDs(Plaque, geompy.ShapeType["EDGE"])

[geomObj_3, geomObj_4] = geompy.SubShapeAll(Edge_2, geompy.ShapeType["VERTEX"])
[geomObj_5] = geompy.SubShapeAll(Edge_2, geompy.ShapeType["EDGE"])
[geomObj_6] = geompy.SubShapeAll(Edge_2, geompy.ShapeType["EDGE"])
Beispiel #13
0
import GEOM
import geompy
import math
import SALOMEDS

geompy.init_geom(theStudy)

O = geompy.MakeVertex(0, 0, 0)
OX = geompy.MakeVectorDXDYDZ(1, 0, 0)
OY = geompy.MakeVectorDXDYDZ(0, 1, 0)
OZ = geompy.MakeVectorDXDYDZ(0, 0, 1)
Sommet_1 = geompy.MakeVertex(0, 0, 0)
Sommet_2 = geompy.MakeVertex(1, 0, 0)
Sommet_3 = geompy.MakeVertex(1, 1, 0)
Sommet_4 = geompy.MakeVertex(0, 1, 0)
Ligne_1 = geompy.MakeLineTwoPnt(Sommet_1, Sommet_2)
Ligne_2 = geompy.MakeLineTwoPnt(Sommet_2, Sommet_3)
Ligne_3 = geompy.MakeLineTwoPnt(Sommet_3, Sommet_4)
Ligne_4 = geompy.MakeLineTwoPnt(Sommet_4, Sommet_1)
Plaque = geompy.MakeFaceWires([Ligne_1, Ligne_2, Ligne_3, Ligne_4], 1)
listSubShapeIDs = geompy.SubShapeAllIDs(Plaque, geompy.ShapeType["EDGE"])
BORD = geompy.CreateGroup(Plaque, geompy.ShapeType["EDGE"])
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')
Beispiel #14
0
#  for b in range(0,nsub+1):
#    newlinex=geompy.MakeLineTwoPnt(node[a][b], node[a+1][b])
#    geompy.addToStudy( newlinex, 'lxX%dY%d'%(a,b) )
#    listex.append(newlinex)
#    newliney=geompy.MakeLineTwoPnt(node[b][a], node[b][a+1])
#    geompy.addToStudy( newliney, 'lyX%dY%d'%(a,b) )
#    listey.append(newliney)

#generation des faces de contact
facenodeup = []
for a in range(0, nsub + 1):
    liste = []
    facenodeup.append(liste)
    for b in range(0, nsub + 1):
        newvertex = geompy.MakeTranslation(node[a][b], 0, 0, 1)
        newline = geompy.MakeLineTwoPnt(node[a][b], newvertex)
        newface = geompy.MakeFaceObjHW(newline, phitop, phitop)
        #geompy.addToStudy( newface, 'faceX%dY%d'%(a,b) )
        liste.append(newface)

#generation du grand rectange
V0 = geompy.MakeVertex(0 - phitop / 2., 0 - phitop / 2., 0)
V1 = geompy.MakeVertex(lx + phitop / 2., ly + phitop / 2., h)
Box_1 = geompy.MakeBoxTwoPnt(V0, V1)
#geompy.addToStudy( Box_1, 'Box_1' )

#generation de la face inferieur grand rectange
V0 = geompy.MakeVertex(lx / 2., ly / 2., 0)
V1 = geompy.MakeVertex(lx / 2., ly / 2., h)
newline = geompy.MakeLineTwoPnt(V0, V1)
infbase = geompy.MakeFaceObjHW(newline, phibase, phibase)
Beispiel #15
0
def CreateGEOM(injLens, injRads, injAngs, wallS):
	L1 = injLens[0]
	L2 = injLens[1]
	L3 = injLens[2]
	L4 = injLens[3]
	L5 = injLens[4]
	L6 = injLens[5]
	#
	R0 = injRads[0]
	R1 = injRads[1]
	R2 = injRads[2]
	R3 = injRads[3]
	R4 = injRads[4]
	#
	A1 = injAngs[0]
	#
	S  = wallS
	#
	# Printing input
	#
	LSUMM = L1 + L2 + L3 + L4 + L5 + L6
	DX1= math.tan(A1*math.pi/180.)*L3 + R3 - R0
	#
	print "Input Data"
	print "L1, L2, L3, L4, L5, L6"
	print L1, L2, L3, L4, L5, L6
	print "R0, R1, R2, R3, R4"
	print R0, R1, R2, R3, R4
	print "A1 = ", A1
	print "S = ", S
	#
	print "Intermediate variables: "
	print "LSUMM = ", LSUMM
	print "DX1 = ", DX1
	#
	#
	#
	#
	oXYZ = geompy.MakeVertex(0, 0, 0)
	xPnt = geompy.MakeVertex(1, 0, 0)
	yPnt = geompy.MakeVertex(0, 1, 0)
	zPnt = geompy.MakeVertex(0, 0, 1)
	oX   = geompy.MakeVector(oXYZ, xPnt)
	oY   = geompy.MakeVector(oXYZ, yPnt)
	oZ   = geompy.MakeVector(oXYZ, zPnt)
	#
	# Inlet and nozzle points and faces
	#
	P000 = geompy.MakeVertexWithRef(oXYZ, -(L1+L2), R1, 0)
	P001 = geompy.MakeVertexWithRef(oXYZ, -L2, R1, 0)
	P002 = geompy.MakeVertexWithRef(oXYZ, -L2, 0, 0)
	P003 = geompy.MakeVertexWithRef(oXYZ, -(L1+L2), 0, 0)
	#
	P004 = geompy.MakeVertexWithRef(oXYZ, 0, R2, 0)
	P005 = geompy.MakeVertexWithRef(oXYZ, 0, 0, 0)
	#
	P006 = geompy.MakeVertexWithRef(P000, 0, S, 0)
	P007 = geompy.MakeVertexWithRef(P006, L1,0, 0)
	P008 = geompy.MakeVertexWithRef(oXYZ, DX1,R0,0)
	P009 = geompy.MakeVertexWithRef(oXYZ, -(L1+L2), R0, 0)
	#
	F000 = geompy.MakeQuad4Vertices(P000, P001, P002, P003)
	F001 = geompy.MakeQuad4Vertices(P001, P002, P005, P004)
	F002 = geompy.MakeQuad4Vertices(P006, P007, P008, P009)
	#
	# Mixing chamber
	#
	P009 = geompy.MakeVertexWithRef(P004, 0, S, 0)
	P010 = geompy.MakeVertexWithRef(P005, L3,0, 0)
	P011 = geompy.MakeVertexWithRef(P010, 0,R3, 0)
	E000 = geompy.MakeLineTwoPnt(P008, P011)
	P012 = geompy.MakeVertexOnCurve(E000,0.9)
	P013 = geompy.MakeVertexWithRef(P010, L4, 0, 0)
	P014 = geompy.MakeVertexWithRef(P013, 0, R3, 0)
	#
	F003 = geompy.MakeQuad4Vertices(P009, P007, P008, P012)
	F004 = geompy.MakeQuad4Vertices(P004, P009, P012, P011)
	F005 = geompy.MakeQuad4Vertices(P004, P005, P010, P011)
	F006 = geompy.MakeQuad4Vertices(P010, P011, P014, P013)
	#
	# Diffusor and out tube
	#
	P015 = geompy.MakeVertexWithRef(P013, L5, 0, 0)
	P016 = geompy.MakeVertexWithRef(P015, 0, R4, 0)
	P017 = geompy.MakeVertexWithRef(P016, L6, 0, 0)
	P018 = geompy.MakeVertexWithRef(P017, 0, -R4,0)
	#
	F007 = geompy.MakeQuad4Vertices(P013, P014, P016, P015)
	F008 = geompy.MakeQuad4Vertices(P015, P016, P017, P018)
	#
	faceComp = geompy.MakeShell([F000, F001, F002, F003, F004, F005, F006, F007, F008])
	# 
	# Solid geomtry
	#
	sBase1 = geompy.MakeRotation(faceComp, oX, 0)
	sBase2 = geompy.MakeRotation(sBase1, oX, 45.*math.pi/180.)
	sBase3 = geompy.MakeRotation(sBase2, oX, 90.*math.pi/180.)
	#
	solid1 = geompy.MakeRevolution(sBase1, oX, 45.*math.pi/180.)
	solid2 = geompy.MakeRevolution(sBase2, oX, 90.*math.pi/180.)
	solid3 = geompy.MakeRevolution(sBase3, oX, 45.*math.pi/180.)
	#
	# Cutters
	#
	E002 = geompy.MakeLineTwoPnt(P005, P004)
	E003 = geompy.MakeRotation(E002, oX, 45.*math.pi/180.)
	E004 = geompy.MakeRotation(E003, oX, 90.*math.pi/180.)
	E005 = geompy.MakeRotation(E004, oX, 45.*math.pi/180.)
	P019 = geompy.MakeVertexOnCurve(E002,0.5)
	P020 = geompy.MakeVertexOnCurve(E003,0.5)
	P021 = geompy.MakeVertexOnCurve(E004,0.5)
	P022 = geompy.MakeVertexOnCurve(E005,0.5)
	zmin = geompy.PointCoordinates(oXYZ)[2]
	zmax = geompy.PointCoordinates(P020)[2]
	ymin = geompy.PointCoordinates(P022)[1]
	ymax = geompy.PointCoordinates(P019)[1]
	print "ymin, ymax, zmin, zmax"
	print ymin, ymax, zmin, zmax
	#
	E006 = geompy.MakeLineTwoPnt(P019, P020)
	E007 = geompy.MakeLineTwoPnt(P020, P021)
	E008 = geompy.MakeLineTwoPnt(P021, P022)
	E009 = geompy.MakeLineTwoPnt(P021, P022)
	edgeComp1 = geompy.MakeCompound([E006, E007, E008, E009])
	edgeComp2 = geompy.MakeTranslation(edgeComp1, -(2*L1 + 2*L2), 0, 0)
	cutter1 = geompy.MakePrismVecH(edgeComp2, oX, LSUMM*2)
	#
	# Hexa solid
	#
	solid1_hex_v1 = geompy.MakePartition([solid1], [cutter1], [], [], geompy.ShapeType["SOLID"], 0, [], 0)
	solid2_hex_v1 = geompy.MakePartition([solid2], [cutter1], [], [], geompy.ShapeType["SOLID"], 0, [], 0)
	solid3_hex_v1 = geompy.MakePartition([solid3], [cutter1], [], [], geompy.ShapeType["SOLID"], 0, [], 0)
	dom_v1 = geompy.MakeCompound([solid1_hex_v1, solid2_hex_v1, solid3_hex_v1])
	hsolids1 = geompy.SubShapeAll(dom_v1, geompy.ShapeType["SOLID"])
	nSolids = len(hsolids1)
	hsolids2 = []
	for jSolid in xrange(0,nSolids):
		solidCDG = geompy.MakeCDG(hsolids1[jSolid])
		coordCDG = geompy.PointCoordinates(solidCDG)
		ys = coordCDG[1]
		zs = coordCDG[2]
		zOk = (zs >= zmin) * (zs <= zmax)
		yOk = (ys >= ymin) * (ys <= ymax)
		if not(zOk and yOk):
			hsolids2.append(hsolids1[jSolid])
	
	# Creasting hexahedrons near the center
	sBase4 = geompy.MakeQuad4Vertices(P019, P020, P021, P022)
	sBase5 = geompy.MakeTranslation(sBase4, -(L1 + L2), 0, 0)
	hsolids2.append(geompy.MakePrismVecH(sBase5, oX, L1))
	sBase6 = geompy.MakeTranslation(sBase5, L1, 0, 0)
	hsolids2.append(geompy.MakePrismVecH(sBase6, oX, L2))
	sBase7 = geompy.MakeTranslation(sBase6, L2, 0, 0)
	hsolids2.append(geompy.MakePrismVecH(sBase7, oX, L3))
	sBase8 = geompy.MakeTranslation(sBase7, L3, 0, 0)
	hsolids2.append(geompy.MakePrismVecH(sBase8, oX, L4))
	sBase9 = geompy.MakeTranslation(sBase8, L4, 0, 0)
	hsolids2.append(geompy.MakePrismVecH(sBase9, oX, L5))
	sBase10= geompy.MakeTranslation(sBase9,L5, 0, 0)
	hsolids2.append(geompy.MakePrismVecH(sBase10, oX, L6))
	#
	# Domain 
	#
	dom_v2   = geompy.MakeCompound(hsolids2)
	dom_comp = geompy.MakeGlueFaces(dom_v2,1.0E-6)
	return dom_comp
Beispiel #16
0
lfin = 20.

geompy.init_geom(theStudy)

O = geompy.MakeVertex(0, 0, 0)
OX = geompy.MakeVectorDXDYDZ(1, 0, 0)
OY = geompy.MakeVectorDXDYDZ(0, 1, 0)
OZ = geompy.MakeVectorDXDYDZ(0, 0, 1)
Sommet_1 = geompy.MakeVertex(0, 0, 0)
Sommet_2 = geompy.MakeVertex(Lplq, 0, 0)
Sommet_3 = geompy.MakeVertex(Lplq, lfin, 0)
Sommet_4 = geompy.MakeVertex(Lplq, lplq, 0)
Sommet_5 = geompy.MakeVertex(0, lplq, 0)
Sommet_6 = geompy.MakeVertex(0, lfin, 0)

Ligne_1 = geompy.MakeLineTwoPnt(Sommet_1, Sommet_2)
Ligne_2 = geompy.MakeLineTwoPnt(Sommet_2, Sommet_3)
Ligne_3 = geompy.MakeLineTwoPnt(Sommet_3, Sommet_6)
Ligne_4 = geompy.MakeLineTwoPnt(Sommet_1, Sommet_6)
Ligne_5 = geompy.MakeLineTwoPnt(Sommet_3, Sommet_4)
Ligne_6 = geompy.MakeLineTwoPnt(Sommet_4, Sommet_5)
Ligne_7 = geompy.MakeLineTwoPnt(Sommet_5, Sommet_6)
Face_1 = geompy.MakeFaceWires([Ligne_1, Ligne_2, Ligne_3, Ligne_4], 1)
Face_2 = geompy.MakeFaceWires([Ligne_3, Ligne_5, Ligne_6, Ligne_7], 1)
Plaque = geompy.MakeCompound([Face_1, Face_2])
Sym = geompy.CreateGroup(Plaque, geompy.ShapeType["EDGE"])
geompy.UnionIDs(Sym, [4])
gauche = geompy.CreateGroup(Plaque, geompy.ShapeType["EDGE"])
geompy.UnionIDs(gauche, [7])
droite = geompy.CreateGroup(Plaque, geompy.ShapeType["EDGE"])
geompy.UnionIDs(droite, [11])
    def generateFilmGeometry(self):
        if self.percentageCoverage < 0:
            print "Error: Cannot compute negative coverage percentages!!!"
            raise Exception
        elif self.percentageCoverage < 100:
            theta = (math.pi) * float(self.percentageCoverage / 100)
            zetha = theta / 2 + self.filmOrient[0] - (math.pi) / 2
            gamma = self.filmOrient[0] - theta / 2
            print theta, zetha, gamma
            arc1Pt1 = [
                -math.sin(zetha) * self.radius + self.position[0],
                math.cos(zetha) * self.radius + self.position[1],
                self.position[2]
            ]
            arc1Pt2 = [
                math.sin(gamma) * self.radius + self.position[0],
                math.cos(gamma) * self.radius + self.position[1],
                self.position[2]
            ]

            arc2Pt1 = [
                arc1Pt1[0] - math.sin(zetha) * self.filmThickness,
                arc1Pt1[1] + math.cos(zetha) * self.filmThickness, arc1Pt1[2]
            ]
            arc2Pt2 = [
                arc1Pt2[0] + math.sin(gamma) * self.filmThickness,
                arc1Pt2[1] + math.cos(gamma) * self.filmThickness, arc1Pt2[2]
            ]

            circleCentre = geompy.MakeVertex(self.position[0],
                                             self.position[1],
                                             self.position[2])

            arc1V1 = geompy.MakeVertex(arc1Pt1[0], arc1Pt1[1], arc1Pt1[2])
            arc1V2 = geompy.MakeVertex(arc1Pt2[0], arc1Pt2[1], arc1Pt2[2])

            arc2V1 = geompy.MakeVertex(arc2Pt1[0], arc2Pt1[1], arc2Pt1[2])
            arc2V2 = geompy.MakeVertex(arc2Pt2[0], arc2Pt2[1], arc2Pt2[2])

            print arc1Pt1, arc1Pt2, arc2Pt1, arc2Pt2
            arc1 = geompy.MakeArcCenter(circleCentre, arc1V1, arc1V2)
            arc2 = geompy.MakeArcCenter(circleCentre, arc2V1, arc2V2)

            line1 = geompy.MakeLineTwoPnt(arc1V1, arc2V1)
            line2 = geompy.MakeLineTwoPnt(arc1V2, arc2V2)

            face1 = geompy.MakeFaceWires([arc1, arc2, line1, line2], 1)

            circleVector = geompy.MakeVectorDXDYDZ(self.filmOrient[0],
                                                   self.filmOrient[1],
                                                   self.filmOrient[2])
            circle1 = geompy.MakeCircle(circleCentre, circleVector,
                                        self.radius)

            self.__ionomerPipe = geompy.MakePipe(face1, circle1)
        elif self.percentageCoverage == 100:
            circleCentre = geompy.MakeVertex(self.position[0],
                                             self.position[1],
                                             self.position[2])
            circle1 = geompy.MakeCircle(circleCentre, None, self.radius)
            circle2 = geompy.MakeCircle(circleCentre, None,
                                        self.radius + self.filmThickness)
            face1 = geompy.MakeFaceWires([circle1, circle2], 1)
            vector1 = geompy.MakeVectorDXDYDZ(0, 1, 0)
            circle3 = geompy.MakeCircle(circleCentre, vector1, 1)
            self.__ionomerPipe = geompy.MakePipe(face1, circle3)