Ejemplo n.º 1
0
    of the course:
    Design of Bolts in Shear-BearingConnections per AISC LRFD 3rdEdition (2001)
'''
__author__ = "Luis C. Pérez Tato (LCPT) and Ana Ortega (AOO)"
__copyright__ = "Copyright 2020, LCPT and AOO"
__license__ = "GPL"
__version__ = "3.0"
__email__ = "*****@*****.**"

in2m = 25.4e-3
kip2N = 4448.2216

import math
from materials.astm_aisc import ASTM_materials

bolt = ASTM_materials.BoltFastener(0.75 * in2m,
                                   steelType=ASTM_materials.A325)  # group A
designShearStrength = 2.0 * bolt.getDesignShearStrength()  # double shear
designShearStrengthRef = 159.042810002e3  #31.8*kip2N
ratio1 = abs(designShearStrength -
             designShearStrengthRef) / designShearStrengthRef

Pd = 121.6 * kip2N
n = math.ceil(Pd / designShearStrength)
centersDist = bolt.getRecommendedDistanceBetweenCenters()
minEdgeDist = bolt.getMinimumEdgeDistance()
minWidth = 2.0 * minEdgeDist + centersDist
netWidth = minWidth - 2.0 * bolt.getNominalHoleDiameter()
# Yielding in the gross section.
minThicknessA = Pd / 0.9 / ASTM_materials.A36.fy / minWidth
# Tension fracture in the net section.
minThicknessB = Pd / 0.75 / ASTM_materials.A36.fu / netWidth
Ejemplo n.º 2
0
    for p in newPnts:
        pntTags.append(p.tag)
    pFace = surfaces.newPolygonalFacePts(pntTags)
    return pFace


p1 = geom.Pos3d(-1.5950, -2.0450, 0)
p2 = geom.Pos3d(-1.4376, -2.0450, 0)
p3 = geom.Pos3d(-1.4376, -1.8140, 0)
p4 = geom.Pos3d(-1.5290, -1.7734, 0)
p5 = geom.Pos3d(-1.5950, -1.7734, 0)

bolts = list()
boltDiameter = 0.016
bolts.append(
    ASTM_materials.BoltFastener(diameter=boltDiameter,
                                pos3d=geom.Pos3d(-1.4909, -1.8724, 0.0)))
bolts.append(
    ASTM_materials.BoltFastener(diameter=boltDiameter,
                                pos3d=geom.Pos3d(-1.4706, -1.8267, 0.0)))
bolts.append(
    ASTM_materials.BoltFastener(diameter=boltDiameter,
                                pos3d=geom.Pos3d(-1.5163, -1.8064, 0.0)))
bolts.append(
    ASTM_materials.BoltFastener(diameter=boltDiameter,
                                pos3d=geom.Pos3d(-1.5366, -1.8521, 0.0)))

# Test paving routine inside XC modeler.

## Problem type
feProblem = xc.FEProblem()
preprocessor = feProblem.getPreprocessor
Ejemplo n.º 3
0
import matplotlib.pyplot as plt
from model import predefined_spaces
from materials import typical_materials
from materials.astm_aisc import ASTM_materials
from helper_funcs import getHoleAsPolygonalSurface
#from postprocess import output_handler

p1 = geom.Pos3d(-1.82, -1.82, 0)
p2 = geom.Pos3d(-2.27, -1.82, 0)
p3 = geom.Pos3d(-2.27, -2.27, 0)
p4 = geom.Pos3d(-1.82, -2.27, 0)

bolts = list()

bolts.append(
    ASTM_materials.BoltFastener(diameter=.0452,
                                pos3d=geom.Pos3d(-2.115, -2.115, 0.0)))
bolts.append(
    ASTM_materials.BoltFastener(diameter=.0452,
                                pos3d=geom.Pos3d(-2.115, -1.975, 0.0)))
bolts.append(
    ASTM_materials.BoltFastener(diameter=.0452,
                                pos3d=geom.Pos3d(-1.975, -1.975, 0.0)))
bolts.append(
    ASTM_materials.BoltFastener(diameter=.0452,
                                pos3d=geom.Pos3d(-1.975, -2.115, 0.0)))

## Problem type
feProblem = xc.FEProblem()
preprocessor = feProblem.getPreprocessor
nodes = preprocessor.getNodeHandler
Ejemplo n.º 4
0
        newPnts.append(points.newPntFromPos3d(v))
    pntTags= list()
    for p in newPnts:
        pntTags.append(p.tag)
    pFace= surfaces.newPolygonalFacePts(pntTags)
    return pFace

p1= geom.Pos3d(-1.595,-1.4046,0)
p2= geom.Pos3d(-1.4376,-0.7453,0)
p3= geom.Pos3d(-1.529,-0.7047,0)
p4= geom.Pos3d(-1.595,-0.7527,0)

bolts= list()

boltDiameter= 0.016
bolts.append(ASTM_materials.BoltFastener(diameter= boltDiameter, pos3d= geom.Pos3d(-1.4909,-0.8037,0.0)))
bolts.append(ASTM_materials.BoltFastener(diameter= boltDiameter, pos3d= geom.Pos3d(-1.4706,-0.7580,0.0)))
bolts.append(ASTM_materials.BoltFastener(diameter= boltDiameter, pos3d= geom.Pos3d(-1.5163,-0.7377,0.0)))
bolts.append(ASTM_materials.BoltFastener(diameter= boltDiameter, pos3d= geom.Pos3d(-1.5366,-0.7834,0.0)))

## Problem type
feProblem= xc.FEProblem()
preprocessor= feProblem.getPreprocessor
nodes= preprocessor.getNodeHandler

modelSpace= predefined_spaces.StructuralMechanics3D(nodes)

### Define k-points.
points= modelSpace.getPointHandler()

#### Exterior contour
## Probable plastic moment at plastic hinge according
## to clause 2.4.3 of AISC-358.
Mpr= shape.getProbableMaxMomentAtPlasticHinge(majorAxis= True)
ratio1= abs(Mpr-1989e3)/1989e3

## Force in the flanges (conservative value).
leverArm= shape.h()
F_flange= Mpr/leverArm
ratio2= abs(F_flange-2908e3)/2908e3

## Maximum bolt diameter.
db= shape.getFlangeMaximumBoltDiameter()
tmpBolt= ASTM_materials.getBoltForHole(db)
ratio3= (tmpBolt.getName()=='M24')
bolt=  ASTM_materials.BoltFastener(tmpBolt.diameter, steelType= ASTM_materials.A490)

## Estimate number of bolts.
N= bolt.getNumberOfBoltsForShear(1.25*F_flange, numberOfRows= 2, threadsExcluded= True)

nRows= 2
nCols= N/nRows

boltArray= ASTM_materials.BoltArray(bolt, nRows, nCols, dist= None)
flangeAsBoltedPlate= ASTM_materials.BoltedPlate(boltArray, width= shape.getFlangeWidth(), thickness= shape.getFlangeThickness(), steelType= shape.steelType)

## Gross section yielding load and net section fracture load
flangeNetSectionFractureLoad= flangeAsBoltedPlate.getNetSectionFractureLoad()
flangeGrossSectionYieldingLoad= flangeAsBoltedPlate.getGrossSectionYieldingLoad()
ratio4= abs(flangeGrossSectionYieldingLoad-1656.207e3)/1656.207e3+abs(flangeNetSectionFractureLoad-1666.98e3)/1666.98e3
Ejemplo n.º 6
0
__copyright__= "Copyright 2020, LCPT and AOO"
__license__= "GPL"
__version__= "3.0"
__email__= "*****@*****.**"

in2m= 25.4e-3
kip2N= 4448.2216

from materials.astm_aisc import ASTM_materials

#Materials
## Steel material
steel= ASTM_materials.A325
steel.gammaM= 1.00
diameter= 3/4.0*in2m
bolt=  ASTM_materials.BoltFastener(diameter, steelType= steel)
Tu= 23.4*kip2N
Vu= 8.0*kip2N

Rn= bolt.getNominalCombinedStrength(V= Vu, threadsExcluded=False)
RnRef= 33.9*kip2N
ratio1= abs(Rn-RnRef)/RnRef

'''
print('Rn= ', Rn/kip2N)
print('ratio1= ', ratio1)
'''

import os
from misc_utils import log_messages as lmsg
fname= os.path.basename(__file__)
Ejemplo n.º 7
0
# -*- coding: utf-8 -*-
''' Verification of single plate shear and block shear strengths.
Home made test.
'''
from __future__ import division
from __future__ import print_function

import xc_base
import geom
from materials.astm_aisc import ASTM_materials

bolt = ASTM_materials.BoltFastener(20e-3, steelType=ASTM_materials.A490)
boltArray = ASTM_materials.BoltArray(bolt, nRows=2, nCols=1, dist=80e-3)
designHoleDiameter = boltArray.bolt.getDesignHoleDiameter()
plateWidth = 0.14
plateLength = 0.1
eccentr = 5e-3
finPlate = ASTM_materials.FinPlate(boltArray,
                                   width=plateWidth,
                                   length=plateLength,
                                   thickness=10e-3,
                                   steelType=ASTM_materials.A36,
                                   eccentricity=geom.Vector2d(eccentr, 0.0))

Rd = 68e3
shearVector = geom.Vector2d(0.0, -Rd)

# Plate check
## Gross area subjected to shear
Agv = finPlate.getGrossAreaSubjectedToShear(shearVector)
ratio1 = abs(Agv - 1400e-6) / 1400e-6