end0tknr's kipple - web写経開発

太宰府天満宮の狛犬って、妙にカワイイ

blender python で、Boolean モディファイア による objectの差分作成

import bpy
import copy
import math
import bmesh
import sys
from mathutils import Vector

def main():
    #全object削除
    remove_all_obj()

    bpy.ops.mesh.primitive_cube_add()
    bpy.ops.mesh.primitive_cube_add(location = (1,1,1))
    boolean("Cube")

def boolean(obj):
    bpy.ops.object.modifier_add(type='BOOLEAN')

    boolean = bpy.context.object.modifiers["Boolean"]
    boolean.operation = 'DIFFERENCE'
    boolean.object = bpy.data.objects[obj]
    bpy.ops.object.modifier_apply(modifier="Boolean")


def remove_all_obj():
    for col in bpy.data.collections:
        for item in col.objects:
            col.objects.unlink(item)
            bpy.data.objects.remove(item)

    for item in bpy.context.scene.collection.objects:
        bpy.context.scene.collection.objects.unlink(item)
        bpy.data.objects.remove(item)

    for item in bpy.data.meshes:
        bpy.data.meshes.remove(item)

    for item in bpy.data.materials:
        bpy.data.materials.remove(item)

        
if __name__ == '__main__':
    main()

↑こう書くと、↓こう表示されます