コード例 #1
0
def EdgeEndsOnCoordinate(aEdge, aCoordValue, aCoord, aTol):
    edgePoints = geompy.SubShapeAll(aEdge, geompy.ShapeType["EDGE"])
    edgeCoord1 = geompy.PointCoordinates(edgePoints[0])
    edgeCoord2 = geompy.PointCoordinates(edgePoints[1])
    tol = math.fabs(aCoordValue -
                    edgeCoord1[aCoord]) + fabs(aCoordValue -
                                               edgeCoord2[aCoord])
    if aTol >= tol:
        return 1
    return 0
コード例 #2
0
def EdgeHasEnds(aObject, aPoint1, aPoint2, aTol):
    edgeEnds = geompy.SubShapeAll(aObject, geompy.ShapeType["VERTEX"])
    areNear1 = PointsAreNear(aPoint1, edgeEnds[0], aTol)
    areNear2 = PointsAreNear(aPoint2, edgeEnds[1], aTol)
    areNear3 = PointsAreNear(aPoint1, edgeEnds[1], aTol)
    areNear4 = PointsAreNear(aPoint2, edgeEnds[0], aTol)
    cond1 = areNear1 * areNear2
    cond2 = areNear3 * areNear4
    if (cond1 or cond2):
        return 1
    return 0
コード例 #3
0
def EdgeOnEnds(aObject, aPoint1, aPoint2, aTol):
    allEdgesList = []
    allEdgesList = geompy.SubShapeAll(aObject, geompy.ShapeType["EDGE"])
    nEdges = len(allEdgesList)
    nSelected = 0
    for jEdge in range(0, nEdges):
        isEdgeHasEnds = EdgeHasEnds(allEdgesList[jEdge], aPoint1, aPoint2,
                                    aTol)
        if isEdgeHasEnds:
            return allEdgesList[jEdge]
    print "Serious error: can\'t find edge with specified points"
    return 0
コード例 #4
0
def VectorNorm(aVector):
    vectorNorm = [1., 1., 1.]
    vectorMag = 0.
    edgePoints = geompy.SubShapeAll(aVector, geompy.ShapeType["VERTEX"])
    pointCoords0 = geompy.PointCoordinates(edgePoints[0])
    pointCoords1 = geompy.PointCoordinates(edgePoints[1])
    vLen = len(pointCoords0)
    for j in range(0, vLen):
        vectorNorm[j] = pointCoords1[j] - pointCoords0[j]
    for j in range(0, vLen):
        vectorMag = vectorMag + vectorNorm[j] * vectorNorm[j]
    vectorMag = math.sqrt(vectorMag)
    if vectorMag > 1.0E-30:
        for j in range(0, vLen):
            vectorNorm[j] = vectorNorm[j] / vectorMag
    return vectorNorm
コード例 #5
0
def SelectEdgesParalletTo(aObject, aVector, aTol):
    allEdgesList = []
    allEdgesList = geompy.SubShapeAll(aObject, geompy.ShapeType["EDGE"])

    edgeGroup = geompy.CreateGroup(aObject, geompy.ShapeType["EDGE"])

    nEdges = len(allEdgesList)
    nSelected = 0
    for jEdge in range(0, nEdges):
        isParallel = VectorsAreParallel(aVector, allEdgesList[jEdge], aTol)
        if isParallel:
            edgeID = geompy.GetSubShapeID(aObject, allEdgesList[jEdge])
            geompy.AddObject(edgeGroup, edgeID)
            nSelected = nSelected + 1
    print nSelected
    print "done"
    return edgeGroup
コード例 #6
0
def SelectEdgesWithLenEqualAndParallelTo(aObject, aLen, aVector, aTol):
    allEdgesList = []
    allEdgesList = geompy.SubShapeAll(aObject, geompy.ShapeType["EDGE"])

    edgeGroup = geompy.CreateGroup(aObject, geompy.ShapeType["EDGE"])

    nEdges = len(allEdgesList)
    nSelected = 0
    for jEdge in range(0, nEdges):
        edgeProps = geompy.BasicProperties(allEdgesList[jEdge])
        edgeLen = edgeProps[0]
        lenDiff = math.fabs(edgeLen - aLen)
        isParallel = VectorsAreParallel(aVector, allEdgesList[jEdge], aTol)
        if (isParallel and (lenDiff <= aTol)):
            edgeID = geompy.GetSubShapeID(aObject, allEdgesList[jEdge])
            geompy.AddObject(edgeGroup, edgeID)
            nSelected = nSelected + 1
    return edgeGroup
コード例 #7
0
def SelectFacesWithCoordinateAndGreaterRadius(aObject, aCoord, aCoordID,
                                              aCenter, aRadius, aTol):
    allFacesList = []
    allFacesList = geompy.SubShapeAll(aObject, geompy.ShapeType["FACE"])
    facesGroup = geompy.CreateGroup(aObject, geompy.ShapeType["FACE"])
    nFaces = len(allFacesList)
    nSelected = 0
    for jFace in range(0, nFaces):
        jFaceCOM = geompy.MakeCDG(allFacesList[jFace])
        isOnCoordinate = PointOnCoordinate(jFaceCOM, aCoord, aCoordID, aTol)
        isGreaterRadius = PointGreaterRadius(jFaceCOM, aCenter, aRadius, aTol)
        if (isOnCoordinate and isGreaterRadius):
            faceID = geompy.GetSubShapeID(aObject, allFacesList[jFace])
            geompy.AddObject(facesGroup, faceID)
            nSelected = nSelected + 1
    print nSelected
    print "done"
    return facesGroup
コード例 #8
0
def SelectFacesWithNormalParallelToVec(aObject, aVectors, aTol):
    allFacesList = []
    allFacesList = geompy.SubShapeAll(aObject, geompy.ShapeType["FACE"])

    facesGroup = geompy.CreateGroup(aObject, geompy.ShapeType["FACE"])

    nFaces = len(allFacesList)
    nSelected = 0
    for jFace in range(0, nFaces):
        jFaceCOM = geompy.MakeCDG(allFacesList[jFace])
        jFaceNormal = geompy.GetNormal(allFacesList[jFace], jFaceCOM)
        isParallel = VectorsAreParallelVec(jFaceNormal, aVectors, aTol)
        if isParallel:
            faceID = geompy.GetSubShapeID(aObject, allFacesList[jFace])
            geompy.AddObject(facesGroup, faceID)
            nSelected = nSelected + 1
    print nSelected
    print "done"
    return facesGroup
コード例 #9
0
def SelectFacesWithCOM_OnRadius(aObject, aCenter, aRadius, aTol):
    # all Faces
    allFacesList = []
    selectedFacesList = []
    allFacesList = geompy.SubShapeAll(aObject, geompy.ShapeType["FACE"])

    facesGroup = geompy.CreateGroup(aObject, geompy.ShapeType["FACE"])

    nFaces = len(allFacesList)

    nSelected = 0
    for jFace in range(0, nFaces):
        jFaceCOM = geompy.MakeCDG(allFacesList[jFace])
        isOnRadius = PointOnRadius(jFaceCOM, aCenter, aRadius, aTol)
        if isOnRadius:
            faceID = geompy.GetSubShapeID(aObject, allFacesList[jFace])
            geompy.AddObject(facesGroup, faceID)
            nSelected = nSelected + 1
    print nSelected
    print "done"
    return facesGroup
コード例 #10
0
def SelectFacesWithCOM_OnCoordinate(aObject, aCoordValue, aCoordID, aTol):
    # 0 - X, 1 - Y, 2 - Z
    # all Faces
    allFacesList = []
    selectedFacesList = []
    allFacesList = geompy.SubShapeAll(aObject, geompy.ShapeType["FACE"])

    facesGroup = geompy.CreateGroup(aObject, geompy.ShapeType["FACE"])

    nFaces = len(allFacesList)

    nSelected = 0
    for jFace in range(0, nFaces):
        jFaceCOM = geompy.MakeCDG(allFacesList[jFace])
        isOnCoordinate = PointOnCoordinate(jFaceCOM, aCoordValue, aCoordID,
                                           aTol)
        if isOnCoordinate:
            faceID = geompy.GetSubShapeID(aObject, allFacesList[jFace])
            geompy.AddObject(facesGroup, faceID)
            nSelected = nSelected + 1
    print nSelected
    print "done"
    return facesGroup
コード例 #11
0
#geompy.addToStudy( grfaceCompound, 'grfaceCompound' )

#solide final
globalsolid = geompy.MakePartition([Box_1], [grfaceCompound], [], [],
                                   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])
コード例 #12
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
コード例 #13
0
###

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"])
listSameIDs = geompy.GetSameIDs(Anneau, geomObj_1)
コード例 #14
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
コード例 #15
0
###
### 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)
listSameIDs = geompy.GetSameIDs(Plaque, geomObj_2)

listSubShapeIDs = geompy.SubShapeAllIDs(Plaque, geompy.ShapeType["EDGE"])
コード例 #16
0
#
#rotating spiral according to direction
if (math.fabs(normalSDX) >= rotTolerance) or (
        math.fabs(normalSDY) >= rotTolerance) or (math.fabs(normalSDZ - 1) >=
                                                  rotTolerance):
    spiralSkeleton = geompy.MakeRotationThreePoints(spiralSkeleton,
                                                    startingPoint,
                                                    endingPoint0, endingPoint)
    tubeCircle = geompy.MakeRotationThreePoints(tubeCircle, startingPoint,
                                                endingPoint0, endingPoint)
id_sSkel = geompy.addToStudy(spiralSkeleton, "spiral")
id_sCircle = geompy.addToStudy(tubeCircle, "Base Circle")
#creating pipe
spiralPipe = geompy.MakePipe(tubeCircle, spiralSkeleton)
#exploding pipe into edges and obtaining bound faces
spiralPipeExplosion = geompy.SubShapeAll(spiralPipe, geompy.ShapeType["EDGE"])
startingCircle = geompy.MakeFace(spiralPipeExplosion[1], 1)
endingCircle = geompy.MakeFace(spiralPipeExplosion[2], 2)
id_startingCircle = geompy.addToStudy(startingCircle, "Pipe Start")
id_endingCircle = geompy.addToStudy(endingCircle, "Pipe End")
id_pipeWall = geompy.addToStudy(spiralPipe, "Pipe Wall")
#creating pipe shell
pipeFacesList = []
pipeFacesList.append(spiralPipe)
pipeFacesList.append(startingCircle)
pipeFacesList.append(endingCircle)
spiralPipeShell = geompy.MakeShell(pipeFacesList)
id_spiralPipeShell = geompy.addToStudy(spiralPipeShell, "Pipe Shell")
#creating pipe solid
spiralPipeSolid = geompy.MakeSolid([spiralPipeShell])
id_spiralPipeSolid = geompy.addToStudy(spiralPipeSolid, "Pipe Solid")