表示中の点をクリックし、点の座標を取得してみます。
まずはピラミッドして、頂点を選択します。
その頂点の位置に球を表示してみます。
まずはピラミッド表示。
この頂点をクリックしますよ。
クリックし、球が表示されました。
どの頂点をクリックしても球が表示されます。
中身はこんな感じです
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()