问题描述
我有一个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 (将#修改为@)