配置-刀具型号新增整体式刀具能力参数补充;补充产品-整体式刀具同步配置-刀具型号-整体式刀具参数。
This commit is contained in:
@@ -108,10 +108,34 @@ class CuttingToolModel(models.Model):
|
||||
tool_thickness = fields.Integer('厚度(mm)')
|
||||
tool_weight = fields.Float('重量(kg)')
|
||||
coating_material = fields.Char('涂层材质')
|
||||
|
||||
# 整体式刀具参数
|
||||
total_length = fields.Float('总长度(mm)')
|
||||
shank_length = fields.Float('柄部长度(mm)')
|
||||
blade_length = fields.Float('刃部长度(mm)')
|
||||
# 整体式刀具新增字段
|
||||
integral_neck_length = fields.Float('整体式刀具颈部长度(mm)', digits=(6, 1))
|
||||
integral_shank_diameter = fields.Float('整体式刀具柄部直径(mm)', digits=(6, 1))
|
||||
integral_blade_diameter = fields.Float('整体式刀具刃部直径(mm)', digits=(6, 1))
|
||||
integral_neck_diameter = fields.Float('整体式刀具颈部直径(mm)', digits=(6, 1))
|
||||
integral_blade_tip_diameter = fields.Float('整体式刀具刀尖直径(mm)', digits=(6, 1))
|
||||
integral_blade_tip_taper = fields.Float('整体式刀具刀尖锥度(°)', digits=(6, 1))
|
||||
integral_blade_helix_angle = fields.Float('整体式刀具刃部螺旋角(°)', digits=(6, 1))
|
||||
integral_blade_type = fields.Char('整体式刀具刃部类型')
|
||||
integral_coarse_medium_fine = fields.Selection([('粗', '粗'), ('中', '中'), ('精', '精')], '整体式刀具粗/中/精')
|
||||
integral_hardness = fields.Integer('整体式刀具硬度(HRC)')
|
||||
integral_run_out_accuracy_max = fields.Float('整体式刀具端跳精度max', digits=(6, 1))
|
||||
integral_run_out_accuracy_min = fields.Float('整体式刀具端跳精度min', digits=(6, 1))
|
||||
suitable_machining_method_ids = fields.Many2many('sf.suitable.machining.method',
|
||||
'rel_suitable_machining_method_cutting_tool', '适合加工方式')
|
||||
blade_tip_characteristics_ids = fields.Many2many('sf.blade.tip.characteristics',
|
||||
'rel_blade_tip_characteristics_cutting_tool', '刀尖特征')
|
||||
handle_type_ids = fields.Many2many('sf.handle.type', 'rel_handle_type_cutting_tool', '柄部类型')
|
||||
cutting_direction_ids = fields.Many2many('sf.cutting.direction', 'rel_cutting_direction_cutting_tool',
|
||||
'走刀方向')
|
||||
suitable_coolant_ids = fields.Many2many('sf.suitable.coolant', 'rel_suitable_coolant_cutting_tool',
|
||||
'适合冷却液')
|
||||
|
||||
diameter = fields.Float('直径(mm)')
|
||||
blade_number = fields.Integer('刃数')
|
||||
front_angle = fields.Float('前角(°)')
|
||||
|
||||
@@ -243,6 +243,11 @@
|
||||
attrs="{'invisible': [('cutting_tool_type', '!=', '整体式刀具')]}"/>
|
||||
<field name="blade_length"
|
||||
attrs="{'invisible': [('cutting_tool_type', '!=', '整体式刀具')]}"/>
|
||||
<field name="integral_neck_length" string="颈部长度(mm)"
|
||||
attrs="{'invisible': [('cutting_tool_type', '!=', '整体式刀具')]}"/>
|
||||
<field name="integral_blade_type" string="刃部类型"
|
||||
attrs="{'invisible': [('cutting_tool_type', '!=', '整体式刀具')]}"/>
|
||||
|
||||
<!--刀片-->
|
||||
<label for="tool_length" string="尺寸(mm)"
|
||||
attrs='{"invisible": [("cutting_tool_type","not in",("刀片","刀杆","刀盘"))]}'/>
|
||||
@@ -259,7 +264,7 @@
|
||||
options="{'format': false}"/>
|
||||
</div>
|
||||
<field name="diameter"
|
||||
attrs="{'invisible': [('cutting_tool_type', 'not in', ('整体式刀具','刀片','刀杆','刀盘'))]}"/>
|
||||
attrs="{'invisible': [('cutting_tool_type', 'not in', ('刀片','刀杆','刀盘'))]}"/>
|
||||
<field name="blade_diameter"
|
||||
attrs="{'invisible': [('cutting_tool_type', 'not in', ('刀杆','刀盘'))]}"/>
|
||||
<field name="blade_number"
|
||||
@@ -288,32 +293,83 @@
|
||||
<field name="blade_ids" widget="many2many_tags"
|
||||
attrs="{'invisible': [('cutting_tool_type', 'not in', ('刀杆','刀盘'))]}"/>
|
||||
<field name="chuck_ids" widget="many2many_tags"
|
||||
attrs="{'invisible': [('cutting_tool_type', 'not in', ('刀杆','刀盘','刀柄','整体式刀具'))]}"/>
|
||||
attrs="{'invisible': [('cutting_tool_type', 'not in', ('刀杆','刀盘','刀柄'))]}"/>
|
||||
<field name="handle_ids" widget="many2many_tags"
|
||||
attrs="{'invisible': [('cutting_tool_type', 'not in', ('夹头'))]}"/>
|
||||
</group>
|
||||
<group>
|
||||
<!--整体式刀具-->
|
||||
<field name="integral_hardness" string="刀具硬度(HRC)"
|
||||
attrs="{'invisible': [('cutting_tool_type', '!=', '整体式刀具')]}"/>
|
||||
<field name="integral_coarse_medium_fine" string="粗/中/精"
|
||||
attrs="{'required': [('cutting_tool_type','=','整体式刀具')],'invisible': [('cutting_tool_type', '!=', '整体式刀具')]}"/>
|
||||
<field name="integral_shank_diameter" string="柄部直径(mm)"
|
||||
attrs="{'invisible': [('cutting_tool_type', '!=', '整体式刀具')]}"/>
|
||||
<field name="integral_blade_diameter" string="刃部直径(mm)"
|
||||
attrs="{'invisible': [('cutting_tool_type', '!=', '整体式刀具')]}"/>
|
||||
<field name="integral_neck_diameter" string="颈部直径(mm)"
|
||||
attrs="{'invisible': [('cutting_tool_type', '!=', '整体式刀具')]}"/>
|
||||
<field name="integral_blade_tip_diameter" string="刀尖直径(mm)"
|
||||
attrs="{'invisible': [('cutting_tool_type', '!=', '整体式刀具')]}"/>
|
||||
<field name="integral_blade_helix_angle" string="刃部螺旋角(°)"
|
||||
attrs="{'invisible': [('cutting_tool_type', '!=', '整体式刀具')]}"/>
|
||||
<field name="integral_blade_tip_taper" string="刀尖锥度(°)"
|
||||
attrs="{'invisible': [('cutting_tool_type', '!=', '整体式刀具')]}"/>
|
||||
|
||||
<field name="jump_accuracy"
|
||||
attrs="{'invisible': [('cutting_tool_type', '!=', '刀柄')]}"/>
|
||||
<field name="front_angle"
|
||||
attrs="{'invisible': [('cutting_tool_type', 'not in', ('整体式刀具','刀片'))]}"/>
|
||||
attrs="{'invisible': [('cutting_tool_type', 'not in', ('刀片'))]}"/>
|
||||
<field name="top_angle"
|
||||
attrs="{'invisible': [('cutting_tool_type', 'not in', ('整体式刀具','刀片'))]}"/>
|
||||
attrs="{'invisible': [('cutting_tool_type', 'not in', ('刀片'))]}"/>
|
||||
<field name="rear_angle"
|
||||
attrs="{'invisible': [('cutting_tool_type', 'not in', ('整体式刀具','刀片'))]}"/>
|
||||
attrs="{'invisible': [('cutting_tool_type', 'not in', ('刀片'))]}"/>
|
||||
<field name="main_included_angle"
|
||||
attrs="{'invisible': [('cutting_tool_type', 'not in', ('整体式刀具','刀片'))]}"/>
|
||||
attrs="{'invisible': [('cutting_tool_type', 'not in', ('刀片'))]}"/>
|
||||
<field name="coating_material"
|
||||
attrs="{'invisible': [('cutting_tool_type', 'not in', ('整体式刀具','刀片'))]}"/>
|
||||
<field name="accuracy_level"
|
||||
attrs="{'invisible': [('cutting_tool_type', '=', '刀柄')]}"/>
|
||||
<field name="working_hardness"/>
|
||||
attrs="{'invisible': [('cutting_tool_type', 'in', ('整体式刀具','刀柄'))]}"/>
|
||||
<field name="working_hardness"
|
||||
attrs="{'invisible': [('cutting_tool_type', '=', '整体式刀具')]}"/>
|
||||
<field name="wrench"
|
||||
attrs="{'invisible': [('cutting_tool_type', 'not in', ('夹头','刀柄','刀杆','刀盘' ))]}"/>
|
||||
<field name="screw"
|
||||
attrs="{'invisible': [('cutting_tool_type', 'not in', ('夹头','刀柄'))]}"/>
|
||||
<field name="nut"
|
||||
attrs="{'invisible': [('cutting_tool_type', 'not in', ('整体式刀具','刀片'))]}"/>
|
||||
attrs="{'invisible': [('cutting_tool_type', 'not in', ('刀片'))]}"/>
|
||||
</group>
|
||||
</group>
|
||||
<group col="1" attrs="{'invisible': [('cutting_tool_type', '!=', '整体式刀具')]}">
|
||||
<group>
|
||||
<group>
|
||||
<label for="integral_run_out_accuracy_min" string="端跳精度:"/>
|
||||
<div class="test_model">
|
||||
<label for="integral_run_out_accuracy_min" string="最小(min)"/>
|
||||
<field name="integral_run_out_accuracy_min" class="o_address_zip" required="1"
|
||||
options="{'format': false}" attrs="{'required': [('cutting_tool_type','=','整体式刀具')]}"/>
|
||||
<span>(mm)&nbsp;</span>
|
||||
<label for="integral_run_out_accuracy_max" string="最大(max)"/>
|
||||
<field name="integral_run_out_accuracy_max" class="o_address_zip" required="1"
|
||||
options="{'format': false}" attrs="{'required': [('cutting_tool_type','=','整体式刀具')]}"/>
|
||||
<span>(mm)&nbsp;</span>
|
||||
</div>
|
||||
</group>
|
||||
</group>
|
||||
<group string="适合加工方式">
|
||||
<field name="suitable_machining_method_ids" string=""/>
|
||||
</group>
|
||||
<group string="刀尖特征">
|
||||
<field name="blade_tip_characteristics_ids" string=""/>
|
||||
</group>
|
||||
<group string="柄部类型">
|
||||
<field name="handle_type_ids" string=""/>
|
||||
</group>
|
||||
<group string="走刀方向">
|
||||
<field name="cutting_direction_ids" string=""/>
|
||||
</group>
|
||||
<group string="适合冷却液">
|
||||
<field name="suitable_coolant_ids" string=""/>
|
||||
</group>
|
||||
</group>
|
||||
</page>
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
from odoo import models, fields, api
|
||||
from odoo.exceptions import ValidationError
|
||||
from odoo.modules import get_resource_path
|
||||
# from OCC.Extend.DataExchange import read_step_file
|
||||
# from OCC.Extend.DataExchange import write_stl_file
|
||||
from OCC.Extend.DataExchange import read_step_file
|
||||
from OCC.Extend.DataExchange import write_stl_file
|
||||
import logging
|
||||
import base64
|
||||
import hashlib
|
||||
@@ -80,7 +80,6 @@ class ResProductMo(models.Model):
|
||||
cutting_tool_blade_length = fields.Float('刃部长度(mm)', digits=(6, 1))
|
||||
cutting_tool_blade_number = fields.Integer('刃数(个)')
|
||||
# 整体式刀具新增字段
|
||||
integral_code = fields.Char('整体式刀具编码', readonly=True)
|
||||
integral_neck_length = fields.Float('整体式刀具颈部长度(mm)', digits=(6, 1))
|
||||
integral_shank_diameter = fields.Float('整体式刀具柄部直径(mm)', digits=(6, 1))
|
||||
integral_blade_diameter = fields.Float('整体式刀具刃部直径(mm)', digits=(6, 1))
|
||||
@@ -422,7 +421,23 @@ 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.cutting_tool_blade_length = item.cutting_tool_model_id.blade_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
|
||||
@@ -461,6 +476,23 @@ 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
|
||||
|
||||
Reference in New Issue
Block a user