スポンサーリンク

Blender Python Meshオブジェクトの頂点のIndexをText objectで追加する

まだやってなかったと思う。多分。

import bpy



######################################################
# textオブジェクトの追加
def add_text_numbers(vertexes):

    # 新しいCollrectionを作成
    newCol = bpy.data.collections.new('Vertex Numbers')
    # 現在のシーンにコレクションをリンク
    bpy.context.scene.collection.children.link(newCol)

    for v in range(len(vertexes)):
        
        fontCurve1 = bpy.data.curves.new(type="FONT",name="fontCurve1")
        obj = bpy.data.objects.new("vert[ "+str(v)+" ]",fontCurve1)
        obj.data.body = "" + str(v) # textオブジェクトの内容
        obj.location.x=vertexes[v].co.x
        obj.location.y=vertexes[v].co.y
        obj.location.z=vertexes[v].co.z
        obj.scale=[0.5,0.5,0.5]
              
        newCol.objects.link(obj)
######################################################
# 現在選択中のオブジェクトを取得
def select_object():
   ob = bpy.context.active_object
   
   if ob.type != 'MESH':
       raise TypeError("Active object is not a Mesh")
       
   mesh = ob.data

   #print( len(mesh.edges) )
   #print( len(mesh.vertices) )

   return mesh.vertices
# 頂点群を取得
verts = select_object()

# 頂点番号のテキストオブジェクトを追加
add_text_numbers(verts)

コメントを残す

メールアドレスが公開されることはありません。

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)


この記事のトラックバックURL: