PythonOCC

PythonOCCで面を抽出する

2020年5月11日

面を抽出してみようと思います。

tpExp.Init(my_box,TopAbs_FACE )で抽出する種類を指定します。
箱から面を抽出して、それぞれ色付けしてみました。
中身はこんな感じです。
from OCC.Core.BRepPrimAPI import BRepPrimAPI_MakeBox
from OCC.Core.TopExp import TopExp_Explorer
from OCC.Core.TopAbs import TopAbs_FACE
from OCC.Core.AIS import AIS_ColoredShape
from OCC.Display.SimpleGui import init_display
from OCC.Display.OCCViewer import rgb_color
import random

display, start_display, add_menu, add_function_to_menu = init_display()

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

# 面を抽出
tpExp = TopExp_Explorer()
tpExp.Init(my_box,TopAbs_FACE )
while tpExp.More():
    face = tpExp.Current()
    ais_face = AIS_ColoredShape(face)
    ais_face.SetCustomColor(face,rgb_color( random.random(), random.random(), random.random() ))
    # 箱表示
    display.Context.Display(ais_face,True)
    # 次面
    tpExp.Next()

start_display()

-PythonOCC

© 2021 暇人が趣味をさがす