Python在3d环境中导入STL文件

时间:2017-10-17 11:46:31

标签: python 3d stl kivy

我面对初学者Python语言,因为我需要开发一个桌面应用来为我们的活页夹喷射3d打印机开发切片器。切片器的结果必须是图像,当然我需要一个 3d环境,我可以移动或缩放我的stl文件。

我尝试了几种方法,比如kivy或pygame,但我仍然不知道哪一种是最好的选择。 Kivy有一个很好的GUI,你可以上传obj,但我找不到连接 numpy-stl 的方法,在场景中添加stl文件时会出现此错误:

packagingOptions {
        pickFirst 'com/google/appengine/repackaged/org/apache/commons/codec/language/bm/sep_approx_spanish.txt'
 }

这是我的代码:

 <stl.mesh.Mesh object at 0x0C524570>
 Traceback (most recent call last):
   File "C:\Users\Nadia\Desktop\cube.py", line 56, in <module>
     My3DApp().run()
   File "C:\Users\Nadia\AppData\Local\Programs\Python\Python35-32\lib\site-packages\kivy\app.py", line 802, in run
     root = self.build()
   File "C:\Users\Nadia\Desktop\cube.py", line 48, in build
     self.renderer.render(scene, self.camera)
   File "C:\Users\Nadia\AppData\Local\Programs\Python\Python35-32\lib\site-packages\kivy3\renderer.py", line 101, in render
     self._instructions.add(scene.as_instructions())
   File "C:\Users\Nadia\AppData\Local\Programs\Python\Python35-32\lib\site-packages\kivy3\scenes\scene.py", line 36, in as_instructions
     for child in self.get_children_instructions():
   File "C:\Users\Nadia\AppData\Local\Programs\Python\Python35-32\lib\site-packages\kivy3\core\object3d.py", line 154, in get_children_instructions
     yield child.as_instructions()
 **AttributeError: 'Mesh' object has no attribute 'as_instructions'**
>>> 

使用Pygame我没有取得很多成功,因为它在stl上的工作非常复杂,但我对它一无所知。

有什么建议吗?

由于

1 个答案:

答案 0 :(得分:0)

Kivy本身可以做你想要的,但它不是直接支持的功能,你需要自己管理它的一些部分。看起来你正在尝试Kivy3,它应该做大部分工作,但我不知道它是否直接支持STL文件 - 你需要阅读它的代码。

通常,您还应该能够通过手动提取网格信息(至少是顶点和索引)并将它们转换为kivy3网格,将您的STL文件转换为kivy3可以使用的对象。