pyflange.bolts

The bolts module contains objects representing the bolt, washer and nut fastener components. In particular it contains

  • A MetricBolt class that generates generic bolts with metric screw thread and a StandardMetricBolt function that generates MetricBolt objects with standard properties.
  • A FlatWasher class that generates generic flat washer and a ISOFlatWasher frunction that returns a FlatWasher with standard dimensions.
  • A HexNut class that generates a generic hexagonal nut, a ISOHExNut function that generates a HexNut with ISO 4032 dimensionsand aRoundNutfunction that generates a standard flangedHexNut``.

BoltCrossSection dataclass

Bolt circular cross-section.

Parameters:
  • diameter (float) –

    cross-section diameter

Attributes:
  • diameter (float) –

    cross-section diameter

area cached property

The cross-section area.

elastic_section_modulus cached property

The elastic section modulus of the cross-section.

second_moment_of_area cached property

The second moment of area of the cross-section.

FlatWasher dataclass

Bases: Washer

Generic flat washer.

Parameters:
  • outer_diameter (float) –

    The outer diameter of the washer.

  • inner_diameter (float) –

    The hole diameter of the washer.

  • elastic_modulus (float, default: 210 * GPa ) –

    The Young's modulus of the washer material. If omitted, it defaults to 210e9 N/m². Notice that the default value assumes that the chosen unit for distance is m and the chosen unit for forces is N. If that's not the case, you should enter the proper value of this parameter.

  • poissons_ratio (float, default: 0.3 ) –

    The Poisson's ratio of the washer material.

The parameters must be expressed in a consistent system of units. For example, if you chose to input distances in mm and forces in N, then stresses must be expressed in N/mm². All the bolt attributes and methods will return values consistently with the input units of measurement.

All the input parameters are also available as attributes of the generated object (e.g. washer.thickness, washer.poissons_ratio, etc.).

This instances of this calss are designed to be immutable, which means than changing an attribute after creating an object is not a good idea. If you need a different washer with different attributes, create a new one.

area cached property

Area of the washer flat surface

axial_stiffness cached property

The compressive stiffness of the washer: t / EA

HexNut dataclass

Bases: Nut

Generates a generic hexagonal nut.

Parameters:
  • nominal_diameter (float) –

    The nominal diameter of the inner thread.

  • thickness (float) –

    The height of the bolt.

  • inscribed_diameter (float) –

    The diameter of the circle inscribed in the hexagon. Correponds to the distance between two opposite flats.

  • circumscribed_diameter (float) –

    The diameter of the circle circumscribed in the hexagon. Correponds to the distance between two opposite vertices..

  • bearing_diameter (float) –

    The outer diameter of the circular contatact surface between nut and washer.

  • elastic_modulus (float, default: 210 * GPa ) –

    The Young's modulus of the nut material. If omitted, it defaults to 210e9 N/m². Notice that the default value assumes that the chosen unit for distance is m and the chosen unit for forces is N. If that's not the case, you should enter the proper value of this parameter.

  • poissons_ratio (float, default: 0.3 ) –

    The Poisson's ratio of the nut material.

The parameters must be expressed in a consistent system of units. For example, if you chose to input distances in mm and forces in N, then stresses must be expressed in N/mm². All the bolt attributes and methods will return values consistently with the input units of measurement.

All the input parameters are also available as attributes of the generated object (e.g. washer.thickness, washer.poissons_ratio, etc.).

This instances of this calss are designed to be immutable, which means than changing an attribute after creating an object is not a good idea. If you need a different nut with different attributes, create a new one.

MetricBolt dataclass

Bases: Bolt

Generic bolt with ISO 68-1 metric screw thread

Parameters:
  • nominal_diameter (float) –

    The outermost diameter of the screw thread.

  • thread_pitch (float) –

    The pitch of the metric thread.

  • yield_stress (float) –

    Nominal yield stress (0.2% strain limit) of the bolt material.

  • ultimate_tensile_stress (float) –

    Nominal ultimate tensile stress of the bolt material.

  • elastic_modulus (float, default: 210 * GPa ) –

    The Young's modulus of the bolt material. If omitted, it defaults to 210e9 N/m². Notice that the default value assumes that the chosen unit for distance is m and the chosen unit for forces is N. If that's not the case, you should enter the proper value of this parameter.

  • poissons_ratio (float, default: 0.3 ) –

    The Poisson's ratio of the bolt material. If omitted, it defaults to 0.30.

  • shank_length (float, default: 0 ) –

    The length of the shank. If omitted, it defaults to 0.

  • shank_diameter_ratio (float, default: 1 ) –

    The ratio between the shank diameter and the bolt nominal diameter. If omitted, it defaults to 1, which means that the shank has the nominal diameter.

  • stud (bool, default: False ) –

    True if this is a stud bolt, False if it is not. If omitted, it defaults to False.

The parameters must be expressed in a consistent system of units. For example, if you chose to input distances in mm and forces in N, then stresses must be expressed in N/mm². All the bolt attributes and methods will return values consistently with the input units of measurement.

All the input parameters are also available as attributes of the generated object (e.g. bolt.shank_length, bolt.yield_stress, etc.).

This instances of this calss are designed to be immutable, which means than changing an attribute after creating an object is not a good idea. If you need a different bolt with different attributes, create a new one.

designation cached property

Bolt designation string.

For example, "M16" is the designation of a bolt with nominal diameter 16 mm.

nominal_cross_section cached property

Bolt cross-section with nominal diameter.

Instance of BoltCrossSection class.

nominal_cross_section_area cached property

Area of a circle with nominal diameter.

DEPRECATED: use bolt.nominal_cross_section.area instead

shank_cross_section cached property

Bolt shank cross-section.

Instance of BoltCrossSection class.

shank_cross_section_area cached property

Area of the shank transversal cross-section.

DEPRECATED: use bolt.shank_cross_section.area instead.

shank_diameter cached property

Diameter of the shank.

shear_modulus cached property

Shear modulus G.

Calculated from the Young's modulus and Poisson's ratio, under the assumption of isotropic and elastic bolt material.

tensile_cross_section_area cached property

Tensile stress area, according to ISO 891-1:2013, section 9.1.6.1.

DEPRECATED: use bolt.thread_cross_section.area instead

tensile_moment_of_resistance cached property

Tensile moment of resistance, according to ISO 891-1:2013, section 9.1.6.1.

DEPRECATED: use bolt.thread_cross_section.elastic_section_modulus instead

thread_basic_minor_diameter cached property

Basic minor diameter (d1).

As defined in ISO 68-1:1998.

thread_basic_pitch_diameter cached property

Basic minor diameter (d2).

As defined in ISO 68-1:1998.

thread_cross_section cached property

Bolt cross-section used for tensile calculations.

Instance of BoltCrossSection class. Ref. ISO 891-1:2013, section 9.1.6.1

thread_height cached property

Height of the metric thread fundamental triangle (H).

As defined in ISO 68-1:1998.

thread_minor_diameter cached property

Minor diameter (d3).

As defined in ISO 898-1:2013.

axial_stiffness(length)

Evaluate the axial stiffness of the bolt.

Parameters:
  • length (float) –

    clamped length.

Returns:
  • Ka( float ) –

    axial stiffness of the bolt, according to VDI 2230, Part 1, Section 5.1.1.1.

bending_stiffness(length)

Evaluates the bending stiffness of the bolt.

Parameters:
  • length (float) –

    clamped length.

Returns:
  • Kb( float ) –

    bending stiffness of the bolt, according to VDI 2230, Part 1, Section 5.1.1.2.

ultimate_tensile_capacity(standard='Eurocode')

Evaluate the ultimate tensile force that the bolt can take.

Parameters:
  • standard (str, default: 'Eurocode' ) –

    Standard according to which the ultimate tensile force should be calculated. Currently the only supported standard is "Eurocode" (EN 1993-1-8:2005).

Returns:
  • FRu( float ) –

    The bolt ultimate tensile force according to the specified standard.

Raises:
  • ValueError

    if the requested standard is not supported.

ISOFlatWasher(designation)

Generates a standard washer according to ISO 7089.

Parameters:
  • designation (str) –

    The metric screw thread designation. The allowed values are: 'M4', 'M5', 'M6', 'M8', 'M10', 'M12', 'M14', 'M16', 'M18', 'M20', 'M22', 'M24', 'M27', 'M30', 'M33', 'M36', 'M39', 'M42', 'M45', 'M48', 'M52', 'M56', 'M60', 'M64', 'M72', 'M80', 'M90', 'M100'.

Returns:
  • washer( FlatWasher ) –

    a FlatWasher instance having the standard dimensions defined in ISO 7089.

For example, ISOFlatWasher("M16") will return a FlatWasher instance with outer diameter 30 mm, hole diameter 17 mm and thickness 3 mm.

ISOHexNut(designation)

Generates a standard Hex Nut.

Parameters:
  • designation (str) –

    The metric screw thread designation. The allowed values are: 'M4', 'M5', 'M6', 'M8', 'M10', 'M12', 'M14', 'M16', 'M18', 'M20', 'M22', 'M24', 'M27', 'M30', 'M33', 'M36', 'M39', 'M42', 'M45', 'M48', 'M52', 'M56', 'M60', 'M64', 'M72', 'M80', 'M90', 'M100'.

Returns:
  • nut( HexNut ) –

    a HexNut instance with dimensions according to ISO 4032.

RoundNut(designation)

Generates a standard round nut.

Parameters:
  • designation (str) –

    The metric screw thread designation. The allowed values are: 'M4', 'M5', 'M6', 'M8', 'M10', 'M12', 'M14', 'M16', 'M18', 'M20', 'M22', 'M24', 'M27', 'M30', 'M33', 'M36', 'M39', 'M42', 'M45', 'M48', 'M52', 'M56', 'M60', 'M64', 'M72', 'M80', 'M90', 'M100'.

Returns:
  • nut( HexNut ) –

    a standard flanged nut.

StandardMetricBolt(designation, material_grade, shank_length=0.0, shank_diameter_ratio=1.0, stud=False)

Create a metric bolt with standard dimensions.

This function provides a convenient way for creating MetricBolt object, given the standard geometry designation (e.g. "M20") and the standard material grade designation (e.g. "8.8").

Parameters:
  • designation (str) –

    The metric screw thread designation. The allowed values are: 'M4', 'M5', 'M6', 'M8', 'M10', 'M12', 'M14', 'M16', 'M18', 'M20', 'M22', 'M24', 'M27', 'M30', 'M33', 'M36', 'M39', 'M42', 'M45', 'M48', 'M52', 'M56', 'M60', 'M64', 'M72', 'M80', 'M90', 'M100'.

  • material_grade (str) –

    The material grade designation. The allowed values are: '4.6', '4.8', '5.6', '5.8', '6.8', '8.8', '9.8', '10.9' and '12.9' for carbon-steel bolts; 'A50', 'A70', 'A80' and 'A100' for austenitic bolts; 'D70', 'D80' and 'D100' for duplex bolts; 'C50', 'C70', 'C80' and 'C110' for martensitic bolts; 'F45' and 'F60' for ferritic bolts.

  • shank_length (float, default: 0.0 ) –

    The length of the shank.

  • shank_diameter_ratio (float, default: 1.0 ) –

    The ratio between the shank diameter and the bolt nominal diameter.

  • stud (bool, default: False ) –

    True if this is a stud bolt, False if it is not.

Returns:
  • bolt( MetricBolt ) –

    a MetricBolt instance with standard properties.