pythonCascade Sample Problems

self.Initialize()
self.interactive_context.EraseAll(0,1)
sphere = gp_Sphere(gp_Ax3(gp_Pnt(0,0,0),gp_Dir(1,0,0)),150)
WhiteFace = BRepBuilderAPI_MakeFace(sphere,0.1,0.7,0.2,0.9).Face()
white = AIS_Shape(WhiteFace)
self.interactive_context.SetColor(white,Quantity_NOC_WHITE,0)
self.interactive_context.SetDisplayMode(white,AIS_Shaded,0)
self.interactive_context.SetMaterial(white,Graphic3d_NOM_PLASTIC,0)
self.interactive_context.Display(white,0)
P1 = gp_Pnt(-15,200,10)
P2 = gp_Pnt(5,204,0)
P3 = gp_Pnt(15,200,0)
P4 = gp_Pnt(-15,20,15)
P5 = gp_Pnt(-5,20,0)
P6 = gp_Pnt(15,20,35)
array = []
array.append([P1,P2,P3])
array.append([P4,P5,P6])
curve = GeomAPI_PointsToBSplineSurface(array,3,8,GeomAbs_C2,0.001).Surface()
RedFace = BRepBuilderAPI_MakeFace(curve).Face()
red = AIS_Shape(RedFace)
self.interactive_context.SetColor(red,Quantity_NOC_RED,0)
self.interactive_context.SetDisplayMode(red,AIS_Shaded,0)
self.interactive_context.SetMaterial(red,Graphic3d_NOM_PLASTIC,0)
self.interactive_context.Display(red,0)
circle = gp_Circ(gp_Ax2(gp_Pnt(0,0,0),gp_Dir(1,0,0)),80)
Edge1 = BRepBuilderAPI_MakeEdge(circle,0,math.pi).Edge()
Edge2 = BRepBuilderAPI_MakeEdge(gp_Pnt(0,0,-80),gp_Pnt(0,-10,40)).Edge()
Edge3 = BRepBuilderAPI_MakeEdge(gp_Pnt(0,-10,40),gp_Pnt(0,0,80)).Edge()
MW1 = BRepBuilderAPI_MakeWire(Edge1,Edge2,Edge3)
if MW1.IsDone():
YellowWire = MW1.Wire()
BrownFace = BRepBuilderAPI_MakeFace(YellowWire).Face()
brown = AIS_Shape(BrownFace)
self.interactive_context.SetColor(brown,Quantity_NOC_BROWN,0)
self.interactive_context.SetDisplayMode(brown,AIS_Shaded,0)
self.interactive_context.SetMaterial(brown,Graphic3d_NOM_PLASTIC,0)
self.interactive_context.Display(brown,0)
P1.SetCoord(35,-200,40)
P2.SetCoord(50,-204,30)
P3.SetCoord(65,-200,30)
P4.SetCoord(35,-20,45)
P5.SetCoord(45,-20,30)
P6.SetCoord(65,-20,65)
array2 = []
array2.append([P1,P2,P3])
array2.append([P4,P5,P6])
BSplineSurf = GeomAPI_PointsToBSplineSurface(array,3,8,GeomAbs_C2,0.001).Surface()
aFace = BRepBuilderAPI_MakeFace(BSplineSurf).Face()
# 2d lines
P12d = gp_Pnt2d(0.9,0.1)
P22d = gp_Pnt2d(0.2,0.7)
P32d = gp_Pnt2d(0.02,0.1)
line1 = Geom2d_Line(P12d,gp_Dir2d((0.2-0.9),(0.7-0.1)))
line2 = Geom2d_Line(P22d,gp_Dir2d((0.02-0.2),(0.1-0.7)))
line3 = Geom2d_Line(P32d,gp_Dir2d((0.9-0.02),(0.1-0.1)))
Edge1 = BRepBuilderAPI_MakeEdge(line1,BSplineSurf,0,P12d.Distance(P22d)).Edge()
Edge2 = BRepBuilderAPI_MakeEdge(line2,BSplineSurf,0,P22d.Distance(P32d)).Edge()
Edge3 = BRepBuilderAPI_MakeEdge(line3,BSplineSurf,0,P32d.Distance(P12d)).Edge()
Wire1 = BRepBuilderAPI_MakeWire(Edge1,Edge2,Edge3).Wire()
Wire1.Reverse()
PinkFace = BRepBuilderAPI_MakeFace(aFace,Wire1).Face()
BRepLib().BuildCurves3d(PinkFace)
pink = AIS_Shape(PinkFace)
self.interactive_context.SetColor(pink,Quantity_NOC_HOTPINK,0)
self.interactive_context.SetDisplayMode(pink,AIS_Shaded,0)
self.interactive_context.SetMaterial(pink,Graphic3d_NOM_PLASTIC,0)
self.interactive_context.Display(pink,0)
self.view.FitAll(0.01,0)
self.view.ZFitAll(0.01)
self.view.Redraw()