import salome
gg = salome.ImportComponentGUI("GEOM")
-# Add a section based on quadrangles
-# ----------------------------------
-def section(s, p1, p2=None, p3=None, p4=None):
- if p2==None:
- q = p1
- else:
- q = geompy.MakeQuad4Vertices(p1, p2, p3, p4)
- pass
- s.append(q)
- publish(q, "section")
- return q
-
-
-# find distance between two points
-# -------------------------------
-def Dist(p1,p2):
- c1 = geompy.PointCoordinates(p1)
- c2 = geompy.PointCoordinates(p2)
- return math.sqrt( (c2[0]-c1[0])*(c2[0]-c1[0]) +
- (c2[1]-c1[1])*(c2[1]-c1[1]) +
- (c2[2]-c1[2])*(c2[2]-c1[2]) )
-
-
-# return middle point
-# -------------------------------
-def MiddleVert(p1,p2):
- c1 = geompy.PointCoordinates(p1)
- c2 = geompy.PointCoordinates(p2)
- return geompy.MakeVertex( (c2[0]+c1[0])/2, (c2[1]+c1[1])/2, (c2[2]+c1[2])/2 )
-
-
# Complex section
# result - 16 quads from lines
# pnt - point from path
# vec - direction from path
-def MakeComplexSect(pnt,vec,rmax,rmin,nb):
+def MakeComplexSect(pnt, vec, rmax, rmin, nb, geom_builder):
dang = 1.0/nb/2
- cmax = geompy.MakeCircle(pnt,vec,rmax)
- cmin = geompy.MakeCircle(pnt,vec,rmin)
+ cmax = geom_builder.MakeCircle(pnt,vec,rmax)
+ cmin = geom_builder.MakeCircle(pnt,vec,rmin)
faces = []
for i in range(0,2*nb,2):
- p1 = geompy.MakeVertexOnCurve(cmin,dang*i)
- p2 = geompy.MakeVertexOnCurve(cmax,dang*(i+1))
- p3 = geompy.MakeVertexOnCurve(cmin,dang*(i+2))
- f = geompy.MakeQuad4Vertices(pnt,p1,p2,p3)
+ p1 = geom_builder.MakeVertexOnCurve(cmin,dang*i)
+ p2 = geom_builder.MakeVertexOnCurve(cmax,dang*(i+1))
+ p3 = geom_builder.MakeVertexOnCurve(cmin,dang*(i+2))
+ f = geom_builder.MakeQuad4Vertices(pnt,p1,p2,p3)
faces.append(f)
pass
- shell = geompy.MakeSewing(faces,1.e-6)
+ shell = geom_builder.MakeSewing(faces,1.e-6)
return shell
locs = []
# 1 section
-shell = MakeComplexSect(vs[0], geompy.MakeVectorDXDYDZ(1,0,0), 60, 40, 16)
+shell = MakeComplexSect(vs[0], geompy.MakeVectorDXDYDZ(1,0,0), 60, 40, 16, geom_builder=geompy)
shells.append(shell)
vs1 = geompy.SubShapeAllSortedCentres(shell,geompy.ShapeType["VERTEX"])
locs.append(vs1[17])
# 2 section
-shell = MakeComplexSect(vs[1], geompy.MakeVectorDXDYDZ(1,0,0), 80, 30, 16)
+shell = MakeComplexSect(vs[1], geompy.MakeVectorDXDYDZ(1,0,0), 80, 30, 16, geom_builder=geompy)
shells.append(shell)
vs2 = geompy.SubShapeAllSortedCentres(shell,geompy.ShapeType["VERTEX"])
locs.append(vs2[17])
# 3 section
-shell = MakeComplexSect(vs[2], geompy.MakeVectorDXDYDZ(1,0,0), 60, 40, 16)
+shell = MakeComplexSect(vs[2], geompy.MakeVectorDXDYDZ(1,0,0), 60, 40, 16, geom_builder=geompy)
shells.append(shell)
vs3 = geompy.SubShapeAllSortedCentres(shell,geompy.ShapeType["VERTEX"])
locs.append(vs3[17])
# 4 section
-shell = MakeComplexSect(vs[3], geompy.MakeVectorDXDYDZ(0,1,0), 40, 35, 16)
+shell = MakeComplexSect(vs[3], geompy.MakeVectorDXDYDZ(0,1,0), 40, 35, 16, geom_builder=geompy)
shells.append(shell)
vs4 = geompy.SubShapeAllSortedCentres(shell,geompy.ShapeType["VERTEX"])
locs.append(vs4[17])