【问题标题】:How do I import external geometry with pythreejs如何使用 pythreejs 导入外部几何图形
【发布时间】:2016-04-13 18:13:38
【问题描述】:

我正在尝试使用 pythreejs 将外部 stl 模型导入到 jupyter python 笔记本中,但似乎无法使其正常工作。模型格式不一定必须是 stl。它可以是 json 或其他。本质上,我只是想将一个外部模型导入一个运行 pythreejs 的 jupyter notebook。

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

任何帮助将不胜感激!

【问题讨论】:

    标签: javascript python three.js jupyter pythreejs


    【解决方案1】:

    不确定是否有人仍然对这个问题感兴趣,但您现在可以使用我构建的viewscad 模块轻松做到这一点(出于其他目的):

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

    【讨论】:

      【解决方案2】:

      据我了解,您正在尝试通过pythreejs 将 STL 模型文件导入 jupyter 笔记本。

      我认为 jupyter notebook 约束不是一个重要的约束,因为您基本上只是在 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 导入时创建的。

      【讨论】:

        猜你喜欢
        • 2016-09-02
        • 2018-06-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-03-21
        • 2018-01-28
        • 2018-08-30
        相关资源
        最近更新 更多