バインダーjetting 3dプリンタ用にスライサーを開発するために、デスクトップアプリケーションを開発する必要があるため、私は初心者のPython言語に似ています。スライサーの結果は画像でなければならず、私は3d環境が必要です。ここで私はstlファイルを移動または拡大縮小できます。3d環境でのPythonのインポートSTLファイル
私はkivyやpygameのようにいくつかの方法を試しましたが、私はそれが最良の選択であるかどうかまだ分かりません。 Kivyが良いGUIを持っており、あなたがobjをアップロードすることができますが、現場で追加されたとき、私はnumpyの-STL、STLファイルを接続する方法を見つけることができませんでしたが、このエラーを与える:
<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ので
from kivy.app import App
from kivy.uix.floatlayout import FloatLayout
from kivy3 import Renderer, Scene
from kivy3 import PerspectiveCamera
from kivy3.extras.geometries import BoxGeometry
from kivy3.core.geometry import Geometry
from kivy3 import Material, Mesh
import numpy
from stl import mesh
class My3DApp(App):
def _adjust_aspect(self, *args):
rsize = self.renderer.size
aspect = rsize[0]/float(rsize[1])
self.renderer.camera.aspect = aspect
def rotate_cube(self, *dt):
self.cube.rotation.y += 1
def build(self):
layout = FloatLayout()
self.renderer = Renderer()
scene = Scene()
cube_geo = BoxGeometry(1,1,1)
cube_mat = Material()
self.cube = Mesh(
geometry = cube_geo,
material=cube_mat
)
self.cube.pos.z = -5
self.stlfile = mesh.Mesh.from_file('exStl/test01.STL')
print(self.stlfile)
self.camera = PerspectiveCamera(
fov=75,
aspect = 0,
near=1,
far=10
)
scene.add(self.stlfile)
scene.add(self.cube)
self.renderer.render(scene, self.camera)
self.renderer.bind(size=self._adjust_aspect)
layout.add_widget(self.renderer)
Clock.schedule_interval(self.rotate_cube, .01)
#layout.add_widget(Builder.load_string(kv))
return layout
if __name__=="__main__":
My3DApp().run()
それは非常にSTLの作業を複雑にしていますので、私はどちらかの大成功の多くを持っていなかったが、私はそれについて非常に無知です。
提案がありますか?