Skip to content

Commit 2187712

Browse files
committed
move hooks to symmetric roll pass
1 parent b4e83ab commit 2187712

3 files changed

Lines changed: 31 additions & 54 deletions

File tree

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
import numpy as np
2+
3+
from ..symmetric_roll_pass import SymmetricRollPass
4+
5+
6+
@SymmetricRollPass.entry_point
7+
def entry_point(self: SymmetricRollPass):
8+
height_change = self.in_profile.height - self.height
9+
return np.sqrt(self.roll.min_radius * height_change - height_change ** 2 / 4)
10+
11+
12+
@SymmetricRollPass.entry_point
13+
def entry_point_square_oval(self: SymmetricRollPass):
14+
if "square" in self.in_profile.classifiers and "oval" in self.classifiers:
15+
depth = self.roll.groove.local_depth(self.in_profile.width / 2)
16+
height_change = self.in_profile.height - self.gap - 2 * depth
17+
radius = self.roll.max_radius - depth
18+
return np.sqrt(radius * height_change - height_change ** 2 / 4)
19+
20+
21+
@SymmetricRollPass.velocity
22+
def velocity(self: SymmetricRollPass):
23+
if self.roll.has_value("neutral_angle"):
24+
return self.roll.working_velocity * np.cos(self.roll.neutral_angle)
25+
else:
26+
return self.roll.working_velocity
27+
28+
29+
@SymmetricRollPass.roll_force
30+
def roll_force(self: SymmetricRollPass):
31+
return (self.in_profile.flow_stress + 2 * self.out_profile.flow_stress) / 3 * self.roll.contact_area

pyroll/core/roll_pass/hookimpls/three_roll_pass.py

Lines changed: 0 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -87,30 +87,3 @@ def target_cross_section_area_from_target_width3(self: ThreeRollPass) -> float:
8787
def roll_power_3(self: ThreeRollPass) -> float:
8888
return 3 * self.roll.roll_power
8989

90-
91-
@ThreeRollPass.entry_point
92-
def entry_point(self: ThreeRollPass):
93-
height_change = self.in_profile.height - self.height
94-
return np.sqrt(self.roll.min_radius * height_change - height_change ** 2 / 4)
95-
96-
97-
@ThreeRollPass.entry_point
98-
def entry_point_square_oval(self: ThreeRollPass):
99-
if "square" in self.in_profile.classifiers and "oval" in self.classifiers:
100-
depth = self.roll.groove.local_depth(self.in_profile.width / 2)
101-
height_change = self.in_profile.height - self.gap - 2 * depth
102-
radius = self.roll.max_radius - depth
103-
return np.sqrt(radius * height_change - height_change ** 2 / 4)
104-
105-
106-
@ThreeRollPass.velocity
107-
def velocity(self: ThreeRollPass):
108-
if self.roll.has_value("neutral_angle"):
109-
return self.roll.working_velocity * np.cos(self.roll.neutral_angle)
110-
else:
111-
return self.roll.working_velocity
112-
113-
114-
@ThreeRollPass.roll_force
115-
def roll_force(self: ThreeRollPass):
116-
return (self.in_profile.flow_stress + 2 * self.out_profile.flow_stress) / 3 * self.roll.contact_area

pyroll/core/roll_pass/hookimpls/two_roll_pass.py

Lines changed: 0 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -55,30 +55,3 @@ def target_cross_section_area_from_target_width(self: TwoRollPass):
5555
def roll_power(self: TwoRollPass):
5656
return 2 * self.roll.roll_power
5757

58-
59-
@TwoRollPass.entry_point
60-
def entry_point(self: TwoRollPass):
61-
height_change = self.in_profile.height - self.height
62-
return np.sqrt(self.roll.min_radius * height_change - height_change ** 2 / 4)
63-
64-
65-
@TwoRollPass.entry_point
66-
def entry_point_square_oval(self: TwoRollPass):
67-
if "square" in self.in_profile.classifiers and "oval" in self.classifiers:
68-
depth = self.roll.groove.local_depth(self.in_profile.width / 2)
69-
height_change = self.in_profile.height - self.gap - 2 * depth
70-
radius = self.roll.max_radius - depth
71-
return np.sqrt(radius * height_change - height_change ** 2 / 4)
72-
73-
74-
@TwoRollPass.velocity
75-
def velocity(self: TwoRollPass):
76-
if self.roll.has_value("neutral_angle"):
77-
return self.roll.working_velocity * np.cos(self.roll.neutral_angle)
78-
else:
79-
return self.roll.working_velocity
80-
81-
82-
@TwoRollPass.roll_force
83-
def roll_force(self: TwoRollPass):
84-
return (self.in_profile.flow_stress + 2 * self.out_profile.flow_stress) / 3 * self.roll.contact_area

0 commit comments

Comments
 (0)