我正在尝试使用 pythreejs 将外部 stl 模型导入到 jupyter python 笔记本中,但似乎无法使其正常工作。模型格式不一定必须是 stl。它可以是 json 或其他。本质上,我只想将外部模型导入运行 pythreejs 的 jupyter 笔记本中。
如果您不熟悉 jupyter 并且知道如何让 pythreejs 导入外部模型,我也会认为这是一个解决方案。
任何帮助,将不胜感激!
我正在尝试使用 pythreejs 将外部 stl 模型导入到 jupyter python 笔记本中,但似乎无法使其正常工作。模型格式不一定必须是 stl。它可以是 json 或其他。本质上,我只想将外部模型导入运行 pythreejs 的 jupyter 笔记本中。
如果您不熟悉 jupyter 并且知道如何让 pythreejs 导入外部模型,我也会认为这是一个解决方案。
任何帮助,将不胜感激!
不确定是否有人仍然对这个问题感兴趣,但是您现在可以使用viewscad
我构建的模块轻松地做到这一点(出于其他目的):
import viewscad
r = viewscad.Renderer()
r._render_stl('my_stl.stl')
据我了解您的问题,您正在尝试通过pythreejs
.
我不认为 jupyter notebook 约束是一个重要的约束,因为您基本上只是在 Web 浏览器环境中编写 Python 代码。所以这个问题的症结在于如何用pythreejs
.
请注意pythreejs 示例,第一步是导入geometry
:
linesgeom = PlainGeometry(vertices=[[0, 0, 0],
[size, 0, 0],
[0, 0, 0],
[0, size, 0],
[0, 0, 0],
[0, 0, size]],
colors = ['red', 'red', 'green', 'green', 'white', 'orange'])
接下来,如果你深入研究pythreejs
's Github repo 上的源代码,你会发现你可以指定vertices
和faces
进入PlainGeometry
. 具体来说,您可以指定vertices
为一个列表(就像上面的示例一样),也可以指定为一个列表faces
。一旦指定了这两个参数,您就有了一个完全定义的PlainGeometry
对象,并且可以继续使用pythreejs
示例中显示的渲染管道。
那么如何导入vertices
和faces
作为列表呢?好吧,鉴于您的输入是灵活的,这取决于您,您可能需要在此处进行一些挖掘以了解最适合您的环境的内容(例如,性能约束、依赖性约束等)。使用您的 STL 示例,一种解决方案可以是使用numpy-stl来解析您的 STL 输入,并且可能具有从STL 导入时生成的该对象的列表返回vertices
和faces
数据的功能。numpy-stl