253 lines
14 KiB
Python
253 lines
14 KiB
Python
from odoo import models, fields
|
|
|
|
|
|
class BasicParametersFixture(models.Model):
|
|
_name = 'sf.fixture.materials.basic.parameters'
|
|
_description = '夹具物料基本参数'
|
|
|
|
fixture_model_id = fields.Many2one('sf.fixture.model', '夹具型号')
|
|
name = fields.Char('物料号', size=20)
|
|
length = fields.Float('长度(mm)', digits=(16, 2))
|
|
width = fields.Float('宽度(mm)', digits=(16, 2))
|
|
height = fields.Float('高度(mm)', digits=(16, 2))
|
|
diameter = fields.Float('直径(mm)', digits=(16, 2))
|
|
|
|
# '零点卡盘' 字段
|
|
weight = fields.Float('重量(mm)', digits=(16, 2))
|
|
orientation_dish_diameter = fields.Float('定位盘直径(mm)', digits=(16, 2))
|
|
clamping_diameter = fields.Float('装夹直径(mm)', digits=(16, 2))
|
|
clamping_num = fields.Selection([('1', '1'), ('2', '2'), ('4', '4'), ('6', '6'), ('8', '8')], string='装夹单元数')
|
|
chucking_power_max = fields.Float('最大夹持力(KN)', digits=(16, 2))
|
|
repeated_positioning_accuracy = fields.Char('重复定位精度(mm)', size=20)
|
|
boolean_transposing_hole = fields.Boolean('是否有转位孔')
|
|
unlocking_method = fields.Selection(
|
|
[('手动', '手动'), ('气动', '气动'), ('液压', '液压'), ('电动', '电动'), ('其他', '其他')], string='解锁方式')
|
|
boolean_chip_blowing_function = fields.Boolean('是否有吹屑功能')
|
|
carrying_capacity_max = fields.Float('最大承载重量(kg)', digits=(16, 2))
|
|
rigidity = fields.Integer('硬度HRC')
|
|
materials_model_id = fields.Many2one('sf.materials.model', '夹具材质')
|
|
machine_tool_type_id = fields.Many2one('sf.machine_tool.type', '适用机床型号')
|
|
|
|
# ’零点托盘‘ 字段
|
|
connector_diameter = fields.Selection([('2', '2'), ('3', '3'), ('4', '4'), ('5', '5'), ('6', '6'), ('8', '8')],
|
|
string='连接头直径(mm)')
|
|
way_to_install = fields.Selection(
|
|
[('接口式', '接口式'), ('螺栓固定', '螺栓固定'), ('磁吸式', '磁吸式'), ('其他', '其他')], string='安装方式')
|
|
type_of_drive = fields.Selection(
|
|
[('气动式', '气动式'), ('液压式', '液压式'), ('机械式', '机械式'), ('电动式', '电动式'), ('其他', '其他')],
|
|
string='驱动方式')
|
|
|
|
# ’气动夹具‘ 字段
|
|
gripper_length_min = fields.Float('夹持工件最小长度(mm)', digits=(16, 2))
|
|
gripper_width_min = fields.Float('夹持工件最小宽度(mm)', digits=(16, 2))
|
|
gripper_height_min = fields.Float('夹持工件最小高度(mm)', digits=(16, 2))
|
|
gripper_diameter_min = fields.Float('夹持工件最小直径(mm)', digits=(16, 2))
|
|
gripper_length_max = fields.Float('夹持工件最大长度(mm)', digits=(16, 2))
|
|
gripper_width_max = fields.Float('夹持工件最大宽度(mm)', digits=(16, 2))
|
|
gripper_height_max = fields.Float('夹持工件最大高度(mm)', digits=(16, 2))
|
|
gripper_diameter_max = fields.Float('夹持工件最大直径(mm)', digits=(16, 2))
|
|
rated_air_pressure = fields.Float('额定气压(Mpa)', digits=(16, 2))
|
|
interface_materials_model_id = fields.Many2one('sf.materials.model', '接口类型')
|
|
|
|
# ‘虎钳夹具' 字段
|
|
transverse_groove = fields.Float('横向配合槽n(mm)', digits=(16, 2))
|
|
longitudinal_fitting_groove = fields.Float('纵向配合槽l(mm)', digits=(16, 2))
|
|
|
|
# '磁吸夹具' 字段
|
|
height_tolerance_value = fields.Char('高度公差(mm)')
|
|
rated_adsorption_force = fields.Float('额定吸附力(N/cm²)', digits=(16, 2))
|
|
magnetic_field_height = fields.Float('磁场高度(mm)', digits=(16, 2))
|
|
magnetic_pole_plate_grinding_allowance = fields.Float('磁极板磨削余量(mm)', digits=(16, 2))
|
|
|
|
# '转接板(锁板)夹具' 字段
|
|
screw_size = fields.Float('螺牙大小(mm)', digits=(16, 2))
|
|
via_hole_diameter = fields.Float('过孔直径(mm)', digits=(16, 2))
|
|
|
|
# '三爪卡盘' 字段
|
|
mounting_hole_depth = fields.Float('安装孔深度(mm)', digits=(16, 2))
|
|
centering_diameter = fields.Float('定心直径(mm)', digits=(16, 2))
|
|
|
|
def _json_zero_chuck_param(self, obj):
|
|
zero_chuck_param_str = (0, '', {
|
|
'name': obj['name'],
|
|
'length': obj['length'],
|
|
'width': obj['width'],
|
|
'height': obj['height'],
|
|
'diameter': obj['diameter'],
|
|
'weight': obj['weight'],
|
|
'orientation_dish_diameter': obj['orientation_dish_diameter'],
|
|
'clamping_diameter': obj['clamping_diameter'],
|
|
'clamping_num': obj['clamping_num'],
|
|
'chucking_power_max': obj['chucking_power_max'],
|
|
'repeated_positioning_accuracy': obj['repeated_positioning_accuracy'],
|
|
'boolean_transposing_hole': obj['boolean_transposing_hole'],
|
|
'unlocking_method': obj['unlocking_method'],
|
|
'boolean_chip_blowing_function': obj['boolean_chip_blowing_function'],
|
|
'carrying_capacity_max': obj['carrying_capacity_max'],
|
|
'rigidity': obj['rigidity'],
|
|
'materials_model_id': self.env['sf.materials.model'].sudo().search(
|
|
[('materials_no', '=', obj['materials_model_id']), ('active', '=', True)]).id,
|
|
'machine_tool_type_id': self.env['sf.machine_tool.type'].sudo().search(
|
|
[('code', '=', obj['machine_tool_type_id']), ('active', '=', True)]).id,
|
|
})
|
|
return zero_chuck_param_str
|
|
|
|
def _json_zero_tray_param(self, obj):
|
|
zero_tray_param_str = (0, '', {
|
|
'name': obj['name'],
|
|
'length': obj['length'],
|
|
'width': obj['width'],
|
|
'height': obj['height'],
|
|
'diameter': obj['diameter'],
|
|
'weight': obj['weight'],
|
|
'clamping_diameter': obj['clamping_diameter'],
|
|
'connector_diameter': obj['connector_diameter'],
|
|
'chucking_power_max': obj['chucking_power_max'],
|
|
'repeated_positioning_accuracy': obj['repeated_positioning_accuracy'],
|
|
'boolean_chip_blowing_function': obj['boolean_chip_blowing_function'],
|
|
'way_to_install': obj['way_to_install'],
|
|
'type_of_drive': obj['type_of_drive'],
|
|
'carrying_capacity_max': obj['carrying_capacity_max'],
|
|
'materials_model_id': self.env['sf.materials.model'].sudo().search(
|
|
[('materials_no', '=', obj['materials_model_id']), ('active', '=', True)]).id,
|
|
'rigidity': obj['rigidity'],
|
|
})
|
|
return zero_tray_param_str
|
|
|
|
def _json_pneumatic_fixture_param(self, obj):
|
|
pneumatic_fixture_param_str = (0, '', {
|
|
'name': obj['name'],
|
|
'length': obj['length'],
|
|
'width': obj['width'],
|
|
'height': obj['height'],
|
|
'weight': obj['weight'],
|
|
'gripper_length_min': obj['gripper_length_min'],
|
|
'gripper_width_min': obj['gripper_width_min'],
|
|
'gripper_height_min': obj['gripper_height_min'],
|
|
'gripper_diameter_min': obj['gripper_diameter_min'],
|
|
'gripper_length_max': obj['gripper_length_max'],
|
|
'gripper_width_max': obj['gripper_width_max'],
|
|
'gripper_height_max': obj['gripper_height_max'],
|
|
'gripper_diameter_max': obj['gripper_diameter_max'],
|
|
'chucking_power_max': obj['chucking_power_max'],
|
|
'carrying_capacity_max': obj['carrying_capacity_max'],
|
|
'rated_air_pressure': obj['rated_air_pressure'],
|
|
'materials_model_id': self.env['sf.materials.model'].sudo().search(
|
|
[('materials_no', '=', obj['materials_model_id']), ('active', '=', True)]).id,
|
|
'rigidity': obj['rigidity'],
|
|
'interface_materials_model_id': self.env['sf.materials.model'].sudo().search(
|
|
[('materials_no', '=', obj['materials_model_id']), ('active', '=', True)]).id,
|
|
'type_of_drive': obj['type_of_drive'],
|
|
})
|
|
return pneumatic_fixture_param_str
|
|
|
|
def _json_jaw_vice_fixture_param(self, obj):
|
|
jaw_vice_fixture_param_str = (0, '', {
|
|
'name': obj['name'],
|
|
'length': obj['length'],
|
|
'width': obj['width'],
|
|
'height': obj['height'],
|
|
'weight': obj['weight'],
|
|
'gripper_length_min': obj['gripper_length_min'],
|
|
'gripper_width_min': obj['gripper_width_min'],
|
|
'gripper_height_min': obj['gripper_height_min'],
|
|
'gripper_diameter_min': obj['gripper_diameter_min'],
|
|
'gripper_length_max': obj['gripper_length_max'],
|
|
'gripper_width_max': obj['gripper_width_max'],
|
|
'gripper_height_max': obj['gripper_height_max'],
|
|
'gripper_diameter_max': obj['gripper_diameter_max'],
|
|
'chucking_power_max': obj['chucking_power_max'],
|
|
'carrying_capacity_max': obj['carrying_capacity_max'],
|
|
'transverse_groove': obj['transverse_groove'],
|
|
'longitudinal_fitting_groove': obj['longitudinal_fitting_groove'],
|
|
'materials_model_id': self.env['sf.materials.model'].sudo().search(
|
|
[('materials_no', '=', obj['materials_model_id']), ('active', '=', True)]).id,
|
|
'rigidity': obj['rigidity'],
|
|
'interface_materials_model_id': self.env['sf.materials.model'].sudo().search(
|
|
[('materials_no', '=', obj['materials_model_id']), ('active', '=', True)]).id,
|
|
'type_of_drive': obj['type_of_drive'],
|
|
})
|
|
return jaw_vice_fixture_param_str
|
|
|
|
def _json_magnet_fixture_param(self, obj):
|
|
magnet_fixture_param_str = (0, '', {
|
|
'name': obj['name'],
|
|
'length': obj['length'],
|
|
'width': obj['width'],
|
|
'height': obj['height'],
|
|
'height_tolerance_value': obj['height_tolerance_value'],
|
|
'weight': obj['weight'],
|
|
'gripper_length_min': obj['gripper_length_min'],
|
|
'gripper_width_min': obj['gripper_width_min'],
|
|
'gripper_height_min': obj['gripper_height_min'],
|
|
'gripper_diameter_min': obj['gripper_diameter_min'],
|
|
'gripper_length_max': obj['gripper_length_max'],
|
|
'gripper_width_max': obj['gripper_width_max'],
|
|
'gripper_height_max': obj['gripper_height_max'],
|
|
'gripper_diameter_max': obj['gripper_diameter_max'],
|
|
'rated_adsorption_force': obj['rated_adsorption_force'],
|
|
'magnetic_field_height': obj['magnetic_field_height'],
|
|
'magnetic_pole_plate_grinding_allowance': obj['magnetic_pole_plate_grinding_allowance'],
|
|
'carrying_capacity_max': obj['carrying_capacity_max'],
|
|
'materials_model_id': self.env['sf.materials.model'].sudo().search(
|
|
[('materials_no', '=', obj['materials_model_id']), ('active', '=', True)]).id,
|
|
'rigidity': obj['rigidity'],
|
|
'interface_materials_model_id': self.env['sf.materials.model'].sudo().search(
|
|
[('materials_no', '=', obj['materials_model_id']), ('active', '=', True)]).id,
|
|
'type_of_drive': obj['type_of_drive'],
|
|
})
|
|
return magnet_fixture_param_str
|
|
|
|
def _json_adapter_board_fixture_param(self, obj):
|
|
adapter_board_fixture_param_str = (0, '', {
|
|
'name': obj['name'],
|
|
'length': obj['length'],
|
|
'width': obj['width'],
|
|
'height': obj['height'],
|
|
'weight': obj['weight'],
|
|
'gripper_length_min': obj['gripper_length_min'],
|
|
'gripper_width_min': obj['gripper_width_min'],
|
|
'gripper_height_min': obj['gripper_height_min'],
|
|
'gripper_diameter_min': obj['gripper_diameter_min'],
|
|
'gripper_length_max': obj['gripper_length_max'],
|
|
'gripper_width_max': obj['gripper_width_max'],
|
|
'gripper_height_max': obj['gripper_height_max'],
|
|
'gripper_diameter_max': obj['gripper_diameter_max'],
|
|
'chucking_power_max': obj['chucking_power_max'],
|
|
'carrying_capacity_max': obj['carrying_capacity_max'],
|
|
'materials_model_id': self.env['sf.materials.model'].sudo().search(
|
|
[('materials_no', '=', obj['materials_model_id']), ('active', '=', True)]).id,
|
|
'rigidity': obj['rigidity'],
|
|
'screw_size': obj['screw_size'],
|
|
'via_hole_diameter': obj['via_hole_diameter'],
|
|
'type_of_drive': obj['type_of_drive'],
|
|
})
|
|
return adapter_board_fixture_param_str
|
|
|
|
def _json_scroll_chuck_param(self, obj):
|
|
scroll_chuck_param_str = (0, '', {
|
|
'name': obj['name'],
|
|
'length': obj['length'],
|
|
'width': obj['width'],
|
|
'height': obj['height'],
|
|
'diameter': obj['diameter'],
|
|
'weight': obj['weight'],
|
|
'gripper_length_min': obj['gripper_length_min'],
|
|
'gripper_width_min': obj['gripper_width_min'],
|
|
'gripper_height_min': obj['gripper_height_min'],
|
|
'gripper_diameter_min': obj['gripper_diameter_min'],
|
|
'gripper_length_max': obj['gripper_length_max'],
|
|
'gripper_width_max': obj['gripper_width_max'],
|
|
'gripper_height_max': obj['gripper_height_max'],
|
|
'gripper_diameter_max': obj['gripper_diameter_max'],
|
|
'chucking_power_max': obj['chucking_power_max'],
|
|
'carrying_capacity_max': obj['carrying_capacity_max'],
|
|
'materials_model_id': self.env['sf.materials.model'].sudo().search(
|
|
[('materials_no', '=', obj['materials_model_id']), ('active', '=', True)]).id,
|
|
'rigidity': obj['rigidity'],
|
|
'mounting_hole_depth': obj['mounting_hole_depth'],
|
|
'centering_diameter': obj['centering_diameter'],
|
|
'type_of_drive': obj['type_of_drive'],
|
|
})
|
|
return scroll_chuck_param_str
|