首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >执行CSG /布尔操作的命令行程序

执行CSG /布尔操作的命令行程序
EN

Software Recommendation用户
提问于 2018-07-01 09:12:01
回答 1查看 390关注 0票数 1

我正在寻找一个命令行程序,它可以执行构造性的实体几何,也就是网格上的布尔操作。我想像这样使用它:

代码语言:javascript
复制
intersect a.stl b.stl result.stl

搅拌机可以做这个手术,但不是从命令行。

MeshLab可以从命令行执行此操作,但不幸的是,它会重新分配网格,从而增加文件大小并使网格看起来模糊。在搅拌机中实施的情况并非如此。

EN

回答 1

Software Recommendation用户

发布于 2018-07-01 17:21:01

结果,您可以从命令行运行Blender:

代码语言:javascript
复制
blender -b -P intersect.py -- a.stl b.stl result.stl

这就是python脚本intersect.py

代码语言:javascript
复制
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)
票数 2
EN
页面原文内容由Software Recommendation提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwarerecs.stackexchange.com/questions/50884

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档