From 4ef82ee7cff77d2a0cb1039253de8e98e0985540 Mon Sep 17 00:00:00 2001 From: "jinling.yang" Date: Tue, 24 Oct 2023 10:29:10 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E8=BF=98=E5=8E=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sf_sale/models/auto_quatotion_common.py | 24 +++++++++++------------ sf_sale/models/quick_easy_order.py | 26 ++++++++++++------------- 2 files changed, 25 insertions(+), 25 deletions(-) diff --git a/sf_sale/models/auto_quatotion_common.py b/sf_sale/models/auto_quatotion_common.py index 2d34a76e..09ea3f0f 100644 --- a/sf_sale/models/auto_quatotion_common.py +++ b/sf_sale/models/auto_quatotion_common.py @@ -2,7 +2,7 @@ import logging from odoo.modules import get_resource_path from odoo import fields, models, api -#from quatotion import readSql, feature_recognize, auto_quatotion +from quatotion import readSql, feature_recognize, auto_quatotion __author__ = 'jinling.yang' _logger = logging.getLogger(__name__) @@ -24,14 +24,14 @@ class AutoQuatotion(models.Model): def get_process_time_db_path(self): return get_resource_path('sf_sale', 'models', 'process_time.db') - # def get_auto_quatotion(self, stp_url, feature_full_path, process_time_db_path, model_code): - # ''' - # 通过打包好的.so库, - # 以调用autoQuatotion库中Quatotion类, - # 初始化后调用类的analyseShape方法对模型文件进行价格预测 - # ''' - # # 初始化自动报价类(输入特征数据库和加工时间数据库) - # reader = auto_quatotion.Quatotion(feature_full_path, process_time_db_path) - # # 获取价格、加工时间、尺寸、XYZ、翻面次数 - # feature_info = reader.analyseShape(stp_url, InfoJson={}) - # return feature_info + def get_auto_quatotion(self, stp_url, feature_full_path, process_time_db_path, model_code): + ''' + 通过打包好的.so库, + 以调用autoQuatotion库中Quatotion类, + 初始化后调用类的analyseShape方法对模型文件进行价格预测 + ''' + # 初始化自动报价类(输入特征数据库和加工时间数据库) + reader = auto_quatotion.Quatotion(feature_full_path, process_time_db_path) + # 获取价格、加工时间、尺寸、XYZ、翻面次数 + feature_info = reader.analyseShape(stp_url, InfoJson={}) + return feature_info diff --git a/sf_sale/models/quick_easy_order.py b/sf_sale/models/quick_easy_order.py index 0ce0b6d1..54c37cc2 100644 --- a/sf_sale/models/quick_easy_order.py +++ b/sf_sale/models/quick_easy_order.py @@ -89,10 +89,10 @@ class QuickEasyOrder(models.Model): # 将attach的datas内容转为glb文件 def transition_glb_file(self, report_path, model_code): - # output_file = os.path.join('C:/Users/43484/Desktop/机企猫工作文档', str(model_code) + '.stl') + shapes = read_step_file(report_path) output_file = os.path.join('/tmp', str(model_code) + '.stl') + write_stl_file(shapes, output_file, 'binary', 0.03, 0.5) # 转化为glb - # output_glb_file = os.path.join('C:/Users/43484/Desktop/机企猫工作文档', str(model_code) + '.glb') output_glb_file = os.path.join('/tmp', str(model_code) + '.glb') util_path = get_resource_path('sf_dlm', 'static/util') cmd = 'python3 %s/stl2gltf.py %s %s -b' % (util_path, output_file, output_glb_file) @@ -120,17 +120,17 @@ class QuickEasyOrder(models.Model): model_code = hashlib.sha1(base64_datas.encode('utf-8')).hexdigest() logging.info("模型编码: %s" % model_code) item.model_file = self.transition_glb_file(report_path, model_code) - # ret = self.feature_recognition(report_path, model_code) - # logging.info("自动报价返回值: %s" % ret) - # boxshape = ret['boxshape'].tolist() - # logging.info("自动报价boxshape: %s" % boxshape) - # logging.info('自动报价feature_infos:%s' % ret['feature_infos']) - # item.model_length = boxshape[0] # 长 单位mm - # item.model_width = boxshape[1] # 宽 - # item.model_height = boxshape[2] # 高 - # item.model_volume = boxshape[0] * boxshape[1] * boxshape[2] - # item.model_feature = json.dumps(ret['feature_infos'], ensure_ascii=False) - # self._get_price(item) + ret = self.feature_recognition(report_path, model_code) + logging.info("自动报价返回值: %s" % ret) + boxshape = ret['boxshape'].tolist() + logging.info("自动报价boxshape: %s" % boxshape) + logging.info('自动报价feature_infos:%s' % ret['feature_infos']) + item.model_length = boxshape[0] # 长 单位mm + item.model_width = boxshape[1] # 宽 + item.model_height = boxshape[2] # 高 + item.model_volume = boxshape[0] * boxshape[1] * boxshape[2] + item.model_feature = json.dumps(ret['feature_infos'], ensure_ascii=False) + self._get_price(item) else: item.model_file = False item.model_feature = False