pysectprop 0.1.0__tar.gz → 0.2.0__tar.gz
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.
- {pysectprop-0.1.0 → pysectprop-0.2.0}/LICENSE +1 -1
- {pysectprop-0.1.0 → pysectprop-0.2.0}/PKG-INFO +9 -8
- pysectprop-0.2.0/pyproject.toml +21 -0
- {pysectprop-0.1.0 → pysectprop-0.2.0/src}/pysectprop/extruded/isection.py +9 -3
- {pysectprop-0.1.0 → pysectprop-0.2.0/src}/pysectprop/extruded/jsection.py +9 -3
- {pysectprop-0.1.0 → pysectprop-0.2.0/src}/pysectprop/extruded/lsection.py +9 -3
- {pysectprop-0.1.0 → pysectprop-0.2.0/src}/pysectprop/extruded/omegasection.py +9 -3
- {pysectprop-0.1.0 → pysectprop-0.2.0/src}/pysectprop/extruded/tsection.py +9 -3
- {pysectprop-0.1.0 → pysectprop-0.2.0/src}/pysectprop/extruded/zsection.py +10 -3
- {pysectprop-0.1.0 → pysectprop-0.2.0/src}/pysectprop/formed/csectionformed.py +10 -3
- {pysectprop-0.1.0 → pysectprop-0.2.0/src}/pysectprop/formed/lsectionformed.py +10 -3
- {pysectprop-0.1.0 → pysectprop-0.2.0/src}/pysectprop/formed/omegasectionformed.py +15 -8
- {pysectprop-0.1.0 → pysectprop-0.2.0/src}/pysectprop/formed/zsectionformed.py +15 -8
- {pysectprop-0.1.0 → pysectprop-0.2.0/src}/pysectprop/general/__init__.py +7 -3
- pysectprop-0.2.0/src/pysectprop/general/arc.py +238 -0
- {pysectprop-0.1.0 → pysectprop-0.2.0/src}/pysectprop/general/compositesection.py +168 -96
- {pysectprop-0.1.0 → pysectprop-0.2.0/src}/pysectprop/general/cripplingsection.py +23 -6
- pysectprop-0.2.0/src/pysectprop/general/generalsection.py +277 -0
- pysectprop-0.2.0/src/pysectprop/general/hollowsection.py +168 -0
- {pysectprop-0.1.0 → pysectprop-0.2.0/src}/pysectprop/general/line.py +29 -15
- {pysectprop-0.1.0 → pysectprop-0.2.0/src}/pysectprop/general/material.py +11 -4
- {pysectprop-0.1.0 → pysectprop-0.2.0/src}/pysectprop/general/materialsection.py +87 -24
- pysectprop-0.2.0/src/pysectprop/general/mould.py +100 -0
- pysectprop-0.2.0/src/pysectprop/general/numericalsection.py +248 -0
- {pysectprop-0.1.0 → pysectprop-0.2.0/src}/pysectprop/general/point.py +2 -0
- pysectprop-0.2.0/src/pysectprop/general/sector.py +246 -0
- {pysectprop-0.1.0 → pysectprop-0.2.0/src}/pysectprop/general/thinwalledsection.py +73 -98
- pysectprop-0.2.0/src/pysectprop/results/__init__.py +1 -0
- {pysectprop-0.1.0 → pysectprop-0.2.0/src}/pysectprop/results/sectionresult.py +27 -17
- {pysectprop-0.1.0 → pysectprop-0.2.0/src}/pysectprop/standard/__init__.py +2 -1
- pysectprop-0.2.0/src/pysectprop/standard/circlesection.py +41 -0
- {pysectprop-0.1.0 → pysectprop-0.2.0/src}/pysectprop/standard/rectanglesection.py +27 -11
- pysectprop-0.2.0/src/pysectprop/standard/semitubesection.py +48 -0
- pysectprop-0.2.0/src/pysectprop/standard/squaresection.py +43 -0
- pysectprop-0.2.0/src/pysectprop/standard/tubesection.py +46 -0
- {pysectprop-0.1.0 → pysectprop-0.2.0/src}/pysectprop.egg-info/PKG-INFO +9 -8
- pysectprop-0.2.0/src/pysectprop.egg-info/SOURCES.txt +48 -0
- pysectprop-0.2.0/tests/test_circle.py +57 -0
- pysectprop-0.2.0/tests/test_line.py +41 -0
- pysectprop-0.2.0/tests/test_materialsection.py +67 -0
- pysectprop-0.2.0/tests/test_rectangle.py +61 -0
- pysectprop-0.2.0/tests/test_sector.py +67 -0
- pysectprop-0.1.0/pysectprop/general/arc.py +0 -339
- pysectprop-0.1.0/pysectprop/general/generalsection.py +0 -394
- pysectprop-0.1.0/pysectprop/results/__init__.py +0 -1
- pysectprop-0.1.0/pysectprop/standard/circlesection.py +0 -28
- pysectprop-0.1.0/pysectprop/standard/semitubesection.py +0 -32
- pysectprop-0.1.0/pysectprop/standard/tubesection.py +0 -34
- pysectprop-0.1.0/pysectprop.egg-info/SOURCES.txt +0 -38
- pysectprop-0.1.0/setup.py +0 -22
- {pysectprop-0.1.0 → pysectprop-0.2.0}/README.md +0 -0
- {pysectprop-0.1.0 → pysectprop-0.2.0}/setup.cfg +0 -0
- {pysectprop-0.1.0 → pysectprop-0.2.0/src}/pysectprop/__init__.py +2 -2
- {pysectprop-0.1.0 → pysectprop-0.2.0/src}/pysectprop/config.py +0 -0
- {pysectprop-0.1.0 → pysectprop-0.2.0/src}/pysectprop/extruded/__init__.py +2 -2
- {pysectprop-0.1.0 → pysectprop-0.2.0/src}/pysectprop/formed/__init__.py +2 -2
- {pysectprop-0.1.0 → pysectprop-0.2.0/src}/pysectprop.egg-info/dependency_links.txt +0 -0
- {pysectprop-0.1.0 → pysectprop-0.2.0/src}/pysectprop.egg-info/top_level.txt +0 -0
|
@@ -1,16 +1,17 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: pysectprop
|
|
3
|
-
Version: 0.
|
|
4
|
-
Summary: Python Section
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
3
|
+
Version: 0.2.0
|
|
4
|
+
Summary: Python Package for Section Properties
|
|
5
|
+
Author-email: Xero64 <xero64@gmail.com>
|
|
6
|
+
License-Expression: MIT
|
|
7
|
+
Project-URL: Homepage, https://github.com/Xero64/pysectprop
|
|
8
|
+
Project-URL: Issues, https://github.com/Xero64/pysectprop/issues
|
|
8
9
|
Classifier: Programming Language :: Python :: 3
|
|
9
|
-
Classifier: License :: OSI Approved :: MIT License
|
|
10
10
|
Classifier: Operating System :: OS Independent
|
|
11
|
-
Requires-Python: >=3.
|
|
11
|
+
Requires-Python: >=3.10
|
|
12
12
|
Description-Content-Type: text/markdown
|
|
13
13
|
License-File: LICENSE
|
|
14
|
+
Dynamic: license-file
|
|
14
15
|
|
|
15
16
|
# pysectprop
|
|
16
17
|
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
[project]
|
|
2
|
+
name = "pysectprop"
|
|
3
|
+
version = "0.2.0"
|
|
4
|
+
authors = [
|
|
5
|
+
{ name="Xero64", email="xero64@gmail.com" },
|
|
6
|
+
]
|
|
7
|
+
description = "Python Package for Section Properties"
|
|
8
|
+
readme = "README.md"
|
|
9
|
+
requires-python = ">=3.10"
|
|
10
|
+
classifiers = [
|
|
11
|
+
"Programming Language :: Python :: 3",
|
|
12
|
+
"Operating System :: OS Independent",
|
|
13
|
+
]
|
|
14
|
+
license = "MIT"
|
|
15
|
+
license-files = ["LICEN[CS]E*"]
|
|
16
|
+
dependencies = [
|
|
17
|
+
]
|
|
18
|
+
|
|
19
|
+
[project.urls]
|
|
20
|
+
Homepage = "https://github.com/Xero64/pysectprop"
|
|
21
|
+
Issues = "https://github.com/Xero64/pysectprop/issues"
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
from py2md.classes import MDTable
|
|
2
|
-
|
|
2
|
+
|
|
3
3
|
from .. import config
|
|
4
|
+
from ..general.generalsection import GeneralSection
|
|
5
|
+
|
|
4
6
|
|
|
5
7
|
class ISection(GeneralSection):
|
|
6
8
|
hw: float = None
|
|
@@ -11,6 +13,7 @@ class ISection(GeneralSection):
|
|
|
11
13
|
tuf: float = None
|
|
12
14
|
rlf: float = None
|
|
13
15
|
ruf: float = None
|
|
16
|
+
|
|
14
17
|
def __init__(self, hw: float, tw: float, wlf: float, tlf: float,
|
|
15
18
|
wuf: float, tuf: float, rlf: float=0.0, ruf: float=0.0,
|
|
16
19
|
label: str=None) -> None:
|
|
@@ -35,6 +38,7 @@ class ISection(GeneralSection):
|
|
|
35
38
|
0.0, 0.0, 0.0, 0.0, 0.0,
|
|
36
39
|
self.ruf, self.rlf, 0.0, 0.0]
|
|
37
40
|
super().__init__(y, z, r, label=label)
|
|
41
|
+
|
|
38
42
|
def _repr_markdown_(self) -> str:
|
|
39
43
|
mdstr = self.section_heading('I-Section')
|
|
40
44
|
table = MDTable()
|
|
@@ -57,6 +61,7 @@ class ISection(GeneralSection):
|
|
|
57
61
|
mdstr += table._repr_markdown_()
|
|
58
62
|
mdstr += self.section_properties(outtype='md')
|
|
59
63
|
return mdstr
|
|
64
|
+
|
|
60
65
|
def __str__(self) -> str:
|
|
61
66
|
outstr = self.section_heading('I-Section')
|
|
62
67
|
table = MDTable()
|
|
@@ -76,9 +81,10 @@ class ISection(GeneralSection):
|
|
|
76
81
|
data=[self.rlf])
|
|
77
82
|
table.add_column(f'r_uf ({config.lunit:s})', config.l1frm,
|
|
78
83
|
data=[self.ruf])
|
|
79
|
-
outstr +=
|
|
80
|
-
outstr += self.section_properties(outtype=
|
|
84
|
+
outstr += table.__str__()
|
|
85
|
+
outstr += self.section_properties(outtype=str)
|
|
81
86
|
return outstr
|
|
87
|
+
|
|
82
88
|
def __repr__(self) -> str:
|
|
83
89
|
if self.label is None:
|
|
84
90
|
outstr = '<I-Section>'
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
from py2md.classes import MDTable
|
|
2
|
-
|
|
2
|
+
|
|
3
3
|
from .. import config
|
|
4
|
+
from ..general.generalsection import GeneralSection
|
|
5
|
+
|
|
4
6
|
|
|
5
7
|
class JSection(GeneralSection):
|
|
6
8
|
hw: float = None
|
|
@@ -11,6 +13,7 @@ class JSection(GeneralSection):
|
|
|
11
13
|
tlf: float = None
|
|
12
14
|
ruf: float = None
|
|
13
15
|
rlf: float = None
|
|
16
|
+
|
|
14
17
|
def __init__(self, hw: float, tw: float, wuf: float, tuf: float,
|
|
15
18
|
wlf: float, tlf: float, rlf: float=0.0, ruf: float=0.0,
|
|
16
19
|
label: str=None) -> None:
|
|
@@ -31,6 +34,7 @@ class JSection(GeneralSection):
|
|
|
31
34
|
r = [0.0, self.ruf, 0.0, 0.0, 0.0, 0.0, self.ruf,
|
|
32
35
|
self.rlf, 0.0, 0.0]
|
|
33
36
|
super().__init__(y, z, r, label=label)
|
|
37
|
+
|
|
34
38
|
def _repr_markdown_(self) -> str:
|
|
35
39
|
mdstr = self.section_heading('J-Section')
|
|
36
40
|
table = MDTable()
|
|
@@ -53,6 +57,7 @@ class JSection(GeneralSection):
|
|
|
53
57
|
mdstr += table._repr_markdown_()
|
|
54
58
|
mdstr += self.section_properties(outtype='md')
|
|
55
59
|
return mdstr
|
|
60
|
+
|
|
56
61
|
def __str__(self) -> str:
|
|
57
62
|
outstr = self.section_heading('J-Section')
|
|
58
63
|
table = MDTable()
|
|
@@ -64,9 +69,10 @@ class JSection(GeneralSection):
|
|
|
64
69
|
table.add_column(f't_lf ({config.lunit:s})', config.l1frm, data=[self.tlf])
|
|
65
70
|
table.add_column(f'r_lf ({config.lunit:s})', config.l1frm, data=[self.rlf])
|
|
66
71
|
table.add_column(f'r_uf ({config.lunit:s})', config.l1frm, data=[self.ruf])
|
|
67
|
-
outstr +=
|
|
68
|
-
outstr += self.section_properties(outtype=
|
|
72
|
+
outstr += table.__str__()
|
|
73
|
+
outstr += self.section_properties(outtype=str)
|
|
69
74
|
return outstr
|
|
75
|
+
|
|
70
76
|
def __repr__(self) -> str:
|
|
71
77
|
if self.label is None:
|
|
72
78
|
outstr = '<J-Section>'
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
from py2md.classes import MDTable
|
|
2
|
-
|
|
2
|
+
|
|
3
3
|
from .. import config
|
|
4
|
+
from ..general.generalsection import GeneralSection
|
|
5
|
+
|
|
4
6
|
|
|
5
7
|
class LSection(GeneralSection):
|
|
6
8
|
hw: float = None
|
|
@@ -8,6 +10,7 @@ class LSection(GeneralSection):
|
|
|
8
10
|
wf: float = None
|
|
9
11
|
tf: float = None
|
|
10
12
|
rc: float = None
|
|
13
|
+
|
|
11
14
|
def __init__(self, hw: float, tw: float, wf: float, tf: float,
|
|
12
15
|
rc: float=0.0, label: str=None) -> None:
|
|
13
16
|
self.hw = hw
|
|
@@ -19,6 +22,7 @@ class LSection(GeneralSection):
|
|
|
19
22
|
z = [0.0, 0.0, self.tf, self.tf, self.hw, self.hw]
|
|
20
23
|
r = [0.0, 0.0, 0.0, self.rc, 0.0, 0.0]
|
|
21
24
|
super().__init__(y, z, r, label=label)
|
|
25
|
+
|
|
22
26
|
def _repr_markdown_(self) -> str:
|
|
23
27
|
mdstr = self.section_heading('L-Section')
|
|
24
28
|
table = MDTable()
|
|
@@ -35,6 +39,7 @@ class LSection(GeneralSection):
|
|
|
35
39
|
mdstr += table._repr_markdown_()
|
|
36
40
|
mdstr += self.section_properties(outtype='md')
|
|
37
41
|
return mdstr
|
|
42
|
+
|
|
38
43
|
def __str__(self) -> str:
|
|
39
44
|
outstr = self.section_heading('L-Section')
|
|
40
45
|
table = MDTable()
|
|
@@ -43,9 +48,10 @@ class LSection(GeneralSection):
|
|
|
43
48
|
table.add_column(f'w_f ({config.lunit:s})', config.l1frm, data=[self.wf])
|
|
44
49
|
table.add_column(f't_f ({config.lunit:s})', config.l1frm, data=[self.tf])
|
|
45
50
|
table.add_column(f'r_c ({config.lunit:s})', config.l1frm, data=[self.rc])
|
|
46
|
-
outstr +=
|
|
47
|
-
outstr += self.section_properties(outtype=
|
|
51
|
+
outstr += table.__str__()
|
|
52
|
+
outstr += self.section_properties(outtype=str)
|
|
48
53
|
return outstr
|
|
54
|
+
|
|
49
55
|
def __repr__(self) -> str:
|
|
50
56
|
if self.label is None:
|
|
51
57
|
outstr = '<L-Section>'
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
from py2md.classes import MDTable
|
|
2
|
-
|
|
2
|
+
|
|
3
3
|
from .. import config
|
|
4
|
+
from ..general.generalsection import GeneralSection
|
|
5
|
+
|
|
4
6
|
|
|
5
7
|
class OmegaSection(GeneralSection):
|
|
6
8
|
hw: float = None # Height of web
|
|
@@ -11,6 +13,7 @@ class OmegaSection(GeneralSection):
|
|
|
11
13
|
tlf: float = None # Thickness of lower flange
|
|
12
14
|
ruf: float = None # Radius of upper flange
|
|
13
15
|
rlf: float = None # Radius of lower flange
|
|
16
|
+
|
|
14
17
|
def __init__(self, hw: float, tw: float, wuf: float, tuf: float,
|
|
15
18
|
wlf: float, tlf: float, ruf: float=0.0, rlf: float=0.0,
|
|
16
19
|
label: str=None) -> None:
|
|
@@ -33,6 +36,7 @@ class OmegaSection(GeneralSection):
|
|
|
33
36
|
r = [0.0, 0.0, self.rlf, 0.0, 0.0, 0.0, self.ruf, 0.0,
|
|
34
37
|
self.ruf, 0.0, 0.0, 0.0, self.rlf, 0.0]
|
|
35
38
|
super().__init__(y, z, r, label=label)
|
|
39
|
+
|
|
36
40
|
def _repr_markdown_(self) -> str:
|
|
37
41
|
mdstr = self.section_heading('Omega-Section')
|
|
38
42
|
table = MDTable()
|
|
@@ -55,6 +59,7 @@ class OmegaSection(GeneralSection):
|
|
|
55
59
|
mdstr += table._repr_markdown_()
|
|
56
60
|
mdstr += self.section_properties(outtype='md')
|
|
57
61
|
return mdstr
|
|
62
|
+
|
|
58
63
|
def __str__(self) -> str:
|
|
59
64
|
outstr = self.section_heading('Omega-Section')
|
|
60
65
|
table = MDTable()
|
|
@@ -74,9 +79,10 @@ class OmegaSection(GeneralSection):
|
|
|
74
79
|
config.l1frm, data=[self.ruf])
|
|
75
80
|
table.add_column(f'r_lf ({config.lunit:s})',
|
|
76
81
|
config.l1frm, data=[self.rlf])
|
|
77
|
-
outstr +=
|
|
78
|
-
outstr += self.section_properties(outtype=
|
|
82
|
+
outstr += table.__str__()
|
|
83
|
+
outstr += self.section_properties(outtype=str)
|
|
79
84
|
return outstr
|
|
85
|
+
|
|
80
86
|
def __repr__(self) -> str:
|
|
81
87
|
if self.label is None:
|
|
82
88
|
outstr = '<Omega-Section>'
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
from py2md.classes import MDTable
|
|
2
|
-
|
|
2
|
+
|
|
3
3
|
from .. import config
|
|
4
|
+
from ..general.generalsection import GeneralSection
|
|
5
|
+
|
|
4
6
|
|
|
5
7
|
class TSection(GeneralSection):
|
|
6
8
|
hw: float = None
|
|
@@ -8,6 +10,7 @@ class TSection(GeneralSection):
|
|
|
8
10
|
wf: float = None
|
|
9
11
|
tf: float = None
|
|
10
12
|
rf: float = None
|
|
13
|
+
|
|
11
14
|
def __init__(self, hw: float, tw: float, wf: float, tf: float,
|
|
12
15
|
rf: float=0.0, label: str=None):
|
|
13
16
|
self.hw = hw
|
|
@@ -21,6 +24,7 @@ class TSection(GeneralSection):
|
|
|
21
24
|
0.0, self.hw-self.tf, self.hw-self.tf, self.hw]
|
|
22
25
|
r = [0.0, 0.0, self.rf, 0.0, 0.0, self.rf, 0.0, 0.0]
|
|
23
26
|
super().__init__(y, z, r, label=label)
|
|
27
|
+
|
|
24
28
|
def _repr_markdown_(self) -> str:
|
|
25
29
|
mdstr = self.section_heading('T-Section')
|
|
26
30
|
table = MDTable()
|
|
@@ -37,6 +41,7 @@ class TSection(GeneralSection):
|
|
|
37
41
|
mdstr += table._repr_markdown_()
|
|
38
42
|
mdstr += self.section_properties(outtype='md')
|
|
39
43
|
return mdstr
|
|
44
|
+
|
|
40
45
|
def __str__(self) -> str:
|
|
41
46
|
mdstr = self.section_heading('T-Section')
|
|
42
47
|
table = MDTable()
|
|
@@ -45,9 +50,10 @@ class TSection(GeneralSection):
|
|
|
45
50
|
table.add_column(f'w_f ({config.lunit:s})', config.l1frm, data=[self.wf])
|
|
46
51
|
table.add_column(f't_f ({config.lunit:s})', config.l1frm, data=[self.tf])
|
|
47
52
|
table.add_column(f'r_f ({config.lunit:s})', config.l1frm, data=[self.rf])
|
|
48
|
-
mdstr +=
|
|
49
|
-
mdstr += self.section_properties(outtype=
|
|
53
|
+
mdstr += table.__str__()
|
|
54
|
+
mdstr += self.section_properties(outtype=str)
|
|
50
55
|
return mdstr
|
|
56
|
+
|
|
51
57
|
def __repr__(self) -> str:
|
|
52
58
|
if self.label is None:
|
|
53
59
|
outstr = '<T-Section>'
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
from py2md.classes import MDTable
|
|
2
|
+
|
|
3
|
+
from .. import config
|
|
2
4
|
from ..general.generalsection import GeneralSection
|
|
3
5
|
from ..general.thinwalledsection import ThinWalledSection
|
|
4
|
-
|
|
6
|
+
|
|
5
7
|
|
|
6
8
|
class ZSection(GeneralSection):
|
|
7
9
|
hw: float = None
|
|
@@ -12,6 +14,7 @@ class ZSection(GeneralSection):
|
|
|
12
14
|
tuf: float = None
|
|
13
15
|
rlf: float = None
|
|
14
16
|
ruf: float = None
|
|
17
|
+
|
|
15
18
|
def __init__(self, hw: float, tw: float, wlf: float, tlf: float,
|
|
16
19
|
wuf: float, tuf: float, ruf: float=0.0, rlf: float=0.0,
|
|
17
20
|
label: str=None) -> None:
|
|
@@ -29,11 +32,13 @@ class ZSection(GeneralSection):
|
|
|
29
32
|
self.hw, self.hw - self.tuf, self.hw - self.tuf]
|
|
30
33
|
r = [0.0, 0.0, 0.0, self.ruf, 0.0, 0.0, 0.0, self.rlf]
|
|
31
34
|
super().__init__(y, z, r, label=label)
|
|
35
|
+
|
|
32
36
|
def to_thin_walled_section(self) -> ThinWalledSection:
|
|
33
37
|
y = [self.wlf, self.tw/2, self.tw/2, self.tw/2-self.wuf]
|
|
34
38
|
z = [self.tlf/2, self.tlf/2, self.hw-self.tuf/2, self.hw-self.tuf/2]
|
|
35
39
|
t = [self.tlf, self.tw, self.tuf]
|
|
36
40
|
return ThinWalledSection(y, z, t, label=self.label)
|
|
41
|
+
|
|
37
42
|
def _repr_markdown_(self) -> str:
|
|
38
43
|
mdstr = self.section_heading('Z-Section')
|
|
39
44
|
table = MDTable()
|
|
@@ -56,6 +61,7 @@ class ZSection(GeneralSection):
|
|
|
56
61
|
mdstr += table._repr_markdown_()
|
|
57
62
|
mdstr += self.section_properties(outtype='md')
|
|
58
63
|
return mdstr
|
|
64
|
+
|
|
59
65
|
def __str__(self) -> str:
|
|
60
66
|
outstr = self.section_heading('Z-Section')
|
|
61
67
|
table = MDTable()
|
|
@@ -67,9 +73,10 @@ class ZSection(GeneralSection):
|
|
|
67
73
|
table.add_column(f't_lf ({config.lunit:s})', config.l1frm, data=[self.tuf])
|
|
68
74
|
table.add_column(f'r_uf ({config.lunit:s})', config.l1frm, data=[self.ruf])
|
|
69
75
|
table.add_column(f'r_lf ({config.lunit:s})', config.l1frm, data=[self.rlf])
|
|
70
|
-
outstr +=
|
|
71
|
-
outstr += self.section_properties(outtype=
|
|
76
|
+
outstr += table.__str__()
|
|
77
|
+
outstr += self.section_properties(outtype=str)
|
|
72
78
|
return outstr
|
|
79
|
+
|
|
73
80
|
def __repr__(self) -> str:
|
|
74
81
|
if self.label is None:
|
|
75
82
|
outstr = '<Z-Section>'
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
from py2md.classes import MDTable
|
|
2
|
+
|
|
3
|
+
from .. import config
|
|
2
4
|
from ..general.generalsection import GeneralSection
|
|
3
5
|
from ..general.thinwalledsection import ThinWalledSection
|
|
4
|
-
|
|
6
|
+
|
|
5
7
|
|
|
6
8
|
class CSectionFormed(GeneralSection):
|
|
7
9
|
hw: float = None # Height of web
|
|
@@ -9,6 +11,7 @@ class CSectionFormed(GeneralSection):
|
|
|
9
11
|
wlf: float = None # Width of upper flange
|
|
10
12
|
ts: float = None # Thickness of section
|
|
11
13
|
rm: float = None # Bend radius
|
|
14
|
+
|
|
12
15
|
def __init__(self, hw: float, wuf: float, wlf: float, ts: float,
|
|
13
16
|
rm: float, label: str=None) -> None:
|
|
14
17
|
self.hw = hw
|
|
@@ -27,11 +30,13 @@ class CSectionFormed(GeneralSection):
|
|
|
27
30
|
ro = self.rm+self.ts/2
|
|
28
31
|
r = [ro, 0.0, 0.0, ri, ri, 0.0, 0.0, ro]
|
|
29
32
|
super().__init__(y, z, r, label=label)
|
|
33
|
+
|
|
30
34
|
def to_thin_walled_section(self) -> ThinWalledSection:
|
|
31
35
|
y = [self.wlf, self.ts/2, self.ts/2, self.wuf]
|
|
32
36
|
z = [self.ts/2, self.ts/2, self.hw-self.ts/2, self.hw-self.ts/2]
|
|
33
37
|
t = [self.ts, self.ts, self.ts]
|
|
34
38
|
return ThinWalledSection(y, z, t)
|
|
39
|
+
|
|
35
40
|
def _repr_markdown_(self) -> str:
|
|
36
41
|
mdstr = self.section_heading('C-Section')
|
|
37
42
|
table = MDTable()
|
|
@@ -48,6 +53,7 @@ class CSectionFormed(GeneralSection):
|
|
|
48
53
|
mdstr += table._repr_markdown_()
|
|
49
54
|
mdstr += self.section_properties(outtype='md')
|
|
50
55
|
return mdstr
|
|
56
|
+
|
|
51
57
|
def __str__(self) -> str:
|
|
52
58
|
mdstr = self.section_heading('C-Section')
|
|
53
59
|
table = MDTable()
|
|
@@ -61,9 +67,10 @@ class CSectionFormed(GeneralSection):
|
|
|
61
67
|
config.l1frm, data=[self.ts])
|
|
62
68
|
table.add_column(f'r_m ({config.lunit:s})',
|
|
63
69
|
config.l1frm, data=[self.rm])
|
|
64
|
-
mdstr +=
|
|
65
|
-
mdstr += self.section_properties(outtype=
|
|
70
|
+
mdstr += table.__str__()
|
|
71
|
+
mdstr += self.section_properties(outtype=str)
|
|
66
72
|
return mdstr
|
|
73
|
+
|
|
67
74
|
def __repr__(self) -> str:
|
|
68
75
|
if self.label is None:
|
|
69
76
|
outstr = '<C-Section Formed>'
|
|
@@ -1,13 +1,16 @@
|
|
|
1
1
|
from py2md.classes import MDTable
|
|
2
|
+
|
|
3
|
+
from .. import config
|
|
2
4
|
from ..general.generalsection import GeneralSection
|
|
3
5
|
from ..general.thinwalledsection import ThinWalledSection
|
|
4
|
-
|
|
6
|
+
|
|
5
7
|
|
|
6
8
|
class LSectionFormed(GeneralSection):
|
|
7
9
|
hw: float = None # Height of web
|
|
8
10
|
wf: float = None # Width of flange
|
|
9
11
|
ts: float = None # Thickness of section
|
|
10
12
|
rm: float = None # Bend radius
|
|
13
|
+
|
|
11
14
|
def __init__(self, hw: float, wf: float, ts: float, rm: float,
|
|
12
15
|
label: str=None) -> None:
|
|
13
16
|
self.hw = hw
|
|
@@ -18,11 +21,13 @@ class LSectionFormed(GeneralSection):
|
|
|
18
21
|
z = [0.0, 0.0, self.ts, self.ts, self.hw, self.hw]
|
|
19
22
|
r = [self.rm+self.ts/2, 0.0, 0.0, self.rm-self.ts/2, 0.0, 0.0]
|
|
20
23
|
super().__init__(y, z, r, label=label)
|
|
24
|
+
|
|
21
25
|
def to_thin_walled_section(self) -> ThinWalledSection:
|
|
22
26
|
y = [self.ts/2, self.ts/2, self.wf]
|
|
23
27
|
z = [self.hw, self.ts/2, self.ts/2]
|
|
24
28
|
t = [self.ts, self.ts]
|
|
25
29
|
return ThinWalledSection(y, z, t)
|
|
30
|
+
|
|
26
31
|
def _repr_markdown_(self) -> str:
|
|
27
32
|
mdstr = self.section_heading('L-Section')
|
|
28
33
|
table = MDTable()
|
|
@@ -37,6 +42,7 @@ class LSectionFormed(GeneralSection):
|
|
|
37
42
|
mdstr += table._repr_markdown_()
|
|
38
43
|
mdstr += self.section_properties(outtype='md')
|
|
39
44
|
return mdstr
|
|
45
|
+
|
|
40
46
|
def __str__(self) -> str:
|
|
41
47
|
outstr = self.section_heading('L-Section')
|
|
42
48
|
table = MDTable()
|
|
@@ -48,9 +54,10 @@ class LSectionFormed(GeneralSection):
|
|
|
48
54
|
config.l1frm, data=[self.ts])
|
|
49
55
|
table.add_column(f'r_m ({config.lunit:s})',
|
|
50
56
|
config.l1frm, data=[self.rm])
|
|
51
|
-
outstr +=
|
|
52
|
-
outstr += self.section_properties(outtype=
|
|
57
|
+
outstr += table.__str__()
|
|
58
|
+
outstr += self.section_properties(outtype=str)
|
|
53
59
|
return outstr
|
|
60
|
+
|
|
54
61
|
def __repr__(self) -> str:
|
|
55
62
|
if self.label is None:
|
|
56
63
|
outstr = '<L-Section>'
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
from py2md.classes import MDTable
|
|
2
|
+
|
|
3
|
+
from .. import config
|
|
2
4
|
from ..general.generalsection import GeneralSection
|
|
3
5
|
from ..general.thinwalledsection import ThinWalledSection
|
|
4
|
-
|
|
6
|
+
|
|
5
7
|
|
|
6
8
|
class OmegaSectionFormed(GeneralSection):
|
|
7
9
|
hw: float = None # Height of web
|
|
@@ -9,6 +11,7 @@ class OmegaSectionFormed(GeneralSection):
|
|
|
9
11
|
wlf: float = None # Width of upper flange
|
|
10
12
|
ts: float = None # Thickness of section
|
|
11
13
|
rm: float = None # Bend radius
|
|
14
|
+
|
|
12
15
|
def __init__(self, hw: float, wlf: float, wuf: float, ts: float,
|
|
13
16
|
rm: float, label: str=None) -> None:
|
|
14
17
|
self.hw = hw
|
|
@@ -27,6 +30,7 @@ class OmegaSectionFormed(GeneralSection):
|
|
|
27
30
|
self.rm+self.ts/2, 0.0, 0.0, self.rm-self.ts/2, self.rm+self.ts/2,
|
|
28
31
|
self.rm+self.ts/2, self.rm-self.ts/2, 0.0]
|
|
29
32
|
super().__init__(y, z, r, label=label)
|
|
33
|
+
|
|
30
34
|
def to_thin_walled_section(self) -> ThinWalledSection:
|
|
31
35
|
y = [-self.wlf-self.wuf/2+self.ts, -self.wuf/2+self.ts/2, -self.wuf/2+self.ts/2,
|
|
32
36
|
self.wuf/2-self.ts/2, self.wuf/2-self.ts/2, self.wlf+self.wuf/2-self.ts]
|
|
@@ -34,6 +38,7 @@ class OmegaSectionFormed(GeneralSection):
|
|
|
34
38
|
self.ts/2, self.ts/2]
|
|
35
39
|
t = [self.ts, self.ts, self.ts, self.ts, self.ts]
|
|
36
40
|
return ThinWalledSection(y, z, t)
|
|
41
|
+
|
|
37
42
|
def _repr_markdown_(self) -> str:
|
|
38
43
|
mdstr = self.section_heading('Omega-Section Formed')
|
|
39
44
|
table = MDTable()
|
|
@@ -50,22 +55,24 @@ class OmegaSectionFormed(GeneralSection):
|
|
|
50
55
|
mdstr += table._repr_markdown_()
|
|
51
56
|
mdstr += self.section_properties(outtype='md')
|
|
52
57
|
return mdstr
|
|
58
|
+
|
|
53
59
|
def __str__(self) -> str:
|
|
54
60
|
outstr = self.section_heading('Omega-Section Formed')
|
|
55
61
|
table = MDTable()
|
|
56
|
-
table.add_column(f'
|
|
62
|
+
table.add_column(f'h_w ({config.lunit:s})',
|
|
57
63
|
config.l1frm, data=[self.hw])
|
|
58
|
-
table.add_column(f'
|
|
64
|
+
table.add_column(f'w_lf ({config.lunit:s})',
|
|
59
65
|
config.l1frm, data=[self.wlf])
|
|
60
|
-
table.add_column(f'
|
|
66
|
+
table.add_column(f'w_uf ({config.lunit:s})',
|
|
61
67
|
config.l1frm, data=[self.wuf])
|
|
62
|
-
table.add_column(f'
|
|
68
|
+
table.add_column(f't_s ({config.lunit:s})',
|
|
63
69
|
config.l1frm, data=[self.ts])
|
|
64
|
-
table.add_column(f'
|
|
70
|
+
table.add_column(f'r_m ({config.lunit:s})',
|
|
65
71
|
config.l1frm, data=[self.rm])
|
|
66
|
-
outstr +=
|
|
67
|
-
outstr += self.section_properties(outtype=
|
|
72
|
+
outstr += table.__str__()
|
|
73
|
+
outstr += self.section_properties(outtype=str)
|
|
68
74
|
return outstr
|
|
75
|
+
|
|
69
76
|
def __repr__(self) -> str:
|
|
70
77
|
if self.label is None:
|
|
71
78
|
outstr = '<Omega-Section Formed>'
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
from py2md.classes import MDTable
|
|
2
|
+
|
|
3
|
+
from .. import config
|
|
2
4
|
from ..general.generalsection import GeneralSection
|
|
3
5
|
from ..general.thinwalledsection import ThinWalledSection
|
|
4
|
-
|
|
6
|
+
|
|
5
7
|
|
|
6
8
|
class ZSectionFormed(GeneralSection):
|
|
7
9
|
hw: float = None # Height of web
|
|
@@ -9,6 +11,7 @@ class ZSectionFormed(GeneralSection):
|
|
|
9
11
|
wlf: float = None # Width of upper flange
|
|
10
12
|
ts: float = None # Thickness of section
|
|
11
13
|
rm: float = None # Bend radius
|
|
14
|
+
|
|
12
15
|
def __init__(self, hw: float, wlf: float, wuf: float, ts: float,
|
|
13
16
|
rm: float, label: str=None) -> None:
|
|
14
17
|
self.hw = hw
|
|
@@ -23,11 +26,13 @@ class ZSectionFormed(GeneralSection):
|
|
|
23
26
|
r = [self.rm+self.ts/2, 0.0, 0.0, self.rm-self.ts/2, self.rm+self.ts/2,
|
|
24
27
|
0.0, 0.0, self.rm-self.ts/2]
|
|
25
28
|
super().__init__(y, z, r, label=label)
|
|
29
|
+
|
|
26
30
|
def to_thin_walled_section(self) -> ThinWalledSection:
|
|
27
31
|
y = [self.wlf, self.ts/2, self.ts/2, self.ts/2-self.wuf]
|
|
28
32
|
z = [self.ts/2, self.ts/2, self.hw-self.ts/2, self.hw-self.ts/2]
|
|
29
33
|
t = [self.ts, self.ts, self.ts]
|
|
30
34
|
return ThinWalledSection(y, z, t)
|
|
35
|
+
|
|
31
36
|
def _repr_markdown_(self) -> str:
|
|
32
37
|
mdstr = self.section_heading('Z-Section')
|
|
33
38
|
table = MDTable()
|
|
@@ -44,22 +49,24 @@ class ZSectionFormed(GeneralSection):
|
|
|
44
49
|
mdstr += table._repr_markdown_()
|
|
45
50
|
mdstr += self.section_properties(outtype='md')
|
|
46
51
|
return mdstr
|
|
52
|
+
|
|
47
53
|
def __str__(self) -> str:
|
|
48
54
|
outstr = self.section_heading('Z-Section')
|
|
49
55
|
table = MDTable()
|
|
50
|
-
table.add_column(f'
|
|
56
|
+
table.add_column(f'h_w ({config.lunit:s})',
|
|
51
57
|
config.l1frm, data=[self.hw])
|
|
52
|
-
table.add_column(f'
|
|
58
|
+
table.add_column(f'w_lf ({config.lunit:s})',
|
|
53
59
|
config.l1frm, data=[self.wlf])
|
|
54
|
-
table.add_column(f'
|
|
60
|
+
table.add_column(f'w_uf ({config.lunit:s})',
|
|
55
61
|
config.l1frm, data=[self.wuf])
|
|
56
|
-
table.add_column(f'
|
|
62
|
+
table.add_column(f't_s ({config.lunit:s})',
|
|
57
63
|
config.l1frm, data=[self.ts])
|
|
58
|
-
table.add_column(f'
|
|
64
|
+
table.add_column(f'r_m ({config.lunit:s})',
|
|
59
65
|
config.l1frm, data=[self.rm])
|
|
60
|
-
outstr +=
|
|
61
|
-
outstr += self.section_properties(outtype=
|
|
66
|
+
outstr += table.__str__()
|
|
67
|
+
outstr += self.section_properties(outtype=str)
|
|
62
68
|
return outstr
|
|
69
|
+
|
|
63
70
|
def __repr__(self) -> str:
|
|
64
71
|
if self.label is None:
|
|
65
72
|
outstr = '<Z-Section>'
|
|
@@ -1,6 +1,10 @@
|
|
|
1
|
-
from .generalsection import GeneralSection as GeneralSection
|
|
2
|
-
from .materialsection import MaterialSection as MaterialSection
|
|
3
1
|
from .compositesection import CompositeSection as CompositeSection
|
|
4
2
|
from .cripplingsection import CripplingSection as CripplingSection
|
|
5
|
-
from .
|
|
3
|
+
from .generalsection import GeneralSection as GeneralSection
|
|
4
|
+
from .hollowsection import Hole as Hole
|
|
5
|
+
from .hollowsection import HollowSection as HollowSection
|
|
6
6
|
from .material import Material as Material
|
|
7
|
+
from .materialsection import MaterialSection as MaterialSection
|
|
8
|
+
from .mould import Mould as Mould
|
|
9
|
+
from .numericalsection import NumericalSection as NumericalSection
|
|
10
|
+
from .thinwalledsection import ThinWalledSection as ThinWalledSection
|