import bpy

def get_verts(obj, use_modifiers=True, settings='PREVIEW'):
    scene = bpy.context.scene
    obj_data = obj.to_mesh(scene, use_modifiers, settings)
    verts = [v.co for v in obj_data.vertices]

    return verts


def main(radius=0.05):
    object = bpy.context.selected_objects[0]
    verts = get_verts(object)
    for vert in verts:
        vert_loc = vert
        bpy.ops.mesh.primitive_uv_sphere_add(size=radius, location=vert_loc + object.location)


def main_self(radius=0.05):
    object = bpy.context.selected_objects[0]
    verts = get_verts(object)
    for vert in verts:
        vert_loc = vert
        new_obj = object.copy()
        new_obj.data = object.data.copy()
        new_obj.animation_data_clear()
        bpy.context.scene.objects.link(new_obj)
        new_obj.location = vert + object.location
        new_obj.scale = [radius, radius, radius]

Изменить пасту