BoxWing.LowerWing.Aileron.SgnDup = -1. BoxWing.LowerWing.Aileron.Servo.Fc = 0.3 BoxWing.LowerWing.Aileron.Servo.Weight = 0.77*OZF ############################################################################### # # Structural properties # ############################################################################### #Lower Wing BoxWing.LowerWing.SetWeightCalc(ACRibWing) BoxWing.LowerWing.WingWeight.AddSpar("MainSpar",1.307*IN,1*IN) BoxWing.LowerWing.WingWeight.MainSpar.SparMat = Balsa.copy() #BoxWing.LowerWing.WingWeight.SparMat.LinearForceDensity = LsparFD + LDsparFD BoxWing.LowerWing.WingWeight.SkinMat = Monokote.copy() BoxWing.LowerWing.WingWeight.RibMat = BWRibMat BoxWing.LowerWing.WingWeight.RibSpace = 4*IN BoxWing.LowerWing.WingWeight.DrawDetail = True #Upper Wing BoxWing.UpperWing.SetWeightCalc(ACRibWing) BoxWing.UpperWing.WingWeight.AddSpar("MainSpar",1.307*IN,1*IN) BoxWing.UpperWing.WingWeight.MainSpar.SparMat = Balsa.copy() #BoxWing.UpperWing.WingWeight.SparMat.LinearForceDensity = UsparFD + UDsparFD BoxWing.UpperWing.WingWeight.SkinMat = Monokote.copy() BoxWing.UpperWing.WingWeight.RibMat = BWRibMat BoxWing.UpperWing.WingWeight.RibSpace = 4*IN BoxWing.UpperWing.WingWeight.DrawDetail = True #End Plate
from __future__ import division # let 5/2 = 2.5 rather than 2 from scalar.units import IN, LBF, SLUG, FT from Aerothon.ACBase import g from Aerothon.ACMaterial import ACMaterial from Aerothon.DefaultMaterialsLibrary import Steel, AircraftPly, Basswood, Monokote, Balsa # # Materials Set-up # Steel = Steel.copy() ACPly = AircraftPly.copy() Basswood = Basswood.copy() Monokote = Monokote.copy() Balsa = Balsa.copy() DivinicelFD = 0.00137 * LBF / IN**3 Fibre2Resin = 3 / 2 EpoxDens = 0.017316 * LBF / IN**3 XylonDens = 0.056 * LBF / IN**3 CompDens = 0.0404 * LBF / IN**3 ZylonCompFD = CompDens PlyThickness = 1 / 100 * IN / g ZylonCompAD = CompDens * PlyThickness ############################################################################### # Fuselage Materials ############################################################################### # Bulkhead Truss # 1/8 inch thick with 75% material cut out cutout = 0.9
# Spar taken as 1/8 inch width and thickness of the max thickness at the root # Basswood = Basswood.copy() BWRibMat = Balsa.copy() BWRibMat.Thickness = 3 / 32 * IN #HTail.SetWeightCalc(ACRibWing) #HTail.WingWeight.RibMat = BWRibMat #HTail.WingWeight.RibSpace = 3 * IN HTail.SetWeightCalc(ACSolidWing) HTail.WingWeight.WingMat = PinkFoam.copy() HTail.WingWeight.WingMat.ForceDensity *= 0.4 HTail.WingWeight.AddSpar("HMainSpar", 0.25 * IN, 0.5 * IN) HTail.WingWeight.HMainSpar.SparMat = CarbonBar.copy() HTail.WingWeight.SkinMat = Monokote.copy() #============================================================================== # Vertical tail # VTail = Aircraft.VTail VTail.Airfoil = 'NACA0012' VTail.VC = 0.040 VTail.AR = 1.95 VTail.TR = 0.7 VTail.Axis = (0, 1) VTail.L = 100.0 * IN #VTail.S = 100 * IN**2 #VTail.b = 10 * IN #
Wing.Refresh() # refresh so the thicknesses can be calculated Wthick = Wing.Thickness(0 * FT) sparFD = Basswood.ForceDensity * sparw * Wthick # Dspar density as balsa at 1/16in thick and the distance around the front of the airfoil # approximated as 2 times the airfoil thickness at the root DsparFD = Balsa.ForceDensity * 0.0625 * IN * 2.0 * Wthick # # Rib material (1/8in balsa) # BWRibMat = Balsa.copy() BWRibMat.Thickness = 0.125 * IN Wing.SetWeightCalc(ACRibWing) Wing.WingWeight.SkinMat = Monokote.copy() Wing.WingWeight.RibMat = BWRibMat Wing.WingWeight.RibSpace = 5 * IN #Wing.SetWeightCalc(ACSolidWing) #Wing.WingWeight.SparMat.LinearForceDensity = 0.0051*LBF/IN #Wing.WingWeight.SkinMat = Monokote.copy() #Wing.WingWeight.WingMat = PinkFoam.copy() #Wing.WingWeight.WingMat.ForceDensity *= 0.5 if __name__ == '__main__': import pylab as pyl print "V lift of : ", AsUnit(Wing.GetV_LO(), 'ft/s') print "V stall : ", AsUnit(Wing.V_Stall, 'ft/s') print "Wing Area : ", AsUnit(Wing.S, 'in**2')
Fuselage = ACFuselage() # # Create the sections of the fuselage # Fuselage.AddSection('Nose', 9.125 * IN, -1) Fuselage.AddSection('PyldBay', 26 * IN, -1) Fuselage.AddSection('PyldTaper', 8 * IN, -1) Fuselage.AddSection('Tail', 28 * IN, 1) # Size the engine fire wall # Fuselage.Nose.FrontBulk.Width = 3.0 * IN Fuselage.Nose.FrontBulk.Height = 4.0 * IN Fuselage.Nose.FrontBulk.Material = ACPlyBH.copy() Fuselage.Nose.Align = 0 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 Fuselage.PyldBay.FrontBulk.Material = ACPlyBH.copy() Fuselage.PyldBay.BackBulk.Material = ACPlyBH.copy() Fuselage.PyldBay.SkinMat = Monokote.copy() Fuselage.PyldBay.StringerMat.LinearForceDensity = 0.01 * LBF / IN Fuselage.PyldBay.FrontBulk.WeightGroup = 'Fuselage' Fuselage.PyldBay.BackBulk.WeightGroup = 'Fuselage'