优化同步刀具标准库接口(包含全部合并每日)
This commit is contained in:
@@ -113,6 +113,7 @@ class ToolMaterialsBasicParameters(models.Model):
|
||||
weight = fields.Char('重量(kg)', size=20)
|
||||
clamping_length = fields.Char('夹持长度(mm)', size=20)
|
||||
clamping_tolerance = fields.Char('夹持公差(mm)', size=20)
|
||||
cooling_jacket = fields.Char('适用冷却套型号', size=50)
|
||||
handle_ids = fields.Many2many(
|
||||
'sf.cutting.tool.type',
|
||||
relation='basic_param_chuck_handle_rel',
|
||||
@@ -122,25 +123,33 @@ class ToolMaterialsBasicParameters(models.Model):
|
||||
string='适用刀柄型号'
|
||||
)
|
||||
|
||||
def _json_basic_param(self, obj):
|
||||
basic_param_str = [0, '', {
|
||||
def _json_integral_tool_basic_param(self, obj):
|
||||
integral_tool_basic_param_str = (0, '', {
|
||||
'code': obj['code'],
|
||||
'cutting_tool_type': obj['cutting_tool_type'],
|
||||
'total_length': obj['total_length'],
|
||||
'blade_diameter': obj['blade_diameter'],
|
||||
'blade_length': obj['blade_length'],
|
||||
'blade_number': obj['blade_number'],
|
||||
'neck_diameter': obj['neck_diameter'],
|
||||
'neck_length': obj['neck_length'],
|
||||
'neck_diameter': obj['neck_diameter'],
|
||||
'handle_diameter': obj['handle_diameter'],
|
||||
'handle_length': obj['handle_length'],
|
||||
'blade_tip_diameter': obj['blade_tip_diameter'],
|
||||
'blade_tip_working_size': obj['blade_tip_working_size'],
|
||||
'blade_tip_taper': obj['blade_tip_taper'],
|
||||
'blade_diameter': obj['blade_diameter'],
|
||||
'blade_length': obj['blade_length'],
|
||||
'blade_helix_angle': obj['blade_helix_angle'],
|
||||
'blade_width': obj['blade_width'],
|
||||
'blade_depth': obj['blade_depth'],
|
||||
'pitch': obj['pitch'],
|
||||
'cutting_depth': obj['cutting_depth'],
|
||||
})
|
||||
return integral_tool_basic_param_str
|
||||
|
||||
def _json_blade_basic_param(self, obj):
|
||||
blade_basic_param_str = (0, '', {
|
||||
'code': obj['code'],
|
||||
'cutting_tool_type': obj['cutting_tool_type'],
|
||||
'length': obj['length'],
|
||||
'thickness': obj['thickness'],
|
||||
'width': obj['width'],
|
||||
@@ -149,9 +158,12 @@ class ToolMaterialsBasicParameters(models.Model):
|
||||
'blade_tip_circular_arc_radius': obj['blade_tip_circular_arc_radius'],
|
||||
'inscribed_circle_diameter': obj['inscribed_circle_diameter'],
|
||||
'install_aperture_diameter': obj['install_aperture_diameter'],
|
||||
'pitch': obj['pitch'],
|
||||
'chip_breaker_groove': obj['chip_breaker_groove'],
|
||||
'blade_teeth_model': obj['bladed_teeth_model'],
|
||||
'blade_blade_number': obj['blade_blade_number'],
|
||||
'cutting_depth': obj['cutting_depth'],
|
||||
'blade_width': obj['blade_width'],
|
||||
'main_included_angle': obj['main_included_angle'],
|
||||
'top_angle': obj['top_angle'],
|
||||
'blade_tip_dip_angle': obj['blade_tip_dip_angle'],
|
||||
@@ -161,22 +173,68 @@ class ToolMaterialsBasicParameters(models.Model):
|
||||
'blade_tip_height_tolerance': obj['blade_tip_height_tolerance'],
|
||||
'inscribed_circle_tolerance': obj['inscribed_circle_tolerance'],
|
||||
'thickness_tolerance': obj['thickness_tolerance'],
|
||||
})
|
||||
return blade_basic_param_str
|
||||
|
||||
def _json_cutter_arbor_basic_param(self, obj):
|
||||
cutter_arbor_basic_param_str = (0, '', {
|
||||
'code': obj['code'],
|
||||
'cutting_tool_type': obj['cutting_tool_type'],
|
||||
'height': obj['height'],
|
||||
'width': obj['width'],
|
||||
'blade_height': obj['blade_height'],
|
||||
'total_length': obj['total_length'],
|
||||
'blade_width': obj['blade_width'],
|
||||
'blade_length': obj['blade_length'],
|
||||
'blade_height': obj['blade_height'],
|
||||
'cutter_arbor_diameter': obj['cutter_arbor_diameter'],
|
||||
'main_included_angle': obj['main_included_angle'],
|
||||
'relief_angle': obj['relief_angle'],
|
||||
'cutting_depth': obj['cutting_depth'],
|
||||
'min_machining_aperture': obj['min_machining_aperture'],
|
||||
'install_blade_tip_num': obj['install_blade_tip_num'],
|
||||
'cutting_blade_model': obj['cutting_blade_model'],
|
||||
'cooling_hole': obj['cooling_hole'],
|
||||
'locating_slot_code': obj['locating_slot_code'],
|
||||
'installing_structure': obj['installing_structure'],
|
||||
'blade_ids': [(6, 0, [])] if not obj.get('blade_codes') else self.evn['sf.cutting.tool.type']._get_ids(
|
||||
obj['blade_codes']),
|
||||
'tool_shim': obj['tool_shim'],
|
||||
'cotter_pin': obj['cotter_pin'],
|
||||
'pressing_plate': obj['pressing_plate'],
|
||||
'screw': obj['screw'],
|
||||
'spanner': obj['spanner'],
|
||||
})
|
||||
return cutter_arbor_basic_param_str
|
||||
|
||||
def _json_cutter_head_basic_param(self, obj):
|
||||
cutter_head_basic_param_str = (0, '', {
|
||||
'code': obj['code'],
|
||||
'cutting_tool_type': obj['cutting_tool_type'],
|
||||
'install_blade_tip_num': obj['install_blade_tip_num'],
|
||||
'blade_diameter': obj['blade_diameter'],
|
||||
'cutter_head_diameter': obj['cutter_head_diameter'],
|
||||
'interface_diameter': obj['interface_diameter'],
|
||||
'total_length': obj['total_length'],
|
||||
'blade_length': obj['blade_length'],
|
||||
'cutting_depth': obj['cutting_depth'],
|
||||
'main_included_angle': obj['main_included_angle'],
|
||||
'installing_structure': obj['installing_structure'],
|
||||
'blade_ids': [(6, 0, [])] if not obj.get('blade_codes') else self.evn['sf.cutting.tool.type']._get_ids(
|
||||
obj['blade_codes']),
|
||||
'screw': obj['screw'],
|
||||
'spanner': obj['spanner'],
|
||||
'cutting_blade_model': obj['cutting_blade_model'],
|
||||
'cooling_hole': obj['cooling_hole'],
|
||||
'locating_slot_code': obj['locating_slot_code'],
|
||||
})
|
||||
return cutter_head_basic_param_str
|
||||
|
||||
def _json_knife_handle_basic_param(self, obj):
|
||||
knife_handle_basic_param_str = (0, '', {
|
||||
'code': obj['code'],
|
||||
'cutting_tool_type': obj['cutting_tool_type'],
|
||||
'total_length': obj['total_length'],
|
||||
'flange_shank_length': obj['flange_shank_length'],
|
||||
'handle_external_diameter': obj['handle_external_diameter'],
|
||||
'handle_inside_diameter': obj['handle_inside_diameter'],
|
||||
@@ -190,23 +248,40 @@ class ToolMaterialsBasicParameters(models.Model):
|
||||
'max_rotate_speed': obj['max_rotate_speed'],
|
||||
'diameter_slip_accuracy': obj['diameter_slip_accuracy'],
|
||||
'cooling_model': obj['cooling_model'],
|
||||
'is_rough_machining': obj['is_rough_machining'],
|
||||
'is_finish_machining': obj['is_finish_machining'],
|
||||
'is_quick_cutting': obj['is_quick_cutting'],
|
||||
'is_drill_hole': obj['is_drill_hole'],
|
||||
'is_safe_lock': obj['is_safe_lock'],
|
||||
'is_rough_machining': obj['whether_rough_machining'],
|
||||
'is_finish_machining': obj['whether_finish_machining'],
|
||||
'is_quick_cutting': obj['whether_quick_cutting'],
|
||||
'is_drill_hole': obj['whether_drill_hole'],
|
||||
'is_safe_lock': obj['whether_safe_lock'],
|
||||
'screw': obj['screw'],
|
||||
'spanner': obj['spanner'],
|
||||
})
|
||||
return knife_handle_basic_param_str
|
||||
|
||||
def _json_chuck_basic_param(self, obj):
|
||||
chuck_basic_param_str = (0, '', {
|
||||
'code': obj['code'],
|
||||
'cutting_tool_type': obj['cutting_tool_type'],
|
||||
'er_size_model': obj['er_size_model'],
|
||||
'min_clamping_diameter': obj['min_clamping_diameter'],
|
||||
'max_clamping_diameter': obj['max_clamping_diameter'],
|
||||
'outer_diameter': obj['outer_diameter'],
|
||||
'inner_diameter': obj['inner_diameter'],
|
||||
'run_out_accuracy': obj['run_out_accuracy'],
|
||||
'total_length': obj['total_length'],
|
||||
'taper': obj['taper'],
|
||||
'run_out_accuracy': obj['run_out_accuracy'],
|
||||
'top_diameter': obj['top_diameter'],
|
||||
'weight': obj['weight'],
|
||||
'clamping_mode': obj['clamping_mode'],
|
||||
'clamping_length': obj['clamping_length'],
|
||||
'clamping_tolerance': obj['clamping_tolerance'],
|
||||
'handle_ids': obj['weight'],
|
||||
'blade_ids': obj['clamping_length'],
|
||||
}]
|
||||
return basic_param_str
|
||||
'max_load_capacity': obj['max_load_capacity'],
|
||||
'handle_ids': [(6, 0, [])] if not obj.get(
|
||||
'handle_codes') else self.evn['sf.cutting.tool.type']._get_ids(obj['handle_codes']),
|
||||
'cooling_jacket': obj['cooling_jacket'],
|
||||
})
|
||||
return chuck_basic_param_str
|
||||
|
||||
|
||||
class CuttingSpeed(models.Model):
|
||||
@@ -215,11 +290,13 @@ class CuttingSpeed(models.Model):
|
||||
|
||||
# product_template_id = fields.Many2one('product.template', string='产品')
|
||||
standard_library_id = fields.Many2one('sf.cutting_tool.standard.library', string='标准库')
|
||||
execution_standard_id = fields.Char('执行标准')
|
||||
execution_standard_id = fields.Many2one('sf.international.standards', string='执行标准', store=True)
|
||||
material_code = fields.Char('材料代号')
|
||||
material_name = fields.Char('材料名称')
|
||||
material_id = fields.Many2one('sf.materials.model', '材料名称',
|
||||
domain="[('standards_id', '=', execution_standard_id)]")
|
||||
slope_milling_angle = fields.Integer('坡铣角度(°)')
|
||||
material_grade = fields.Char('材料牌号')
|
||||
tensile_strength = fields.Float('拉伸强度 (N/mm²)')
|
||||
tensile_strength = fields.Char('拉伸强度 (N/mm²)')
|
||||
hardness = fields.Float('硬度(HRC)')
|
||||
cutting_speed_n1 = fields.Char('径向切宽 ae=100%D1 ap=1*D1 切削速度Vc')
|
||||
cutting_speed_n2 = fields.Char('径向切宽 ae=50%D1 ap=1.5*D1 切削速度Vc')
|
||||
@@ -231,10 +308,11 @@ class CuttingSpeed(models.Model):
|
||||
application = fields.Selection([('主应用', '主应用'), ('次应用', '次应用')], '主/次应用')
|
||||
|
||||
def _json_cutting_speed(self, obj):
|
||||
cutting_speed_str = [0, '', {
|
||||
'execution_standard_id': obj['execution_standard_id'],
|
||||
cutting_speed_str = (0, '', {
|
||||
'execution_standard_id': self.env['sf.international.standards'].search(
|
||||
[('code', '=', obj['execution_standard_code'])]).id,
|
||||
'material_code': obj['material_code'],
|
||||
'material_name': obj['material_name'],
|
||||
'material_id': self.env['sf.materials.model'].search([('materials_no', '=', obj['material_name_code'])]).id,
|
||||
'material_grade': obj['material_grade'],
|
||||
'tensile_strength': obj['tensile_strength'],
|
||||
'hardness': obj['hardness'],
|
||||
@@ -246,36 +324,57 @@ class CuttingSpeed(models.Model):
|
||||
'rough_machining': obj['rough_machining'],
|
||||
'precision_machining': obj['precision_machining'],
|
||||
'application': obj['application'],
|
||||
}]
|
||||
})
|
||||
return cutting_speed_str
|
||||
|
||||
|
||||
class FeedPerTooth(models.Model):
|
||||
_name = 'sf.feed.per.tooth'
|
||||
_description = '每齿走刀量fz'
|
||||
_order = 'machining_method desc, blade_diameter, materials_type_id'
|
||||
|
||||
# product_template_id = fields.Many2one('product.template', string='产品')
|
||||
standard_library_id = fields.Many2one('sf.cutting_tool.standard.library', string='标准库')
|
||||
|
||||
cutting_speed = fields.Char('径向切宽 ae(mm)')
|
||||
machining_method = fields.Selection([('直铣', '直铣'), ('坡铣', '坡铣')], string='加工方式')
|
||||
materials_type_id = fields.Many2one('sf.materials.model', string='材料型号')
|
||||
# blade_diameter = fields.Float('刃部直径D1(mm)', readonly=True,
|
||||
# related='product_template_id.cutting_tool_blade_diameter')
|
||||
blade_diameter = fields.Char('刃部直径(mm)', readonly=True)
|
||||
feed_per_tooth = fields.Char('每齿走刀量 (mm/z)')
|
||||
unit = fields.Char('单位', default='fz')
|
||||
|
||||
def _json_feed_per_tooth(self, obj):
|
||||
feed_per_tooth_str = [0, '', {
|
||||
feed_per_tooth_str = (0, '', {
|
||||
'cutting_speed': obj['cutting_speed'],
|
||||
'machining_method': obj['machining_method'],
|
||||
'materials_type_id': obj['materials_type_id'],
|
||||
# 'blade_diameter': obj['blade_diameter'],
|
||||
'blade_diameter': obj['blade_diameter'],
|
||||
'feed_per_tooth': obj['feed_per_tooth'],
|
||||
'unit': obj['unit'],
|
||||
}]
|
||||
})
|
||||
return feed_per_tooth_str
|
||||
|
||||
def _json_feed_per_tooth_2(self, obj):
|
||||
feed_per_tooth_2_str = (0, '', {
|
||||
'machining_method': obj['machining_method'],
|
||||
'materials_type_id': self.env['sf.materials.model'].search(
|
||||
[('materials_no', '=', obj['materials_type_code'])]).id,
|
||||
'blade_diameter': obj['blade_diameter'],
|
||||
'feed_per_tooth': obj['feed_per_tooth'],
|
||||
})
|
||||
return feed_per_tooth_2_str
|
||||
|
||||
def _json_feed_per_tooth_3(self, obj):
|
||||
feed_per_tooth_3_str = (0, '', {
|
||||
'cutting_speed': obj['cutting_speed'],
|
||||
'feed_per_tooth': obj['feed_per_tooth'],
|
||||
})
|
||||
return feed_per_tooth_3_str
|
||||
|
||||
def _json_feed_per_tooth_4(self, obj):
|
||||
feed_per_tooth_4_str = (0, '', {
|
||||
'machining_method': obj['machining_method'],
|
||||
'materials_type_id': self.env['sf.materials.model'].search(
|
||||
[('materials_no', '=', obj['materials_type_code'])]).id,
|
||||
'feed_per_tooth': obj['feed_per_tooth'],
|
||||
})
|
||||
return feed_per_tooth_4_str
|
||||
|
||||
# @api.depends('product_template_id')
|
||||
# def _compute_product_template_id(self):
|
||||
# if self.product_template_id is not None:
|
||||
|
||||
Reference in New Issue
Block a user