pythonCascade Sample Problems

Topological Operations: Fillet creation

 


    
self.Initialize()

        self.interactive_context.EraseAll(0,1)

 

        Box = BRepPrimAPI_MakeBox(gp_Pnt(-400,0,0),200,230,180).Shape()

        ais1 = AIS_Shape(Box)

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

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

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

        self.interactive_context.Display(ais1,1)

        self.view.FitAll(0.01,0)

 

        fillet = BRepFilletAPI_MakeFillet(Box)

           

        Ex = TopExp_Explorer(Box,TopAbs_EDGE)

        while Ex.More():

            Edge =TopoDS().Edge(Ex.Current())

            fillet.Add(20,Edge)

            Ex.Next()

 

        raw_input("press enter")

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

 

        blendedBox = fillet.Shape()

        aBlendbox = AIS_Shape(blendedBox)

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

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

        self.interactive_context.SetColor(aBlendbox,Quantity_NOC_YELLOW,0)

        self.interactive_context.Display(aBlendbox,1)

 

        raw_input("press enter")

       

        P1 = gp_Pnt(250,150,75)

        S1 = BRepPrimAPI_MakeBox(300,200,200).Shape()

        S2 = BRepPrimAPI_MakeBox(P1,120,180,70).Shape()

        FusedShape = BRepAlgoAPI_Fuse(S1,S2).Shape()

        ais2 = AIS_Shape(FusedShape)

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

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

        self.interactive_context.SetColor(ais2,Quantity_NOC_RED,0)

        self.interactive_context.Display(ais2,1)

 

 

        fill = BRepFilletAPI_MakeFillet(FusedShape)

        raw_input("press enter")

       

 

        ex1 = TopExp_Explorer(FusedShape,TopAbs_EDGE)

        while ex1.More():

            E =TopoDS().Edge(ex1.Current())

            fill.Add(E)

            ex1.Next()

        for i in range(1,fill.NbContours()+1):

            longueur = fill.Length(i)

            Rad = 0.15*longueur

            fill.SetRadius(Rad,i)

 

        blendedFusedSolids = fill.Shape()

 

        aBlend = AIS_Shape(blendedFusedSolids)

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

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

        self.interactive_context.SetColor(aBlend,Quantity_NOC_RED,0)

        self.interactive_context.Erase(ais2,1,0)

        self.interactive_context.Display(aBlend,1)

 

        self.view.FitAll(0.01,0)

        self.view.ZFitAll(0.01)

        self.view.Redraw()