18.12.2024, 01:39 PM
Ja, genau, ich mach das mit einer Schleife. Und genau dein Vorschlag mach ich auch schon: Mach jeder Runde direkt den Modifier anwenden. Ich habe das in der Zwischenzeit auch schon weiter untersucht, und rausgefunden, dass das Hinzufügen des Modifiers am längsten dauert. Hier mal mein Code:
Code:
import bpy
counter = 0
active_object = bpy.data.collections['Objects'].objects[0]
def boolean(mode, mainObj, otherObj):
bpy.context.view_layer.objects.active=mainObj
mainObj.select_set(True)
bpy.ops.object.modifier_add(type='BOOLEAN')
bpy.context.object.modifiers["Boolean"].object = otherObj
bpy.context.object.modifiers["Boolean"].operation = mode
bpy.context.object.modifiers["Boolean"].solver = 'FAST'
bpy.ops.object.modifier_apply(modifier="Boolean")
mainObj.select_set(False)
for objcol in bpy.data.collections['CubeSlicedObject'].objects:
boolean("INTERSECT",objcol, active_object)
print ("Cube", counter, " of ", totalCubes)
counter+=1