Example #1
0
    def charge_et_genere_3d(self, fichier):
        #print marshal.version
        f = open(fichier, 'rb')
        self.section_catalogue = marshal.load(f)
        obj = marshal.load(f)
        f.close()

        formecentre = self.__salome_genere_section_catalogue()

        newvolume = []
        repereglobal = geompy.MakeMarker(0, 0, 0, 1, 0, 0, 0, 1, 0)
        for a in obj:
            ori = geompy.MakeVertex(a[0][0], a[0][1], a[0][2])
            fin = geompy.MakeVertex(a[1][0], a[1][1], a[1][2])
            nouveaurepere = geompy.MakeMarker(a[0][0], a[0][1], a[0][2],
                                              a[2][0], a[2][1], a[2][2],
                                              a[3][0], a[3][1], a[3][2])
            basesurface = geompy.MakePosition(formecentre[a[4]], repereglobal,
                                              nouveaurepere)
            newvolume.append(geompy.MakePrism(basesurface, ori, fin))

        #for k,v in formecentre.iteritems():
        #    geompy.addToStudy(v,k)
        #for v in newvolume:
        #    geompy.addToStudy(v,"Volumique")
        outshape = geompy.MakeCompound(newvolume)
        geompy.addToStudy(outshape, "Volumique")
        #geompy.Export(outshape, "/home/fred/asteretude/kuwait/toto.stp", "STEP")
        salome.sg.updateObjBrowser(1)
Example #2
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
Example #3
0
    def __salome_genere_section_catalogue(self, SANS_RECALAGE=None):
        #print obj
        formecentre = {}
        for k, sec in self.section_catalogue.iteritems():
            #sec=v[4]
            gen = self.generation[sec[0]]
            extl, intl, dcar = gen.gen_lists(sec[1])
            ll = self.__generation_salomesubsurface(extl)
            for a in intl:
                ll.extend(self.__generation_salomesubsurface(a))

            #for v in ll:
            #    geompy.addToStudy(v,k)
            surface = geompy.MakeFaceWires(ll, 1)

            #gestion de la translation
            surfacet = surface
            if (SANS_RECALAGE != "OUI"
                    and (sec[2][15] < -1e-5 or sec[2][15] > 1e-5
                         or sec[2][16] < -1e-5 or sec[2][16] > 1e-5)):
                surfacet = geompy.MakeTranslation(surface, -sec[2][15],
                                                  -sec[2][16], 0)
            surfacetr = surfacet

            #gestion de la rotation
            p0 = geompy.MakeVertex(0, 0, 0)
            p1 = geompy.MakeVertex(0, 0, 1)
            vecteurr = geompy.MakeVector(p0, p1)
            if (SANS_RECALAGE != "OUI"
                    and (sec[2][14] < -1e-5 or sec[2][14] > 1e-5)):
                #print "rotation",-math.pi*sec[2][14]/180.
                surfacetr = geompy.MakeRotation(surfacet, vecteurr,
                                                -sec[2][14])
            formecentre[k] = surfacetr
        return formecentre
    def makeRectanglarMesh(self, dList, width, height):

        if len(dList) < 3:
            dList.append(0)

        Vertex_1 = geompy.MakeVertex(dList[0], dList[1], dList[2])
        Vertex_2 = geompy.MakeVertex(dList[0] + width, dList[1], dList[2])
        Vertex_3 = geompy.MakeVertex(dList[0] + width, dList[1] + height,
                                     dList[2])
        Vertex_4 = geompy.MakeVertex(dList[0], dList[1] + height, dList[2])
        rect = geompy.MakeQuad4Vertices(Vertex_1, Vertex_2, Vertex_3, Vertex_4)
        Mesh_1 = smesh.Mesh(rect)
        Regular_1D = Mesh_1.Segment()
        Local_Length_1 = Regular_1D.LocalLength(self.meshDensity)
        Local_Length_1.SetPrecision(1e-07)
        Mesh_1.Quadrangle()
        Mesh_1.Compute()

        return Mesh_1
Example #5
0
    def charge_et_genere_3d(self, fichier, exportstl=None):
        #print marshal.version

        f = open(fichier, 'rb')
        self.section_catalogue = marshal.load(f)
        obj = marshal.load(f)
        f.close()

        formecentre = self.__salome_genere_section_catalogue()

        newvolume = []
        repereglobal = geompy.MakeMarker(0, 0, 0, 1, 0, 0, 0, 1, 0)
        for a in obj:
            #impression du nom de la forme debug
            #print a[4]

            ori = geompy.MakeVertex(a[0][0], a[0][1], a[0][2])
            fin = geompy.MakeVertex(a[1][0], a[1][1], a[1][2])
            nouveaurepere = geompy.MakeMarker(a[0][0], a[0][1], a[0][2],
                                              a[2][0], a[2][1], a[2][2],
                                              a[3][0], a[3][1], a[3][2])
            basesurface = geompy.MakePosition(formecentre[a[4]], repereglobal,
                                              nouveaurepere)
            newvolume.append(geompy.MakePrism(basesurface, ori, fin))

        #for k,v in formecentre.iteritems():
        #    geompy.addToStudy(v,k)
        #for v in newvolume:
        #    geompy.addToStudy(v,"Volumique")
        outshape = geompy.MakeCompound(newvolume)

        geompy.addToStudy(outshape, "Volumique")

        if exportstl != None:
            geompy.Export(outshape, exportstl, "STL_Bin")

        salome.sg.updateObjBrowser(1)
Example #6
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"
Example #7
0
def dump_wing(Vehicle):

    import salome, geompy, smesh

    Sections = Vehicle.Wings['Wing_Body'].Sections
    Segments = Vehicle.Wings['Wing_Body'].Segments

    origin = Vehicle.Wings['Wing_Body'].origin
    for i, seg in enumerate(Segments.values()):
        sec = Sections[i]
        sec.chord = seg.RC
        sec.origin = copy.deepcopy(origin)

        origin[0] += seg.span * np.tan(seg.sweep * np.pi / 180.)
        origin[1] += seg.span * np.tan(seg.dihedral * np.pi / 180.)
        origin[2] += seg.span

    Sections[-1].chord = Segments[-1].TC
    Sections[-1].origin = origin

    wires = []
    origins = []

    seg = None
    for sec in Sections.values():

        # build vertices
        origin, points = build_foil(sec)
        verts = [geompy.MakeVertex(v[0], v[1], v[2]) for v in points]

        # sketch sections
        wire = draw_airfoil_section(sec.tag, verts)

        # store
        origins.append(origin)
        wires.append(wire)

    # make wires

    data = {
        'wires': wires,
        'origins': origins,
    }

    # dump
    fileout = open('sections.pkl')
    pickle.dump(fileout, data)
    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)
Example #9
0
notebook = salome_notebook.notebook
sys.path.insert(
    0, r'/home/bordreuil/Enseignement/Polytech/ElementsFinis/2013/C_Treillis')

###
### GEOM component
###

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)
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)
Example #10
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
Example #11
0
import SALOMEDS


Lx   = 250. # Demi-Longueur de la virole
Rb   = 250. # Rayon du bidon
Rp   = 40.  # Rayon du piquage
Rbri = 60.  # Rayon de bride au niveau du piquage
Lp   = 300.

Xber = 200. # Position des berceaux
Lber = 250. # Longueur des berceaux
dBer = 50.  # hauteur du berceau 

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(-Lx, 0, 0)
Sommet_2 = geompy.MakeVertex(-Lx, Rb, 0)
Sommet_3 = geompy.MakeVertex(Lx, Rb, 0)
Sommet_4 = geompy.MakeVertex(Lx, 0, 0)

Sommet_5 = geompy.MakeVertex(0, 0, 0)
Sommet_6 = geompy.MakeVertex(0, Lp, 0)

Sommet_7  = geompy.MakeVertex(Lx+Rb, 0, 0)
Sommet_8  = geompy.MakeVertex(-(Lx+Rb), 0, 0)
Example #12
0
    return groups


def update_screen():
    if salome.sg.hasDesktop():
        salome.sg.updateObjBrowser(True)


## Geometry part ##
salome.salome_init()
geompy.init_geom(salome.myStudy)

cyl_rad = 10
cyl_height = 40
box_final_coords = [70, 30, 150]
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])
geompy.addToStudy(box, 'box')

points = [
    geompy.MakeVertex(box_final_coords[0] / 2, box_final_coords[1],
                      box_final_coords[2] - 130),
    geompy.MakeVertex(box_final_coords[0] / 2, box_final_coords[1],
                      box_final_coords[2] - 20)
]

for each_point, counter in zip(points, range(1, 3)):
    geompy.addToStudy(each_point, 'point_' + str(counter))
Example #13
0
### GEOM component
###

import GEOM
import geompy
import math
import SALOMEDS

#----Initialisation du module geometrie
geompy.init_geom(theStudy)

# Caracteristiques geometriques de l'anneau
rayon = 25.
longu = 50.

Sommet_1 = geompy.MakeVertex(0, rayon + longu, 0)
[geomObj_1] = geompy.SubShapeAll(Sommet_1, geompy.ShapeType["VERTEX"])
[geomObj_2] = geompy.SubShapeAll(Sommet_1, geompy.ShapeType["VERTEX"])
Sommet_2 = geompy.MakeVertex(rayon, longu, 0)
Sommet_3 = geompy.MakeVertex(rayon, 0, 0)
[geomObj_3] = geompy.SubShapeAll(Sommet_3, geompy.ShapeType["VERTEX"])
[geomObj_4] = geompy.SubShapeAll(Sommet_3, geompy.ShapeType["VERTEX"])
Sommet_4 = geompy.MakeVertex(0, longu, 0)

Arc_1 = geompy.MakeArcCenter(Sommet_4, Sommet_1, Sommet_2, False)
Ligne_1 = geompy.MakeLineTwoPnt(Sommet_2, Sommet_3)
Anneau = geompy.MakeWire([Arc_1, Ligne_1], 1e-07)

# definition du point haut pour encastrement
listSubShapeIDs = geompy.SubShapeAllIDs(Anneau, geompy.ShapeType["VERTEX"])
listSubShapeIDs = geompy.SubShapeAllIDs(Anneau, geompy.ShapeType["VERTEX"])
Example #14
0
notebook = salome_notebook.notebook
sys.path.insert( 0, r'/home/bordreuil/Enseignement/elementsFiNimes/Examples/3D/G_RepMart')

###
### GEOM component
###

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)
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' )
Example #15
0
notebook = salome_notebook.notebook
sys.path.insert( 0, r'/home/bordreuil/Enseignement/elementsFiNimes/Examples/Poutres/D_Treillis')

###
### GEOM component
###

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(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)
N = 500
A = 3.1926
H = 200  # [m]
a = H * AR  # [m]
x = linspace(0, a, N)  # [m]
y = -H * 1 / 6.04844 * (sp.j0(A) * sp.i0(A * x / a) -
                        sp.i0(A) * sp.j0(A * x / a))
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)
Example #17
0
y_3 = -400.
x_4 = -550.
y_4 = -425.
z_4 = 50.
x_5 = -530.
y_5 = -50.
z_5 = 40.
x_6 = -900.
y_6 = -480.
z_6 = 85.
x_7 = 75.
y_7 = -450
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)
Example #18
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
Example #19
0
        counter+=1
    return groups

def update_screen():
    if salome.sg.hasDesktop():
        salome.sg.updateObjBrowser(True)

## 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) )
notebook = salome_notebook.notebook
sys.path.insert(0, r'/home/bordreuil/Enseignement/E_BMXPoutre')

###
### GEOM component
###

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, 0, 100)
Sommet_3 = geompy.MakeVertex(0, 0, 200)
Sommet_4 = geompy.MakeVertex(0, 0, 300)
Sommet_5 = geompy.MakeVertex(-200, 0, 200)
Sommet_6 = geompy.MakeVertex(-200, 0, 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_5, Sommet_3)
Ligne_5 = geompy.MakeLineTwoPnt(Sommet_6, Sommet_2)
Ligne_1_vertex_2 = geompy.GetSubShape(Ligne_1, [2])
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
 def generateCarbonPlatinumGeometry(self):
     self.__carbonPlatinumSphere = geompy.MakeSpherePntR(
         geompy.MakeVertex(self.position[0], self.position[1],
                           self.position[2]), self.radius)
import salome_notebook
notebook = salome_notebook.notebook

###
### GEOM component
###

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' )

###
Example #24
0
import salome_notebook
notebook = salome_notebook.notebook

###
### GEOM component
###

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)

Rayon = 50.
# Largeur de la piece au niveau de l axe
Rtrou = 15.
# Rayon de l axe
Rgorge = 5.
# Rayon de la gorge
Lhaut = 100.
# Largeur au niveau de la gorge

Sommet_1 = geompy.MakeVertex(0., 0., 0.)
Sommet_2 = geompy.MakeVertex(Rayon, 0., 0.)
Example #25
0
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
Example #26
0
ipar.append("AP_MODULES_LIST", "Geometry")
ipar.append("AP_MODULES_LIST", "Mesh")

###
### GEOM component
###

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)
Example #27
0
h = 10.
nsub = 1
phibase = 2.4
phitop = 0.8

geompy.init_geom(theStudy)

#generation du quadriage de noeud
node = []
deltax = lx / nsub
deltay = ly / nsub
for a in range(0, nsub + 1):
    liste = []
    node.append(liste)
    for b in range(0, nsub + 1):
        newvertex = geompy.MakeVertex(a * deltax, b * deltay, h)
        #geompy.addToStudy( newvertex, 'PX%dY%d'%(a,b) )
        liste.append(newvertex)

##generation du quadriage de line
#line=[]
#linex=[]
#liney=[]
#for a in range(0,nsub):
#  listex=[]
#  linex.append(listex)
#  listey=[]
#  linex.append(listey)
#  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) )
Example #28
0
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
Example #29
0
###
### GEOM component
###

import GEOM
import geompy
import math
import SALOMEDS

Lplq = 500.
lplq = 100.
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)
Example #30
0
####################################################
##        End of variables section       ##
####################################################

###
### GEOM component
###

import GEOM
import geompy
import math
import SALOMEDS

geompy.init_geom(theStudy)

Vertex_1 = geompy.MakeVertex(0, 0, 0)
Vertex_2 = geompy.MakeVertex(0, width, 0)
Vertex_3 = geompy.MakeVertex(C_GDL_h, width, 0)
Vertex_4 = geompy.MakeVertex(C_GDL_h, 0, 0)
Vertex_5 = geompy.MakeVertex(C_GDL_h + C_MPL_h, 0, 0)
Vertex_6 = geompy.MakeVertex(C_GDL_h + C_MPL_h, width, 0)
Vertex_7 = geompy.MakeVertex(C_GDL_h + C_MPL_h + C_CL_h, width, 0)
Vertex_8 = geompy.MakeVertex(C_GDL_h + C_MPL_h + C_CL_h, 0, 0)
Vertex_9 = geompy.MakeVertex(C_GDL_h + C_MPL_h + C_CL_h + Mem_h, 0, 0)
Vertex_10 = geompy.MakeVertex(C_GDL_h + C_MPL_h + C_CL_h + Mem_h, width, 0)
Vertex_11 = geompy.MakeVertex(C_GDL_h + C_MPL_h + C_CL_h + Mem_h + A_CL_h,
                              width, 0)
Vertex_12 = geompy.MakeVertex(C_GDL_h + C_MPL_h + C_CL_h + Mem_h + A_CL_h, 0,
                              0)
Vertex_13 = geompy.MakeVertex(
    C_GDL_h + C_MPL_h + C_CL_h + Mem_h + A_CL_h + A_MPL_h, 0, 0)