Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

blenderでpythonやる その4:頂点を追加してPointCloud的な

実際のところ

import bpy

def point_cloud(ob_name, coords, edges=[], faces=[]):
    """Create point cloud object based on given coordinates and name.

    Keyword arguments:
    ob_name -- new object name
    coords -- float triplets eg: [(-1.0, 1.0, 0.0), (-1.0, -1.0, 0.0)]
    """

    # メッシュとオブジェクトを作成
    me = bpy.data.meshes.new(ob_name + "Mesh")
    ob = bpy.data.objects.new(ob_name, me)

    # 引数情報からメッシュを作成
    me.from_pydata(coords, edges, faces)

    # メッシュの内容を更新
    me.update()
    return ob

# オブジェクトを生成
pc1 = point_cloud("point-cloud", [(0.0, 0.0, 0.0)])
pc2 = point_cloud("Your Point", [(1.0, 1.0, 0.0)])


# アクティブコレクションに作ったオブジェクトを追加
bpy.context.collection.objects.link(pc1)
bpy.context.collection.objects.link(pc2)