1、新增安装时自动配置刀具房位置,重新配置了刀具组装入库的作业类型,增加名称为刀具组装入库的参考序列配置;2、功能刀具所以的装刀长改为总长度;3、机床换刀申请和刀具组装单弹窗界面做字段必填控制,对新刀隐藏切削相关字段;4、刀具组装单弹窗增加一些字段的数值自动填写和计算;

This commit is contained in:
yuxianghui
2023-12-19 17:31:37 +08:00
parent 19b9db66d3
commit 363463e31d
8 changed files with 153 additions and 68 deletions

View File

@@ -22,7 +22,7 @@ class FunctionalCuttingToolEntity(models.Model):
knife_tip_r_angle = fields.Float(string='刀尖R角(mm)', readonly=True)
coarse_middle_thin = fields.Selection([("1", ""), ('2', ''), ('3', '')], string='粗/中/精', readonly=True)
new_former = fields.Selection([('0', ''), ('1', '')], string='新/旧', readonly=True)
tool_loading_length = fields.Float(string='装刀长(mm)', readonly=True)
tool_loading_length = fields.Float(strin='总长度(mm)', readonly=True)
functional_tool_length = fields.Float(string='伸出长(mm)', readonly=True)
effective_length = fields.Float(string='有效长(mm)', readonly=True)
tool_room_num = fields.Integer(string='刀具房数量', readonly=True)
@@ -107,19 +107,41 @@ class FunctionalCuttingToolEntity(models.Model):
suitable_machining_method_ids = fields.Many2many(
'maintenance.equipment.image', 'rel_machining_product_template_tool_entity', '适合加工方式',
domain=[('type', '=', '加工能力')], related='cutting_tool_integral_model_id.suitable_machining_method_ids')
domain=[('type', '=', '加工能力')])
blade_tip_characteristics_id = fields.Many2one(
'maintenance.equipment.image', '刀尖特征',
domain=[('type', '=', '刀尖特征')], related='cutting_tool_integral_model_id.blade_tip_characteristics_id')
domain=[('type', '=', '刀尖特征')])
handle_type_id = fields.Many2one(
'maintenance.equipment.image', '柄部类型',
domain=[('type', '=', '柄部类型')], related='cutting_tool_integral_model_id.handle_type_id')
domain=[('type', '=', '柄部类型')])
cutting_direction_ids = fields.Many2many(
'maintenance.equipment.image', 'rel_cutting_product_template_tool_entity', '走刀方向',
domain=[('type', '=', '走刀方向')], related='cutting_tool_integral_model_id.cutting_direction_ids')
domain=[('type', '=', '走刀方向')])
suitable_coolant_ids = fields.Many2many(
'maintenance.equipment.image', 'rel_coolant_product_template_tool_entity', '适合冷却液',
domain=[('type', '=', '冷却液')], related='cutting_tool_integral_model_id.suitable_coolant_ids')
domain=[('type', '=', '冷却液')])
@api.depends('cutting_tool_integral_model_id', 'cutting_tool_blade_model_id')
def _compute_maintenance_equipment_image(self):
for record in self:
if record.cutting_tool_integral_model_id:
record.suitable_machining_method_ids = record.cutting_tool_integral_model_id.suitable_machining_method_ids.ids
record.blade_tip_characteristics_id = record.cutting_tool_integral_model_id.blade_tip_characteristics_id.ids
record.handle_type_id = record.cutting_tool_integral_model_id.handle_type_id.ids
record.cutting_direction_ids = record.cutting_tool_integral_model_id.cutting_direction_ids.ids
record.suitable_coolant_ids = record.cutting_tool_integral_model_id.suitable_coolant_ids.ids
elif record.cutting_tool_blade_model_id:
record.suitable_machining_method_ids = record.cutting_tool_blade_model_id.suitable_machining_method_ids.ids
record.blade_tip_characteristics_id = record.cutting_tool_blade_model_id.blade_tip_characteristics_id.ids
record.handle_type_id = record.cutting_tool_blade_model_id.handle_type_id.ids
record.cutting_direction_ids = record.cutting_tool_blade_model_id.cutting_direction_ids.ids
record.suitable_coolant_ids = record.cutting_tool_blade_model_id.suitable_coolant_ids.ids
else:
record.suitable_machining_method_ids = []
record.blade_tip_characteristics_id = []
record.handle_type_id = []
record.cutting_direction_ids = []
record.suitable_coolant_ids = []
def _get_functional_tool_model_ids(self, functional_tool_model_code):
functional_tool_model_ids = []
@@ -332,8 +354,7 @@ class MachineTableToolChangingApply(models.Model):
# 设备信息
maintenance_equipment_id = fields.Many2one('maintenance.equipment', string='CNC机床', readonly=True,
domain=[('category_id.equipment_type', '=', '机床')])
production_line_id = fields.Many2one('sf.production.line', string='生产线', readonly=True,
group_expand='_read_group_names')
production_line_id = fields.Many2one('sf.production.line', string='生产线', readonly=True)
machine_table_type_id = fields.Many2one('maintenance.equipment.category', string='机床类型', readonly=True,
compute='_compute_machine_table_type_id')
machine_tool_code = fields.Char(string='机台号', related='maintenance_equipment_id.name')
@@ -344,9 +365,10 @@ class MachineTableToolChangingApply(models.Model):
barcode_id = fields.Many2one('stock.lot', string='功能刀具序列号', store=True,
domain=[('product_id.name', '=', '功能刀具')],
related='functional_tool_name_id.barcode_id')
functional_tool_name_id = fields.Many2one('sf.functional.tool.assembly', string='功能刀具名称')
functional_tool_name_id = fields.Many2one('sf.functional.tool.assembly', domain=[('assemble_status', '=', '1')],
string='功能刀具名称')
functional_tool_type_id = fields.Many2one('sf.functional.cutting.tool.model', string='功能刀具类型', store=True,
related='functional_tool_name_id.functional_tool_type_id')
related='functional_tool_name_id.after_assembly_functional_tool_type_id')
tool_position_interface_type = fields.Selection(
[('BT刀柄式', 'BT刀柄式'), ('SK刀柄式', 'SK刀柄式'), ('HSK刀柄式', 'HSK刀柄式'),
@@ -403,11 +425,6 @@ class MachineTableToolChangingApply(models.Model):
if len(records) > 1:
raise ValidationError('该刀位号已存在,请重新选择!!!')
@api.model
def _read_group_names(self, categories, domain, order):
names = categories._search([], order=order, access_rights_uid=SUPERUSER_ID)
return categories.browse(names)
@api.constrains('functional_tool_status')
def automation_apply_for_tool_change(self):
"""
@@ -520,7 +537,7 @@ class CAMWorkOrderProgramKnifePlan(models.Model):
functional_tool_type_id = fields.Many2one('sf.functional.cutting.tool.model', string='功能刀具类型', readonly=False)
diameter = fields.Integer(string='刀具直径(mm)', readonly=False)
tool_included_angle = fields.Float(string='刀尖R角(mm)', readonly=False)
tool_loading_length = fields.Float(string='装刀长(mm)', readonly=False)
tool_loading_length = fields.Float(strin='总长度(mm)', readonly=False)
extension_length = fields.Float(string='伸出长(mm)')
effective_length = fields.Float(string='有效长(mm)')
new_former = fields.Selection([('0', ''), ('1', '')], string='新/旧', readonly=False, default='0')
@@ -608,7 +625,7 @@ class FunctionalToolAssembly(models.Model):
knife_tip_r_angle = fields.Float(string='刀尖R角(mm)', readonly=True)
coarse_middle_thin = fields.Selection([("1", ""), ('2', ''), ('3', '')], string='粗/中/精', readonly=True)
new_former = fields.Selection([('0', ''), ('1', '')], string='新/旧', readonly=True)
tool_loading_length = fields.Float(string='装刀长(mm)', readonly=True)
tool_loading_length = fields.Float(strin='总长度(mm)', readonly=True)
functional_tool_length = fields.Float(string='伸出长(mm)', readonly=True)
effective_length = fields.Float(string='有效长(mm)', readonly=True)
loading_task_source = fields.Selection([('0', 'CAM装刀'), ('1', '机台换刀'), ('2', '按库存组装')],
@@ -744,7 +761,7 @@ class FunctionalToolAssembly(models.Model):
after_assembly_max_lifetime_value = fields.Integer(string='组装后最大寿命值(min)', readonly=True)
after_assembly_alarm_value = fields.Integer(string='组装后报警值(min)', readonly=True)
after_assembly_used_value = fields.Integer(string='组装后已使用值(min)', readonly=True)
after_assembly_tool_loading_length = fields.Float(string='组装后装刀长(mm)', readonly=True)
after_assembly_tool_loading_length = fields.Float(string='组装后总长度(mm)', readonly=True)
after_assembly_functional_tool_length = fields.Float(string='组装后伸出长(mm)', readonly=True)
after_assembly_effective_length = fields.Float(string='组装后有效长(mm)', readonly=True)
L_D_number = fields.Float(string='L/D值(mm)', readonly=True)