Estoy buscando un programa de línea de comando que pueda realizar geometría sólida constructiva, también conocida como operaciones booleanas en mallas. Me gustaría usarlo así:
intersect a.stl b.stl result.stl
Blender puede hacer esta operación , pero no desde la línea de comandos.
MeshLab puede hacer esto desde la línea de comando, pero desafortunadamente vuelve a muestrear la malla, lo que aumenta el tamaño del archivo y hace que la malla se vea borrosa. Este no es el caso con la implementación en Blender.
Resulta que puedes ejecutar Blender desde la línea de comando:
blender -b -P intersect.py -- a.stl b.stl result.stl
Y ese es el script de Python 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- Máscara o ataúd
Tostada