有没有办法把stl文件转换成numpy数组?用x*y*z
数据点解析的numpy数组应该包含几何体“内部”或“外部”的体积信息,比如0或1。
令我惊讶的是,虽然numpy 2stl看起来很受欢迎,但我还没有在这上面找到任何东西。
该问题是一个复杂的几何多孔介质,因此船体转换也不工作。
import numpy
import stl
from stl import mesh
stl.stl.MAX_COUNT = 1e10
your_mesh = stl.mesh.Mesh.from_file('Data.stl')
print your_mesh.data
似乎只能导出三角形。
此外,即使这样通常也会导致MemoryError
消息;但是numpy-stl(通常)用于将数据点加载到numpy中。
有没有一种方法可以将STL数据转换为包含每个点是在几何体内部还是外部的信息的体数据?生成的3D数组在技术上可以是二进制数据类型,但这不是必需的。过于复杂对于商业软件来说,这种转换似乎是微不足道的,但它不是python或免费的。对于文件类型转换来说,从头开始实现光线投射算法似乎过于复杂。
2条答案
按热度按时间o0lyfsai1#
我相信你想做的是你的体积的体素化。你可以用
trimesh
包在https://trimsh.org/下做这件事您还可以使用以下命令检查点列表是否在体积内:
3zwjbxry2#
[4]中的小排印错误,trimesh没有矩阵属性,您可以从VoxelGrid获得。
固定的