You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用trimesh或其他Python库调整Bounding Box质心/面位置以切割大型STL模型的方法咨询

没问题!我来帮你解决用trimesh调整Bounding Box位置并切割STL模型的问题~

用trimesh调整Bounding Box的质心/位置

方法1:直接平移整个Box

trimesh的网格对象自带apply_translation()方法,可以直接把整个Box(包括所有顶点、面)平移到指定位置,质心会自动跟着更新。代码示例:

import trimesh

# 创建初始的1.5x1.5x1.5的Box
box = trimesh.creation.box(extents=[1.5, 1.5, 1.5])
print(f"初始质心: {box.centroid}")  # 输出 (0.0, 0.0, 0.0)

# 把Box平移到目标质心位置,比如(2, 3, 4)
target_centroid = [2, 3, 4]
box.apply_translation(target_centroid)
print(f"平移后质心: {box.centroid}")  # 输出 (2.0, 3.0, 4.0)

# 此时Box的面信息也会同步更新
print("平移后面的原点:\n", box.facets_origin)
print("平移后面的法向量:\n", box.facets_normal)

平移完成后,你就可以用更新后的facets_origin和facets_normal作为切割平面参数,调用slice_plane()切割你的大型STL模型。

方法2:直接定义切割平面(更灵活)

其实不一定非要依赖Box的面,如果你已经明确切割位置,直接计算切割平面的原点和法向量会更高效。比如要在x=2的位置做垂直于x轴的切割:

# 加载你的大型STL模型
large_mesh = trimesh.load("your_large_model.stl")

# 定义切割平面:x=2,法向量沿x轴正方向
plane_origin = [2, 0, 0]  # 平面上任意一点都可以,这里选(2,0,0)
plane_normal = [1, 0, 0]

# 执行切割
sliced_parts = large_mesh.slice_plane(origin=plane_origin, normal=plane_normal)

# 保存切割后的部件
for idx, part in enumerate(sliced_parts):
    part.export(f"cut_part_{idx}.stl")
其他可选的Python库

如果你需要更直观的可视化或者更多切割选项,可以试试pyvista,它在3D网格处理上功能更丰富:

import pyvista as pv

# 加载STL模型
mesh = pv.read("your_large_model.stl")

# 创建一个自定义位置的Box(直接指定质心和尺寸)
# bounds格式是 [x_min, x_max, y_min, y_max, z_min, z_max]
target_centroid = [2, 3, 4]
half_size = 1.5 / 2
bounds = [
    target_centroid[0] - half_size, target_centroid[0] + half_size,
    target_centroid[1] - half_size, target_centroid[1] + half_size,
    target_centroid[2] - half_size, target_centroid[2] + half_size
]
cut_box = pv.Box(bounds=bounds)

# 用Box切割模型,得到多个部件
sliced_parts = mesh.clip_box(cut_box, invert=False)

# 保存每个部件
for idx, part in enumerate(sliced_parts):
    part.save(f"pyvista_part_{idx}.stl")

这样处理下来,不管是调整Box位置还是直接切割,都能满足你的需求啦~

内容的提问来源于stack exchange,提问作者Joachim C.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.29 14:42:45