Ich suche nach einem Befehlszeilenprogramm, das konstruktive Volumenkörpergeometrie ausführen kann, auch bekannt als Boolesche Operationen an Netzen. Ich möchte es so verwenden:
intersect a.stl b.stl result.stl
Blender kann diese Operation ausführen , jedoch nicht über die Befehlszeile.
MeshLab kann dies über die Befehlszeile tun, aber leider wird das Netz neu abgetastet, was die Dateigröße erhöht und das Netz verschwommen aussehen lässt. Bei der Implementierung in Blender ist dies nicht der Fall.
Es stellt sich heraus, dass Sie Blender von der Befehlszeile aus ausführen können:
blender -b -P intersect.py -- a.stl b.stl result.stl
Und das ist das Python-Skript intersect.py
:
import bpy
import sys
index = sys.argv.index("--")
file_a = sys.argv[index + 1]
file_b = sys.argv[index + 2]
file_out = sys.argv[index + 3]
bpy.ops.object.select_all(action = 'SELECT')
bpy.ops.object.delete()
bpy.ops.import_mesh.stl(filepath = file_a)
obj_a = bpy.context.selected_objects[0]
bpy.ops.import_mesh.stl(filepath = file_b)
obj_b = bpy.context.selected_objects[0]
bpy.context.scene.objects.active = obj_a
bpy.ops.object.modifier_add(type = 'BOOLEAN')
bpy.context.object.modifiers[0].object = obj_b
bpy.ops.object.modifier_apply(modifier='Boolean')
bpy.context.scene.objects.active = obj_b
bpy.ops.object.delete()
bpy.context.scene.objects.active = obj_a
bpy.ops.export_mesh.stl(filepath = file_out)
RockPaperLz- Maskiere es oder Casket
Toast