From ae3f7c9c0c089f23a8d6a761edc9953b9dfe1202 Mon Sep 17 00:00:00 2001 From: yuxianghui <1608204036@qq.com> Date: Wed, 6 Sep 2023 17:24:08 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=88=87=E5=89=8A=E9=80=9F?= =?UTF-8?q?=E5=BA=A6Vc=E5=AF=B9=E8=B1=A1=EF=BC=8C=E4=BA=A7=E5=93=81-?= =?UTF-8?q?=E6=95=B4=E4=BD=93=E5=BC=8F=E5=88=80=E5=85=B7=E7=89=A9=E6=96=99?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=88=87=E5=89=8A=E9=80=9F=E5=BA=A6Vc?= =?UTF-8?q?=E5=85=B3=E8=81=94=E5=AD=97=E6=AE=B5=EF=BC=9B=E5=88=A0=E9=99=A4?= =?UTF-8?q?=E9=83=A8=E5=88=86=E4=BA=A7=E5=93=81-=E6=95=B4=E4=BD=93?= =?UTF-8?q?=E5=BC=8F=E5=88=80=E5=85=B7=E5=90=8C=E6=AD=A5=E9=85=8D=E7=BD=AE?= =?UTF-8?q?-=E5=88=80=E5=85=B7=E5=9E=8B=E5=8F=B7-=E6=95=B4=E4=BD=93?= =?UTF-8?q?=E5=BC=8F=E5=88=80=E5=85=B7=E5=8F=82=E6=95=B0=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sf_base/models/tool_other_features.py | 34 ++++++++++++++++++- sf_base/security/ir.model.access.csv | 1 + sf_base/views/tool_other_features_view.xml | 33 +++++++++++++++++++ sf_dlm/views/product_template_view.xml | 3 ++ sf_manufacturing/models/product_template.py | 36 ++------------------- 5 files changed, 72 insertions(+), 35 deletions(-) diff --git a/sf_base/models/tool_other_features.py b/sf_base/models/tool_other_features.py index 52acf25c..129b0199 100644 --- a/sf_base/models/tool_other_features.py +++ b/sf_base/models/tool_other_features.py @@ -38,4 +38,36 @@ class SuitableCoolant(models.Model): _description = '适合冷却液' name = fields.Char('名称') - image = fields.Image('图片') \ No newline at end of file + image = fields.Image('图片') + + +class CuttingSpeed(models.Model): + _name = 'sf.cutting.speed' + _description = '切削速度Vc' + + # def _get_order(self): + # last_tool = self.search([], order='id desc', limit=1) + # if last_tool: + # last_order = int(last_tool.order) + # new_order = last_order + 1 + # else: + # new_order = '1' + # return new_order + # + # order = fields.Char('序', default=_get_order, readonly=True) + + execution_standard_id = fields.Char('执行标准') + material_code = fields.Char('材料代号') + material_name = fields.Char('材料名称') + material_grade = fields.Char('材料牌号') + tensile_strength = fields.Char('拉伸强度 (N/mm²)') + hardness = fields.Char('硬度(HRC)') + + cutting_speed_n1 = fields.Char('径向切宽 ae=100%D1 ap=1*D1 切削速度Vc') + cutting_speed_n2 = fields.Char('径向切宽 ae=50%D1 ap=1.5*D1 切削速度Vc') + cutting_speed_n3 = fields.Char('径向切宽 ae=25%D1 ap=L1max 切削速度Vc') + cutting_speed_n4 = fields.Char('径向切宽 ae=15%D1 ap=L1max 切削速度Vc') + cutting_speed_n5 = fields.Char('径向切宽 ae=5%D1 ap=L1max 切削速度Vc') + rough_machining = fields.Char('粗加工 Vc(m/min)') + precision_machining = fields.Char('精加工 Vc(m/min)') + application = fields.Selection([('主应用', '主应用'), ('次应用', '次应用')], '主/次应用') \ No newline at end of file diff --git a/sf_base/security/ir.model.access.csv b/sf_base/security/ir.model.access.csv index ba3fb3d0..73661ae8 100644 --- a/sf_base/security/ir.model.access.csv +++ b/sf_base/security/ir.model.access.csv @@ -29,6 +29,7 @@ access_sf_blade_tip_characteristics,sf_blade_tip_characteristics,model_sf_blade_ access_sf_handle_type,sf_handle_type,model_sf_handle_type,base.group_user,1,1,1,1 access_sf_cutting_direction,sf_cutting_direction,model_sf_cutting_direction,base.group_user,1,1,1,1 access_sf_suitable_coolant,sf_suitable_coolant,model_sf_suitable_coolant,base.group_user,1,1,1,1 +access_sf_cutting_speed,sf_cutting_speed,model_sf_cutting_speed,base.group_user,1,1,1,1 diff --git a/sf_base/views/tool_other_features_view.xml b/sf_base/views/tool_other_features_view.xml index e094a376..df614171 100644 --- a/sf_base/views/tool_other_features_view.xml +++ b/sf_base/views/tool_other_features_view.xml @@ -98,4 +98,37 @@ sf.suitable.coolant tree + + + + + 切削速度Vc + sf.cutting.speed + + + + + + + + + + + + + + + + + + + + + + + 切削速度Vc + ir.actions.act_window + sf.cutting.speed + tree + \ No newline at end of file diff --git a/sf_dlm/views/product_template_view.xml b/sf_dlm/views/product_template_view.xml index c7622563..9a2f3b4f 100644 --- a/sf_dlm/views/product_template_view.xml +++ b/sf_dlm/views/product_template_view.xml @@ -225,6 +225,9 @@ + + + diff --git a/sf_manufacturing/models/product_template.py b/sf_manufacturing/models/product_template.py index 2a91f7f1..98e4247a 100644 --- a/sf_manufacturing/models/product_template.py +++ b/sf_manufacturing/models/product_template.py @@ -100,6 +100,8 @@ class ResProductMo(models.Model): cutting_direction_ids = fields.Many2many('sf.cutting.direction', 'rel_cutting_direction_product_template', '走刀方向') suitable_coolant_ids = fields.Many2many('sf.suitable.coolant', 'rel_suitable_coolant_product_template', '适合冷却液') + cutting_speed_ids = fields.Many2many('sf.cutting.speed', 'rel_sf_cutting_speed', '切削速度Vc') + @api.constrains('suitable_machining_method_ids') def _check_suitable_machining_method_ids(self): for record in self: @@ -421,23 +423,6 @@ class ResProductMo(models.Model): item.coating_material = item.cutting_tool_model_id.coating_material item.cutting_tool_total_length = item.cutting_tool_model_id.total_length item.cutting_tool_shank_length = item.cutting_tool_model_id.shank_length - item.integral_neck_length = item.cutting_tool_model_id.integral_neck_length - item.integral_shank_diameter = item.cutting_tool_model_id.integral_shank_diameter - item.integral_blade_diameter = item.cutting_tool_model_id.integral_blade_diameter - item.integral_neck_diameter = item.cutting_tool_model_id.integral_neck_diameter - item.integral_blade_tip_diameter = item.cutting_tool_model_id.integral_blade_tip_diameter - item.integral_blade_tip_taper = item.cutting_tool_model_id.integral_blade_tip_taper - item.integral_blade_helix_angle = item.cutting_tool_model_id.integral_blade_helix_angle - item.integral_blade_type = item.cutting_tool_model_id.integral_blade_type - item.integral_coarse_medium_fine = item.cutting_tool_model_id.integral_coarse_medium_fine - item.integral_hardness = item.cutting_tool_model_id.integral_hardness - item.integral_run_out_accuracy_max = item.cutting_tool_model_id.integral_run_out_accuracy_max - item.integral_run_out_accuracy_min = item.cutting_tool_model_id.integral_run_out_accuracy_min - item.suitable_machining_method_ids = self._get_ids(item.cutting_tool_model_id.suitable_machining_method_ids) - item.blade_tip_characteristics_ids = self._get_ids(item.cutting_tool_model_id.blade_tip_characteristics_ids) - item.handle_type_ids = self._get_ids(item.cutting_tool_model_id.handle_type_ids) - item.cutting_direction_ids = self._get_ids(item.cutting_tool_model_id.cutting_direction_ids) - item.suitable_coolant_ids = self._get_ids(item.cutting_tool_model_id.suitable_coolant_ids) item.cutting_tool_diameter = item.cutting_tool_model_id.diameter item.cutting_tool_blade_number = item.cutting_tool_model_id.blade_number item.cutting_tool_front_angle = item.cutting_tool_model_id.front_angle @@ -476,23 +461,6 @@ class ResProductMo(models.Model): item.cutting_tool_total_length = False item.cutting_tool_shank_length = False item.cutting_tool_blade_length = False - item.integral_neck_length = False - item.integral_shank_diameter = False - item.integral_blade_diameter = False - item.integral_neck_diameter = False - item.integral_blade_tip_diameter = False - item.integral_blade_tip_taper = False - item.integral_blade_helix_angle = False - item.integral_blade_type = False - item.integral_coarse_medium_fine = False - item.integral_hardness = False - item.integral_run_out_accuracy_max = False - item.integral_run_out_accuracy_min = False - item.suitable_machining_method_ids = False - item.blade_tip_characteristics_ids = False - item.handle_type_ids = False - item.cutting_direction_ids = False - item.suitable_coolant_ids = False item.cutting_tool_diameter = False item.cutting_tool_blade_number = False item.cutting_tool_front_angle = False