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,
__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 '''
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()
__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
# 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))
# -*- 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,
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
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]))
__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
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