kib-lap 0.5__cp313-cp313-win_amd64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- Examples/Cross_Section_Thin.py +61 -0
- Examples/__init__.py +0 -0
- KIB_LAP/Betonbau/Bemessung_Polygon.py +667 -0
- KIB_LAP/Betonbau/Bemessung_Zust_II.py +648 -0
- KIB_LAP/Betonbau/Cross_Section_Kappa.py +925 -0
- KIB_LAP/Betonbau/Druckglied_KGV.py +179 -0
- KIB_LAP/Betonbau/Iterative_Design.py +723 -0
- KIB_LAP/Betonbau/Materialkennwerte_Beton.py +196 -0
- KIB_LAP/Betonbau/Querschnittsbreite.py +194 -0
- KIB_LAP/Betonbau/Querschnittsbreite_Kreis.py +63 -0
- KIB_LAP/Betonbau/__init__.py +2 -0
- KIB_LAP/Betonbau/beam_plate_T.py +921 -0
- KIB_LAP/Betonbau/beam_plate_T_reverse.py +915 -0
- KIB_LAP/Betonbau/beam_rectangular.py +635 -0
- KIB_LAP/Betonbau/beam_sub_section.py +9 -0
- KIB_LAP/Dynamik/Cross_Section_Properties.py +155 -0
- KIB_LAP/Dynamik/Deformation_Method.py +587 -0
- KIB_LAP/Dynamik/Duhamel_SDOF.py +221 -0
- KIB_LAP/Dynamik/FFT.py +87 -0
- KIB_LAP/Dynamik/Kontinuum_Eigenmodes.py +418 -0
- KIB_LAP/Dynamik/Kontinuum_Schwingung.py +757 -0
- KIB_LAP/Dynamik/Pendulum_Spring_Linearized.py +91 -0
- KIB_LAP/Dynamik/Pendulum_Spring_Problem.py +94 -0
- KIB_LAP/Dynamik/__init__.py +0 -0
- KIB_LAP/Examples/Cross_Section_Thin.py +61 -0
- KIB_LAP/Examples/Cross_Section_Thin_2.py +14 -0
- KIB_LAP/Examples/Plattentragwerke.py +39 -0
- KIB_LAP/Examples/Plattentragwerke_2.py +60 -0
- KIB_LAP/Examples/ShearDesign.py +28 -0
- KIB_LAP/Examples/__init__.py +0 -0
- KIB_LAP/Plattenbeulen/Plate_Design.py +276 -0
- KIB_LAP/Plattenbeulen/Ritz_Optimiert.py +658 -0
- KIB_LAP/Plattenbeulen/__init__.py +2 -0
- KIB_LAP/Plattenbeulen/dist/__init__.py +0 -0
- KIB_LAP/Plattenbeulen/plate_buckling.cpp +561 -0
- KIB_LAP/Plattenbeulen/plate_buckling_cpp.cp313-win_amd64.pyd +0 -0
- KIB_LAP/Plattenbeulen/plate_buckling_cpp.cpp +561 -0
- KIB_LAP/Plattenbeulen/setup.py +35 -0
- KIB_LAP/Plattentragwerke/Functions.cpp +326 -0
- KIB_LAP/Plattentragwerke/Functions.h +41 -0
- KIB_LAP/Plattentragwerke/NumInte.cpp +23 -0
- KIB_LAP/Plattentragwerke/NumericalIntegration.cpp +23 -0
- KIB_LAP/Plattentragwerke/PlateBendingKirchhoff.py +843 -0
- KIB_LAP/Plattentragwerke/__init__.py +1 -0
- KIB_LAP/Plattentragwerke/plate_bending.cpp +341 -0
- KIB_LAP/Plattentragwerke/plate_bending_cpp.cp313-win_amd64.pyd +0 -0
- KIB_LAP/Plattentragwerke/setup.py +39 -0
- KIB_LAP/Querschnittswerte/Querschnitt_Duenn.py +526 -0
- KIB_LAP/Querschnittswerte/__init__.py +1 -0
- KIB_LAP/STABRAUM/InputData.py +92 -0
- KIB_LAP/STABRAUM/Programm.py +1403 -0
- KIB_LAP/STABRAUM/Steifigkeitsmatrix.py +275 -0
- KIB_LAP/STABRAUM/__init__.py +3 -0
- KIB_LAP/Stahlbau/__init__.py +0 -0
- KIB_LAP/Verbundbau/Verbundtraeger_Bemessung.py +766 -0
- KIB_LAP/Verbundbau/__init__.py +0 -0
- KIB_LAP/__init__.py +4 -0
- KIB_LAP/main.py +2 -0
- KIB_LAP/plate_bending_cpp.cp313-win_amd64.pyd +0 -0
- KIB_LAP/plate_buckling_cpp.cp313-win_amd64.pyd +0 -0
- kib_lap-0.5.dist-info/METADATA +25 -0
- kib_lap-0.5.dist-info/RECORD +64 -0
- kib_lap-0.5.dist-info/WHEEL +5 -0
- kib_lap-0.5.dist-info/top_level.txt +1 -0
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
class cross_section_polygon:
|
|
2
|
+
def __init__(self, y, z):
|
|
3
|
+
"""_summary_
|
|
4
|
+
Calculation of cross section properties for polygons. The coordinates need to be inserted clockwise \n
|
|
5
|
+
for positive areas, and anti-clockwise for wholes. \n
|
|
6
|
+
Args:
|
|
7
|
+
y (_type_): _description_
|
|
8
|
+
z (_type_): _description_
|
|
9
|
+
"""
|
|
10
|
+
self.y_restart = [float(y_f) for y_f in y]
|
|
11
|
+
self.z_restart = [float(z_f) for z_f in z]
|
|
12
|
+
self.len_y = len(self.y_restart)
|
|
13
|
+
A_Test = 0
|
|
14
|
+
for row in range(0, self.len_y - 1, 1):
|
|
15
|
+
A_Test += 0.5 * (
|
|
16
|
+
self.z_restart[row + 1] * self.y_restart[row]
|
|
17
|
+
- self.z_restart[row] * self.y_restart[row + 1]
|
|
18
|
+
)
|
|
19
|
+
|
|
20
|
+
if A_Test >= 0:
|
|
21
|
+
self.y = [float(y_f) for y_f in y]
|
|
22
|
+
self.y.append(
|
|
23
|
+
self.y[0]
|
|
24
|
+
) # Last element is necessary for loop over polygon (left rotation direction)
|
|
25
|
+
self.z = [float(z_f) for z_f in z]
|
|
26
|
+
self.z.append(self.z[0])
|
|
27
|
+
elif A_Test < 0:
|
|
28
|
+
self.y = [float(y_f) for y_f in y]
|
|
29
|
+
self.y.append(self.y[0])
|
|
30
|
+
self.y = self.y[::-1]
|
|
31
|
+
self.z = [float(z_f) for z_f in z]
|
|
32
|
+
self.z.append(self.z[0])
|
|
33
|
+
self.z = self.z[::-1]
|
|
34
|
+
|
|
35
|
+
print(self.y)
|
|
36
|
+
print(self.z)
|
|
37
|
+
|
|
38
|
+
print(self.len_y)
|
|
39
|
+
self.A = 0
|
|
40
|
+
self.S_y = 0
|
|
41
|
+
self.S_z = 0
|
|
42
|
+
self.I_yy = 0
|
|
43
|
+
self.I_zz = 0
|
|
44
|
+
self.I_yz = 0
|
|
45
|
+
self.ys = 0
|
|
46
|
+
self.zs = 0
|
|
47
|
+
|
|
48
|
+
self.list_names = []
|
|
49
|
+
self.list_unit = []
|
|
50
|
+
self.list_value = []
|
|
51
|
+
|
|
52
|
+
self.section_props()
|
|
53
|
+
|
|
54
|
+
def section_props(self):
|
|
55
|
+
print("Section_Props is accessed")
|
|
56
|
+
self.list_names = []
|
|
57
|
+
self.list_unit = []
|
|
58
|
+
self.list_value = []
|
|
59
|
+
for row in range(0, self.len_y - 1, 1):
|
|
60
|
+
self.A += 0.5 * (
|
|
61
|
+
self.z[row + 1] * self.y[row] - self.z[row] * self.y[row + 1]
|
|
62
|
+
)
|
|
63
|
+
print(self.A)
|
|
64
|
+
self.S_y += (
|
|
65
|
+
1
|
|
66
|
+
/ 6
|
|
67
|
+
* (
|
|
68
|
+
(self.z[row] + self.z[row + 1])
|
|
69
|
+
* (self.z[row + 1] * self.y[row] - self.z[row] * self.y[row + 1])
|
|
70
|
+
)
|
|
71
|
+
)
|
|
72
|
+
self.S_z += (
|
|
73
|
+
1
|
|
74
|
+
/ 6
|
|
75
|
+
* (
|
|
76
|
+
(self.y[row] + self.y[row + 1])
|
|
77
|
+
* (self.z[row + 1] * self.y[row] - self.z[row] * self.y[row + 1])
|
|
78
|
+
)
|
|
79
|
+
)
|
|
80
|
+
self.I_yy += (
|
|
81
|
+
1
|
|
82
|
+
/ 12
|
|
83
|
+
* (
|
|
84
|
+
(
|
|
85
|
+
self.z[row + 1] ** 2
|
|
86
|
+
+ (self.z[row] + self.z[row + 1]) * self.z[row]
|
|
87
|
+
)
|
|
88
|
+
* (self.z[row + 1] * self.y[row] - self.z[row] * self.y[row + 1])
|
|
89
|
+
)
|
|
90
|
+
)
|
|
91
|
+
self.I_zz += (
|
|
92
|
+
1
|
|
93
|
+
/ 12
|
|
94
|
+
* (
|
|
95
|
+
(
|
|
96
|
+
self.y[row + 1] ** 2
|
|
97
|
+
+ (self.y[row] + self.y[row + 1]) * self.y[row]
|
|
98
|
+
)
|
|
99
|
+
* (self.z[row + 1] * self.y[row] - self.z[row] * self.y[row + 1])
|
|
100
|
+
)
|
|
101
|
+
)
|
|
102
|
+
self.I_yz += (
|
|
103
|
+
1
|
|
104
|
+
/ 12
|
|
105
|
+
* (
|
|
106
|
+
1 / 2 * self.y[row + 1] ** 2 * self.z[row] ** 2
|
|
107
|
+
- 1 / 2 * self.y[row] ** 2 * self.z[row + 1] ** 2
|
|
108
|
+
- (self.z[row + 1] * self.y[row] - self.z[row] * self.y[row + 1])
|
|
109
|
+
* (self.y[row] * self.z[row] + self.y[row + 1] * self.z[row + 1])
|
|
110
|
+
)
|
|
111
|
+
)
|
|
112
|
+
|
|
113
|
+
self.ys = self.S_z / self.A
|
|
114
|
+
self.zs = self.S_y / self.A
|
|
115
|
+
|
|
116
|
+
self.I_yy = self.I_yy - self.zs**2 * self.A
|
|
117
|
+
self.I_zz = self.I_zz - self.ys**2 * self.A
|
|
118
|
+
self.I_yz = self.I_yz + self.ys * self.zs * self.A
|
|
119
|
+
|
|
120
|
+
|
|
121
|
+
|
|
122
|
+
print("Area", self.A)
|
|
123
|
+
|
|
124
|
+
print("First moment of area in y-direction", self.S_y)
|
|
125
|
+
|
|
126
|
+
print("Second moment of area in y-direction", self.I_yy)
|
|
127
|
+
|
|
128
|
+
self.list_names.append("Area")
|
|
129
|
+
self.list_names.append("First moment of area in y-direction Sy")
|
|
130
|
+
self.list_names.append("First moment of area in z-direction Sz")
|
|
131
|
+
self.list_names.append("Second moment of area about y-Axis Iyy")
|
|
132
|
+
self.list_names.append("Second moment of area about z-Axis Izz")
|
|
133
|
+
|
|
134
|
+
self.list_unit.append("m**2")
|
|
135
|
+
self.list_unit.append("m**3")
|
|
136
|
+
self.list_unit.append("m**3")
|
|
137
|
+
self.list_unit.append("m**4")
|
|
138
|
+
self.list_unit.append("m**4")
|
|
139
|
+
|
|
140
|
+
self.list_value.append(self.A)
|
|
141
|
+
self.list_value.append(self.S_y)
|
|
142
|
+
self.list_value.append(self.S_z)
|
|
143
|
+
self.list_value.append(self.I_yy)
|
|
144
|
+
self.list_value.append(self.I_zz)
|
|
145
|
+
|
|
146
|
+
return self.list_names, self.list_value, self.list_unit
|
|
147
|
+
|
|
148
|
+
|
|
149
|
+
|
|
150
|
+
|
|
151
|
+
# _y = [0,0,2,2]
|
|
152
|
+
# _z = [0,1,1,0]
|
|
153
|
+
|
|
154
|
+
|
|
155
|
+
# Test = cross_section_polygon(_y,_z)
|