|
|
|
|
@@ -42,8 +42,11 @@ class ResProductMo(models.Model):
|
|
|
|
|
product_model_type_id = fields.Many2one('sf.model.type', string='产品模型类型')
|
|
|
|
|
embryo_model_type_id = fields.Many2one('sf.model.type', string='坯料模型类型')
|
|
|
|
|
materials_id = fields.Many2one('sf.production.materials', string='材料')
|
|
|
|
|
materials_type_id = fields.Many2one('sf.materials.model', string='材料型号',
|
|
|
|
|
# materials_type_id = fields.Many2one('sf.materials.model', string='材料型号',
|
|
|
|
|
# domain="[('materials_id', '=', materials_id)]")
|
|
|
|
|
materials_type_id = fields.Many2one(related='cutting_tool_model_id.material_model_id', string='材料型号',
|
|
|
|
|
domain="[('materials_id', '=', materials_id)]")
|
|
|
|
|
# cutting_tool_model_id.material_model_id
|
|
|
|
|
server_product_process_parameters_id = fields.Many2one('sf.production.process.parameter',
|
|
|
|
|
string='表面工艺参数(服务产品)')
|
|
|
|
|
model_process_parameters_ids = fields.Many2many('sf.production.process.parameter', 'process_parameter_rel',
|
|
|
|
|
@@ -55,43 +58,102 @@ class ResProductMo(models.Model):
|
|
|
|
|
cutting_tool_model_id = fields.Many2one('sf.cutting_tool.standard.library', string='型号名称')
|
|
|
|
|
specification_id = fields.Many2one('sf.tool.materials.basic.parameters', string='物料号')
|
|
|
|
|
|
|
|
|
|
cutting_tool_type_id = fields.Many2one('sf.cutting.tool.type', string='类型',
|
|
|
|
|
# cutting_tool_type_id = fields.Many2one('sf.cutting.tool.type', string='类型',
|
|
|
|
|
# domain="[('cutting_tool_material_id.name', '=', cutting_tool_type)]")
|
|
|
|
|
cutting_tool_type_id = fields.Many2one(related='cutting_tool_model_id.cutting_tool_type_id', string='类型',
|
|
|
|
|
domain="[('cutting_tool_material_id.name', '=', cutting_tool_type)]")
|
|
|
|
|
|
|
|
|
|
brand_id = fields.Many2one('sf.machine.brand', '品牌')
|
|
|
|
|
|
|
|
|
|
tool_length = fields.Float('长度(mm)')
|
|
|
|
|
tool_width = fields.Float('宽度(mm)')
|
|
|
|
|
# brand_id = fields.Many2one('sf.machine.brand', '品牌')
|
|
|
|
|
brand_id = fields.Many2one(related='cutting_tool_model_id.brand_id', string='品牌')
|
|
|
|
|
# cutting_tool_model_id.brand_id
|
|
|
|
|
# tool_length = fields.Float('长度(mm)')
|
|
|
|
|
tool_length = fields.Float(related='specification_id.length', string='长度(mm)')
|
|
|
|
|
# specification_id.length
|
|
|
|
|
# tool_width = fields.Float('宽度(mm)')
|
|
|
|
|
tool_width = fields.Float(related='specification_id.width', string='宽度(mm)')
|
|
|
|
|
# specification_id.width
|
|
|
|
|
tool_height = fields.Float('高度(mm)')
|
|
|
|
|
tool_thickness = fields.Float('厚度(mm)')
|
|
|
|
|
tool_weight = fields.Float('重量(kg)')
|
|
|
|
|
tool_hardness = fields.Integer('硬度(hrc)')
|
|
|
|
|
coating_material = fields.Char('涂层材质')
|
|
|
|
|
# tool_thickness = fields.Float('厚度(mm)')
|
|
|
|
|
tool_thickness = fields.Float(related='specification_id.thickness', string='厚度(mm)')
|
|
|
|
|
# specification_id.thickness
|
|
|
|
|
# tool_weight = fields.Float('重量(kg)')
|
|
|
|
|
tool_weight = fields.Float(related='specification_id.weight', string='重量(kg)')
|
|
|
|
|
# specification_id.weight
|
|
|
|
|
# tool_hardness = fields.Integer('硬度(hrc)')
|
|
|
|
|
tool_hardness = fields.Integer(related='cutting_tool_model_id.tool_hardness', string='硬度(hrc)')
|
|
|
|
|
# cutting_tool_model_id.tool_hardness
|
|
|
|
|
# coating_material = fields.Char('涂层材质')
|
|
|
|
|
coating_material = fields.Char(related='cutting_tool_model_id.coating_material', string='涂层材质')
|
|
|
|
|
# cutting_tool_model_id.coating_material
|
|
|
|
|
# 整体式刀具特有字段
|
|
|
|
|
cutting_tool_total_length = fields.Float('总长度(mm)', digits=(6, 1))
|
|
|
|
|
cutting_tool_shank_length = fields.Float('柄部长度(mm)', digits=(6, 1))
|
|
|
|
|
cutting_tool_blade_length = fields.Float('刃部长度(mm)')
|
|
|
|
|
cutting_tool_blade_number = fields.Selection(
|
|
|
|
|
[('0', '0'), ('2', '2'), ('3', '3'), ('4', '4'), ('5', '5'), ('6', '6'), ('7', '7'), ('8', '8')],
|
|
|
|
|
string='刃数(个)', default='0')
|
|
|
|
|
# cutting_tool_total_length = fields.Float('总长度(mm)', digits=(6, 1))
|
|
|
|
|
cutting_tool_total_length = fields.Float(related='specification_id.total_length', string='总长度(mm)', digits=(6, 1))
|
|
|
|
|
# specification_id.total_length
|
|
|
|
|
# cutting_tool_shank_length = fields.Float('柄部长度(mm)', digits=(6, 1))
|
|
|
|
|
cutting_tool_shank_length = fields.Float(related='specification_id.handle_length', string='柄部长度(mm)',
|
|
|
|
|
digits=(6, 1))
|
|
|
|
|
# specification_id.handle_length
|
|
|
|
|
# cutting_tool_blade_length = fields.Float('刃部长度(mm)')
|
|
|
|
|
cutting_tool_blade_length = fields.Float(related='specification_id.blade_length', string='刃部长度(mm)')
|
|
|
|
|
# specification_id.blade_length
|
|
|
|
|
# cutting_tool_blade_number = fields.Selection(
|
|
|
|
|
# [('0', '0'), ('2', '2'), ('3', '3'), ('4', '4'), ('5', '5'), ('6', '6'), ('7', '7'), ('8', '8')],
|
|
|
|
|
# string='刃数(个)', default='0')
|
|
|
|
|
cutting_tool_blade_number = fields.Selection(related='specification_id.blade_number', string='刃数(个)')
|
|
|
|
|
# specification_id.blade_number
|
|
|
|
|
# 整体式刀具新增字段
|
|
|
|
|
cutting_tool_neck_length = fields.Float('颈部长度(mm)', digits=(6, 1))
|
|
|
|
|
cutting_tool_neck_diameter = fields.Float('颈部直径(mm)', digits=(6, 1))
|
|
|
|
|
cutting_tool_shank_diameter = fields.Float('柄部直径(mm)', digits=(6, 1))
|
|
|
|
|
cutting_tool_blade_tip_diameter = fields.Float('刀尖直径(mm)', digits=(6, 1))
|
|
|
|
|
cutting_tool_blade_tip_taper = fields.Integer('刀尖锥度(°)')
|
|
|
|
|
cutting_tool_blade_helix_angle = fields.Integer('刃部螺旋角(°)')
|
|
|
|
|
cutting_tool_blade_type = fields.Char('刃部类型')
|
|
|
|
|
cutting_tool_pitch = fields.Float('牙距(mm)')
|
|
|
|
|
cutting_tool_blade_width = fields.Float('刃部宽度(mm)')
|
|
|
|
|
cutting_tool_blade_depth = fields.Float('刃部深度(mm)')
|
|
|
|
|
# cutting_tool_neck_length = fields.Float('颈部长度(mm)', digits=(6, 1))
|
|
|
|
|
cutting_tool_neck_length = fields.Float(related='specification_id.neck_length', string='颈部长度(mm)', digits=(6, 1))
|
|
|
|
|
# specification_id.neck_length
|
|
|
|
|
# cutting_tool_neck_diameter = fields.Float('颈部直径(mm)', digits=(6, 1))
|
|
|
|
|
cutting_tool_neck_diameter = fields.Float(related='specification_id.neck_diameter', string='颈部直径(mm)',
|
|
|
|
|
digits=(6, 1))
|
|
|
|
|
# specification_id.neck_diameter
|
|
|
|
|
# cutting_tool_shank_diameter = fields.Float('柄部直径(mm)', digits=(6, 1))
|
|
|
|
|
cutting_tool_shank_diameter = fields.Float(related='specification_id.handle_diameter', string='柄部直径(mm)', digits=(6, 1))
|
|
|
|
|
# specification_id.handle_diameter
|
|
|
|
|
# cutting_tool_blade_tip_diameter = fields.Float('刀尖直径(mm)', digits=(6, 1))
|
|
|
|
|
cutting_tool_blade_tip_diameter = fields.Float(related='specification_id.blade_tip_diameter', string='刀尖直径(mm)',
|
|
|
|
|
digits=(6, 1))
|
|
|
|
|
# specification_id.blade_tip_diameter
|
|
|
|
|
# cutting_tool_blade_tip_taper = fields.Integer('刀尖锥度(°)')
|
|
|
|
|
cutting_tool_blade_tip_taper = fields.Integer(related='specification_id.blade_tip_taper', string='刀尖锥度(°)')
|
|
|
|
|
# specification_id.blade_tip_taper
|
|
|
|
|
# cutting_tool_blade_helix_angle = fields.Integer('刃部螺旋角(°)')
|
|
|
|
|
cutting_tool_blade_helix_angle = fields.Integer(related='specification_id.blade_helix_angle', string='刃部螺旋角(°)')
|
|
|
|
|
# specification_id.blade_helix_angle
|
|
|
|
|
# cutting_tool_blade_type = fields.Char('刃部类型')
|
|
|
|
|
cutting_tool_blade_type = fields.Char(related='cutting_tool_model_id.blade_type', string='刃部类型')
|
|
|
|
|
# cutting_tool_pitch = fields.Float('牙距(mm)')
|
|
|
|
|
cutting_tool_pitch = fields.Float(related='specification_id.pitch', string='牙距(mm)')
|
|
|
|
|
# specification_id.pitch
|
|
|
|
|
# cutting_tool_blade_width = fields.Float('刃部宽度(mm)')
|
|
|
|
|
cutting_tool_blade_width = fields.Float(related='specification_id.blade_width', string='刃部宽度(mm)')
|
|
|
|
|
# specification_id.blade_width
|
|
|
|
|
# cutting_tool_blade_depth = fields.Float('刃部深度(mm)')
|
|
|
|
|
cutting_tool_blade_depth = fields.Float(related='specification_id.blade_depth', string='刃部深度(mm)')
|
|
|
|
|
# specification_id.blade_depth
|
|
|
|
|
cutting_tool_cut_depth = fields.Float('切削深度(mm)')
|
|
|
|
|
cutting_tool_cut_depth_max = fields.Float('最大切削深度(mm)')
|
|
|
|
|
cutting_tool_coarse_medium_fine = fields.Selection([('粗', '粗'), ('中', '中'), ('精', '精')], '粗/中/精')
|
|
|
|
|
cutting_tool_run_out_accuracy_max = fields.Float('端跳精度max', digits=(6, 1))
|
|
|
|
|
cutting_tool_run_out_accuracy_min = fields.Float('端跳精度min', digits=(6, 1))
|
|
|
|
|
cutting_tool_blade_tip_working_size = fields.Char('刀尖倒角度(°)', size=20)
|
|
|
|
|
cutting_tool_blade_tip_r_size = fields.Float('刀尖R角(mm)')
|
|
|
|
|
# cutting_tool_cut_depth_max = fields.Float('最大切削深度(mm)')
|
|
|
|
|
cutting_tool_cut_depth_max = fields.Float(related='specification_id.cut_depth_max', string='最大切削深度(mm)')
|
|
|
|
|
# specification_id.cut_depth_max
|
|
|
|
|
# cutting_tool_coarse_medium_fine = fields.Selection([('粗', '粗'), ('中', '中'), ('精', '精')], '粗/中/精')
|
|
|
|
|
cutting_tool_coarse_medium_fine = fields.Selection(related='cutting_tool_model_id.integral_coarse_medium_fine', string='粗/中/精')
|
|
|
|
|
# cutting_tool_model_id.integral_coarse_medium_fine
|
|
|
|
|
# cutting_tool_run_out_accuracy_max = fields.Float('端跳精度max', digits=(6, 1))
|
|
|
|
|
cutting_tool_run_out_accuracy_max = fields.Char(related='cutting_tool_model_id.integral_run_out_accuracy_max', string='端跳精度max', digits=(6, 1))
|
|
|
|
|
# cutting_tool_model_id.integral_run_out_accuracy_max
|
|
|
|
|
# cutting_tool_run_out_accuracy_min = fields.Float('端跳精度min', digits=(6, 1))
|
|
|
|
|
cutting_tool_run_out_accuracy_min = fields.Char(related='cutting_tool_model_id.integral_run_out_accuracy_min',
|
|
|
|
|
string='端跳精度min', digits=(6, 1))
|
|
|
|
|
# cutting_tool_model_id.integral_run_out_accuracy_min
|
|
|
|
|
# cutting_tool_blade_tip_working_size = fields.Char('刀尖倒角度(°)', size=20)
|
|
|
|
|
cutting_tool_blade_tip_working_size = fields.Char(related='specification_id.blade_tip_working_size',
|
|
|
|
|
string='刀尖倒角度(°)', size=20)
|
|
|
|
|
# specification_id.blade_tip_working_size
|
|
|
|
|
# cutting_tool_blade_tip_r_size = fields.Float('刀尖R角(mm)')
|
|
|
|
|
cutting_tool_blade_tip_r_size = fields.Float(related='specification_id.tip_r_size',
|
|
|
|
|
string='刀尖R角(mm)')
|
|
|
|
|
# specification_id.tip_r_size
|
|
|
|
|
fit_blade_shape_id = fields.Many2one('maintenance.equipment.image',
|
|
|
|
|
'适配刀片形状', domain=[('type', '=', '刀片形状')])
|
|
|
|
|
suitable_machining_method_ids = fields.Many2many('maintenance.equipment.image',
|
|
|
|
|
@@ -429,44 +491,97 @@ class ResProductMo(models.Model):
|
|
|
|
|
# if not self.cutting_direction_ids:
|
|
|
|
|
# raise ValidationError("请选择走刀方向")
|
|
|
|
|
|
|
|
|
|
cutting_speed_ids = fields.One2many('sf.cutting.speed', 'product_template_id', string='切削速度Vc')
|
|
|
|
|
# cutting_speed_ids = fields.One2many('sf.cutting.speed', 'product_template_id', string='切削速度Vc')
|
|
|
|
|
cutting_speed_ids = fields.One2many(related='cutting_tool_model_id.cutting_speed_ids',
|
|
|
|
|
string='切削速度Vc')
|
|
|
|
|
# cutting_tool_model_id.cutting_speed_ids
|
|
|
|
|
feed_per_tooth_ids = fields.One2many('sf.feed.per.tooth', 'product_template_id', string='每齿走刀量fz')
|
|
|
|
|
cutting_tool_diameter = fields.Float('刀具直径(mm)')
|
|
|
|
|
cutting_tool_rear_angle = fields.Integer('后角(°)')
|
|
|
|
|
cutting_tool_main_included_angle = fields.Integer('主偏角(°)')
|
|
|
|
|
# cutting_tool_rear_angle = fields.Integer('后角(°)')
|
|
|
|
|
cutting_tool_rear_angle = fields.Integer(related='specification_id.relief_angle',
|
|
|
|
|
string='后角(°)')
|
|
|
|
|
# specification_id.relief_angle
|
|
|
|
|
# cutting_tool_main_included_angle = fields.Integer('主偏角(°)')
|
|
|
|
|
cutting_tool_main_included_angle = fields.Integer(related='specification_id.main_included_angle',
|
|
|
|
|
string='主偏角(°)')
|
|
|
|
|
# specification_id.main_included_angle
|
|
|
|
|
# 适用夹头型号可以多选
|
|
|
|
|
cutting_tool_chuck_id = fields.Many2one(
|
|
|
|
|
'sf.cutting_tool.standard.library',
|
|
|
|
|
domain="[('cutting_tool_type', '=', '夹头')]",
|
|
|
|
|
string='适用夹头型号')
|
|
|
|
|
# 刀片参数
|
|
|
|
|
cutting_tool_cut_blade_length = fields.Float('切削刃长(mm)')
|
|
|
|
|
cutting_tool_blade_tip_circular_arc_radius = fields.Char('刀尖圆弧半径(mm)', size=20)
|
|
|
|
|
cutting_tool_top_angle = fields.Integer('顶角(°)')
|
|
|
|
|
cutting_tool_inscribed_circle_diameter = fields.Float('内接圆直径(mm)')
|
|
|
|
|
cutting_tool_install_aperture_diameter = fields.Float('安装孔直径(mm)')
|
|
|
|
|
cutting_tool_chip_breaker_groove = fields.Selection([('无', '无'), ('单面', '单面'), ('双面', '双面')],
|
|
|
|
|
string='有无断屑槽')
|
|
|
|
|
cutting_tool_chip_breaker_type_code = fields.Char('断屑槽型代号')
|
|
|
|
|
cutting_tool_bladed_teeth_model = fields.Selection(
|
|
|
|
|
[('无', '无'), ('V牙型', 'V牙型'), ('米制全牙型', '米制全牙型'), ('美制全牙型', '美制全牙型'),
|
|
|
|
|
('惠氏全牙型', '惠氏全牙型'), ('BSPT全牙型', 'BSPT全牙型'), ('NPT全牙型', 'NPT全牙型'),
|
|
|
|
|
('UNJ全牙型', 'UNJ全牙型'), ('DIN405圆牙型', 'DIN405圆牙型'), ('ACME梯形', 'ACME梯形'),
|
|
|
|
|
('石油管螺纹刀片', '石油管螺纹刀片'), ('矮牙ACME梯形', '矮牙ACME梯形'),
|
|
|
|
|
('Trapeze30° 103', 'Trapeze30° 103')], string='刀片牙型', default='无')
|
|
|
|
|
cutting_tool_blade_blade_number = fields.Selection(
|
|
|
|
|
[('0', '0'), ('1', '1'), ('2', '2'), ('3', '3'), ('4', '4'), ('5', '5'), ('6', '6'),
|
|
|
|
|
('7', '7'), ('8', '8'), ('9', '9'), ('10', '10')],
|
|
|
|
|
string='刀片的刃数(个)')
|
|
|
|
|
# cutting_tool_cut_blade_length = fields.Float('切削刃长(mm)')
|
|
|
|
|
cutting_tool_cut_blade_length = fields.Float(related='specification_id.cutting_blade_length',
|
|
|
|
|
string='切削刃长(mm)')
|
|
|
|
|
# specification_id.cutting_blade_length
|
|
|
|
|
# cutting_tool_blade_tip_circular_arc_radius = fields.Char('刀尖圆弧半径(mm)', size=20)
|
|
|
|
|
cutting_tool_blade_tip_circular_arc_radius = fields.Char(related='specification_id.blade_tip_circular_arc_radius',
|
|
|
|
|
string='刀尖圆弧半径(mm)')
|
|
|
|
|
# specification_id.blade_tip_circular_arc_radius
|
|
|
|
|
# cutting_tool_top_angle = fields.Integer('顶角(°)')
|
|
|
|
|
cutting_tool_top_angle = fields.Integer(related='specification_id.top_angle',
|
|
|
|
|
string='顶角(°)')
|
|
|
|
|
# specification_id.top_angle
|
|
|
|
|
# cutting_tool_inscribed_circle_diameter = fields.Float('内接圆直径(mm)')
|
|
|
|
|
cutting_tool_inscribed_circle_diameter = fields.Float(related='specification_id.inscribed_circle_diameter',
|
|
|
|
|
string='内接圆直径(mm)')
|
|
|
|
|
# specification_id.inscribed_circle_diameter
|
|
|
|
|
# cutting_tool_install_aperture_diameter = fields.Float('安装孔直径(mm)')
|
|
|
|
|
cutting_tool_install_aperture_diameter = fields.Float(related='specification_id.install_aperture_diameter',
|
|
|
|
|
string='安装孔直径(mm)')
|
|
|
|
|
# specification_id.install_aperture_diameter
|
|
|
|
|
# cutting_tool_chip_breaker_groove = fields.Selection([('无', '无'), ('单面', '单面'), ('双面', '双面')],
|
|
|
|
|
# string='有无断屑槽')
|
|
|
|
|
cutting_tool_chip_breaker_groove = fields.Selection(related='specification_id.chip_breaker_groove',
|
|
|
|
|
string='有无断屑槽')
|
|
|
|
|
# specification_id.chip_breaker_groove
|
|
|
|
|
# cutting_tool_chip_breaker_type_code = fields.Char('断屑槽型代号')
|
|
|
|
|
cutting_tool_chip_breaker_type_code = fields.Char(related='specification_id.chip_breaker_type_code',
|
|
|
|
|
string='断屑槽型代号')
|
|
|
|
|
# specification_id.chip_breaker_type_code
|
|
|
|
|
# cutting_tool_bladed_teeth_model = fields.Selection(
|
|
|
|
|
# [('无', '无'), ('V牙型', 'V牙型'), ('米制全牙型', '米制全牙型'), ('美制全牙型', '美制全牙型'),
|
|
|
|
|
# ('惠氏全牙型', '惠氏全牙型'), ('BSPT全牙型', 'BSPT全牙型'), ('NPT全牙型', 'NPT全牙型'),
|
|
|
|
|
# ('UNJ全牙型', 'UNJ全牙型'), ('DIN405圆牙型', 'DIN405圆牙型'), ('ACME梯形', 'ACME梯形'),
|
|
|
|
|
# ('石油管螺纹刀片', '石油管螺纹刀片'), ('矮牙ACME梯形', '矮牙ACME梯形'),
|
|
|
|
|
# ('Trapeze30° 103', 'Trapeze30° 103')], string='刀片牙型', default='无')
|
|
|
|
|
cutting_tool_bladed_teeth_model = fields.Selection(related='specification_id.blade_teeth_model',
|
|
|
|
|
string='断屑槽型代号')
|
|
|
|
|
# specification_id.blade_teeth_model
|
|
|
|
|
# cutting_tool_blade_blade_number = fields.Selection(
|
|
|
|
|
# [('0', '0'), ('1', '1'), ('2', '2'), ('3', '3'), ('4', '4'), ('5', '5'), ('6', '6'),
|
|
|
|
|
# ('7', '7'), ('8', '8'), ('9', '9'), ('10', '10')],
|
|
|
|
|
# string='刀片的刃数(个)')
|
|
|
|
|
cutting_tool_blade_blade_number = fields.Selection(related='specification_id.blade_blade_number',
|
|
|
|
|
string='刀片的刃数(个)')
|
|
|
|
|
# specification_id.blade_blade_number
|
|
|
|
|
|
|
|
|
|
cutting_tool_thread_model = fields.Selection([('无', '无'), ('外螺纹', '外螺纹'), ('内螺纹', '内螺纹')],
|
|
|
|
|
string='螺纹类型')
|
|
|
|
|
cutting_tool_thread_num = fields.Float('每英寸螺纹数(tpi)')
|
|
|
|
|
cutting_tool_blade_tip_height_tolerance = fields.Char('刀尖高度公差(mm)', size=20)
|
|
|
|
|
cutting_tool_inscribed_circle_tolerance = fields.Char('内接圆公差(mm)', size=20)
|
|
|
|
|
cutting_tool_thickness_tolerance = fields.Char('厚度公差(mm)', size=20)
|
|
|
|
|
|
|
|
|
|
cutting_tool_jump_accuracy = fields.Char('径跳精度(mm)')
|
|
|
|
|
# cutting_tool_thread_model = fields.Selection([('无', '无'), ('外螺纹', '外螺纹'), ('内螺纹', '内螺纹')],
|
|
|
|
|
# string='螺纹类型')
|
|
|
|
|
cutting_tool_thread_model = fields.Selection(related='specification_id.thread_model',
|
|
|
|
|
string='螺纹类型')
|
|
|
|
|
# specification_id.thread_model
|
|
|
|
|
# cutting_tool_thread_num = fields.Float('每英寸螺纹数(tpi)')
|
|
|
|
|
cutting_tool_thread_num = fields.Float(related='specification_id.thread_num',
|
|
|
|
|
string='每英寸螺纹数(tpi)')
|
|
|
|
|
# specification_id.thread_num
|
|
|
|
|
# cutting_tool_blade_tip_height_tolerance = fields.Char('刀尖高度公差(mm)', size=20)
|
|
|
|
|
cutting_tool_blade_tip_height_tolerance = fields.Char(related='specification_id.blade_tip_height_tolerance',
|
|
|
|
|
string='刀尖高度公差(mm)')
|
|
|
|
|
# specification_id.blade_tip_height_tolerance
|
|
|
|
|
# cutting_tool_inscribed_circle_tolerance = fields.Char('内接圆公差(mm)', size=20)
|
|
|
|
|
cutting_tool_inscribed_circle_tolerance = fields.Char(related='specification_id.inscribed_circle_tolerance',
|
|
|
|
|
string='内接圆公差(mm)')
|
|
|
|
|
# specification_id.inscribed_circle_tolerance
|
|
|
|
|
# cutting_tool_thickness_tolerance = fields.Char('厚度公差(mm)', size=20)
|
|
|
|
|
cutting_tool_thickness_tolerance = fields.Char(related='specification_id.thickness_tolerance',
|
|
|
|
|
string='厚度公差(mm)')
|
|
|
|
|
# specification_id.thickness_tolerance
|
|
|
|
|
# cutting_tool_jump_accuracy = fields.Char('径跳精度(mm)')
|
|
|
|
|
cutting_tool_jump_accuracy = fields.Char(related='specification_id.run_out_accuracy',
|
|
|
|
|
string='径跳精度(mm)')
|
|
|
|
|
# specification_id.run_out_accuracy
|
|
|
|
|
cutting_tool_working_hardness = fields.Integer('加工硬度(hrc)')
|
|
|
|
|
cutting_tool_cutter_bar_ids = fields.Many2many(
|
|
|
|
|
'sf.cutting_tool.standard.library',
|
|
|
|
|
@@ -485,55 +600,153 @@ class ResProductMo(models.Model):
|
|
|
|
|
string='适用刀盘型号' # 使用空列表作为默认值
|
|
|
|
|
)
|
|
|
|
|
# 刀杆/参数
|
|
|
|
|
cutting_tool_knife_head_height = fields.Float('刀头高度(mm)')
|
|
|
|
|
cutting_tool_knife_head_width = fields.Float('刀头宽度(mm)')
|
|
|
|
|
cutting_tool_knife_head_length = fields.Float('刀头长度(mm)')
|
|
|
|
|
cutting_tool_blade_diameter = fields.Float('刃径/刃部直径(mm)')
|
|
|
|
|
cutting_tool_cutter_arbor_diameter = fields.Float('刀杆直径(mm)')
|
|
|
|
|
cutting_tool_min_machining_aperture = fields.Integer('最小加工孔径(mm)')
|
|
|
|
|
cutting_tool_install_blade_tip_num = fields.Integer('可装刀片数/齿数(个)')
|
|
|
|
|
cutting_tool_installing_structure = fields.Char('安装结构', size=20)
|
|
|
|
|
cutting_tool_blade_id = fields.Many2one(
|
|
|
|
|
'sf.cutting_tool.standard.library',
|
|
|
|
|
domain="[('cutting_tool_type', '=', '刀片')]",
|
|
|
|
|
string='适用刀片型号' # 使用空列表作为默认值
|
|
|
|
|
)
|
|
|
|
|
cutting_tool_tool_shim = fields.Char('适配刀垫型号', size=50)
|
|
|
|
|
cutting_tool_cotter_pin = fields.Char('适配销钉型号', size=50)
|
|
|
|
|
cutting_tool_pressing_plate = fields.Char('适配压板型号', size=50)
|
|
|
|
|
cutting_tool_screw = fields.Char('适配螺钉型号', size=50)
|
|
|
|
|
cutting_tool_wrench = fields.Char('适配扳手型号')
|
|
|
|
|
cutting_tool_is_cooling_hole = fields.Boolean('有无冷却孔', default=False)
|
|
|
|
|
cutting_tool_locating_slot_code = fields.Char('定位槽代号', size=20)
|
|
|
|
|
# cutting_tool_knife_head_height = fields.Float('刀头高度(mm)')
|
|
|
|
|
cutting_tool_knife_head_height = fields.Float(related='specification_id.knife_head_height',
|
|
|
|
|
string='刀头高度(mm)')
|
|
|
|
|
# specification_id.knife_head_height
|
|
|
|
|
# cutting_tool_knife_head_width = fields.Float('刀头宽度(mm)')
|
|
|
|
|
cutting_tool_knife_head_width = fields.Float(related='specification_id.knife_head_width',
|
|
|
|
|
string='刀头宽度(mm)')
|
|
|
|
|
# cutting_tool_knife_head_length = fields.Float('刀头长度(mm)')
|
|
|
|
|
cutting_tool_knife_head_length = fields.Float(related='specification_id.knife_head_length',
|
|
|
|
|
string='刀头长度(mm)')
|
|
|
|
|
# cutting_tool_blade_diameter = fields.Float('刃径/刃部直径(mm)')
|
|
|
|
|
cutting_tool_blade_diameter = fields.Float(related='specification_id.blade_diameter',
|
|
|
|
|
string='刃径/刃部直径(mm)')
|
|
|
|
|
# specification_id.blade_diameter
|
|
|
|
|
# cutting_tool_cutter_arbor_diameter = fields.Float('刀杆直径(mm)')
|
|
|
|
|
cutting_tool_cutter_arbor_diameter = fields.Float(related='specification_id.cutter_arbor_diameter',
|
|
|
|
|
string='刀杆直径(mm)')
|
|
|
|
|
# specification_id.cutter_arbor_diameter
|
|
|
|
|
# cutting_tool_min_machining_aperture = fields.Integer('最小加工孔径(mm)')
|
|
|
|
|
cutting_tool_min_machining_aperture = fields.Integer(related='specification_id.min_machining_aperture',
|
|
|
|
|
string='最小加工孔径(mm)')
|
|
|
|
|
# specification_id.min_machining_aperture
|
|
|
|
|
# cutting_tool_install_blade_tip_num = fields.Integer('可装刀片数/齿数(个)')
|
|
|
|
|
cutting_tool_install_blade_tip_num = fields.Integer(related='specification_id.install_blade_tip_num',
|
|
|
|
|
string='可装刀片数/齿数(个)')
|
|
|
|
|
# specification_id.install_blade_tip_num
|
|
|
|
|
# cutting_tool_installing_structure = fields.Char('安装结构', size=20)
|
|
|
|
|
cutting_tool_installing_structure = fields.Char(related='specification_id.installing_structure',
|
|
|
|
|
string='安装结构')
|
|
|
|
|
# specification_id.installing_structure
|
|
|
|
|
# cutting_tool_blade_id = fields.Many2one(
|
|
|
|
|
# 'sf.cutting_tool.standard.library',
|
|
|
|
|
# domain="[('cutting_tool_type', '=', '刀片')]",
|
|
|
|
|
# string='适用刀片型号' # 使用空列表作为默认值
|
|
|
|
|
# )
|
|
|
|
|
cutting_tool_blade_id = fields.Many2one(related='specification_id.blade_id',
|
|
|
|
|
domain="[('cutting_tool_type', '=', '刀片')]",
|
|
|
|
|
string='适用刀片型号')
|
|
|
|
|
# specification_id.blade_id
|
|
|
|
|
# cutting_tool_tool_shim = fields.Char('适配刀垫型号', size=50)
|
|
|
|
|
cutting_tool_tool_shim = fields.Char(related='specification_id.tool_shim',
|
|
|
|
|
string='适配刀垫型号')
|
|
|
|
|
# specification_id.tool_shim
|
|
|
|
|
# cutting_tool_cotter_pin = fields.Char('适配销钉型号', size=50)
|
|
|
|
|
cutting_tool_cotter_pin = fields.Char(related='specification_id.cotter_pin',
|
|
|
|
|
string='适配销钉型号')
|
|
|
|
|
# cutting_tool_pressing_plate = fields.Char('适配压板型号', size=50)
|
|
|
|
|
cutting_tool_pressing_plate = fields.Char(related='specification_id.pressing_plate',
|
|
|
|
|
string='适配压板型号')
|
|
|
|
|
# cutting_tool_screw = fields.Char('适配螺钉型号', size=50)
|
|
|
|
|
cutting_tool_screw = fields.Char(related='specification_id.screw',
|
|
|
|
|
string='适配螺钉型号')
|
|
|
|
|
# specification_id.screw
|
|
|
|
|
# cutting_tool_wrench = fields.Char('适配扳手型号')
|
|
|
|
|
cutting_tool_wrench = fields.Char(related='specification_id.spanner',
|
|
|
|
|
string='适配扳手型号')
|
|
|
|
|
# specification_id.spanner
|
|
|
|
|
# cutting_tool_is_cooling_hole = fields.Boolean('有无冷却孔', default=False)
|
|
|
|
|
cutting_tool_is_cooling_hole = fields.Boolean(related='specification_id.is_cooling_hole',
|
|
|
|
|
string='有无冷却孔')
|
|
|
|
|
# specification_id.is_cooling_hole
|
|
|
|
|
# cutting_tool_locating_slot_code = fields.Char('定位槽代号', size=20)
|
|
|
|
|
cutting_tool_locating_slot_code = fields.Char(related='specification_id.locating_slot_code',
|
|
|
|
|
string='定位槽代号')
|
|
|
|
|
# specification_id.locating_slot_code
|
|
|
|
|
# 刀盘参数
|
|
|
|
|
cutting_tool_cutter_head_diameter = fields.Float('刀盘直径(mm)')
|
|
|
|
|
cutting_tool_interface_diameter = fields.Float('接口直径(mm)')
|
|
|
|
|
|
|
|
|
|
# cutting_tool_cutter_head_diameter = fields.Float('刀盘直径(mm)')
|
|
|
|
|
cutting_tool_cutter_head_diameter = fields.Float(related='specification_id.cutter_head_diameter',
|
|
|
|
|
string='刀盘直径(mm)')
|
|
|
|
|
# specification_id.cutter_head_diameter
|
|
|
|
|
# cutting_tool_interface_diameter = fields.Float('接口直径(mm)')
|
|
|
|
|
cutting_tool_interface_diameter = fields.Float(related='specification_id.interface_diameter',
|
|
|
|
|
string='接口直径(mm)')
|
|
|
|
|
# specification_id.interface_diameter
|
|
|
|
|
# 刀柄参数
|
|
|
|
|
cutting_tool_clamping_diameter_max = fields.Float('最大夹持直径')
|
|
|
|
|
cutting_tool_clamping_diameter_min = fields.Float('最小夹持直径')
|
|
|
|
|
cutting_tool_flange_length = fields.Float('法兰柄长(mm)')
|
|
|
|
|
cutting_tool_flange_diameter = fields.Float('法兰直径(mm)')
|
|
|
|
|
cutting_tool_is_safety_lock = fields.Boolean('有无安全锁', default=False)
|
|
|
|
|
cutting_tool_is_high_speed_cutting = fields.Boolean('可高速切削', default=False)
|
|
|
|
|
cutting_tool_change_time = fields.Integer('换刀时间(s)')
|
|
|
|
|
cutting_tool_clamping_way = fields.Char('夹持方式')
|
|
|
|
|
cutting_tool_fit_chuck_size = fields.Char('适配夹头尺寸')
|
|
|
|
|
cutting_tool_taper_shank_model = fields.Char('锥柄型号')
|
|
|
|
|
# cutting_tool_clamping_diameter_max = fields.Float('最大夹持直径')
|
|
|
|
|
cutting_tool_clamping_diameter_max = fields.Float(related='specification_id.max_clamping_diameter',
|
|
|
|
|
string='最大夹持直径')
|
|
|
|
|
# specification_id.max_clamping_diameter
|
|
|
|
|
# cutting_tool_clamping_diameter_min = fields.Float('最小夹持直径')
|
|
|
|
|
cutting_tool_clamping_diameter_min = fields.Float(related='specification_id.min_clamping_diameter',
|
|
|
|
|
string='最小夹持直径')
|
|
|
|
|
# specification_id.min_clamping_diameter
|
|
|
|
|
# cutting_tool_flange_length = fields.Float('法兰柄长(mm)')
|
|
|
|
|
cutting_tool_flange_length = fields.Float(related='specification_id.flange_shank_length',
|
|
|
|
|
string='法兰柄长(mm)')
|
|
|
|
|
# cutting_tool_flange_diameter = fields.Float('法兰直径(mm)')
|
|
|
|
|
cutting_tool_flange_diameter = fields.Float(related='specification_id.flange_diameter',
|
|
|
|
|
string='法兰直径(mm)')
|
|
|
|
|
# cutting_tool_is_safety_lock = fields.Boolean('有无安全锁', default=False)
|
|
|
|
|
cutting_tool_is_safety_lock = fields.Boolean(related='specification_id.is_safe_lock',
|
|
|
|
|
string='有无安全锁')
|
|
|
|
|
# cutting_tool_is_high_speed_cutting = fields.Boolean('可高速切削', default=False)
|
|
|
|
|
cutting_tool_is_high_speed_cutting = fields.Boolean(related='specification_id.is_quick_cutting',
|
|
|
|
|
string='可高速切削')
|
|
|
|
|
# cutting_tool_change_time = fields.Integer('换刀时间(s)')
|
|
|
|
|
cutting_tool_change_time = fields.Integer(related='specification_id.tool_changing_time',
|
|
|
|
|
string='换刀时间(s)')
|
|
|
|
|
# cutting_tool_clamping_way = fields.Char('夹持方式')
|
|
|
|
|
cutting_tool_clamping_way = fields.Char(related='specification_id.clamping_mode',
|
|
|
|
|
string='夹持方式')
|
|
|
|
|
# cutting_tool_fit_chuck_size = fields.Char('适配夹头尺寸')
|
|
|
|
|
cutting_tool_fit_chuck_size = fields.Char(related='specification_id.fit_chuck_size',
|
|
|
|
|
string='适配夹头尺寸')
|
|
|
|
|
# cutting_tool_taper_shank_model = fields.Char('锥柄型号')
|
|
|
|
|
cutting_tool_taper_shank_model = fields.Char(related='specification_id.taper_shank_model',
|
|
|
|
|
string='锥柄型号')
|
|
|
|
|
cutting_tool_standard_speed = fields.Integer('标准转速(n/min)')
|
|
|
|
|
cutting_tool_speed_max = fields.Integer('最大转速(n/min)')
|
|
|
|
|
# cutting_tool_speed_max = fields.Integer('最大转速(n/min)')
|
|
|
|
|
cutting_tool_speed_max = fields.Integer(related='specification_id.max_rotate_speed',
|
|
|
|
|
string='最大转速(n/min)')
|
|
|
|
|
# specification_id.max_rotate_speed
|
|
|
|
|
cutting_tool_cooling_type = fields.Char('冷却类型')
|
|
|
|
|
cutting_tool_dynamic_balance_class = fields.Char('动平衡等级')
|
|
|
|
|
cutting_tool_fit_nut_model = fields.Char('适用锁紧螺母型号')
|
|
|
|
|
|
|
|
|
|
# cutting_tool_fit_nut_model = fields.Char('适用锁紧螺母型号')
|
|
|
|
|
cutting_tool_fit_nut_model = fields.Char(related='specification_id.nut',
|
|
|
|
|
string='适用锁紧螺母型号')
|
|
|
|
|
# specification_id.nut
|
|
|
|
|
# 夹头参数
|
|
|
|
|
cutting_tool_taper = fields.Integer('锥度(°)')
|
|
|
|
|
cutting_tool_top_diameter = fields.Float('顶部直径')
|
|
|
|
|
cutting_tool_outer_diameter = fields.Float('外径(mm)')
|
|
|
|
|
cutting_tool_inner_diameter = fields.Float('内径(mm)')
|
|
|
|
|
cooling_suit_type_ids = fields.Char('适用冷却套型号')
|
|
|
|
|
cutting_tool_max_load_capacity = fields.Float('最大负载能力(kg)')
|
|
|
|
|
cutting_tool_er_size_model = fields.Char('尺寸型号')
|
|
|
|
|
# cutting_tool_taper = fields.Integer('锥度(°)')
|
|
|
|
|
cutting_tool_taper = fields.Integer(related='specification_id.taper',
|
|
|
|
|
string='锥度(°)')
|
|
|
|
|
# specification_id.taper
|
|
|
|
|
# cutting_tool_top_diameter = fields.Float('顶部直径')
|
|
|
|
|
cutting_tool_top_diameter = fields.Float(related='specification_id.top_diameter',
|
|
|
|
|
string='顶部直径')
|
|
|
|
|
# specification_id.top_diameter
|
|
|
|
|
# cutting_tool_outer_diameter = fields.Float('外径(mm)')
|
|
|
|
|
# specification_id.outer_diameter
|
|
|
|
|
cutting_tool_outer_diameter = fields.Float(related='specification_id.outer_diameter',
|
|
|
|
|
string='外径(mm)')
|
|
|
|
|
# cutting_tool_inner_diameter = fields.Float('内径(mm)')
|
|
|
|
|
cutting_tool_inner_diameter = fields.Float(related='specification_id.inner_diameter',
|
|
|
|
|
string='内径(mm)')
|
|
|
|
|
# specification_id.inner_diameter
|
|
|
|
|
# cooling_suit_type_ids = fields.Char('适用冷却套型号')
|
|
|
|
|
cooling_suit_type_ids = fields.Char(related='specification_id.cooling_jacket',
|
|
|
|
|
string='适用冷却套型号')
|
|
|
|
|
# specification_id.cooling_jacket
|
|
|
|
|
# cutting_tool_max_load_capacity = fields.Float('最大负载能力(kg)')
|
|
|
|
|
cutting_tool_max_load_capacity = fields.Float(related='specification_id.max_load_capacity',
|
|
|
|
|
string='最大负载能力(kg)')
|
|
|
|
|
# specification_id.max_load_capacity
|
|
|
|
|
# cutting_tool_er_size_model = fields.Char('尺寸型号')
|
|
|
|
|
cutting_tool_er_size_model = fields.Char(related='specification_id.er_size_model',
|
|
|
|
|
string='尺寸型号')
|
|
|
|
|
# specification_id.er_size_model
|
|
|
|
|
# cutting_tool_handle_ids = fields.Many2many(
|
|
|
|
|
# 'sf.cutting_tool.standard.library',
|
|
|
|
|
# relation='product_cutting_tool_library_chuck_handle_rel',
|
|
|
|
|
@@ -543,11 +756,15 @@ class ResProductMo(models.Model):
|
|
|
|
|
# string='适用刀柄型号'
|
|
|
|
|
# )
|
|
|
|
|
|
|
|
|
|
cutting_tool_handle_id = fields.Many2one(
|
|
|
|
|
'sf.cutting_tool.standard.library',
|
|
|
|
|
domain="[('cutting_tool_type', '=', '刀柄')]",
|
|
|
|
|
string='适用刀柄型号'
|
|
|
|
|
)
|
|
|
|
|
# cutting_tool_handle_id = fields.Many2one(
|
|
|
|
|
# 'sf.cutting_tool.standard.library',
|
|
|
|
|
# domain="[('cutting_tool_type', '=', '刀柄')]",
|
|
|
|
|
# string='适用刀柄型号'
|
|
|
|
|
# )
|
|
|
|
|
cutting_tool_handle_id = fields.Many2one(related='cutting_tool_model_id.handle_id',
|
|
|
|
|
domain="[('cutting_tool_type', '=', '刀柄')]",
|
|
|
|
|
string='适用刀柄型号')
|
|
|
|
|
# cutting_tool_model_id.handle_id
|
|
|
|
|
|
|
|
|
|
# 注册状态
|
|
|
|
|
register_state = fields.Selection([('未注册', '未注册'), ('已注册', '已注册'), ('注册失败', '注册失败')],
|
|
|
|
|
|