修复刀具产品模版

This commit is contained in:
jinling.yang
2024-03-14 11:54:10 +08:00
parent 5e0b4aa509
commit 86ec97bad1
7 changed files with 99 additions and 57 deletions

View File

@@ -22,7 +22,7 @@ class ToolMaterialsBasicParameters(models.Model):
handle_diameter = fields.Float('柄部直径(mm)')
handle_length = fields.Float('柄部长度(mm)')
blade_tip_diameter = fields.Integer('刀尖直径(mm)')
blade_tip_working_size = fields.Char('刀尖处理尺寸(R半径mm/倒角)', size=20)
blade_tip_working_size = fields.Char('刀尖处理尺寸(R半径mm/倒角)', size=20)
blade_tip_taper = fields.Integer('刀尖锥度(°)')
blade_diameter = fields.Float('刃部直径(mm)')
blade_length = fields.Float('刃部长度(mm)')
@@ -31,7 +31,6 @@ class ToolMaterialsBasicParameters(models.Model):
blade_depth = fields.Float('刃部深度(mm)')
pitch = fields.Float('牙距(mm)')
cutting_depth = fields.Float('切削深度(mm)')
cutting_depth_max = fields.Float('最大切削深度(mm)')
# 刀片参数
length = fields.Float('长度(mm)')
thickness = fields.Float('厚度(mm)')
@@ -39,7 +38,7 @@ class ToolMaterialsBasicParameters(models.Model):
cutting_blade_length = fields.Float('切削刃长(mm)')
relief_angle = fields.Integer('后角(°)')
blade_tip_circular_arc_radius = fields.Char('刀尖圆弧半径(mm)', size=20)
inscribed_circle_diameter = fields.Float('内接圆直径(mm)')
inscribed_circle_diameter = fields.Float('内接圆直径IC/D(mm)')
install_aperture_diameter = fields.Float('安装孔直径(mm)')
chip_breaker_groove = fields.Selection([('', ''), ('单面', '单面'), ('双面', '双面')],
string='有无断屑槽')

View File

@@ -129,30 +129,30 @@
<group>
<group attrs="{'invisible': [('cutting_tool_type', '!=', '整体式刀具')]}">
<field name="total_length"/>
<field name="blade_diameter"/>
<field name="blade_diameter" class="diameter"/>
<field name="blade_length"/>
<field name="blade_number"/>
<field name="neck_length"/>
<field name="neck_diameter"/>
<field name="handle_diameter"/>
<field name="neck_diameter" class="diameter"/>
<field name="handle_diameter" class="diameter"/>
<field name="handle_length"/>
</group>
<group attrs="{'invisible': [('cutting_tool_type', '!=', '整体式刀具')]}">
<field name="blade_tip_working_size"/>
<field name="blade_tip_diameter"/>
<field name="blade_tip_diameter" class="diameter"/>
<field name="blade_tip_taper"/>
<field name="blade_helix_angle"/>
<field name="pitch"/>
<field name="blade_width"/>
<field name="blade_depth"/>
<field name="cutting_depth_max"/>
<field name="cut_depth_max"/>
</group>
<group attrs="{'invisible': [('cutting_tool_type', '!=', '刀片')]}">
<field name="length"/>
<field name="thickness"/>
<field name="inscribed_circle_tolerance"/>
<field name="install_aperture_diameter"/>
<field name="blade_tip_circular_arc_radius"/>
<field name="inscribed_circle_diameter" class="diameter"/>
<field name="install_aperture_diameter" class="diameter" string="安装孔直径D1(mm)"/>
<field name="blade_tip_circular_arc_radius" string="刀尖圆弧半径RE(mm)"/>
<field name="cutting_blade_length"/>
<field name="relief_angle"/>
<field name="chip_breaker_groove"/>
@@ -163,7 +163,7 @@
<field name="thread_model"/>
<field name="pitch"/>
<field name="thread_num"/>
<field name="cutting_depth_max"/>
<field name="cut_depth_max"/>
<field name="blade_blade_number" string="刃数"/>
<field name="blade_width" string="刃宽"/>
<field name="main_included_angle"/>
@@ -176,23 +176,32 @@
<field name="total_length"/>
<field name="width"/>
<field name="height"/>
<field name="knife_head_length"/>
<field name="knife_head_height"/>
<field name="knife_head_width"/>
<field name="blade_diameter"/>
<field name="cutter_arbor_diameter"/>
<label for="knife_head_length" string="刀头尺寸"/>
<div class="test_model">
<label for="knife_head_length" string="长"/>
<field name="knife_head_length" class="o_address_zip"
options="{'format': false}"/>
<label for="knife_head_width" string="宽"/>
<field name="knife_head_width" class="o_address_zip"
options="{'format': false}"/>
<label for="knife_head_height" string="高"/>
<field name="knife_head_height" class="o_address_zip"
options="{'format': false}"/>
</div>
<field name="blade_diameter" class="diameter"/>
<field name="cutter_arbor_diameter" class="diameter"/>
<field name="is_cooling_hole"/>
<field name="locating_slot_code"/>
</group>
<group attrs="{'invisible': [('cutting_tool_type', '!=', '刀杆')]}">
<field name="main_included_angle"/>
<field name="top_angle"/>
<field name="relief_angle"/>
<field name="cutting_blade_length"/>
<field name="cutting_depth_max"/>
<field name="cut_depth_max"/>
<field name="min_machining_aperture"/>
<field name="install_blade_tip_num"/>
<field name="installing_structure"/>
<field name="blade_id"/>
<field name="blade_id" options="{'no_create': True}"/>
<field name="tool_shim"/>
<field name="cotter_pin"/>
<field name="pressing_plate"/>
@@ -201,21 +210,19 @@
</group>
<group attrs="{'invisible': [('cutting_tool_type', '!=', '刀盘')]}">
<field name="blade_diameter"/>
<field name="cutter_head_diameter"/>
<field name="interface_diameter"/>
<field name="install_blade_tip_num"/>
<field name="blade_diameter" class="diameter"/>
<field name="cutter_head_diameter" class="diameter"/>
<field name="interface_diameter" class="diameter"/>
<field name="total_length"/>
<field name="blade_length"/>
<field name="cutting_blade_length"/>
<field name="cutting_depth"/>
<field name="main_included_angle"/>
<field name="installing_structure"/>
<field name="cut_depth_max"/>
</group>
<group attrs="{'invisible': [('cutting_tool_type', '!=', '刀盘')]}">
<field name="main_included_angle"/>
<field name="installing_structure"/>
<field name="blade_id"/>
<field name="tool_shim"/>
<field name="blade_id" options="{'no_create': True}"/>
<field name="screw"/>
<field name="spanner"/>
<field name="is_cooling_hole"/>
@@ -223,18 +230,26 @@
</group>
<group attrs="{'invisible': [('cutting_tool_type', '!=', '夹头')]}">
<field name="er_size_model"/>
<field name="min_clamping_diameter"/>
<field name="max_clamping_diameter"/>
<field name="er_size_model" string="尺寸型号"/>
<label for="min_clamping_diameter" string="夹持直径"/>
<div class="test_model">
<label for="min_clamping_diameter" string="最小"/>
<field name="min_clamping_diameter" class="o_address_zip diameter"
options="{'format': false}"/>
<label for="max_clamping_diameter" string="最大"/>
<field name="max_clamping_diameter" class="o_address_zip diameter"
options="{'format': false}"/>
</div>
<field name="total_length"/>
<field name="outer_diameter"/>
<field name="inner_diameter"/>
<field name="outer_diameter" class="diameter"/>
<field name="inner_diameter" class="diameter"/>
<field name="taper"/>
<field name="top_diameter"/>
<field name="weight"/>
<field name="max_load_capacity"/>
</group>
<group attrs="{'invisible': [('cutting_tool_type', '!=', '夹头')]}">
<field name="run_out_accuracy"/>
<field name="top_diameter" class="diameter"/>
<field name="weight"/>
<field name="max_load_capacity"/>
<field name="cooling_jacket"/>
</group>
@@ -242,15 +257,22 @@
<field name="taper_shank_model"/>
<field name="total_length"/>
<field name="shank_length"/>
<field name="shank_diameter"/>
<field name="shank_diameter" class="diameter"/>
<field name="flange_shank_length"/>
<field name="flange_diameter"/>
<field name="flange_diameter" class="diameter"/>
<field name="diameter_slip_accuracy"/>
<field name="dynamic_balance_class"/>
<field name="min_clamping_diameter"/>
<field name="max_clamping_diameter"/>
</group>
<group attrs="{'invisible': [('cutting_tool_type', '!=', '刀柄')]}">
<label for="min_clamping_diameter" string="夹持直径"/>
<div class="test_model">
<label for="min_clamping_diameter" string="最小"/>
<field name="min_clamping_diameter" class="o_address_zip diameter"
options="{'format': false}"/>
<label for="max_clamping_diameter" string="最大"/>
<field name="max_clamping_diameter" class="o_address_zip diameter"
options="{'format': false}"/>
</div>
<field name="max_rotate_speed"/>
<field name="fit_chuck_size"/>
<field name="nut"/>

View File

@@ -147,6 +147,10 @@
attrs="{'invisible': [('cutting_tool_type', '!=', '刀杆')],'readonly': [('id', '!=', False)]}"/>
<field name="tool_height"
attrs="{'invisible': [('cutting_tool_type', '!=', '刀杆')],'readonly': [('id', '!=', False)]}"/>
<field name="cutting_tool_shank_length" string="刀柄长度(mm)"
attrs="{'invisible': [('cutting_tool_type', '!=', '刀柄')],'readonly': [('id', '!=', False)]}"/>
<field name="cutting_tool_shank_diameter" string="刀柄直径(mm)" class="diameter"
attrs="{'invisible': [('cutting_tool_type', '!=', '刀柄')],'readonly': [('id', '!=', False)]}"/>
<field name="cutting_tool_flange_diameter"
attrs="{'invisible': [('cutting_tool_type', '!=', '刀柄')],'readonly': [('id', '!=', False)]}"/>
<field name="cutting_tool_flange_length"
@@ -263,7 +267,7 @@
<span>(mm)&amp;nbsp;</span>
</div>
<field name="cutting_tool_clamping_way"
attrs="{'invisible': [('cutting_tool_type','not in',('刀柄','夹头'))],'readonly': [('id', '!=', False)]}"/>
attrs="{'invisible': [('cutting_tool_type','not in',('刀柄'))],'readonly': [('id', '!=', False)]}"/>
<field name="cutting_tool_top_diameter" class="diameter"
attrs="{'invisible': [('cutting_tool_type','not in',('夹头'))],'readonly': [('id', '!=', False)]}"/>
<field name="cutting_tool_outer_diameter" class="diameter"
@@ -302,7 +306,7 @@
<field name="tool_weight"
attrs='{"invisible": [("cutting_tool_type","not in",("夹头","刀柄"))],"readonly": [("id", "!=", False)]}'/>
<field name="cutting_tool_taper"
attrs="{'invisible': [('cutting_tool_type', 'not in', ('夹头','刀柄'))],'readonly': [('id', '!=', False)]}"/>
attrs="{'invisible': [('cutting_tool_type', 'not in', ('夹头'))],'readonly': [('id', '!=', False)]}"/>
<field name="cutting_tool_taper_shank_model"
attrs="{'invisible': [('cutting_tool_type', '!=', '刀柄')],'readonly': [('id', '!=', False)]}"/>
<field name="cutting_tool_dynamic_balance_class"
@@ -345,9 +349,9 @@
attrs="{'invisible': [('cutting_tool_type', '!=', '夹头')],'readonly': [('id', '!=', False)]}"/>
<field name="cutting_tool_er_size_model"
attrs="{'invisible': [('cutting_tool_type', '!=', '夹头')],'readonly': [('id', '!=', False)]}"/>
<field name="cutting_tool_handle_id"
options="{'no_create': True}"
attrs="{'invisible': [('cutting_tool_type', '!=', '夹头')],'readonly': [('id', '!=', False)]}"/>
<!-- <field name="cutting_tool_handle_id"-->
<!-- options="{'no_create': True}"-->
<!-- attrs="{'invisible': [('cutting_tool_type', '!=', '夹头')],'readonly': [('id', '!=', False)]}"/>-->
<field name="cooling_suit_type_ids"
attrs="{'invisible': [('cutting_tool_type', '!=', '夹头')],'readonly': [('id', '!=', False)]}"/>
<!-- 刀杆 -->

View File

@@ -8,8 +8,8 @@ from odoo.exceptions import ValidationError
from odoo.modules import get_resource_path
# from OCC.Extend.DataExchange import read_step_file
# from OCC.Extend.DataExchange import write_stl_file
from OCC.Extend.DataExchange import read_step_file
from OCC.Extend.DataExchange import write_stl_file
class ResProductMo(models.Model):
@@ -70,7 +70,8 @@ class ResProductMo(models.Model):
cutting_tool_shank_length = fields.Float('柄部长度(mm)', digits=(6, 1))
cutting_tool_blade_length = fields.Float('刃部长度(mm)')
cutting_tool_blade_number = fields.Selection(
[('2', '2'), ('3', '3'), ('4', '4'), ('5', '5'), ('6', '6'), ('7', '7'), ('8', '8')], '刃数(个)')
[('0', '0'), ('2', '2'), ('3', '3'), ('4', '4'), ('5', '5'), ('6', '6'), ('7', '7'), ('8', '8')],
string='刃数(个)', default='0')
# 整体式刀具新增字段
cutting_tool_neck_length = fields.Float('颈部长度(mm)', digits=(6, 1))
cutting_tool_neck_diameter = fields.Float('颈部直径(mm)', digits=(6, 1))
@@ -103,9 +104,9 @@ class ResProductMo(models.Model):
compaction_way_id = fields.Many2one('maintenance.equipment.image',
'压紧方式', domain=[('type', '=', '压紧方式')])
# @api.onchange('cutting_tool_model_id')
# def _onchange_cutting_tool_model_id(self):
# self.specification_id = False
@api.onchange('cutting_tool_model_id')
def _onchange_cutting_tool_model_id(self):
self.specification_id = False
@api.onchange('cutting_tool_material_id')
def _onchange_cutting_tool_material_id(self):
@@ -196,20 +197,24 @@ class ResProductMo(models.Model):
self.cutting_tool_blade_number = self.specification_id.blade_number
self.cutting_tool_blade_type = self.cutting_tool_model_id.blade_type
self.cutting_tool_shank_diameter = self.specification_id.handle_diameter
self.cutting_tool_shank_length = self.specification_id.handle_length
self.cutting_tool_neck_length = self.specification_id.neck_length
self.cutting_tool_neck_diameter = self.specification_id.neck_diameter
self.cutting_tool_blade_tip_diameter = self.specification_id.blade_tip_diameter
self.cutting_tool_blade_tip_taper = self.specification_id.blade_tip_taper
self.cutting_tool_blade_helix_angle = self.specification_id.blade_helix_angle
self.cutting_tool_blade_tip_working_size = self.specification_id.blade_tip_working_size
self.cutting_tool_pitch = self.specification_id.pitch
self.cutting_tool_blade_width = self.specification_id.blade_width
self.cutting_tool_blade_depth = self.specification_id.blade_depth
self.cutting_tool_cut_depth = self.specification_id.cutting_depth
self.cutting_tool_cut_depth_max = self.specification_id.cut_depth_max
self.cutting_speed_ids = self.cutting_tool_model_id.cutting_speed_ids
self.feed_per_tooth_ids = self.cutting_tool_model_id.feed_per_tooth_ids.filtered(
lambda r: int(r.blade_diameter) == int(self.specification_id.blade_diameter))
elif self.cutting_tool_type == '夹头':
self.cutting_tool_clamping_diameter_min = self.specification_id.min_clamping_diameter
self.cutting_tool_clamping_diameter_min = self.specification_id.max_clamping_diameter
self.cutting_tool_clamping_way = self.specification_id.clamping_mode
self.cutting_tool_clamping_diameter_max = self.specification_id.max_clamping_diameter
self.cutting_tool_taper = self.specification_id.taper
self.cutting_tool_top_diameter = self.specification_id.top_diameter
self.cutting_tool_outer_diameter = self.specification_id.outer_diameter
self.cutting_tool_inner_diameter = self.specification_id.inner_diameter
@@ -247,6 +252,7 @@ class ResProductMo(models.Model):
self.cutting_speed_ids = self.cutting_tool_model_id.cutting_speed_ids
self.feed_per_tooth_ids = self.cutting_tool_model_id.feed_per_tooth_ids
elif self.cutting_tool_type in ('刀盘', '刀杆'):
self.cutting_tool_blade_diameter = self.specification_id.blade_diameter
self.cutting_tool_total_length = self.specification_id.total_length
self.tool_length = self.specification_id.length
self.tool_thickness = self.specification_id.thickness
@@ -277,14 +283,19 @@ class ResProductMo(models.Model):
self.cutting_tool_cutter_head_diameter = self.specification_id.cutter_head_diameter
self.cutting_tool_interface_diameter = self.specification_id.interface_diameter
else:
self.cutting_tool_cutter_arbor_diameter = self.specification_id.cutter_arbor_diameter
self.cutting_tool_knife_head_height = self.specification_id.knife_head_height
self.cutting_tool_knife_head_width = self.specification_id.knife_head_width
self.cutting_tool_knife_head_length = self.specification_id.knife_head_length
self.cutting_tool_tool_shim = self.specification_id.tool_shim
self.cutting_tool_cotter_pin = self.specification_id.cotter_pin
self.cutting_tool_pressing_plate = self.specification_id.pressing_plate
self.cutting_tool_min_machining_aperture = self.specification_id.min_machining_aperture
self.cutting_tool_rear_angle = self.specification_id.relief_angle
elif self.cutting_tool_type == '刀柄':
self.cutting_tool_total_length = self.specification_id.total_length
self.cutting_tool_shank_diameter = self.specification_id.shank_diameter
self.cutting_tool_shank_length = self.specification_id.shank_length
self.cutting_tool_speed_max = self.specification_id.max_rotate_speed
self.cutting_tool_change_time = self.specification_id.tool_changing_time
self.cutting_tool_total_length = self.specification_id.total_length
@@ -301,6 +312,8 @@ class ResProductMo(models.Model):
self.cutting_tool_chuck_id = self.specification_id.chuck_id.id
self.cutting_tool_jump_accuracy = self.specification_id.diameter_slip_accuracy
self.cutting_tool_taper_shank_model = self.specification_id.taper_shank_model
self.cutting_tool_cooling_type = self.specification_id.cooling_model
self.cutting_tool_clamping_way = self.specification_id.clamping_mode
self.suitable_machining_method_ids = [(6, 0, [])] if not \
self.cutting_tool_model_id.suitable_machining_method_ids \
else [(6, 0, self.cutting_tool_model_id.suitable_machining_method_ids.ids)]

View File

@@ -2,7 +2,7 @@
import logging
from odoo.modules import get_resource_path
from odoo import fields, models, api
# from quatotion import readSql, feature_recognize, auto_quatotion
from quatotion import readSql, feature_recognize, auto_quatotion
__author__ = 'jinling.yang'
_logger = logging.getLogger(__name__)

View File

@@ -8,8 +8,8 @@ from datetime import datetime
import requests
from odoo import http
from odoo.http import request
# from OCC.Extend.DataExchange import read_step_file
# from OCC.Extend.DataExchange import write_stl_file
from OCC.Extend.DataExchange import read_step_file
from OCC.Extend.DataExchange import write_stl_file
from odoo import models, fields, api
from odoo.modules import get_resource_path
from odoo.exceptions import ValidationError, UserError

View File

@@ -243,6 +243,10 @@
<form position="attributes">
<attribute name="delete">False</attribute>
</form>
<field name="name" position="replace">
<field name='name' placeholder="例如:奶酪汉堡" attrs="{'readonly': [('id', '!=', False)]}"/>
</field>
<field name="categ_id" position="replace">
<field name='categ_id' invisible="1"/>
</field>