diff --git a/sf_base/models/tool_other_features.py b/sf_base/models/tool_other_features.py
index 52acf25c..129b0199 100644
--- a/sf_base/models/tool_other_features.py
+++ b/sf_base/models/tool_other_features.py
@@ -38,4 +38,36 @@ class SuitableCoolant(models.Model):
_description = '适合冷却液'
name = fields.Char('名称')
- image = fields.Image('图片')
\ No newline at end of file
+ image = fields.Image('图片')
+
+
+class CuttingSpeed(models.Model):
+ _name = 'sf.cutting.speed'
+ _description = '切削速度Vc'
+
+ # def _get_order(self):
+ # last_tool = self.search([], order='id desc', limit=1)
+ # if last_tool:
+ # last_order = int(last_tool.order)
+ # new_order = last_order + 1
+ # else:
+ # new_order = '1'
+ # return new_order
+ #
+ # order = fields.Char('序', default=_get_order, readonly=True)
+
+ execution_standard_id = fields.Char('执行标准')
+ material_code = fields.Char('材料代号')
+ material_name = fields.Char('材料名称')
+ material_grade = fields.Char('材料牌号')
+ tensile_strength = fields.Char('拉伸强度 (N/mm²)')
+ hardness = fields.Char('硬度(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')
+ cutting_speed_n3 = fields.Char('径向切宽 ae=25%D1 ap=L1max 切削速度Vc')
+ cutting_speed_n4 = fields.Char('径向切宽 ae=15%D1 ap=L1max 切削速度Vc')
+ cutting_speed_n5 = fields.Char('径向切宽 ae=5%D1 ap=L1max 切削速度Vc')
+ rough_machining = fields.Char('粗加工 Vc(m/min)')
+ precision_machining = fields.Char('精加工 Vc(m/min)')
+ application = fields.Selection([('主应用', '主应用'), ('次应用', '次应用')], '主/次应用')
\ No newline at end of file
diff --git a/sf_base/security/ir.model.access.csv b/sf_base/security/ir.model.access.csv
index ba3fb3d0..73661ae8 100644
--- a/sf_base/security/ir.model.access.csv
+++ b/sf_base/security/ir.model.access.csv
@@ -29,6 +29,7 @@ access_sf_blade_tip_characteristics,sf_blade_tip_characteristics,model_sf_blade_
access_sf_handle_type,sf_handle_type,model_sf_handle_type,base.group_user,1,1,1,1
access_sf_cutting_direction,sf_cutting_direction,model_sf_cutting_direction,base.group_user,1,1,1,1
access_sf_suitable_coolant,sf_suitable_coolant,model_sf_suitable_coolant,base.group_user,1,1,1,1
+access_sf_cutting_speed,sf_cutting_speed,model_sf_cutting_speed,base.group_user,1,1,1,1
diff --git a/sf_base/views/tool_other_features_view.xml b/sf_base/views/tool_other_features_view.xml
index e094a376..df614171 100644
--- a/sf_base/views/tool_other_features_view.xml
+++ b/sf_base/views/tool_other_features_view.xml
@@ -98,4 +98,37 @@
sf.suitable.coolant
tree
+
+
+
+
+ 切削速度Vc
+ sf.cutting.speed
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 切削速度Vc
+ ir.actions.act_window
+ sf.cutting.speed
+ tree
+
\ No newline at end of file
diff --git a/sf_dlm/views/product_template_view.xml b/sf_dlm/views/product_template_view.xml
index c7622563..9a2f3b4f 100644
--- a/sf_dlm/views/product_template_view.xml
+++ b/sf_dlm/views/product_template_view.xml
@@ -225,6 +225,9 @@
+
+
+
diff --git a/sf_manufacturing/models/product_template.py b/sf_manufacturing/models/product_template.py
index 2a91f7f1..98e4247a 100644
--- a/sf_manufacturing/models/product_template.py
+++ b/sf_manufacturing/models/product_template.py
@@ -100,6 +100,8 @@ class ResProductMo(models.Model):
cutting_direction_ids = fields.Many2many('sf.cutting.direction', 'rel_cutting_direction_product_template', '走刀方向')
suitable_coolant_ids = fields.Many2many('sf.suitable.coolant', 'rel_suitable_coolant_product_template', '适合冷却液')
+ cutting_speed_ids = fields.Many2many('sf.cutting.speed', 'rel_sf_cutting_speed', '切削速度Vc')
+
@api.constrains('suitable_machining_method_ids')
def _check_suitable_machining_method_ids(self):
for record in self:
@@ -421,23 +423,6 @@ class ResProductMo(models.Model):
item.coating_material = item.cutting_tool_model_id.coating_material
item.cutting_tool_total_length = item.cutting_tool_model_id.total_length
item.cutting_tool_shank_length = item.cutting_tool_model_id.shank_length
- item.integral_neck_length = item.cutting_tool_model_id.integral_neck_length
- item.integral_shank_diameter = item.cutting_tool_model_id.integral_shank_diameter
- item.integral_blade_diameter = item.cutting_tool_model_id.integral_blade_diameter
- item.integral_neck_diameter = item.cutting_tool_model_id.integral_neck_diameter
- item.integral_blade_tip_diameter = item.cutting_tool_model_id.integral_blade_tip_diameter
- item.integral_blade_tip_taper = item.cutting_tool_model_id.integral_blade_tip_taper
- item.integral_blade_helix_angle = item.cutting_tool_model_id.integral_blade_helix_angle
- item.integral_blade_type = item.cutting_tool_model_id.integral_blade_type
- item.integral_coarse_medium_fine = item.cutting_tool_model_id.integral_coarse_medium_fine
- item.integral_hardness = item.cutting_tool_model_id.integral_hardness
- item.integral_run_out_accuracy_max = item.cutting_tool_model_id.integral_run_out_accuracy_max
- item.integral_run_out_accuracy_min = item.cutting_tool_model_id.integral_run_out_accuracy_min
- item.suitable_machining_method_ids = self._get_ids(item.cutting_tool_model_id.suitable_machining_method_ids)
- item.blade_tip_characteristics_ids = self._get_ids(item.cutting_tool_model_id.blade_tip_characteristics_ids)
- item.handle_type_ids = self._get_ids(item.cutting_tool_model_id.handle_type_ids)
- item.cutting_direction_ids = self._get_ids(item.cutting_tool_model_id.cutting_direction_ids)
- item.suitable_coolant_ids = self._get_ids(item.cutting_tool_model_id.suitable_coolant_ids)
item.cutting_tool_diameter = item.cutting_tool_model_id.diameter
item.cutting_tool_blade_number = item.cutting_tool_model_id.blade_number
item.cutting_tool_front_angle = item.cutting_tool_model_id.front_angle
@@ -476,23 +461,6 @@ class ResProductMo(models.Model):
item.cutting_tool_total_length = False
item.cutting_tool_shank_length = False
item.cutting_tool_blade_length = False
- item.integral_neck_length = False
- item.integral_shank_diameter = False
- item.integral_blade_diameter = False
- item.integral_neck_diameter = False
- item.integral_blade_tip_diameter = False
- item.integral_blade_tip_taper = False
- item.integral_blade_helix_angle = False
- item.integral_blade_type = False
- item.integral_coarse_medium_fine = False
- item.integral_hardness = False
- item.integral_run_out_accuracy_max = False
- item.integral_run_out_accuracy_min = False
- item.suitable_machining_method_ids = False
- item.blade_tip_characteristics_ids = False
- item.handle_type_ids = False
- item.cutting_direction_ids = False
- item.suitable_coolant_ids = False
item.cutting_tool_diameter = False
item.cutting_tool_blade_number = False
item.cutting_tool_front_angle = False