You are on page 1of 8

ASSIGNMENT

Name and roll no. of students


1. Sushrut Bhaiswar 91
2. Fardeen Ali 40
3. Harshveer Singh Bhamra 46
4. Ashish Lalwani 34
Shri Ramdeobaba College of Engineering and Management, Nagpur, India.

DEVELOPING COMPUTER PROGRAM:

Here is an example Python program that calculates the efficiency of different types of bolt patterns
(row, chain, diamond).

Lap joint connections

import math

# User inputs
d = 0.5 # Bolt diameter (inches)
Fu = 65e3 # Tensile strength of bolt (psi)
Fy = 50e3 # Yield strength of bolt (psi)
t = 0.25 # Thickness of connected material (inches)
s = 2.5 # Spacing between bolts (inches)
pattern = 'row' # Bolt pattern (row, chain, diamond)

# Define pattern function


def get_pattern_factors(pattern, s):
if pattern == 'row':
k=1
n=1
elif pattern == 'chain':
k = 1.5
n=1
elif pattern == 'diamond':
k = 1.732
n=2
else:
raise ValueError('Invalid bolt pattern')
L = s * (n - 1) / k
return k, n, L

# Calculate shear and bearing strengths of joint


Av = math.pi * d**2 / 4 # Shear area of bolt
Ab = t * s # Bearing area of bolt
Fv = 0.6 * Fu * Av # Shear strength of bolt
Fb = 2.4 * Fu * Ab # Bearing strength of bolt

# Calculate applied loads


P = 10e3 # Applied load (pounds)
N = P / 2 # Axial force in bolt (pounds)
V = P / 2 # Shear force on joint (pounds)

# Calculate pattern factors


k, n, L = get_pattern_factors(pattern, s)

# Calculate efficiency of joint


phiV = min(1.0, 0.9 - 0.3 * V / (k * Fv)) # Shear strength reduction factor
phiB = min(1.0, 0.9 - 0.3 * N / (k * Fb)) # Bearing strength reduction factor
phi = min(phiV, phiB) # Overall strength reduction factor
rn = phi * Fy * Av * n # Nominal resistance of bolts
ru = 0.75 * rn # Ultimate resistance of bolts
efficiency = P / ru # Efficiency of joint

print("Efficiency of {} lap joint: {:.2f}%".format(pattern, efficiency * 100))

Single cover joint connections

import math

# User inputs
d = 0.5 # Bolt diameter (inches)
Fu = 65e3 # Tensile strength of bolt (psi)
Fy = 50e3 # Yield strength of bolt (psi)
t1 = 0.25 # Thickness of top plate (inches)
t2 = 0.25 # Thickness of bottom plate (inches)
s1 = 2.5 # Spacing between bolts on top plate (inches)
s2 = 2.5 # Spacing between bolts on bottom plate (inches)
pattern = 'row' # Bolt pattern (row, chain, diamond)
# Define pattern function
def get_pattern_factors(pattern, s):
if pattern == 'row':
k=1
n=1
elif pattern == 'chain':
k = 1.5
n=1
elif pattern == 'diamond':
k = 1.732
n=2
else:
raise ValueError('Invalid bolt pattern')
L = s * (n - 1) / k
return k, n, L

# Calculate shear and bearing strengths of joint


Av = math.pi * d**2 / 4 # Shear area of bolt
Ab1 = t1 * s1 # Bearing area of bolt on top plate
Ab2 = t2 * s2 # Bearing area of bolt on bottom plate
Fv = 0.6 * Fu * Av # Shear strength of bolt
Fb1 = 2.4 * Fu * Ab1 # Bearing strength of bolt on top plate
Fb2 = 2.4 * Fu * Ab2 # Bearing strength of bolt on bottom plate

# Calculate applied loads


P = 10e3 # Applied load (pounds)
V = P # Shear force on joint (pounds)
N1 = P / 2 # Axial force in top bolt row (pounds)
N2 = P / 2 # Axial force in bottom bolt row (pounds)

# Calculate pattern factors


k1, n1, L1 = get_pattern_factors(pattern, s1)
k2, n2, L2 = get_pattern_factors(pattern, s2)

# Calculate efficiency of joint


phiV = min(1.0, 0.9 - 0.3 * V / (k1 * Fv)) # Shear strength reduction factor
phiB1 = min(1.0, 0.9 - 0.3 * N1 / (k1 * Fb1)) # Bearing strength reduction factor for top plate
phiB2 = min(1.0, 0.9 - 0.3 * N2 / (k2 * Fb2)) # Bearing strength reduction factor for bottom plate
phiB = min(phiB1, phiB2) # Overall bearing strength reduction factor
phi = min(phiV, phiB) # Overall strength reduction factor
rn = phi * Fy * Av * (n1 + n2) # Nominal resistance of bolts
ru = 0.75 * rn # Ultimate resistance of bolts
efficiency = P / ru # Efficiency of joint

print("Efficiency of {} single cover joint: {:.2f}%".format(pattern, efficiency * 100))

Double cover joint connections

import math

# User inputs
d = 0.5 # Bolt diameter (inches)
Fu = 65e3 # Tensile strength of bolt (psi)
Fy = 50e3 # Yield strength of bolt (psi)
t1 = 0.25 # Thickness of top plate (inches)
t2 = 0.25 # Thickness of bottom plate (inches)
s1 = 2.5 # Spacing between bolts on top plate (inches)
s2 = 2.5 # Spacing between bolts on bottom plate (inches)
pattern = 'row' # Bolt pattern (row, chain, diamond)

# Define pattern function


def get_pattern_factors(pattern, s):
if pattern == 'row':
k=1
n=1
elif pattern == 'chain':
k = 1.5
n=1
elif pattern == 'diamond':
k = 1.732
n=2
else:
raise ValueError('Invalid bolt pattern')
L = s * (n - 1) / k
return k, n, L

# Calculate shear and bearing strengths of joint


Av = math.pi * d**2 / 4 # Shear area of bolt
Ab1 = t1 * s1 # Bearing area of bolt on top plate
Ab2 = t2 * s2 # Bearing area of bolt on bottom plate
Fv = 0.6 * Fu * Av # Shear strength of bolt
Fb1 = 2.4 * Fu * Ab1 # Bearing strength of bolt on top plate
Fb2 = 2.4 * Fu * Ab2 # Bearing strength of bolt on bottom plate

# Calculate applied loads


P = 10e3 # Applied load (pounds)
V = P / 2 # Shear force on each joint (pounds)
N1 = P / 4 # Axial force in top bolt row of each joint (pounds)
N2 = P / 4 # Axial force in bottom bolt row of each joint (pounds)

# Calculate pattern factors


k1, n1, L1 = get_pattern_factors(pattern, s1)
k2, n2, L2 = get_pattern_factors(pattern, s2)

# Calculate efficiency of joint


phiV = min(1.0, 0.9 - 0.3 * V / (k1 * Fv)) # Shear strength reduction factor
phiB1 = min(1.0, 0.9 - 0.3 * N1 / (k1 * Fb1)) # Bearing strength reduction factor for top plate
phiB2 = min(1.0, 0.9 - 0.3 * N2 / (k2 * Fb2)) # Bearing strength reduction factor for bottom plate
phiB = min(phiB1, phiB2) # Overall bearing strength reduction factor
phi = min(phiV, phiB) # Overall strength reduction factor
rn = phi * Fy * Av * (n1 + n2) # Nominal resistance of bolts
ru = 0.75 * rn # Ultimate resistance of bolts
efficiency = P / ru # Efficiency of joint

print("Efficiency of {} double cover joint: {:.2f}%".format(pattern, efficiency * 100))

1. Design of tension member


import math

# Input values
F = 300 # kN
L=4#m
d = 40 # mm
t = 10 # mm
fy = 250 # MPa
fu = 410 # MPa

# Cross-sectional area
Ag = math.pi/4 * d**2
print("Ag = ", Ag, "mm^2")

# Design strength due to yielding of gross section


Agv = 0.9*Ag
Py = Agv * fy / 1e3 # kN
print("Design strength due to yielding of gross section (Py) = ", Py, "kN")

# Rupture strength of critical section


An = Ag - (2 * t * d)
Pn = 0.75 * An * fu / 1e3 # kN
print("Rupture strength of critical section (Pn) = ", Pn, "kN")

# Design strength due to block shear


if 1.5*t < d/2:
Adb = 1.5*t*d
Ant = Ag - Adb
Pt = Ant * fu / 1e3
else:
Ant = Ag - 2*((t - d/2)*d)
Adb = Ag - Ant
Pt = 0.9 * Ant * fu / 1e3

Pbs = min(0.6 * Pt + 0.4 * Py, Py + Pt) # kN


print("Design strength due to block shear (Pbs) = ", Pbs, "kN")

# Factored design strength


phi = 0.9
Pf = phi * Pbs
print("Factored design strength (Pf) = ", Pf, "kN")

# Check for adequacy


if F <= Pf:
print("Design is adequate")
else:
print("Design is not adequate")

2. Design of compression member

import math

# Given data
factored_load = 65 # kN
length = 3 # m
gusset_plate_thickness = 12 # mm
bolt_diameter = 20 # mm
bolt_grade = 4.6
# Section properties
angle_section = "ISA75x75x8"
angle_d = 75 # mm
angle_b = 75 # mm
angle_t = 8 # mm
angle_area = 9.56 # cm^2
angle_Ixx = 72.9 # cm^4
angle_Zxx = 18.2 # cm^3

# Material properties
fy = 250 # N/mm^2
gamma_m0 = 1.1
gamma_m1 = 1.25

# Calculation of properties
lambda_1 = 0.5*(angle_d/angle_t)*math.sqrt(fy/250)
lambda_2 = (angle_b/2*angle_t)*math.sqrt(fy/250)
Lambda = max(lambda_1, lambda_2)

if Lambda <= 0.5:


alpha = 0.49 + 0.38*(Lambda/0.5) + 12*(Lambda/0.5)**2
phi = 0.5*(1 + alpha*(Lambda - 0.5) + Lambda**2)
else:
phi = 0.65/(Lambda**2)

lambda_e = math.sqrt(angle_Ixx/(angle_area*angle_t))
lambda_v = math.sqrt(angle_Zxx/(angle_area*angle_t))
lambda_phi = math.sqrt((0.658*fy)/gamma_m0)

Ag = angle_area # gross area


An = Ag - (2*angle_t*angle_b) # net area
Ae = An*phi # effective area
fcd = fy/gamma_m0 # design compressive strength
Pd = fcd*Ae # design load capacity

# Calculation of bolt strength and number of bolts


Ab = math.pi*(bolt_diameter**2)/4 # bolt area
bolt_fyb = 40*bolt_grade # bolt strength
bolt_fu = 58*bolt_grade # bolt ultimate strength
bolt_capacity = (2.5*Ab*bolt_fyb)/gamma_m0 # capacity of one bolt
num_bolts = math.ceil(factored_load/(bolt_capacity*gamma_m1))

# Output
print("Single Angle Discontinuous Strut Design")
print("Section Decision:")
print(f"Selected section: {angle_section}")
print(f"Gross area (Ag): {Ag:.2f} cm^2")
print(f"Net area (An): {An:.2f} cm^2")
print(f"Effective area (Ae): {Ae:.2f} cm^2")
print(f"Lambda 1 (l1): {lambda_1:.2f}")
print(f"Lambda 2 (l2): {lambda_2:.2f}")
print(f"Lambda (lmax): {Lambda:.2f}")
print(f"Lambda e (λe): {lambda_e:.2f}")
print(f"Lambda v (λv): {lambda_v:.2f}")
print(f"Lambda phi (λphi): {lambda_phi:.2f}")
print(f"Design compressive strength (fcd): {fcd:.2f} N/mm^2")
print(f"Design load capacity (Pd): {Pd:.2f} kN")
print(f"Bolt diameter: {bolt_diameter} mm")
print(f"Bolt grade: {bolt_grade}")
print(f"Bolt strength (fyb): {bolt_fyb} N/mm^2")
print(f"Bolt ultimate strength (fu): {bolt_fu} N/mm^2")
print(f"Bolt capacity: {bolt_capacity:.2f} kN")
print(f"Number of bolts required: {num_bolts}")

please note : we can change the input values in the aboves codes for desired output results

You might also like