pythonCascade Sample Problems

Topology Local Operations: Pipe

 

 

        self.Initialize()

        self.interactive_context.EraseAll(0,1)

 

 

        S = BRepPrimAPI_MakeBox(400.,250.,300.).Shape()

        ais1 = AIS_Shape(S)

        self.interactive_context.SetDisplayMode(ais1,AIS_Shaded,0)

        self.interactive_context.SetMaterial(ais1,Graphic3d_NOM_PLASTIC,0)

        self.interactive_context.SetColor(ais1,Quantity_NOC_CORAL,0)

        self.interactive_context.Display(ais1,1)

 

        Ex = TopExp_Explorer()

        Ex.Init(S,TopAbs_FACE)

        Ex.Next()

        Ex.Next()

        F1 = TopoDS().Face(Ex.Current())

        surf = BRep_Tool().Surface(F1)

 

        MW1 = BRepBuilderAPI_MakeWire()

        p1 = gp_Pnt2d(100.,100.)

        p2 = gp_Pnt2d(200.,100.)

 

        aline = GCE2d_MakeLine(p1,p2).Value()

        MW1.Add(BRepBuilderAPI_MakeEdge(aline,surf,0.,p1.Distance(p2)).Edge())

        p1 = p2

        p2 = gp_Pnt2d(150.,200.)

        aline = GCE2d_MakeLine(p1,p2).Value()

        MW1.Add(BRepBuilderAPI_MakeEdge(aline,surf,0.,p1.Distance(p2)).Edge())

        p1 = p2

        p2 = gp_Pnt2d(100.,100.)

        aline = GCE2d_MakeLine(p1,p2).Value()

        MW1.Add(BRepBuilderAPI_MakeEdge(aline,surf,0.,p1.Distance(p2)).Edge())

 

        MKF1 = BRepBuilderAPI_MakeFace()

        MKF1.Init(surf,0)

        MKF1.Add(MW1.Wire())

        FP = MKF1.Face()

        BRepLib().BuildCurves3d(FP)

 

        CurvePoles = []

        CurvePoles.append(gp_Pnt(150.,0.,150.))

        CurvePoles.append(gp_Pnt(200.,-100.,150.))

        CurvePoles.append(gp_Pnt(150.,-200.,150.))

        curve = Geom_BezierCurve(CurvePoles)

 

        E = BRepBuilderAPI_MakeEdge(curve).Edge()

        W = BRepBuilderAPI_MakeWire(E).Wire()

        MKPipe = BRepFeat_MakePipe(S,FP,F1,W,1,1)

        MKPipe.Perform()

        res1 = MKPipe.Shape()

        ais1.Set(res1)

        self.interactive_context.Redisplay(ais1,1,0)

 

  

        self.view.FitAll(0.01,0)

        self.view.ZFitAll(0.01)

        self.view.Redraw()