def test_ForceDensity2(self): """ Calculates ForceDensity from AreaDensity and Thickness """ Mat = ACMaterial() Mat.AreaDensity = LBM/IN**2 Mat.Thickness = IN ForceDensity = (LBM*g/IN**3).asNumber(LBF/IN**3) self.assertAlmostEqual(Mat.ForceDensity.asNumber(LBF/IN**3), ForceDensity, 5, "Filed to calculate ForceDensity from AreaDensity and Thickness")
############################################################################### # Fuselage Materials ############################################################################### # Bulkhead Truss # 1/8 inch thick with 75% material cut out cutout = 0.9 ACTrussBH = ACMaterial() ACTrussBH.Thickness = 0.25 * IN ACTrussBH.ForceDensity = Balsa.ForceDensity * (1 - cutout) # Composite Plate (Composite Plate + monokote) # 1/4 inch thick Divinicel Foam with 2 ply of Composite ACNoseComp = ACMaterial() ACNoseComp.AreaDensity = DivinicelFD * 0.25 * IN / g + 2 * ZylonCompAD # Section Truss (truss structure + monokote) # 1/8 inch thick with 80% material cut out cutout = 0.8 ACTrussSkin = ACMaterial() ACTrussSkin.AreaDensity = Balsa.ForceDensity * ( 1 - cutout) * 0.25 * IN / g + Monokote.AreaDensity # Bulkhead plywood # 1/8 inch thick with 75% material cut out cutout = 0.75 ACPlyBH = ACMaterial() ACPlyBH.Thickness = 0.125 * IN ACPlyBH.ForceDensity = ACPly.ForceDensity * (1 - cutout)
ACPly = AircraftPly.copy() Basswood = Basswood.copy() Monokote = Monokote.copy() # Bulkhead plywood # 1/8 inch thick with 75% material cut out cutout = 0.75 ACPlyBH = ACMaterial() ACPlyBH.Thickness = 0.125 * IN ACPlyBH.ForceDensity = ACPly.ForceDensity * (1 - cutout) # Section plywood (truss structure + monokote) # 1/8 inch thick with 80% material cut out cutout = 0.8 ACPlySkin = ACMaterial() ACPlySkin.AreaDensity = ACPly.ForceDensity * ( 1 - cutout) * 0.125 * IN / g + Monokote.AreaDensity # Stringer material from basswood (w=0.25 in , t=0.25 in) w = 0.25 * IN t = 0.25 * IN BassStringer = ACMaterial() BassStringer.LinearForceDensity = Basswood.ForceDensity * w * t Fuselage = ACFuselage() # # Create the sections of the fuselage # Fuselage.AddSection('Nose', 6 * IN, 1) Fuselage.AddSection('PyldBay', 11 * IN, 1) Fuselage.AddSection('TailTaper')