def getFlangeBoltedPlate(self,
                             boltSteel,
                             plateSteel=ASTM_materials.A36,
                             lbls=None):
        ''' Return a suitable bolted plate for the beam flange.

        :param boltSteel: steel type of the bolts that connect the plate with
                          the flange.
        :param plateSteel: steel type of the bolted plate.
        '''
        flangeStrength = self.shape.getFlangeYieldStrength()
        bolt = self.shape.getFlangeMaximumBolt(steelType=boltSteel)
        numberOfBolts = bolt.getNumberOfBoltsForShear(flangeStrength,
                                                      numberOfRows=2,
                                                      threadsExcluded=True)
        spacing = self.shape.getFlangeWidth() / 2.0
        boltArray = ASTM_materials.BoltArray(bolt,
                                             nRows=2,
                                             nCols=int(numberOfBolts / 2),
                                             dist=spacing)
        thicknessRatio = max(self.shape.steelType.fy / plateSteel.fy,
                             self.shape.steelType.fu / plateSteel.fu)
        plateThickness = round(
            thicknessRatio * self.shape.getFlangeThickness() * 1000, 0) / 1000
        retval = ASTM_materials.BoltedPlate(boltArray,
                                            width=self.shape.getFlangeWidth(),
                                            thickness=plateThickness,
                                            steelType=plateSteel)
        print('plate thickness: ', plateThickness * 1e3, ' mm')
        return retval
Esempio n. 2
0
 def setFromDict(self, dct):
     ''' Read member values from a dictionary.'''
     self.N = dct['N']
     self.offsetN = dct['offsetN']
     self.B = dct['B']
     self.offsetB = dct['offsetB']
     self.t = dct['t']
     steelClassName = dct['steelClassName'] + '()'
     self.steel = eval(steelClassName)
     self.steel.setFromDict(dct['steel'])
     if dct['steelShapeClassName'] == "materials.astm_aisc.ASTM_materials.IShape":
         shape = dct['steelShape']['shape']
         bf = shape['b']
         tf = shape['tf']
         tw = shape['tw']
         hw = shape['hi']
         name = shape['name']
         steelShapeClassName = f"{dct['steelShapeClassName']}({bf}, {tf}, {tw}, {hw}, steel=self.steel, name='{name}')"
     else:
         steelShapeClassName = dct['steelShapeClassName'] + '()'
     self.steelShape = eval(steelShapeClassName)
     self.steelShape.setFromDict(dct['steelShape'])
     self.anchorGroup = ASTM_materials.AnchorGroup(steel=None,
                                                   diameter=0.0,
                                                   positions=[])
     self.anchorGroup.setFromDict(dct['anchorGroup'])
     xyz = dct['origin']
     self.origin = geom.Pos3d(xyz[0], xyz[1], xyz[2])
     self.fc = dct['fc']
     self.nShearBolts = dct['nShearBolts']
Esempio n. 3
0
def apply_nonPrismatic_section(sets, bf, tf, tw, hw_min, hw_max, \
                               material, prep, element_handler):
    # dia_bounds = {
    #     'x': ['dia_bound.x', 'l_center.x', 'bnd.getZMin'],
    #     'y': ['dia_bound.y', 'l_center.y', 'bnd.getZMin'],
    #     'z': ['dia_bound.z', 'l_center.z', 'bnd.getZMin'],
    # }
    dhw = hw_max - hw_min
    for Set in sets:
        bnd = Set.lines.getBnd()
        dz = bnd.diagonal.z
        zmin = bnd.getZMin
        for line in Set.getLines:
            z_line = line.getCentroid().z
            percent = abs(z_line - zmin) / dz

            average_hw = hw_min + percent * dhw
            assert average_hw > 0
            # lines_len += l
            isection = ASTM_materials.IShape(bf, tf, tw, average_hw, material, f"Wisection{line.tag}")
            xc_material= isection.defElasticShearSection3d(prep)
            element_handler.defaultMaterial = xc_material.name
            element_handler.newElement('ElasticBeam3d', xc.ID([0,0]))
            line.genMesh(xc.meshDir.I)
            for e in line.getElements:
                e.setProp('crossSection',isection)
        Set.fillDownwards()
Esempio n. 4
0
    def getFilletMaximumLeg(self, otherThickness):
        '''
        Return the minimum leg size for a fillet bead 
        according to table J2.4 of AISC 360.

        :param otherThickness: thickness of the other part to weld.
        '''
        return ASTM_materials.getFilletWeldMaximumLegSheets(self.t, otherThickness)
 def getBoltedPlateTemplate(self):
     ''' Return the blocks corresponding to the plate
         bolted to the gusset plate.
     '''
     # Create bolted plate.
     boltedPlate = ASTM_materials.BoltedPlate()
     boltedPlate.setFromDict(self.boltedPlateTemplate.getDict())
     boltedPlate.eccentricity = geom.Vector2d(.025, 0.0)
     boltedPlate.length += .05
     return boltedPlate
Esempio n. 6
0
def getAnchorGroup(steel, diameter, squareSide, xCenter=0.0, yCenter=0.0):
    ''' Return four anchors in the corners of the square.'''
    delta = squareSide / 2.0
    origin = geom.Pos3d(xCenter, yCenter, 0.0)
    positions = list()
    positions.append(origin + geom.Vector3d(delta, delta, 0.0))
    positions.append(origin + geom.Vector3d(-delta, delta, 0.0))
    positions.append(origin + geom.Vector3d(-delta, -delta, 0.0))
    positions.append(origin + geom.Vector3d(delta, -delta, 0.0))
    return ASTM_materials.AnchorGroup(steel, diameter, positions)
Esempio n. 7
0
 def setFromDict(self,dct):
     ''' Read member values from a dictionary.'''
     self.N= dct['N']
     self.offsetN= dct['offsetN']
     self.B= dct['B']
     self.offsetB= dct['offsetB']
     self.t= dct['t']
     steelShapeClassName= dct['steelShapeClassName']+'()'
     self.steelShape= eval(steelShapeClassName)
     self.steelShape.setFromDict(dct['steelShape'])
     self.anchorGroup= ASTM_materials.AnchorGroup(steel= None, diameter= 0.0, positions= [])
     self.anchorGroup.setFromDict(dct['anchorGroup'])
     steelClassName= dct['steelClassName']+'()'
     self.steel= eval(steelClassName)
     self.steel.setFromDict(dct['steel'])
     xyz= dct['origin']
     self.origin= geom.Pos3d(xyz[0],xyz[1],xyz[2])
     self.fc= dct['fc']
     self.nShearBolts= dct['nShearBolts']
Esempio n. 8
0
kip2kN = 1.0 / kN2kips
foot2meter = 0.3048
m2Toin2 = 1.0 / inch2meter**2

# Problem type
steelBeam = xc.FEProblem()
steelBeam.title = 'Example G.1A'
preprocessor = steelBeam.getPreprocessor
nodes = preprocessor.getNodeHandler

#Materials
## Steel material
steel = ASTM_materials.A992
steel.gammaM = 1.00
## Profile geometry
shape = ASTM_materials.WShape(steel, 'W24X62')
xcSection = shape.defElasticShearSection2d(preprocessor)

# Model geometry

## Points.
span = 35.0 * foot2meter
pointHandler = preprocessor.getMultiBlockTopology.getPoints
p0 = pointHandler.newPntFromPos3d(geom.Pos3d(0.0, 0.0, 0.0))
p1 = pointHandler.newPntFromPos3d(geom.Pos3d(span, 0.0, 0.0))

## Lines
lineHandler = preprocessor.getMultiBlockTopology.getLines
l1 = lineHandler.newLine(p0.tag, p1.tag)
l1.nDiv = 10
Esempio n. 9
0
                                                 N=N,
                                                 t=t,
                                                 steelShape=steelShape,
                                                 anchorGroup=anchorGroup,
                                                 steel=steel,
                                                 fc=fc,
                                                 origin=p)
            self.nShearBolts = len(positions)  # Use welded washers


# Materials
steel_W = ASTM_materials.A36  #steel support W shapes
steel_W.fy = 240e6
steel_W.gammaM = 1.00
# steelShape= ASTM_materials.WShape(steel_W,'W18X192')
steelShape = ASTM_materials.IShape(.2, .012, .008, .2, steel_W, name="W18X76")
fc = 25e6  # Minimum concrete compressive strength

# Anchors
boltDiameter = 24e-3

## Positions
positions = list()
x1 = .075
y1 = .05
positions.append(geom.Pos3d(x1, y1, 0.0))
positions.append(geom.Pos3d(x1, -y1, 0.0))
positions.append(geom.Pos3d(-x1, -y1, 0.0))
positions.append(geom.Pos3d(-x1, y1, 0.0))
rodMaterial = ASTM_materials.F1554gr36
#rodMaterial= ASTM_materials.F1554gr55
Esempio n. 10
0
kip2kN = 1.0 / kN2kips
foot2meter = 0.3048
m2Toin2 = 1.0 / inch2meter**2

# Problem type
steelBeam = xc.FEProblem()
steelBeam.title = 'Example F.2-1B'
preprocessor = steelBeam.getPreprocessor
nodes = preprocessor.getNodeHandler

#Materials
## Steel material
steel = ASTM_materials.A36
steel.gammaM = 1.00
## Profile geometry
shape = ASTM_materials.CShape(steel, 'C15X33.9')
xcSection = shape.defElasticShearSection2d(preprocessor)

# Model geometry

## Points.
span = 25.0 * foot2meter
pointHandler = preprocessor.getMultiBlockTopology.getPoints
p0 = pointHandler.newPntFromPos3d(geom.Pos3d(0.0, 0.0, 0.0))
p1 = pointHandler.newPntFromPos3d(geom.Pos3d(span, 0.0, 0.0))

## Lines
lineHandler = preprocessor.getMultiBlockTopology.getLines
l1 = lineHandler.newLine(p0.tag, p1.tag)
l1.nDiv = 10
Esempio n. 11
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
Esempio n. 12
0
__author__= "Ana Ortega (AO_O) and Luis C. Pérez Tato (LCPT)"
__copyright__= "Copyright 2020, AO_O and LCPT"
__license__= "GPL"
__version__= "3.0"
__email__= " [email protected], [email protected]"

from materials.astm_aisc import ASTM_materials

in2m= 0.0254
MPa2ksi= 0.145038
kN2kips= 0.2248
kNm2kipsft= 0.737562121169657
m2Toin2= 1.0/in2m**2

steel= ASTM_materials.A500
hss= ASTM_materials.HSSShape(steel,'HSS8X8X3/16')
connection= ASTM_materials.MemberConnection(L= 3.5052)
member= ASTM_materials.MemberWithEndConnections(hss,connection)

Pd= -258.9561299844e3
k= member.connection.getEffectiveBucklingLengthCoefficientRecommended()
lambda_r= member.shape.getLambdaRCompression()
bClassification= member.shape.getBClassification()
hClassification= member.shape.getHClassification()
h_eff= member.shape.getReducedEffectiveH()
b_eff= member.shape.getReducedEffectiveB()
A_eff= member.shape.getEffectiveArea()
sr= member.getSlendernessRatio()
Fe= member.getElasticBucklingStress()
Fcr= member.getCriticalStress()
Pn= member.getNominalCompressiveStrength()
Esempio n. 13
0
from __future__ import division
from __future__ import print_function
''' Steel bolts according to AISC 360-16 verification test.
    Based on the:
    Example – Design of a Bolted Tension Bearing-Type Connection
    of the course:
    Design of Bolts in Shear-BearingConnections per AISC LRFD 3rdEdition (2001)
'''

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
boltArray = ASTM_materials.BoltArray(bolt, nRows=2, nCols=2)
boltedPlate = ASTM_materials.BoltedPlate(boltArray,
                                         thickness=20e-3,
                                         steelType=ASTM_materials.A36)

Pd = 121.6 * kip2N
CFShear = boltArray.getDesignShearEfficiency(Pd, doubleShear=True)
CFCenterDist = boltArray.checkDistanceBetweenCenters()
CFthickness = boltedPlate.checkThickness(Pd)
minPlateWidth = boltedPlate.getMinWidth()
ratio1 = abs(CFShear - 0.85024866348) / 0.85024866348
ratio2 = abs(CFCenterDist - 0.762) / 0.762
ratio3 = abs(CFthickness - 0.867667222586) / 0.867667222586
'''
print('Pd= ', Pd/1e3, 'kN')
Esempio n. 14
0
from materials.astm_aisc import ASTM_materials

in2m = 25.4e-3
kip2N = 4448.2216
psi2Pa = 6894.757

# Concrete
fc = 4000 * psi2Pa

# Loads
Nua = 40 * kip2N  # Factored axial load.

# Bolt
AB105 = ASTM_materials.F1554gr105
anchor = ASTM_materials.AnchorBolt(name='ExampleA4',
                                   steel=AB105,
                                   diameter=1.125 * in2m)
h_ef = 17.57 * in2m

d = anchor.diameter
Ase = anchor.getTensionEffectiveCrossSectionalArea()
ratio1 = abs(Ase - 492.433431069e-6) / 492.433431069e-6
Nsa = anchor.getNominalTensileStrength()
ratio2 = abs(Nsa - 424.477617581e3) / 424.477617581e3
# Concrete breakout strenght calculated using
# equation (D-8) instead of (D-7) see note
# in the example.
Ncb = anchor.getNominalConcreteBreakoutStrength(h_ef, fc)
ratio3 = abs(Ncb - 534.510669747e3) / 534.510669747
# Concrete pullout strength.
Np = anchor.getNominalPulloutStrength(fc)
kip2kN = 1.0 / kN2kips
foot2meter = 0.3048
m2Toin2 = 1.0 / inch2meter**2

# Problem type
steelBeam = xc.FEProblem()
steelBeam.title = 'Example F.6'
preprocessor = steelBeam.getPreprocessor
nodes = preprocessor.getNodeHandler

#Materials
## Steel material
steel = ASTM_materials.A500
steel.gammaM = 1.00
## Profile geometry
shape = ASTM_materials.HSSShape(steel, 'HSS3-1/2X3-1/2X1/8')
xcSection = shape.defElasticShearSection2d(preprocessor)

# Model geometry

## Points.
span = 7.0 * foot2meter + 6.0 * inch2meter
pointHandler = preprocessor.getMultiBlockTopology.getPoints
p0 = pointHandler.newPntFromPos3d(geom.Pos3d(0.0, 0.0, 0.0))
p1 = pointHandler.newPntFromPos3d(geom.Pos3d(span, 0.0, 0.0))

## Lines
lineHandler = preprocessor.getMultiBlockTopology.getLines
l1 = lineHandler.newLine(p0.tag, p1.tag)
l1.nDiv = 10
from actions import combinations as combs
from solution import predefined_solutions
# from postprocess import output_handler

# Problem type
steelColumn = xc.FEProblem()
steelColumn.title = 'AISC 360-16 benchmark problem Case 1 (3D PDelta formulation)'
preprocessor = steelColumn.getPreprocessor
nodes = preprocessor.getNodeHandler

#Materials
## Steel material
steel = ASTM_materials.A992
steel.gammaM = 1.00
## Profile geometry
shape = ASTM_materials.WShape(steel, 'W14X48')
xcSection = shape.defElasticShearSection3d(preprocessor)

# Model geometry

## Points.
height = 8.53
pointHandler = preprocessor.getMultiBlockTopology.getPoints
p0 = pointHandler.newPntFromPos3d(geom.Pos3d(0.0, 0.0, 0.0))
p1 = pointHandler.newPntFromPos3d(geom.Pos3d(0.0, 0.0, height))

## Lines
lineHandler = preprocessor.getMultiBlockTopology.getLines
l1 = lineHandler.newLine(p0.tag, p1.tag)
l1.nDiv = 6
Esempio n. 17
0
# -*- coding: utf-8 -*-
''' Test based on example II.A-17 SINGLE-PLATE CONNECTION (CONVENTIONAL
 – BEAM-TO-COLUMN FLANGE) from the document: Design examples version 14.0.
American Institute of Steel Construction. 2011
'''
from __future__ import division
from __future__ import print_function

in2m = 25.4e-3
kip2N = 4448.2216

import xc_base
import geom
from materials.astm_aisc import ASTM_materials

bolt = ASTM_materials.BoltFastener(0.75 * in2m,
                                   steelType=ASTM_materials.A325)  # group A
boltArray = ASTM_materials.BoltArray(bolt, nRows=4, nCols=1, dist=3 * in2m)
eccentr = (4.5 / 2.0 - 1.25) * in2m
finPlate = ASTM_materials.FinPlate(boltArray,
                                   width=11.5 * in2m,
                                   length=4.5 * in2m,
                                   thickness=0.25 * in2m,
                                   steelType=ASTM_materials.A36,
                                   eccentricity=geom.Vector2d(eccentr, 0.0))

Rd = 49.6 * kip2N

## Check bolt strength
CFShear = boltArray.getDesignShearEfficiency(Rd, doubleShear=False)
loadDir = geom.Vector2d(0.0, -1.0)
CF = finPlate.getDesignEfficiency(geom.Vector2d(0.0, -Rd), Ubs=1.0)
Esempio n. 18
0
kip2kN = 1.0 / kN2kips
foot2meter = 0.3048
m2Toin2 = 1.0 / inch2meter**2

# Problem type
steelBeam = xc.FEProblem()
steelBeam.title = 'Example F.7B'
preprocessor = steelBeam.getPreprocessor
nodes = preprocessor.getNodeHandler

#Materials
## Steel material
steel = ASTM_materials.A500
steel.gammaM = 1.00
## Profile geometry
shape = ASTM_materials.HSSShape(steel, 'HSS10X6X3/16')
xcSection = shape.defElasticShearSection2d(preprocessor)

# Model geometry

## Points.
span = 21.0 * foot2meter
pointHandler = preprocessor.getMultiBlockTopology.getPoints
p0 = pointHandler.newPntFromPos3d(geom.Pos3d(0.0, 0.0, 0.0))
p1 = pointHandler.newPntFromPos3d(geom.Pos3d(span, 0.0, 0.0))

## Lines
lineHandler = preprocessor.getMultiBlockTopology.getLines
l1 = lineHandler.newLine(p0.tag, p1.tag)
l1.nDiv = 10
Esempio n. 19
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
Esempio n. 20
0
 def getLegMaxSize(self):
     ''' Return the maximum leg size of the weld.'''
     t1 = self.memberToWeld.getProp('thickness')
     t2 = self.face.getProp('thickness')
     return ASTM_materials.getFilletWeldMaximumLegSheets(t1, t2)
Esempio n. 21
0
from model import predefined_spaces
from actions import load_cases
from solution import predefined_solutions

# Problem type
steelBeam = xc.FEProblem()
steelBeam.title = 'Self weight test'
preprocessor = steelBeam.getPreprocessor
nodes = preprocessor.getNodeHandler

#Materials
## Steel material
steel = ASTM_materials.A992
steel.gammaM = 1.00
## Profile geometry
shape = ASTM_materials.WShape(steel, 'W18X50')
xcSection = shape.defElasticShearSection3d(preprocessor)

# Model geometry

## Points.
span = 10.0
pointHandler = preprocessor.getMultiBlockTopology.getPoints
p0 = pointHandler.newPntFromPos3d(geom.Pos3d(0.0, 0.0, 0.0))
p1 = pointHandler.newPntFromPos3d(geom.Pos3d(span, 0.0, 0.0))

## Lines
lineHandler = preprocessor.getMultiBlockTopology.getLines
l1 = lineHandler.newLine(p0.tag, p1.tag)
l1.nDiv = 2
Esempio n. 22
0
kip2kN = 1.0 / kN2kips
foot2meter = 0.3048
m2Toin2 = 1.0 / inch2meter**2

# Problem type
steelBeam = xc.FEProblem()
steelBeam.title = 'Example F.5'
preprocessor = steelBeam.getPreprocessor
nodes = preprocessor.getNodeHandler

#Materials
## Steel material
steel = ASTM_materials.A992
steel.gammaM = 1.00
## Profile geometry
shape = ASTM_materials.WShape(steel, 'W12X58')
xcSection = shape.defElasticShearSection2d(preprocessor, majorAxis=False)

# Model geometry

## Points.
span = 15.0 * foot2meter
pointHandler = preprocessor.getMultiBlockTopology.getPoints
p0 = pointHandler.newPntFromPos3d(geom.Pos3d(0.0, 0.0, 0.0))
p1 = pointHandler.newPntFromPos3d(geom.Pos3d(span, 0.0, 0.0))

## Lines
lineHandler = preprocessor.getMultiBlockTopology.getLines
l1 = lineHandler.newLine(p0.tag, p1.tag)
l1.nDiv = 10
Esempio n. 23
0
__author__ = "Ana Ortega (AO_O) and Luis C. Pérez Tato (LCPT)"
__copyright__ = "Copyright 2020, AO_O and LCPT"
__license__ = "GPL"
__version__ = "3.0"
__email__ = " [email protected], [email protected]"

from materials.astm_aisc import ASTM_materials

in2m = 0.0254
MPa2ksi = 0.145038
kN2kips = 0.2248
kNm2kipsft = 0.737562121169657
m2Toin2 = 1.0 / in2m**2

steel = ASTM_materials.A500
shape = ASTM_materials.HSSShape(steel, 'HSS8X8X3/16')

# Effective section (AISC-360-16 section F7).
Ieff = shape.getEffectiveInertia(majorAxis=True)
IeffRef = 2.12077901769e-05
Seff = shape.getEffectiveSectionModulus(majorAxis=True)
SeffRef = 0.000200922945777
## Flange local buckling (F7.2)
Mn = shape.getFlangeLocalBucklingLimit(majorAxis=True)
MnRef = 63.2907279198e3

ratio1 = abs(Ieff - IeffRef) / IeffRef
ratio2 = abs(Seff - SeffRef) / SeffRef
ratio3 = abs(Mn - MnRef) / MnRef
'''
print('Fy= ', steel.fy/1e6,' MPa (',steel.fy/1e6*MPa2ksi,' ksi)')
Esempio n. 24
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
Esempio n. 25
0
kip2N = kip2kN * 1e3
foot2meter = 0.3048
m2Toin2 = 1.0 / inch2meter**2

# Problem type
steelBeam = xc.FEProblem()
steelBeam.title = 'Example G.4'
preprocessor = steelBeam.getPreprocessor
nodes = preprocessor.getNodeHandler

#Materials
## Steel material
steel = ASTM_materials.A500
steel.gammaM = 1.00
## Profile geometry
shape = ASTM_materials.HSSShape(steel, 'HSS6X4X3/8')
xcSection = shape.defElasticShearSection2d(preprocessor)

# Model geometry

## Points.
span = 35.0 * foot2meter
pointHandler = preprocessor.getMultiBlockTopology.getPoints
p0 = pointHandler.newPntFromPos3d(geom.Pos3d(0.0, 0.0, 0.0))
p1 = pointHandler.newPntFromPos3d(geom.Pos3d(span, 0.0, 0.0))

## Lines
lineHandler = preprocessor.getMultiBlockTopology.getLines
l1 = lineHandler.newLine(p0.tag, p1.tag)
l1.nDiv = 10
Esempio n. 26
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
Esempio n. 27
0
T= -60*kip2N*in2m # service load torque (60 kip-in)

FEcase= xc.FEProblem()
preprocessor=FEcase.getPreprocessor
prep=preprocessor   #short name
nodes= prep.getNodeHandler
elements= prep.getElementHandler
elements.dimElem= 3
modelSpace= predefined_spaces.StructuralMechanics3D(nodes) #Defines the

grid=gm.GridModel(prep,xList=[0,L/2,L],yList=[0],zList=[0])
grid.generatePoints()

steel_W=astm.A992   #steel W shapes
beam=grid.genLinOneXYZRegion([(0,0,0),(L,0,0)],'beam')
beam_mat= astm.HSSShape(steel_W,'HSS10X6X1/2') 
beam_mat.defElasticShearSection3d(prep)

beam_mesh= fem.LinSetToMesh(linSet=beam,matSect=beam_mat,elemSize=0.25,vDirLAxZ=xc.Vector([0,1,0]), elemType='ElasticBeam3d')
beam_mesh.generateMesh(prep)

J= beam_mat.J()
Jcomp= 176/(m2in**4)
ratio0= abs(J-Jcomp)/Jcomp

G= steel_W.G()
Gcomp= 11200.0/Pa2ksi
ratio1= abs(G-Gcomp)/Gcomp

#boundary conditions
extr1= grid.getPntXYZ((0,0,0))
Esempio n. 28
0
__author__ = "Ana Ortega (AO_O) and Luis C. Pérez Tato (LCPT)"
__copyright__ = "Copyright 2020, AO_O and LCPT"
__license__ = "GPL"
__version__ = "3.0"
__email__ = " [email protected], [email protected]"

from materials.astm_aisc import ASTM_materials

in2m = 0.0254
MPa2ksi = 0.145038
kN2kips = 0.2248
m2Toin2 = 1.0 / in2m**2

steel = ASTM_materials.A500
hss = ASTM_materials.HSSShape(steel, 'HSS12X8X3/16')
connection = ASTM_materials.MemberConnection(L=30 * 0.3048,
                                             rotI='fixed',
                                             transI='fixed',
                                             rotJ='free',
                                             transJ='fixed')
member = ASTM_materials.ConnectedMember(hss, connection)

k = member.connection.getEffectiveBucklingLengthCoefficientRecommended()
lambda_r = member.shape.getLambdaRCompression()
bClassification = member.shape.getBClassification()
hClassification = member.shape.getHClassification()
h_eff = member.shape.getReducedEffectiveH()
b_eff = member.shape.getReducedEffectiveB()
A_eff = member.shape.getEffectiveArea()
sr = member.getSlendernessRatio()
Esempio n. 29
0
from materials.astm_aisc import AISC_limit_state_checking as aisc

inch2meter= 0.0254
MPa2ksi= 0.145038
kN2kips= 0.2248
N2kips= 0.2248e-3
kip2kN= 1.0/kN2kips
foot2meter= 0.3048
m2Toin2= 1.0/inch2meter**2

#Materials
## Steel material
steel= ASTM_materials.A500
steel.gammaM= 1.00
## Shape geometry
shape= ASTM_materials.HSSShape(steel,'HSS12X10X3/8')
## Steel column
column= aisc.Member('column', shape,20.0*foot2meter, kx= 0.8, ky= 0.8, kz= 0.8)

## Load.
Pd= 510*kip2kN

## Compressive strength
Pu= column.getDesignCompressiveStrength()
PuRef= 2309144.43171 #518*kip2kN*1e3
ratio= abs(Pu-PuRef)/PuRef

'''
print('Pd= ',Pd/1e3,' kN / (',Pd*N2kips,'kips)')
print('Pu= ',Pu/1e3,' kN / (',Pu*N2kips,'kips)')
print('PuRef= ',PuRef/1e3,' kN / (',PuRef*N2kips,'kips)')
__license__= "GPL"
__version__= "3.0"
__email__= "*****@*****.**"

# Testing hinge development in a cantilever.

from materials.astm_aisc import ASTM_materials
from materials.sections.structural_shapes import aisc_metric_shapes

#Materials
## Steel material
steel= ASTM_materials.A572
steel.gammaM= 1.00
## Profile geometry (the example on the book says W690X170 but uses
## the values of an W690X140).
shape= ASTM_materials.WShape(steel,aisc_metric_shapes.getUSLabel('W690X140'))

## 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')