PythonOCC

PythonOCCでクリックした頂点の位置を取得する

表示中の点をクリックし、点の座標を取得してみます。

まずはピラミッドして、頂点を選択します。

その頂点の位置に球を表示してみます。

まずはピラミッド表示。

この頂点をクリックしますよ。

クリックし、球が表示されました。

どの頂点をクリックしても球が表示されます。

中身はこんな感じです

from OCC.Core.BRepPrimAPI import BRepPrimAPI_MakeWedge, BRepPrimAPI_MakeSphere
from OCC.Core.BRep import BRep_Tool
from OCC.Core.TopoDS import topods_Vertex
from OCC.Display.SimpleGui import init_display

display, start_display, add_menu, add_function_to_menu = init_display()

def recognize_clicked(shp, *kwargs):

    for shape in shp:
        # 選択点
        vertex = topods_Vertex(shape)
        pnt = BRep_Tool.Pnt( vertex )

        sphere = BRepPrimAPI_MakeSphere( pnt, 10. ).Shape()
        display.DisplayShape( sphere, color="black",update=True )
        display.SetSelectionModeVertex()


def make_pyramid( length ):

    dx = dy = dz = length
    pyramid = BRepPrimAPI_MakeWedge( dx, dy, dz, dx/2, dz/2, dx/2, dz/2 ).Shape()
    return pyramid


if __name__ == '__main__':

    # pyramid
    pyramid = make_pyramid( 100 )
    display.DisplayShape(pyramid,update=True)
    display.SetSelectionModeVertex()

    display.register_select_callback(recognize_clicked)
    start_display()

-PythonOCC

© 2021 暇人が趣味をさがす