stl.base.BaseMesh-使用numpy-stl软件包警告

问题描述

我有一个Django应用程序,它已部署到Amazon Elastic Beanstalk(在64位Amazon Linux 2 / 3.0.3上运行的Python 3.7)。我必须使用numpy-stl库读取.stl文件

我的课;

public class CountriesController : ApiController
{
   public ICountriesRepository db;

   // CONSTRUCTOR DO NOT RECEIVE AN INTERFACE OBJECT
   public CountriesController(ICountriesRepository a)     // CONSTRUCTOR DO NOT RECIEVE AN INTERFACE OBJECT
   {  
      db = a;
   }
}

我称为此类的函数

import stl

class STLLoaderClass:
    def __init__(self,file_path):
        self.filePath = file_path

    def read_stl(self):
        stlMesh = stl.mesh.Mesh.from_file(self.filePath)
        volume,cog,inertia = stlMesh.get_mass_properties()
        user_mesh = stlMesh
        xMin = user_mesh.points[0][stl.Dimension.X]
        xMax = user_mesh.points[0][stl.Dimension.X]
        yMin = user_mesh.points[0][stl.Dimension.Y]
        yMax = user_mesh.points[0][stl.Dimension.Y]
        zMin = user_mesh.points[0][stl.Dimension.Z]
        zMax = user_mesh.points[0][stl.Dimension.Z]
        for p in user_mesh.points:
            # p contains (x,y,z)
            xMax = max(p[stl.Dimension.X],xMax)
            xMin = min(p[stl.Dimension.X],xMin)
            yMax = max(p[stl.Dimension.Y],yMax)
            yMin = min(p[stl.Dimension.Y],yMin)
            zMax = max(p[stl.Dimension.Z],zMax)
            zMin = min(p[stl.Dimension.Z],zMin)        
        boundary_limits = [xMax - xMin,yMax - yMin,zMax - zMin]
        boundary_volume= boundary_limits[0] * boundary_limits[1] * boundary_limits[2]
        rectangleVolume = boundary_volume
        rectangleRemovedVolume = (((boundary_volume - volume) / boundary_volume)*100.0)
        return rectangleVolume,rectangleRemovedVolume

我的观点;

def get_volume_info(uploadedVolume):
    s3 = boto3.resource('s3',region_name='eu-central-1')
    bucket = s3.Bucket('bucket')
    obj = bucket.Object(uploadedVolume)
    tmp = tempfile.NamedTemporaryFile()
    with open(tmp.name,'wb') as f:
         obj.download_fileobj(f)
         stl_loader = STLLoaderClass(tmp.name)
         rectangleVolume,rectangleRemovedVolume = stl_loader.read_stl()
    return rectangleVolume,rectangleRemovedVolume

通常,我指定的此类和函数可以与我尝试过的test.stl文件一起成功使用。但是,该应用开始出现错误。我的web.stdout.log文件中的错误def uploadFile(request): if request.method == 'POST': file = request.FILES.get('img') filename = file.name key = 'media/' + filename s3_resource = boto3.resource('s3') bucket = s3_resource.Bucket('bucket') bucket.put_object(Key=key,Body=file) volume,removed_volume = get_volume_info(key) context = {'volume': volume,'removed_volume': removed_volume} return JsonResponse(context) ,而我的网页中的另一个错误stl.base.BaseMesh - WARNING - Your mesh is not closed,the mass methods will not function

如何解决此问题?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...