1、新增安装时自动配置刀具房位置,重新配置了刀具组装入库的作业类型,增加名称为刀具组装入库的参考序列配置;2、功能刀具所以的装刀长改为总长度;3、机床换刀申请和刀具组装单弹窗界面做字段必填控制,对新刀隐藏切削相关字段;4、刀具组装单弹窗增加一些字段的数值自动填写和计算;
This commit is contained in:
@@ -35,23 +35,34 @@ class ToolChangeRequirementInformation(models.TransientModel):
|
||||
replacement_tool_name = fields.Char(string='待换功能刀具名称', required=True)
|
||||
replacement_tool_type_id = fields.Many2one('sf.functional.cutting.tool.model', string='待换功能刀具类型')
|
||||
replacement_diameter = fields.Integer(string='待换刀具直径(mm)')
|
||||
replacement_knife_tip_r_angle = fields.Float(string='待换刀具刀尖R角(mm)')
|
||||
replacement_tool_setting_length = fields.Float(string='待换刀具装刀长(mm)')
|
||||
replacement_knife_tip_r_angle = fields.Float(string='待换刀具刀尖R角(mm)', requride=True)
|
||||
replacement_tool_setting_length = fields.Float(string='待换刀具总长度(mm)', requride=True)
|
||||
replacement_extension_length = fields.Float(string='待换刀具伸出长(mm)')
|
||||
replacement_effective_length = fields.Float(string='待换刀具有效长(mm)')
|
||||
replacement_tool_coarse_middle_thin = fields.Selection([("1", "粗"), ('2', '中'), ('3', '精')],
|
||||
replacement_tool_coarse_middle_thin = fields.Selection([("1", "粗"), ('2', '中'), ('3', '精')], requride=True,
|
||||
string='待换刀具粗/中/精', default='3')
|
||||
|
||||
replacement_max_lifetime_value = fields.Integer(string='待换刀具最大寿命值(min)')
|
||||
replacement_alarm_value = fields.Integer(string='待换刀具报警值(min)')
|
||||
replacement_used_value = fields.Integer(string='待换刀具已使用值(min)')
|
||||
new_former = fields.Selection([('0', '新'), ('1', '旧')], string='新/旧', default='0')
|
||||
new_former = fields.Selection([('0', '新'), ('1', '旧')], string='新/旧', default='0', requride=True)
|
||||
replacement_whether_standard_knife = fields.Boolean(string='待换刀具是否标准刀', default=True)
|
||||
used_tool_time = fields.Datetime(string='用刀时间',
|
||||
default=lambda self: fields.Datetime.now() + timedelta(hours=4))
|
||||
applicant = fields.Char(string='申请人', default=lambda self: self.env.user.name, readonly=True)
|
||||
reason_for_applying = fields.Char(string='申请原因')
|
||||
|
||||
@api.constrains('replacement_knife_tip_r_angle', 'replacement_diameter', 'replacement_tool_coarse_middle_thin',
|
||||
'new_former')
|
||||
def _check_length_or_diamenter(self):
|
||||
for obj in self:
|
||||
if obj.replacement_diameter == 0 and obj.replacement_knife_tip_r_angle == 0:
|
||||
raise ValidationError('待换功能刀具信息【刀具直径】和【刀尖R角】不能同时为0!!!')
|
||||
if not obj.new_former:
|
||||
raise ValidationError('待换功能刀具信息【新/旧】不能位空!!!')
|
||||
if not obj.replacement_tool_coarse_middle_thin:
|
||||
raise ValidationError('待换功能刀具信息【粗/中/精】不能位空!!!')
|
||||
|
||||
def tool_changing_apply(self):
|
||||
"""
|
||||
确认换刀申请(按键)
|
||||
@@ -173,7 +184,7 @@ class FunctionalToolAssemblyOrder(models.TransientModel):
|
||||
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(string='总长度(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', '按库存组装')],
|
||||
@@ -336,7 +347,8 @@ class FunctionalToolAssemblyOrder(models.TransientModel):
|
||||
barcode_id = fields.Many2one('stock.lot', string='功能刀具序列号')
|
||||
after_assembly_functional_tool_name = fields.Char(string='组装后功能刀具名称', required=True)
|
||||
after_assembly_functional_tool_type_id = fields.Many2one('sf.functional.cutting.tool.model',
|
||||
string='组装后功能刀具类型')
|
||||
string='组装后功能刀具类型',
|
||||
compute='_compute_after_assembly_functional_tool_type_id')
|
||||
after_assembly_functional_tool_diameter = fields.Integer(string='组装后功能刀具直径(mm)')
|
||||
after_assembly_knife_tip_r_angle = fields.Float(string='组装后刀尖R角(mm)')
|
||||
after_assembly_new_former = fields.Selection([('0', '新'), ('1', '旧')], string='组装后新/旧', default='0')
|
||||
@@ -350,14 +362,54 @@ class FunctionalToolAssemblyOrder(models.TransientModel):
|
||||
after_assembly_max_lifetime_value = fields.Integer(string='组装后最大寿命值(min)')
|
||||
after_assembly_alarm_value = fields.Integer(string='组装后报警值(min)')
|
||||
after_assembly_used_value = fields.Integer(string='组装后已使用值(min)')
|
||||
after_assembly_tool_loading_length = fields.Float(string='组装后装刀长(mm)')
|
||||
after_assembly_functional_tool_length = fields.Float(string='组装后伸出长(mm)')
|
||||
after_assembly_tool_loading_length = fields.Float(string='组装后总长度(mm)')
|
||||
after_assembly_functional_tool_length = fields.Float(string='组装后伸出长(mm)', required=True)
|
||||
after_assembly_effective_length = fields.Float(string='组装后有效长(mm)')
|
||||
L_D_number = fields.Float(string='L/D值(mm)')
|
||||
L_D_number = fields.Float(string='L/D值(mm)', compute='_compute_l_d_number')
|
||||
hiding_length = fields.Float(string='避空长(mm)')
|
||||
|
||||
functional_tool_cutting_type = fields.Char(string='功能刀具切削类型', readonly=False)
|
||||
|
||||
@api.onchange('integral_code_id')
|
||||
def _onchange_after_assembly_functional_tool_diameter(self):
|
||||
for obj in self:
|
||||
if obj.integral_code_id:
|
||||
obj.after_assembly_functional_tool_diameter = obj.integral_code_id.product_id.cutting_tool_blade_diameter
|
||||
else:
|
||||
obj.after_assembly_functional_tool_diameter = 0
|
||||
|
||||
@api.onchange('blade_code_id')
|
||||
def _onchange_after_assembly_knife_tip_r_angle(self):
|
||||
for obj in self:
|
||||
if obj.blade_code_id:
|
||||
obj.after_assembly_knife_tip_r_angle = obj.blade_code_id.product_id.cutting_tool_blade_tip_circular_arc_radius
|
||||
else:
|
||||
obj.after_assembly_knife_tip_r_angle = 0
|
||||
|
||||
@api.depends('functional_tool_type_id')
|
||||
def _compute_after_assembly_functional_tool_type_id(self):
|
||||
for obj in self:
|
||||
if obj.functional_tool_type_id:
|
||||
obj.after_assembly_functional_tool_type_id = obj.functional_tool_type_id
|
||||
else:
|
||||
obj.after_assembly_functional_tool_type_id = None
|
||||
|
||||
@api.depends('hiding_length', 'after_assembly_functional_tool_diameter')
|
||||
def _compute_l_d_number(self):
|
||||
for record in self:
|
||||
if record.hiding_length != 0 and record.after_assembly_functional_tool_diameter != 0:
|
||||
record.L_D_number = record.hiding_length / record.after_assembly_functional_tool_diameter
|
||||
else:
|
||||
record.L_D_number = 0
|
||||
|
||||
@api.constrains('after_assembly_tool_loading_length', 'after_assembly_functional_tool_length')
|
||||
def _check_length_control(self):
|
||||
for obj in self:
|
||||
if obj.after_assembly_tool_loading_length == 0:
|
||||
raise ValidationError('组装参数信息【总长度】不能为0!!!')
|
||||
if obj.after_assembly_functional_tool_length == 0:
|
||||
raise ValidationError('组装参数信息【伸出长】不能为0!!!')
|
||||
|
||||
def functional_tool_assembly(self):
|
||||
"""
|
||||
功能刀具组装
|
||||
|
||||
@@ -40,7 +40,7 @@
|
||||
options="{'no_create': True, 'no_quick_create': True}"/>
|
||||
<field name="replacement_diameter" string="刀具直径(mm)"/>
|
||||
<field name="replacement_knife_tip_r_angle" string="刀尖R角(mm)"/>
|
||||
<field name="replacement_tool_setting_length" string="装刀长(mm)"/>
|
||||
<field name="replacement_tool_setting_length" string="总长度(mm)"/>
|
||||
<field name="replacement_extension_length" string="伸出长(mm)"/>
|
||||
<field name="replacement_effective_length" string="有效长(mm)"/>
|
||||
<field name="replacement_tool_coarse_middle_thin" string="粗/中/精"/>
|
||||
@@ -341,9 +341,9 @@
|
||||
<field name="after_assembly_functional_tool_diameter" string="刀具直径(mm)"/>
|
||||
<field name="after_assembly_knife_tip_r_angle" string="刀尖R角(mm)"/>
|
||||
<field name="after_assembly_new_former" string="新/旧"/>
|
||||
<field name="cut_time"/>
|
||||
<field name="cut_length"/>
|
||||
<field name="cut_number"/>
|
||||
<field name="cut_time" attrs="{'invisible': [('after_assembly_new_former','=','0')]}"/>
|
||||
<field name="cut_length" attrs="{'invisible': [('after_assembly_new_former','=','0')]}"/>
|
||||
<field name="cut_number" attrs="{'invisible': [('after_assembly_new_former','=','0')]}"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="after_assembly_whether_standard_knife" string="是否标准刀"/>
|
||||
@@ -351,11 +351,11 @@
|
||||
<field name="after_assembly_max_lifetime_value" string="最大寿命值(min)"/>
|
||||
<field name="after_assembly_alarm_value" string="报警值(min)"/>
|
||||
<field name="after_assembly_used_value" string="已使用值(min)"/>
|
||||
<field name="after_assembly_tool_loading_length" string="装刀长(mm)"/>
|
||||
<field name="after_assembly_tool_loading_length" string="总长度(mm)"/>
|
||||
<field name="after_assembly_functional_tool_length" string="伸出长(mm)"/>
|
||||
<field name="after_assembly_effective_length" string="有效长(mm)"/>
|
||||
<field name="L_D_number"/>
|
||||
<field name="hiding_length"/>
|
||||
<field name="L_D_number"/>
|
||||
</group>
|
||||
</group>
|
||||
</sheet>
|
||||
|
||||
Reference in New Issue
Block a user