# FUSELAGE MODEL #==============================================================================# # NOTES: # So Aerothon does some funny business here that will not match our CAD # perfectly, so we consider only the outer edges of the fuselage and then # will adjust densities of the materials being used such that the CG # representations match that in the CAD (and tests from prototype builds) # # We break the fuselage into the following sections: # (1) Nose: Front cap of the plane with motor bay over top of it # (2) PayBay: Payload bay (w/ext above for ties to main and secondary spars) # (3) Pay2Tail: Transition from payload bay to tail # (4) Tail: Tail section # (5) TailBrac: Tail bracket (to connect tail to fuselage) Fuselage = ACFuselage() # create the fuselage class # Create the sections of the fuselage that we intend to populate # -> AddSection('NAME',sectionLength,alignment(-1=bot, 0=center, 1=top, None=@CG) Fuselage.AddSection('Nose', 9.63 * IN, 1) Fuselage.AddSection('PayBay', 9 * IN, 1) Fuselage.AddSection('Pay2Tail', 25.48 * IN, 0) Fuselage.AddSection('Tail', 22.53 * IN, 0) BaseWeight = 24 * OZF # Weight in OZF that is multiplied in the force densities # SECTION 1: Nose section only -------------------------------------------------# #### SHIFT ALL X POSITIONS BY 7.03125in (Dist from payload CG to front of fuse) # SPH 12/1/2015: from 151130 CAD target weight @ 15.5oz CG @ 1.14125in # in SolidWorks relative to payload CG (5.89,0,-0.12) # front bulkhead definition
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') # # Size the engine fire wall # Fuselage.Nose.FrontBulk.Width = 2.7 * IN Fuselage.Nose.FrontBulk.Height = 2.7 * IN Fuselage.Nose.FrontBulk.Material = ACPlyBH Fuselage.Nose.Align = -1 Fuselage.Nose.SkinMat = ACPlySkin
# FUSELAGE MODEL #==============================================================================# # NOTES: # So Aerothon does some funny business here that will not match our CAD # perfectly, so we consider only the outer edges of the fuselage and then # will adjust densities of the materials being used such that the CG # representations match that in the CAD (and tests from prototype builds) # # We break the fuselage into the following sections: # (1) Nose: Front cap of the plane with motor bay over top of it # (2) PayBay: Payload bay (w/ext above for ties to main and secondary spars) # (3) Pay2Tail: Transition from payload bay to tail # (4) Tail: Tail section # (5) TailBrac: Tail bracket (to connect tail to fuselage) Fuselage = ACFuselage() # create the fuselage class # Create the sections of the fuselage that we intend to populate # -> AddSection('NAME',sectionLength,alignment(-1=bot, 0=center, 1=top, None=@CG) Fuselage.AddSection('Nose',4.813*IN,1) Fuselage.AddSection('NoseToPayBay',1.38*IN,1) Fuselage.AddSection('PayBay',26.567*IN,1) Fuselage.AddSection('PayBayGap',1.02*IN,0) Fuselage.AddSection('Pay2Tail',5.268*IN,0) Fuselage.AddSection('Pay2TailGap',0.001*IN,0) Fuselage.AddSection('Tail',27.875*IN,0) BaseWeight = 24*OZF # Weight in OZF that is multiplied in the force densities # SECTION 1: Nose section only -------------------------------------------------# #### SHIFT ALL X POSITIONS BY 7.03125in (Dist from payload CG to front of fuse)
from __future__ import division # let 5/2 = 2.5 rather than 2 from scalar.units import IN, LBF, SLUG, FT, OZF from scalar.units import AsUnit from Aerothon.ACFuselage import ACFuselage from Adv2019Aircraft.Structures.Materials import BalsaBH, ACPlyBH, ACPlySkin, BassStringer, BalsaStringer, Monokote, Steel Fuselage = ACFuselage() # # Create the sections of the fuselage # Fuselage.AddSection('Nose' , 7.5*IN, -1) Fuselage.AddSection('PyldBay', 22.5*IN, -1) Fuselage.AddSection('PyldTaper', 7.5*IN, -1) Fuselage.AddSection('Tail', 33*IN, 1) # Size the engine fire wall # Fuselage.Nose.FrontBulk.Width = 3.0*IN Fuselage.Nose.FrontBulk.Height = 3.0*IN Fuselage.Nose.FrontBulk.Material = ACPlyBH.copy() Fuselage.Nose.Align = 0.7 Fuselage.Nose.SkinMat = Monokote.copy() Fuselage.Nose.StringerMat.LinearForceDensity = .001*LBF/IN Fuselage.Nose.FrontBulk.WeightGroup = 'Fuselage' # # Size the payload bay # Fuselage.PyldBay.FrontBulk.Width = 6.0*IN Fuselage.PyldBay.FrontBulk.Height = 8.25*IN Fuselage.PyldBay.BackBulk.Width = 6.0*IN Fuselage.PyldBay.BackBulk.Height = 8.25*IN
from __future__ import division # let 5/2 = 2.5 rather than 2 from scalar.units import IN, LBF, SLUG, FT, GRAM, gacc, OZF from scalar.units import AsUnit from Aerothon.ACFuselage import ACFuselage from Aircraft_Models.Reg2014Aircraft_AeroCats.Structures.Materials import BalsaBH, ACPlyBH, ACPlySkin, BassStringer, BalsaStringer, Monokote, Steel Fuselage = ACFuselage() # # Create the sections of the fuselage # Fuselage.AddSection('Nose', 9 * IN, -1) Fuselage.AddSection('PyldBay', 5 * IN, -1) Fuselage.AddSection('Tail') # # Size the engine fire wall # Fuselage.Nose.FrontBulk.Width = 3 * IN Fuselage.Nose.FrontBulk.Height = 3 * IN Fuselage.Nose.FrontBulk.Material = ACPlyBH.copy() Fuselage.Nose.Align = 1 Fuselage.Nose.SkinMat = Monokote.copy() Fuselage.Nose.StringerMat.LinearForceDensity = .001 * LBF / IN Fuselage.Nose.FrontBulk.WeightGroup = 'Fuselage' # # Size the payload bay # Fuselage.PyldBay.FrontBulk.Width = 6 * IN Fuselage.PyldBay.FrontBulk.Height = 6 * IN Fuselage.PyldBay.BackBulk.Width = 6 * IN Fuselage.PyldBay.BackBulk.Height = 6 * IN