PythonOCC

PythonOCCでフィレットと面取りをつかう

好きな線にフィレットや面取りを使用できるらしいです。

フィレット

フィレットはBRepFilletAPI_MakeFillet()を使用します。

線が丸みを帯びています。

中身はこんな感じです

from OCC.Core.BRepPrimAPI import BRepPrimAPI_MakeBox
from OCC.Core.BRepFilletAPI import BRepFilletAPI_MakeFillet
from OCC.Core.TopExp import TopExp_Explorer
from OCC.Core.TopAbs import TopAbs_EDGE
from OCC.Display.SimpleGui import init_display

display, start_display, add_menu, add_function_to_menu = init_display()

# 箱作成
my_box = BRepPrimAPI_MakeBox(10.,20.,30.).Shape()

# フィレットを付与する形状
mkFillet = BRepFilletAPI_MakeFillet(my_box)

# 線を抽出
tpExp = TopExp_Explorer()
tpExp.Init(my_box,TopAbs_EDGE )
while tpExp.More():
    edge = tpExp.Current()
    # フィレットを付与する線と半径を決める
    mkFillet.Add(2.,edge)
    # 次線
    tpExp.Next()

# 箱表示
display.DisplayShape(mkFillet.Shape(), update=True )

start_display()

面取り

面取りはBRepFilletAPI_MakeChamfer()を使用します。

角が取れています。

中身はこんな感じです

from OCC.Core.BRepPrimAPI import BRepPrimAPI_MakeBox
from OCC.Core.BRepFilletAPI import BRepFilletAPI_MakeChamfer
from OCC.Core.TopExp import TopExp_Explorer
from OCC.Core.TopAbs import TopAbs_EDGE
from OCC.Display.SimpleGui import init_display

display, start_display, add_menu, add_function_to_menu = init_display()

# 箱作成
my_box = BRepPrimAPI_MakeBox(10.,20.,30.).Shape()

# 面取りを付与する形状
mkChamfer = BRepFilletAPI_MakeChamfer(my_box)

# 線を抽出
tpExp = TopExp_Explorer()
tpExp.Init(my_box,TopAbs_EDGE )
while tpExp.More():
    edge = tpExp.Current()
    # 面取りを付与する線と大きさを決める
    mkChamfer.Add(2.,edge)
    # 次線
    tpExp.Next()

# 箱表示
display.DisplayShape(mkChamfer.Shape(), update=True )

start_display()

-PythonOCC

© 2021 暇人が趣味をさがす