简体   繁体   中英

Importing of 3D STL Image in Python (ImportError: No module named ascii)

I am planning to write a program in Python for raspberrypi, to import a 3D STL image.

For that purpose, I googled and got a Python library called " numpy-stl " which is suitable for my requirement. I install it according to the instructions of website

sudo pip install numpy-stl

Then try to Run given Code from example.

from stl import mesh

# Using an existing stl file:
mesh = mesh.Mesh.from_file('some_file.stl')

# Or creating a new mesh:
VERTICE_COUNT = 100
data = numpy.zeros(VERTICE_COUNT, dtype=Mesh.dtype)
mesh = mesh.Mesh(data, remove_empty_areas=False)

# The mesh normals (calculated automatically)
mesh.normals
# The mesh vectors
mesh.v0, mesh.v1, mesh.v2
# Accessing individual points (concatenation of v0, v1 and v2 in triplets)
mesh.points[0] == mesh.v0[0]
mesh.points[1] == mesh.v1[0]
mesh.points[2] == mesh.v2[0]
mesh.points[3] == mesh.v0[1]

mesh.save('new_stl_file.stl')

But now I am facing below error:

Traceback (most recent call last):
  File "/home/pi/checkstl.py", line 1, in <module>
    from stl import stl
  File "/usr/local/lib/python2.7/dist-packages/stl/__init__.py", line 2, in <module>
    import stl.ascii
ImportError: No module named ascii 

Can anybody please guide me on how do I resolve this error? Thank you

This should be solved once you update numpy-stl. And more importantly, remove any other stl package - otherwise you have a clash with the module name. (The package numpy-stl is imported as import stl .)

If the package stl 0.0.3 is installed, uninstall it first:

pip uninstall stl

Then the package numpy-stl should work as expected (ie it can be used via import stl ), as soon as it is installed:

pip install numpy-stl

FWIW, you can do the same with meshio (which I authored), except that it works for a whole range of mesh formats.

pip install meshio
import meshio

mesh = meshio.read("input.stl")  # or .off, .vtk, .ply, ...
# mesh.points, mesh.cells, ...

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM