Skip to main content

Bolt pattern force distribution analysis

This project has been archived.

The maintainers of this project have marked this project as archived. No new releases are expected.

Project description

Implements the methodology from NASA RP-1228.

Given a bolt pattern (positions + areas) and applied loads at arbitrary locations, this module computes the axial and shear force on each bolt.

Outputs verified against the calulator here: https://mechanicalc.com/reference/bolt-pattern-force-distribution

Example usage:

if name == "main": import os import bolt_pattern_elastic_method

HERE = os.path.dirname(os.path.abspath(__file__))

positions_1 = [(-3.5, 15), (3.5, 15), (-3.5, -15), (3.5, -15)
               , (10, -15), (18.82, -12.14), (24.27, -4.635)
               , (24.27, 4.635), (18.82, 12.14), (10, 15)
               , (-10, 15), (-18.82, 12.14), (-24.27, 4.635)
               , (-24.27, -4.635), (-18.82, -12.14), (-10, -15)] #[x,y]

# ------------------------------------------------------------------
# Example 1: 4-bolt rectangular pattern, in-plane eccentric shear
# A 1000 N force applied in X at (y=5) – creates torsion about Z
# ------------------------------------------------------------------
print("\nEXAMPLE 1 – General 3-D loading")
save_path="bolt_pattern_ex1.png"
analysis_1 = BoltPatternAnalysis(
    bolts=[Bolt(x, y) for (x, y) in positions_1],
    loads=[AppliedLoad(Fx=1500.0, Fy=500.0, Fz=5000.0, z=15.0),
           AppliedLoad(Mz=1000.0)],
)
results_1 = analysis_1.solve()
print_results(results_1, analysis_1)
plot_bolt_pattern_3d(
    analysis_1, results_1,
    title="Example 1 - General 3-D loading",
    show=False,
    save_path=os.path.join(HERE, "save_path"),
)
print(f"  → saved {save_path}")


# ------------------------------------------------------------------
# Example 2: general 3-D loading using the convenience function
# ------------------------------------------------------------------
print("\nEXAMPLE 2 - General 3-D loading (convenience function)")
analysis_2 = BoltPatternAnalysis(
    bolts=[Bolt(x, y, label=lbl) for (x, y), lbl in zip(
        [(-3, -3), (3, -3), (3, 3), (-3, 3)], ["TL", "TR", "BR", "BL"]
    )],
    loads=[AppliedLoad(Fx=200, Fy=-150, Fz=300,
                       Mx=500, My=-400, Mz=1000,
                       x=1.0, y=2.0, z=50.0)],
)
results_2 = analysis_2.solve()
print_results(results_2, analysis_2)
plot_bolt_pattern_3d(
    analysis_2, results_2,
    title="Example 2 - General 3-D Loading",
    show=False,
    save_path=os.path.join(HERE, "bolt_pattern_ex2.png"),
)
print("  → saved bolt_pattern_ex2.png")

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bolt_pattern_elastic_method-1.0.0.tar.gz (9.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

bolt_pattern_elastic_method-1.0.0-py3-none-any.whl (11.4 kB view details)

Uploaded Python 3

File details

Details for the file bolt_pattern_elastic_method-1.0.0.tar.gz.

File metadata

File hashes

Hashes for bolt_pattern_elastic_method-1.0.0.tar.gz
Algorithm Hash digest
SHA256 05b082ebe7ad37843aa4c27eeb58b2ab244a6e6d879603a3d92a8432e1f252fb
MD5 7636c6f5fd15027ec632904d4079ed44
BLAKE2b-256 19ee2e023dd6700443c3fec7a13d42100191ee9e3d3a14efd403816503eb32e4

See more details on using hashes here.

File details

Details for the file bolt_pattern_elastic_method-1.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for bolt_pattern_elastic_method-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7b48c8530c07d345035dbbcb20c82f0fe8ceb0beced5449e9ca05f26a6d8f49c
MD5 1e5f65e8f989e7a53b17e0afef3ae7ea
BLAKE2b-256 433fa9aaa59d28ab0d4597898378ba7d9179b5a33d9a054ab1faa6a264916e20

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page