diff --git a/jikimo_frontend/static/src/scss/custom_style.scss b/jikimo_frontend/static/src/scss/custom_style.scss index 3ae7958c..6a398126 100644 --- a/jikimo_frontend/static/src/scss/custom_style.scss +++ b/jikimo_frontend/static/src/scss/custom_style.scss @@ -3,7 +3,7 @@ } .test_model > .o_form_label { - margin-left: 20px; + margin-left: 0px !important; margin-right: 0px !important; white-space: nowrap; } @@ -289,4 +289,13 @@ div[class="o_content o_component_with_search_panel"] .o_kanban_primary_right > . .text-bg-warning { background-color: #FED300 !important; +} + +.test_model>div { + display: flex; + width: 40%; +} + +.test_model>div .o_field_widget { + width: 40% !important; } \ No newline at end of file diff --git a/sf_maintenance/models/sf_maintenance.py b/sf_maintenance/models/sf_maintenance.py index 7da49c38..90574f2b 100644 --- a/sf_maintenance/models/sf_maintenance.py +++ b/sf_maintenance/models/sf_maintenance.py @@ -251,10 +251,78 @@ class SfMaintenanceEquipment(models.Model): AGV_gradeability_max = fields.Integer('最大爬坡度') AGV_parking_accuracy = fields.Char('停车精度') AGV_load_weight_max = fields.Char('最大负载重量') - AGV_load_weight_max = fields.Char('最大负载重量') AGV_weight = fields.Char('本体总重量') AGV_job_duration = fields.Char('连续作业时长') AGV_transfer_mode = fields.Char('移载方式') + AGV_drive_motor_power = fields.Char('驱动电机功率') + AGV_hoist_motor_power = fields.Char('提升电机功率') + AGV_drive_motor_speed_ratio = fields.Char('驱动电机速比') + AGV_veer_motor_power = fields.Char('转向电机功率') + AGV_veer_motor_speed_ratio = fields.Char('转向电机速比') + AGV_move_motor_power = fields.Char('前移电机功率') + AGV_move_motor_speed_ratio = fields.Char('前移电机速比') + AGV_drive_mode = fields.Char('驱动方式') + AGV_navigation_mode = fields.Char('导航方式') + AGV_communication_mode = fields.Char('通讯方式') + AGV_direction_travel = fields.Char('行走方向') + AGV_power_requirements = fields.Char('电源要求') + AGV_charge_mode = fields.Selection([('手动', '手动'), ('自动', '自动')], string='充电方式') + AGV_security = fields.Char('安全防护') + AGV_operating_temperature = fields.Char('环境温度') + AGV_operating_humidity = fields.Char('环境湿度') + + # 三元检测设备参数 + detect_L = fields.Char('设备尺寸(长)') + detect_W = fields.Char('设备尺寸(宽)') + detect_H = fields.Char('设备尺寸(高)') + detect_x_axis = fields.Char('X轴') + detect_y_axis = fields.Char('Y轴') + detect_z_axis = fields.Char('Z轴') + detect_precision = fields.Char('测量精度') + detect_measurement_mode = fields.Selection([('光栅尺', '光栅尺'), ('容栅', '容栅'), ('磁栅', '磁栅'), ('激光干涉仪', '激光干涉仪')], string='测量方式') + detect_resolution = fields.Char('分辨率') + detect_load_weight_max = fields.Char('最大负载重量') + detect_weight = fields.Char('本体总重量') + detect_measurement_length = fields.Char('深孔测量长度(max)') + detect_control_mode = fields.Char('控制方式') + detect_balance_mode_for_Z = fields.Char('Z轴平衡方式') + detect_zoom_objective_magnification = fields.Char('变焦物镜倍率') + detect_magnification = fields.Char('放大倍率') + detect_working_distance = fields.Char('工作距离') + detect_locking_mode = fields.Char('锁紧方式') + detect_pressurized_air = fields.Char('压缩空气') + detect_object_field_of_view_max = fields.Char('物方视场(最大)') + detect_object_field_of_view_min = fields.Char('物方视场(最小)') + detect_power_requirements = fields.Char('电源要求') + detect_operating_temperature = fields.Char('环境温度') + detect_operating_humidity = fields.Char('环境湿度') + + # 机器人设备参数 + robot_gripping_of_workpieces_L = fields.Char('可抓取工件(长)') + robot_gripping_of_workpieces_W = fields.Char('可抓取工件(宽)') + robot_gripping_of_workpieces_H = fields.Char('可抓取工件(高)') + robot_radius_of_the_boom = fields.Char('展臂半径') + robot_load_weight_max = fields.Char('最大负载重量') + robot_weight = fields.Char('本体总重量') + robot_repeatable_positioning_accuracy = fields.Char('重复定位精度') + robot_axis_num = fields.Selection([('2轴', '2轴'), ('3轴', '3轴'), ('4轴', '4轴'), ('5轴', '5轴'), ('6轴', '6轴'), ('7轴', '7轴'), ('8轴', '8轴')], string='轴数') + axis_ids = fields.One2many('sf.robot.axis.num', 'equipment_id', string='动作范围') + robot_track_dimensions_L = fields.Char('轨道尺寸(长)') + robot_track_dimensions_W = fields.Char('轨道尺寸(宽)') + robot_track_dimensions_H = fields.Char('轨道尺寸(高)') + robot_drive_mode = fields.Char('驱动方式') + robot_installation_method = fields.Selection([('置地式', '置地式'), ('壁挂式', '壁挂式'), ('倒挂式', '倒挂式')], string='安装方式') + robot_operating_temperature = fields.Char('环境温度') + robot_operating_humidity = fields.Char('环境湿度') + + + + + + + + + @@ -540,3 +608,16 @@ class MaintenanceStandardImage(models.Model): new_res.append([id, name, data_uri]) # 返回新的结果列表 return new_res + +class SfRobotAxisNum(models.Model): + _name = 'sf.robot.axis.num' + _description = '机器人轴参数' + + name = fields.Char('*轴') + angle_min = fields.Char('最小角度-(°)') + angle_max = fields.Char('最大角度+(°)') + velocity = fields.Char('最大速度(°/s)') + weight = fields.Char('最大负载(kg)') + permissible_load_torque = fields.Char('允许负载扭矩(N-m)') + permissible_inertial_torque = fields.Char('允许惯性扭矩(kg-m²)') + equipment_id = fields.Many2one('maintenance.equipment', string='机器人', domain="[('equipment_type', '=', '机器人')]") diff --git a/sf_maintenance/security/ir.model.access.csv b/sf_maintenance/security/ir.model.access.csv index f5517576..65e93d7a 100644 --- a/sf_maintenance/security/ir.model.access.csv +++ b/sf_maintenance/security/ir.model.access.csv @@ -5,6 +5,7 @@ access_maintenance_equipment,maintenance_equipment,model_maintenance_equipment,b access_maintenance_standards,maintenance_standards,model_maintenance_standards,base.group_user,1,1,1,1 access_maintenance_standard_image,maintenance_standard_image,model_maintenance_standard_image,base.group_user,1,1,1,1 access_maintenance_equipment_image,maintenance_equipment_image,model_maintenance_equipment_image,base.group_user,1,1,1,1 +access_sf_robot_axis_num,sf_robot_axis_num,model_sf_robot_axis_num,base.group_user,1,1,1,1 diff --git a/sf_maintenance/views/maintenance_views.xml b/sf_maintenance/views/maintenance_views.xml index cce4a1d0..258dfb34 100644 --- a/sf_maintenance/views/maintenance_views.xml +++ b/sf_maintenance/views/maintenance_views.xml @@ -65,7 +65,8 @@ force_save="1"/> - + @@ -177,11 +178,563 @@ - + + + + + + + + + - + + + - + + + + +