1、获取mrs编程接口优化,重新编程接口优化,创建CAM方法优化,cnc用刀校验逻辑优化

This commit is contained in:
yuxianghui
2024-10-10 17:31:56 +08:00
parent f18c0e3eaf
commit 25a90f3966
4 changed files with 16 additions and 13 deletions

View File

@@ -314,27 +314,28 @@ class CAMWorkOrderProgramKnifePlan(models.Model):
'applicant': None,
'sf_functional_tool_assembly_id': None})
def create_cam_work_plan(self, cnc_processing, missing_tools):
def create_cam_work_plan(self, cnc_ids):
"""
根据传入的工单信息查询是否有需要的功能刀具如果没有则生成CAM工单程序用刀计划
"""
# 获取编程单号
programming_no = cnc_processing.workorder_id.production_id.programming_no
programming_no = cnc_ids[0].workorder_id.production_id.programming_no
logging.info(f'编程单号:{programming_no}')
for missing_tool in missing_tools:
for cnc_processing in cnc_ids:
tool_name = cnc_processing.cutting_tool_name
cam_id = self.env['sf.cam.work.order.program.knife.plan'].sudo().search(
[('programming_no', '=', programming_no),
('functional_tool_name', '=', missing_tool)])
('functional_tool_name', '=', tool_name)])
if cam_id:
logging.info(f'CAM装刀计划{cam_id}')
logging.info(f'编程单号{programming_no}功能刀具名称{tool_name}已存在CAM装刀计划{cam_id}')
else:
knife_plan = self.env['sf.cam.work.order.program.knife.plan'].sudo().create({
'name': cnc_processing.workorder_id.production_id.name,
'programming_no': programming_no,
'cam_procedure_code': cnc_processing.program_name,
'filename': cnc_processing.cnc_id.name,
'functional_tool_name': missing_tool,
'functional_tool_name': tool_name,
'cam_cutter_spacing_code': cnc_processing.cutting_tool_no,
'process_type': cnc_processing.processing_type,
'margin_x_y': float(cnc_processing.margin_x_y),
@@ -344,9 +345,10 @@ class CAMWorkOrderProgramKnifePlan(models.Model):
'shank_model': cnc_processing.cutting_tool_handle_type,
'estimated_processing_time': cnc_processing.estimated_processing_time,
})
logging.info('CAM工单程序用刀计划创建成功!!!')
logging.info(f'创建CAM工单程序用刀计划{knife_plan}')
# 创建装刀请求
knife_plan.apply_for_tooling()
logging.info('CAM工单程序用刀计划创建已完成')
def unlink_cam_plan(self, production):
for item in production:

View File

@@ -192,6 +192,7 @@ class MrpProduction(models.Model):
'handle_result': '待处理'
})
# 自动调用重新获取编程的方法
logging.info('cnc用刀校验到无效刀自动调用重新编程方法update_programming_state()')
self[0].update_programming_state()
# 修改制造订单 编程状态变为“编程中”
self.write({'programming_state': '编程中', 'work_state': '编程中'})
@@ -203,10 +204,10 @@ class MrpProduction(models.Model):
cnc_ids.write({'tool_state': '1'})
if missing_tool_2 and not invalid_tool:
# 调用CAM工单程序用刀计划创建方法
logging.info('调用CAM工单程序用刀计划创建方法')
cnc_ids = self.env['sf.cnc.processing'].sudo().search(
[('workorder_id', 'in', workorder_ids.ids), ('cutting_tool_name', 'in', missing_tool_2)])
[('workorder_id', 'in', workorder_ids.filtered(lambda a: a.production_id == self[0].id).ids),
('cutting_tool_name', 'in', missing_tool_2)])
if cnc_ids:
self.env['sf.cam.work.order.program.knife.plan'].sudo().create_cam_work_plan(cnc_ids[0], list(
set(missing_tool_2)))
logging.info('调用CAM工单程序用刀计划创建方法')
self.env['sf.cam.work.order.program.knife.plan'].sudo().create_cam_work_plan(cnc_ids)
logging.info('工单cnc程序用刀校验完成')