Skip to content

Commit

Permalink
Merge pull request #12 from youandvern/add_aluminum_sections
Browse files Browse the repository at this point in the history
Add aluminum sections
  • Loading branch information
youandvern authored Apr 10, 2024
2 parents 37eb170 + 2f61263 commit f52038b
Show file tree
Hide file tree
Showing 17 changed files with 1,278 additions and 51 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
<a href="https://github.com/youandvern/efficalc/actions/workflows/tests.yml"><img alt="Tests" src="https://github.com/youandvern/efficalc/actions/workflows/tests.yml/badge.svg"></a>&nbsp;&nbsp;&nbsp;
<a href="https://coveralls.io/github/youandvern/efficalc?branch=main"><img alt="Coverage Status" src="https://coveralls.io/repos/github/youandvern/efficalc/badge.svg?branch=main&v=1.1.0"></a>&nbsp;&nbsp;&nbsp;
<a href="https://github.com/youandvern/efficalc/blob/main/LICENSE"><img alt="License: MIT" src="https://img.shields.io/badge/License-MIT-yellow.svg"></a>&nbsp;&nbsp;&nbsp;
<a href="https://badge.fury.io/py/efficalc"><img alt="PyPI version" src="https://badge.fury.io/py/efficalc.svg?version=1.1.0"></a>
<a href="https://badge.fury.io/py/efficalc"><img alt="PyPI version" src="https://badge.fury.io/py/efficalc.svg?v=1.1.0"></a>
</p>


Expand Down
10 changes: 10 additions & 0 deletions efficalc/sections/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,11 @@
from .aisc_rectangular import ALL_AISC_RECTANGULAR_NAMES, AiscRectangular
from .aisc_tee import ALL_AISC_TEE_NAMES, AiscTee
from .aisc_wide_flange import ALL_AISC_WIDE_FLANGE_NAMES, AiscWideFlange
from .alum_angle import ALL_ALUMINUM_ANGLE_NAMES, AluminumAngle
from .alum_channel import ALL_ALUMINUM_CHANNEL_NAMES, AluminumChannel
from .alum_circular import ALL_ALUMINUM_CIRCULAR_NAMES, AluminumCircular
from .alum_rectangular import ALL_ALUMINUM_RECTANGULAR_NAMES, AluminumRectangular
from .alum_wide_flange import ALL_ALUMINUM_WIDE_FLANGE_NAMES, AluminumWideFlange
from .section_query import (
get_aisc_angle,
get_aisc_channel,
Expand All @@ -13,4 +18,9 @@
get_aisc_rectangular,
get_aisc_tee,
get_aisc_wide_flange,
get_aluminum_angle,
get_aluminum_channel,
get_aluminum_circular,
get_aluminum_rectangular,
get_aluminum_wide_flange,
)
189 changes: 189 additions & 0 deletions efficalc/sections/alum_angle.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,189 @@
import dataclasses


@dataclasses.dataclass
class AluminumAngle(object):
"""This is a dataclass containing the properties of an Aluminium Angle section.
:param A: Cross-sectional area (in^2)
:type A: float
:param Ix: Moment of inertia about the x-axis (in^4)
:type Ix: float
:param Iy: Moment of inertia about the y-axis (in^4)
:type Iy: float
:param Iz: Moment of inertia about the z-axis (in^4)
:type Iz: float
:param R1: Fillet radius (in)
:type R1: float
:param R2: Tip radius (in)
:type R2: float
:param Size: The section size name
:type Size: str
:param Sx: Elastic section modulus about the x-axis (in^3)
:type Sx: float
:param Sy: Elastic section modulus about the y-axis (in^3)
:type Sy: float
:param Type: The type of section shape (e.g. American Standard, Aluminum Association, etc.)
:type Type: str
:param W: Nominal weight (lb/ft)
:type W: float
:param alpha: Angle of the z-axis (deg)
:type alpha: float
:param b: Width (in)
:type b: float
:param d: Depth (in)
:type d: float
:param rx: Radius of gyration about the x-axis (in)
:type rx: float
:param ry: Radius of gyration about the y-axis (in)
:type ry: float
:param rz: Radius of gyration about the z-axis (in)
:type rz: float
:param t: Thickness (in)
:type t: float
:param x: Location of the centroid along the x-axis (in)
:type x: float
:param y: Location of the centroid along the y-axis (in)
:type y: float
"""

A: float
Ix: float
Iy: float
Iz: float
R1: float
R2: float
Size: str
Sx: float
Sy: float
Type: str
W: float
alpha: float
b: float
d: float
rx: float
ry: float
rz: float
t: float
x: float
y: float


ALL_ALUMINUM_ANGLE_NAMES = (
"L 1 1/2 x 1 1/2 x 1/8",
"L 1 3/4 x 1 3/4 x 1/8",
"L 1 3/4 x 1 3/4 x 1/4",
"L 1 1/2 x 1 1/2 x 1/4",
"L 2 x 2 x 1/8",
"L 1 3/4 x 1 3/4 x 3/8",
"L 2 x 2 x 3/16",
"L 2 x 2 x 1/4",
"L 2 x 2 x 3/8",
"L 2 x 2 x 5/16",
"L 2 1/2 x 2 1/2 x 1/8",
"L 2 1/2 x 2 1/2 x 3/16",
"L 2 1/2 x 2 1/2 x 1/4",
"L 2 1/2 x 2 1/2 x 5/16",
"L 2 1/2 x 2 1/2 x 3/8",
"L 2 1/2 x 2 1/2 x 1/2",
"L 3 x 3 x 3/16",
"L 3 x 3 x 1/4",
"L 3 x 3 x 5/16",
"L 3 x 3 x 3/8",
"L 3 x 3 x 1/2",
"L 3 1/2 x 3 1/2 x 1/4",
"L 3 1/2 x 3 1/2 x 5/16",
"L 3 1/2 x 3 1/2 x 3/8",
"L 3 1/2 x 3 1/2 x 1/2",
"L 4 x 4 x 1/4",
"L 4 x 4 x 5/16",
"L 4 x 4 x 3/8",
"L 4 x 4 x 1/2",
"L 4 x 4 x 7/16",
"L 4 x 4 x 5/8",
"L 4 x 4 x 9/16",
"L 5 x 5 x 3/8",
"L 4 x 4 x 11/16",
"L 4 x 4 x 3/4",
"L 5 x 5 x 9/16",
"L 5 x 5 x 7/16",
"L 5 x 5 x 1/2",
"L 5 x 5 x 3/4",
"L 5 x 5 x 5/8",
"L 6 x 6 x 7/16",
"L 8 x 8 x 1/2",
"L 6 x 6 x 3/8",
"L 6 x 6 x 1/2",
"L 1 3/4 x 1 1/4 x 1/8",
"L 8 x 8 x 1",
"L 6 x 6 x 5/8",
"L 6 x 6 x 3/4",
"L 8 x 8 x 5/8",
"L 2 x 1 1/4 x 1/8",
"L 1 3/4 x 1 1/4 x 1/4",
"L 2 x 1 x 3/16",
"L 1 3/4 x 1 1/4 x 3/16",
"L 2 x 1 1/4 x 1/4",
"L 2 x 1 1/2 x 1/8",
"L 2 x 1 1/2 x 1/4",
"L 2 x 1 1/2 x 3/16",
"L 2 x 1 1/2 x 3/8",
"L 8 x 8 x 3/4",
"L 2 x 1 3/4 x 1/4",
"L 2 1/4 x 1 1/2 x 1/4",
"L 2 1/2 x 1 1/4 x 1/8",
"L 2 1/2 x 1 1/2 x 1/8",
"L 2 1/2 x 1 1/2 x 3/16",
"L 2 1/2 x 1 1/2 x 1/4",
"L 2 1/2 x 1 1/2 x 5/16",
"L 2 1/2 x 1 1/2 x 3/8",
"L 2 1/2 x 2 x 1/8",
"L 2 1/2 x 2 x 1/4",
"L 2 1/2 x 2 x 3/16",
"L 2 1/2 x 2 x 5/16",
"L 2 1/2 x 2 x 3/8",
"L 3 x 1 1/2 x 1/4",
"L 3 x 2 x 3/16",
"L 3 x 2 x 1/4",
"L 3 x 2 x 5/16",
"L 3 x 2 x 3/8",
"L 3 x 2 x 1/2",
"L 3 x 2 1/2 x 1/4",
"L 3 x 2 1/2 x 5/16",
"L 3 x 2 1/2 x 3/8",
"L 3 1/2 x 3 x 1/4",
"L 3 1/2 x 3 x 5/16",
"L 3 1/2 x 3 x 3/8",
"L 3 1/2 x 3 x 1/2",
"L 4 x 3 x 1/4",
"L 4 x 3 x 3/8",
"L 4 x 3 x 5/16",
"L 4 x 3 1/2 x 5/16",
"L 4 x 3 x 5/8",
"L 4 x 3 x 1/2",
"L 4 x 3 x 7/16",
"L 5 x 3 x 3/8",
"L 4 x 3 1/2 x 3/8",
"5 x 3 1/2 x 5/16",
"L 4 x 3 1/2 x 1/2",
"L 5 x 3 x 1/2",
"L 5 x 3 x 1/4",
"5 x 3 1/2 x 1/2",
"L 5 x 3 x 5/16",
"5 x 3 1/2 x 3/8",
"5 x 3 1/2 x 5/8",
"6 x 3 x 3/8",
"6 x 3 1/2 x 5/16",
"6 x 3 1/2 x 3/8",
"6 x 3 1/2 x 5/8",
"6 x 3 1/2 x 1/2",
"6 x 4 x 3/8",
"6 x 4 x 5/8",
"7 x 4 x 1/2",
"6 x 4 x 7/16",
"6 x 4 x 3/4",
"6 x 4 x 1/2",
"8 x 6 x 5/8",
"8 x 6 x 11/16",
"8 x 6 x 3/4",
)
126 changes: 126 additions & 0 deletions efficalc/sections/alum_channel.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,126 @@
import dataclasses


@dataclasses.dataclass
class AluminumChannel(object):
"""
This is a dataclass containing the properties of an Aluminum Channel section.
:param A: Cross-sectional area (in^2)
:type A: float
:param Ix: Moment of inertia about the x-axis (in^4)
:type Ix: float
:param Iy: Moment of inertia about the y-axis (in^4)
:type Iy: float
:param R1: Fillet radius (in)
:type R1: float
:param R2: Tip radius (in)
:type R2: float
:param Size: The section size name
:type Size: str
:param Sx: Elastic section modulus about the x-axis (in^3)
:type Sx: float
:param Sy: Elastic section modulus about the y-axis (in^3)
:type Sy: float
:param Type: The type of section shape (e.g. American Standard, Aluminum Association, etc.)
:type Type: str
:param W: Nominal weight (lb/ft)
:type W: float
:param b: Width (in)
:type b: float
:param d: Depth (in)
:type d: float
:param d1: Nominal depth between flange fillets (in)
:type d1: float
:param rx: Radius of gyration about the x-axis (in)
:type rx: float
:param ry: Radius of gyration about the y-axis (in)
:type ry: float
:param tf: Average flange thickness (in)
:type tf: float
:param tftip: Flange thickness at the tip (in)
:type tftip: float
:param tw: Thickness of the web (in)
:type tw: float
"""

A: float
Ix: float
Iy: float
R1: float
R2: float
Size: str
Sx: float
Sy: float
Type: str
W: float
b: float
d: float
d1: float
rx: float
ry: float
tf: float
tftip: float
tw: float
x: float


ALL_ALUMINUM_CHANNEL_NAMES = (
"CS 2 X 1.07",
"CS 2 X 0.577",
"CS 3 X 1.60",
"CS 4 X 1.74",
"CS 4 X 2.33",
"CS 5 X 3.09",
"CS 5 X 2.21",
"CS 6 X 4.03",
"CS 6 X 2.83",
"CS 7 X 4.72",
"CS 7 X 3.21",
"CS 8 X 5.79",
"CS 8 X 4.15",
"CS 10 X 6.14",
"CS 9 X 6.97",
"CS 9 X 4.98",
"CS 12 X 8.27",
"CS 10 X 8.36",
"CS 14 X 13.91",
"CS 12 X 11.8",
"C 3 X 1.42",
"C 2 X 1.22",
"CS 3 X 1.14",
"C 3 X 1.73",
"C 3 X 2.07",
"C 4 X 1.85",
"C 4 X 2.16",
"C 5 X 2.32",
"C 4 X 2.50",
"C 5 X 3.11",
"C 5 X 3.97",
"C 6 X 2.83",
"C 6 X 3.00",
"C 6 X 3.63",
"C 6 X 4.50",
"C 8 X 4.25",
"C 10 X 5.28",
"C 7 X 3.54",
"C 10 X 8.64",
"C 10 X 10.4",
"C 12 X 7.41",
"C 7 X 5.10",
"C 12 X 8.64",
"C 12 X 10.4",
"C 12 X 12.1",
"C 15 X 11.7",
"C 7 X 4.23",
"C 7 X 5.96",
"C 8 X 4.75",
"C 9 X 6.91",
"C 9 X 8.65",
"C 8 X 5.62",
"C 9 X 4.60",
"C 9 X 5.19",
"C 8 X 6.48",
"C 10 X 6.91",
"C 15 X 17.3",
)
Loading

0 comments on commit f52038b

Please sign in to comment.