如何使用pythreejs导入外部几何体

时间:2016-04-13 18:13:39

标签: javascript python three.js jupyter pythreejs

我正在尝试使用pythreejs将外部stl模型导入到jupyter python笔记本中,但似乎无法使其工作。模型格式不一定需要是stl。它可能是json或其他什么。基本上,我只想将外部模型导入到运行pythreejs的jupyter笔记本中。

如果您不熟悉jupyter并且知道如何使pythreejs导入外部模型,我也会认为这是一个解决方案。

任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:1)

不确定是否有人对此问题仍然感兴趣,但是您现在可以使用我构建的viewscad模块轻松地完成此操作(用于其他用途):

import viewscad
r = viewscad.Renderer()
r._render_stl('my_stl.stl')

答案 1 :(得分:0)

据我了解你的问题,你试图通过pythreejs将STL模型文件导入jupyter笔记本。

我不认为jupyter笔记本约束是一个重要的约束,因为你基本上只是在Web浏览器环境中编写Python代码。所以这个问题的关键是如何用pythreejs读取STL模型文件。

pythreejs examples注意,第一步是导入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的Github回购中的源代码,您会发现可以将verticesfaces指定为PlainGeometry 。具体来说,您将vertices指定为列表(就像上面的示例中一样),并将faces指定为列表。一旦指定了这两个参数,就会有一个完全定义的PlainGeometry对象,并且可以继续使用pythreejs示例中显示的渲染管道。

那么如何将verticesfaces作为列表导入?好吧,鉴于您的输入是灵活的,这取决于您,您可能需要在此处进行一些挖掘以了解最适合您的环境的内容(例如,性能约束,依赖性约束等)。使用您的STL示例,一个解决方案可以是使用numpy-stl来解析您的STL输入,并且可能有功能将verticesfaces数据作为此numpy-stl的列表返回在STL导入时生成的对象。