예제 #1
0
from __future__ import division
from __future__ import print_function
import math
from materials.awc_nds import specific_gravity as sg
from materials.awc_nds import dowel_type_fasteners as fasteners
from materials.awc_nds import AWCNDS_materials as mat

fastener = fasteners.WoodScrew(diameter=0.19 * mat.in2meter,
                               length=6.0 * mat.in2meter,
                               headDiameter=0.363 * mat.in2meter,
                               rootDiameter=0.152 * mat.in2meter,
                               bendingYieldStrength=80e3 * mat.psi2Pa)

# There is an error in the example the Fe values correspond
# to a G= 0.55 NOT to a G= 0.5
mainMemberWood = mat.Wood('Fake Douglas Fir-Larch', specificGravity=0.55)
sideMemberWood = mat.Wood('Fake Structural Composite Lumber',
                          specificGravity=0.55)

Fem = mainMemberWood.getDowelBearingStrength(fastener.D, theta=0.0)
Fes = sideMemberWood.getDowelBearingStrength(fastener.D, theta=0.0)
Fyb = fastener.Fyb

mainMemberThickness = 3.0 * mat.in2meter
sideMemberThickness = 1.5 * mat.in2meter

mainMemberDowelBearingLength = mainMemberThickness
sideMemberDowelBearingLength = fastener.L - mainMemberDowelBearingLength - sideMemberThickness - fastener.tip / 2.0
pMin = fastener.getMinPenetration()
Rd = fastener.getReductionTerm(theta=0.0, yieldMode='Im')
k3 = fastener.getK3(mainMemberWood,
예제 #2
0
__license__ = "GPL"
__version__ = "3.0"
__email__ = "*****@*****.**"

inch2meter = 0.0254
pound2Newton = 4.4482216282509
foot2meter = 0.3048

span = 16 * foot2meter
designLoad = 77.3 * pound2Newton / foot2meter  # Design load
designMoment = designLoad * span**2 / 8.0

wood = dimensional_lumber.SouthernPineWood(name='SouthernPine',
                                           grade='no_2',
                                           sub_grade='')
joist = mat.DimensionLumberSection(name='2x10', woodMaterial=wood)

S = joist.Wzel()  # Section modulus
I = joist.Iz()  # Moment of inertia
fb = designMoment / S  # Bendign stress
Fb = joist.getFb()
E = joist.wood.E
Fv = joist.wood.Fv

beam = sb.SimpleBeam(E, I, span)
delta = beam.getDeflectionUnderUniformLoad(designLoad, beam.l / 2.0)

ratio1 = (Fb - 5.5e6) / 5.5e6
ratio2 = (Fv - 1.2e6) / 1.2e6
ratio3 = (delta - 20.8425973321e-3) / 20.8425973321e-3
'''
예제 #3
0
joistSection = sp.RectangularSection('joistSection', 1.5 * 0.0254,
                                     7.25 * 0.0254)
Ss = joistSection.getElasticSectionModulusZ()
SsRef = 13.14 * 0.0254**3
ratio1 = (Ss - SsRef) / SsRef
Is = joistSection.Iz()
IsRef = 47.63 * 0.0254**4
ratio2 = (Is - IsRef) / IsRef

# Tabulated design values
Fb = 975 * 6894.76  # Bending stress (Pa)
E = 1.5e6 * 6894.76  # Modulus of elasticity (Pa)
Fv = 75 * 6894.76  # Shear stress (Pa)
FcT = 405 * 6894.76

CD = mat.getLoadDurationFactor(10)
ratio3 = (CD - 1.0)
Cr = 1.15  # Repetitive member factor (AWC-NDS2018 supplement table 4F)
CF = 1.2  # Size factor (AWC-NDS2018 supplement table 4F)
CH = 2.0  # Horizontal shear factor
CL = 1.0  # Continuous lateral support. NDS clause 3.3.3
Cb = 1.0  # Bearing area factor. NDS clause 3.10.4

Fb_adj = Fb * Cr * CF * CD * CL
Fb_adjRef = 1345 * 6.89476e3
ratio4 = (Fb_adj - Fb_adjRef) / Fb_adjRef
FcT_adj = FcT * Cb
FcT_adjRef = 405 * 6.89476e3
ratio5 = (FcT_adj - FcT_adjRef) / FcT_adjRef

As = joistSection.A()
예제 #4
0
__email__ = "[email protected], [email protected] "

from materials.sections import section_properties
from materials.awc_nds import AWCNDS_materials
from materials.awc_nds import dimensional_lumber

inchToMeter = 2.54 / 100.0
footToMeter = .3048
psiToPa = 6894.76

# Materials
# Douglas Fir-Larch Select structural.
wood = dimensional_lumber.DouglasFirLarchWood(grade='structural')

beamSection = AWCNDS_materials.CustomLumberSection("DouglasFirLarch",
                                                   b=3.5 * inchToMeter,
                                                   h=15.25 * inchToMeter,
                                                   woodMaterial=wood)

length = 20.0 * footToMeter
beam = AWCNDS_materials.BeamMember(unbracedLength=length, section=beamSection)
Fb = beam.section.wood.Fb
E = beam.section.wood.E
Emin = beam.section.wood.Emin
Fct = beam.section.wood.Fct
Fv = beam.section.wood.Fv

CD = 1.0  # Duration factor.
Cfu = 1.0
CM = 1.0
Cr = 1.0
CT = 1.0
예제 #5
0
# Loads
from actions import load_cases as lcm
from actions import combinations as combs

# Problem type
sheathingBeam= xc.FEProblem()
sheathingBeam.title= 'Sheating design'
preprocessor= sheathingBeam.getPreprocessor   
nodes= preprocessor.getNodeHandler
modelSpace= predefined_spaces.StructuralMechanics2D(nodes)

# Materials
# Mechanical properties taken from:
# http://www.pfsteco.com/techtips/pdf/tt_plywooddesigncapacities
structuralPanelGeom= AWCNDS_materials.PlywoodPanel('TECO 32/16', b=1.0, h= 0.594*0.0254, shear_constant= 3)
plywood= typical_materials.MaterialData(name='TECO 32/16',E=4161501119.15,nu=0.2,rho=500)
section= structuralPanelGeom.defElasticShearSection2d(preprocessor,plywood)
EI= section.sectionProperties.EI()
EIRef= 126500*4.44822*(0.0254)**2/0.3048

ratio0= abs((EI-EIRef)/EIRef)

thickness= structuralPanelGeom.h

deflectionSpan= (32-1.5+0.25)*0.0254
internalForcesSpan= 32*0.0254 # 32
span= internalForcesSpan 
pointHandler= preprocessor.getMultiBlockTopology.getPoints
pt1= pointHandler.newPntFromPos3d(geom.Pos3d(0.0,0.0,0.0))
pt2= pointHandler.newPntFromPos3d(geom.Pos3d(span,0.0,0.0))
예제 #6
0
# -*- coding: utf-8 -*-
''' Example E2.4 Single Wood Screw Lateral Design Value - Double Shear
    Wood-to-wood Connection from "STRUCTURAL WOOD DESIGN SOLVED EXAMPLE
    PROBLEMS" of the American Wood Council.'''

from __future__ import division
from __future__ import print_function
import math
from materials.awc_nds import specific_gravity as sg
from materials.awc_nds import dowel_type_fasteners as fasteners
from materials.awc_nds import AWCNDS_materials as mat

fastener = fasteners.Nail(diameter=0.148 * mat.in2meter,
                          length=3.0 * mat.in2meter)

mainMemberWood = mat.Wood('3xDouglas Fir-Larch', specificGravity=0.5)
sideMemberWood = mat.Wood('1xDouglas Fir-Larch', specificGravity=0.5)

Fem = mainMemberWood.getDowelBearingStrength(fastener.D, theta=0.0)
Fes = sideMemberWood.getDowelBearingStrength(fastener.D, theta=0.0)
Fyb = fastener.Fyb

mainMemberThickness = 2.50 * mat.in2meter
sideMemberThickness = 0.75 * mat.in2meter

sideMemberDowelBearingLength = sideMemberThickness
mainMemberDowelBearingLength = fastener.L - sideMemberThickness
pMin = fastener.getMinPenetration()
Rd = fastener.getReductionTerm(theta=0.0, yieldMode='Im')
k3 = fastener.getK3(mainMemberWood,
                    sideMemberWood,
예제 #7
0
from materials.awc_nds import AWCNDS_materials as mat
from AWCNDS_materials import in2meter
from AWCNDS_materials import pound2N
from AWCNDS_materials import foot2meter
from AWCNDS_materials import pound2kg

__author__ = "Luis C. Pérez Tato (LCPT) , Ana Ortega (AO_O) "
__copyright__ = "Copyright 2020, LCPT, AO_O"
__license__ = "GPL"
__version__ = "3.0"
__email__ = "[email protected], [email protected] "

PlywoodPanelSections = dict()

PlywoodPanelSections['3/8'] = mat.PlywoodPanelSection(
    '3/8', b=1.0, h=0.375 * in2meter, shear_constant=3.00
)  #,  'CrossSectionalArea':4.500, 'MomentOfInertia':0.053, 'SectionModulus':0.281, 'StaticalMoment':0.211
PlywoodPanelSections['7/16'] = mat.PlywoodPanelSection(
    '7/16', b=1.0, h=0.437 * in2meter, shear_constant=3.50
)  #,  'CrossSectionalArea':5.250, 'MomentOfInertia':0.084, 'SectionModulus':0.383, 'StaticalMoment':0.287
PlywoodPanelSections['15/32'] = mat.PlywoodPanelSection(
    '15/32', b=1.0, h=0.469 * in2meter, shear_constant=3.75
)  #,  'CrossSectionalArea':5.625, 'MomentOfInertia':0.103, 'SectionModulus':0.440, 'StaticalMoment':0.330
PlywoodPanelSections['1/2'] = mat.PlywoodPanelSection(
    '1/2', b=1.0, h=0.500 * in2meter, shear_constant=4.00
)  #,  'CrossSectionalArea':6.000, 'MomentOfInertia':0.125, 'SectionModulus':0.500, 'StaticalMoment':0.375
PlywoodPanelSections['19/32'] = mat.PlywoodPanelSection(
    '19/32', b=1.0, h=0.594 * in2meter, shear_constant=4.75
)  #,  'CrossSectionalArea':7.125, 'MomentOfInertia':0.209, 'SectionModulus':0.705, 'StaticalMoment':0.529
PlywoodPanelSections['5/8'] = mat.PlywoodPanelSection(
    '5/8', b=1.0, h=0.625 * in2meter, shear_constant=5.00
예제 #8
0
    l.setProp('webOrientation', -kVector)
    l.setElemSize(elementLength)

## Template coordinate transformation.
linCT = preprocessor.getTransfCooHandler.newLinearCrdTransf3d('linCT')
linCT.xzVector = xc.Vector([1.0, 0, 0])

# Materials
shortBeamsSection = structural_panels.LVLHeaderSections['1.75x11-7/8']
beamsSection = structural_panels.LVLHeaderSections['5.25x11-7/8']
longBeamsSection = structural_panels.LVLHeaderSections['7x11-7/8']  #'3.5x18']
longJoistsSection = pr_400_i_joists.pr400_i_joists['PRI-20_241']
joistsWood = dl.SouthernPineWood(name='SouthernPine',
                                 grade='no_2',
                                 sub_grade='')
joistsSection = AWCNDS_materials.DimensionLumberSection(
    name='2x8', woodMaterial=joistsWood)

# Mesh generation.
seedElemHandler = preprocessor.getElementHandler.seedElemHandler
seedElemHandler.defaultTransformation = "linCT"


def createMesh(xcSet, section):
    xcSection = section.defElasticShearSection3d(preprocessor)
    seedElemHandler.defaultMaterial = section.name

    for l in xcSet.getLines:
        vDir = l.getProp('webOrientation')
        l.setProp('crossSection', section)
        linCT.xzVector = xc.Vector([vDir.x, vDir.y, vDir.z])
        elem = seedElemHandler.newElement("ElasticBeam3d", xc.ID([0, 0]))
예제 #9
0
__version__ = "3.0"
__email__ = "*****@*****.**"

inch2meter = 0.0254
pound2Newton = 4.4482216282509
foot2meter = 0.3048

span = 16 * foot2meter
designLoad = 77.3 * pound2Newton / foot2meter  # Design load
designMoment = designLoad * span**2 / 8.0

wood = dimensional_lumber.SouthernPineWood(name='SouthernPine',
                                           grade='no_2',
                                           sub_grade='')
joist = mat.DimensionLumber(name='2x10',
                            b=1.5 * inch2meter,
                            h=9.25 * inch2meter,
                            woodMaterial=wood)

S = joist.Wzel()  # Section modulus
I = joist.Iz()  # Moment of inertia
fb = designMoment / S  # Bendign stress
Fb = joist.getFb()
E = joist.wood.E
Fv = joist.wood.Fv

beam = sb.SimpleBeam(E, I, span)
delta = beam.getDeflectionUnderUniformLoad(designLoad, beam.l / 2.0)

ratio1 = (Fb - 5.50088235294e6) / 5.50088235294e6
ratio2 = (Fv - 1.2e6) / 1.2e6
ratio3 = (delta - 20.801166868e-3) / 20.801166868e-3
예제 #10
0
the technical report no. 10 (Calculating the Fire Resistance of
Wood Members and Assemblies) of the American Wood Council
. July 2018.'''

from __future__ import division
from __future__ import print_function
from materials.awc_nds import AWCNDS_materials as mat
from materials.sections import section_properties as sp

__author__ = "Luis Claudio Pérez Tato (LCPT"
__copyright__ = "Copyright 2015, LCPT"
__license__ = "GPL"
__version__ = "3.0"
__email__ = "*****@*****.**"

CD = mat.getLoadDurationFactor(10)
CM = mat.getWetServiceFactor('Fb', 5)
Ct = mat.getTemperatureFactor('Fb', 'dry', mat.convertToFahrenheit(25))
KF = mat.getFormatConversionFactor('Fb')
phi = mat.getResistanceFactor('Fb')
L = 18 * 0.3048
b = 6.75 * 0.0254
h = 13.5 * 0.0254
CV = mat.getVolumeFactor(L, b, h)
ratio = (CD - 1.0)**2
ratio += (Ct - 1.0)**2
ratio += (CM - 1.0)**2
ratio += (KF - 2.54)**2
ratio += (phi - 0.85)**2
ratio += (CV - 0.98)**2