pyflange.bolts
Bolt, washer, and nut fastener components.
This module contains classes and factory functions representing bolt, washer, and nut fastener components. In particular it provides:
- A
MetricBoltclass that models generic bolts with metric screw threads and aStandardMetricBoltfactory function that generatesMetricBoltobjects with standard properties. - A
standard_hole_diameterfunction returning the standard clearance hole diameter of a metric bolt. - A
FlatWasherclass that models generic flat washers and anISOFlatWasherfactory function that returns aFlatWasherwith ISO 7089 standard dimensions. - A
HexNutclass that models generic hexagonal nuts, anISOHexNutfactory function that generates aHexNutwith ISO 4032 dimensions, and aRoundNutfactory function that generates a standard flanged nut. Bolt,WasherandNutbase classes, and theBoltCrossSectionhelper class describing a circular cross-section.
Units
All parameters must be supplied in a consistent system of units, e.g. meters for lengths and pascals for stresses.
Example
The following example creates an M80 stud bolt of grade 10.9, together with its standard nut, and evaluates the bolt axial stiffness.
from pyflange.bolts import StandardMetricBolt, RoundNut
bolt = StandardMetricBolt("M80", "10.9", shank_length=0.160, stud=True)
nut = RoundNut("M80")
k = bolt.axial_stiffness(0.35) # axial stiffness for a 350 mm clamped length
Bolt
Base class for bolt representations.
BoltCrossSection
dataclass
Circular cross-section of a bolt.
| Attributes: |
|
|---|
area
cached
property
float: Cross-sectional area.
elastic_section_modulus
cached
property
float: Elastic section modulus of the circular cross-section.
second_moment_of_area
cached
property
float: Second moment of area of the circular cross-section.
FlatWasher
dataclass
Bases: Washer
Generic flat washer.
The parameters must be expressed in a consistent system of units. For example, if you choose to input distances in meters (m) and forces in newtons (N), then stresses must be expressed in pascals (N/m²). All attributes and methods return values consistent with the input units of measurement.
All input parameters are also available as attributes of the generated
instance (e.g. washer.thickness, washer.poissons_ratio, etc.).
Instances of this class are designed to be immutable; changing attributes after instantiation is not recommended. If a washer with different attributes is needed, instantiate a new one.
| Attributes: |
|
|---|
area
cached
property
float: Surface area of the flat annular face.
axial_stiffness
cached
property
float: Compressive axial stiffness of the washer (EA / t).
HexNut
dataclass
Bases: Nut
Generic hexagonal nut.
The parameters must be expressed in a consistent system of units. For example, if you choose to input distances in meters (m) and forces in newtons (N), then stresses must be expressed in pascals (N/m²). All attributes and methods return values consistent with the input units of measurement.
All input parameters are also available as attributes of the generated
instance (e.g. nut.thickness, nut.bearing_diameter, etc.).
Instances of this class are designed to be immutable; changing attributes after instantiation is not recommended. If a nut with different attributes is needed, instantiate a new one.
| Attributes: |
|
|---|
MetricBolt
dataclass
Bases: Bolt
Generic bolt with ISO 68-1 metric screw thread.
The parameters must be expressed in a consistent system of units. For example, if you choose to input distances in meters (m) and forces in newtons (N), then stresses must be expressed in pascals (N/m²). All bolt attributes and methods return values consistent with the input units of measurement.
All input parameters are also available as attributes of the generated
instance (e.g. bolt.shank_length, bolt.yield_stress, etc.).
Instances of this class are designed to be immutable; changing attributes after instantiation is not recommended. If a bolt with different parameters is needed, instantiate a new one.
| Attributes: |
|
|---|
designation
cached
property
str: Bolt designation string (e.g. 'M16' for a bolt with 16 mm diameter).
nominal_cross_section
cached
property
BoltCrossSection: Bolt cross-section with nominal diameter.
nominal_cross_section_area
cached
property
float: Area of a circle with nominal diameter.
Deprecated
Use MetricBolt.nominal_cross_section.area instead.
shank_cross_section
cached
property
BoltCrossSection: Bolt shank cross-section.
shank_cross_section_area
cached
property
float: Area of the shank transversal cross-section.
Deprecated
Use MetricBolt.shank_cross_section.area instead.
shank_diameter
cached
property
float: Diameter of the unthreaded shank.
shear_modulus
cached
property
float: Shear modulus G, under the assumption of isotropic linear elastic material.
tensile_cross_section_area
cached
property
float: Tensile stress area, according to ISO 898-1:2013, section 9.1.6.1.
Deprecated
Use MetricBolt.thread_cross_section.area instead.
tensile_moment_of_resistance
cached
property
float: Tensile moment of resistance, according to ISO 898-1:2013, section 9.1.6.1.
Deprecated
Use MetricBolt.thread_cross_section.elastic_section_modulus instead.
thread_basic_minor_diameter
cached
property
float: Basic minor diameter (d1), per ISO 68-1:1998.
thread_basic_pitch_diameter
cached
property
float: Basic pitch diameter (d2), per ISO 68-1:1998.
thread_cross_section
cached
property
BoltCrossSection: Bolt cross-section used for tensile calculations (ISO 898-1:2013, sec. 9.1.6.1).
thread_height
cached
property
float: Height of the metric thread fundamental triangle (H), per ISO 68-1:1998.
thread_minor_diameter
cached
property
float: Minor diameter (d3), per ISO 898-1:2013.
axial_stiffness(length)
Evaluate the axial stiffness of the clamped bolt.
Calculates the axial stiffness according to VDI 2230 Part 1, Section 5.1.1.1.
| Parameters: |
|
|---|
| Returns: |
|
|---|
| Raises: |
|
|---|
bending_stiffness(length)
Evaluate the bending stiffness of the clamped bolt.
Calculates the bending stiffness according to VDI 2230 Part 1, Section 5.1.1.2.
| Parameters: |
|
|---|
| Returns: |
|
|---|
| Raises: |
|
|---|
ultimate_tensile_capacity(standard='Eurocode')
Evaluate the ultimate tensile force that the bolt can sustain.
| Parameters: |
|
|---|
| Returns: |
|
|---|
| Raises: |
|
|---|
Nut
Base class for nut representations.
Washer
Base class for washer representations.
ISOFlatWasher(designation)
Generate a standard flat washer according to ISO 7089.
| Parameters: |
|
|---|
| Returns: |
|
|---|
ISOHexNut(designation)
Generate a standard hexagonal nut according to ISO 4032.
| Parameters: |
|
|---|
| Returns: |
|
|---|
RoundNut(designation)
Generate a standard flanged round nut.
| Parameters: |
|
|---|
| Returns: |
|
|---|
StandardMetricBolt(designation, material_grade, shank_length=0.0, shank_diameter_ratio=1.0, stud=False)
Create a metric bolt with standard dimensions and material properties.
This function provides a convenient way of creating a MetricBolt object,
given the standard geometry designation (e.g. "M20") and the standard material
grade designation (e.g. "8.8").
| Parameters: |
|
|---|
| Returns: |
|
|---|
Example
# M80 stud bolt whose shank diameter equals the thread pitch diameter
bolt = StandardMetricBolt("M80", "10.9", shank_length=0.160,
shank_diameter_ratio="pitch", stud=True)
standard_hole_diameter(designation)
Return the standard clearance hole diameter for a metric bolt.
The values are tabulated in the bolts.metric_screws database for the
sizes 'M8', 'M10', 'M12', 'M16', 'M20', 'M24', 'M30', 'M36', 'M42', 'M48',
'M56', 'M64', 'M72' and 'M80'.
| Parameters: |
|
|---|
| Returns: |
|
|---|
| Raises: |
|
|---|
Example
Do = standard_hole_diameter("M80") # 0.086 m