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
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
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
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
__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__)
# -*- 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