def run_test1(): import aircraft_FW ac = aircraft_FW.load('X47B') print ac.designGoals.fuelMass print ac.get_mass_fuel() ac.get_mission_fuel() print ac.designGoals.fuelMass print ac.get_mass_fuel() #ac.display() slf =SteadyLevelFlight(ac) #alt = ac.designGoals.cruiseAltitude alt = 1e4 print 'MAXIMUM SPEED' print slf.run_max_TAS(alt) print 'MINIMUM SPEED' print slf.run_min_TAS(alt) print 'MAXIMUM SAR' print slf.run_max_SAR(alt) print 'MINIMUM FUEL' print slf.run_min_fuel(alt) ac.mass.fuel.set_fuel_fraction(0.5) clm = ClimbDescent(ac) print 'MAXIMUM CLIMB RATE' print clm.run_max_climb_rate(0) print 'MOST ECONOMICAL CLIMB' print clm.run_most_economical_climb(0) print 'SERVICE CEILING' print clm.get_service_ceiling() print 'ABSOLUTE CEILING' print clm.get_absolute_ceiling()
def run_mission_B11(ac=None): """ maximum cruise range """ if ac==None: ac = aircraft_FW.load('X45C') #ac.mass.payload.remove_item('drop payload') slf = Cruise(ac) clm = Climb(ac) # -- mission inputs -- altField = 0.0 altCruise = 1.0e4 timeReserve = 1800.0 # 30min Wf0 = ac.mass.fuel.mass # -- assumptions -- fuelReserveStart = 0.1*Wf0 # climb climb1 = clm.run_climb(altField, altCruise,Wf0) #climb1.display('Climb 1') # reserve fuel reserve = slf.run_maximum_endurance_fuel(altField,fuelReserveStart,timeReserve) #reserve.display('Reserve') WfReserve = reserve.fuelBurned + 0.05*Wf0 # cruise Wfcrs = Wf0 - climb1.fuelBurned cruise = slf.run_maximum_range(altCruise,Wfcrs,WfReserve) #cruise.display('Cruise') Range = climb1.distance + cruise.distance #print Range/1e3 return Range
def create_input_files2(): import aircraft_FW ac = aircraft_FW.load('aeroValidation',False) name = 'aeroValidation' CG = [0.2,0,0] yplus = .5 wdir = 'D:\sync_Maxim' alpha = [0,2,4,8,12] niter = 5000 batFile = 'run_cfd_batch2.bat' pathFluent = r'C:\Program Files\Ansys Inc\v130\fluent\ntbin\win64\fluent.exe' igsPath = '%s.igs'%name symCasPath = '%s_sym.cas'%name nonsymCasPath = '%s_half.cas'%name glfPath = '%s.glf'%name create_fw_cmesh(ac,igsPath,symCasPath,nonsymCasPath,yplus,glfPath) Sref = ac.wing.area/2.0 Cref = ac.wing.MAC fid = open(batFile,'wt') for a in alpha: outPrefix = '%s\\results\\%s_half_a%d'%(wdir,name,a*100) journalFileRel = '%s_half_a%d.jou'%(name, a*100) journalFile = '%s_half_a%d.jou'%(name, a*100) run_wing_half(nonsymCasPath, outPrefix, ac.designGoals.fc, a, 0, Sref, Cref, CG, journalFile,niter) fid.write('\"%s\" 3ddp -t8 -i %s -wait\n'%(pathFluent, journalFileRel)) fid.close()
def climb_test(): import aircraft_FW ac = aircraft_FW.load('X47B') clm = Climb(ac) results = clm.run_climb2(0,1e4,0.3,0.7) results.display() results2 = clm.run_climb(0,1e4) results2.display()
def run_test1(): ac = aircraft_FW.load('X45C') #bi = BasicInput(ac) fm = FlightMechanics(ac) print fm.get_Vstall() print fm.get_EAS(100.,1.0) print fm.get_LDmax() print fm.get_V_LDmax() print fm.get_required_thrust(100,1e4)
def run_test1(): import aircraft_FW ac = aircraft_FW.load('Baseline1') print ac.get_mission_fuel() to = Takeoff(ac,0) print to.analyze() ldg = Landing(ac,0) print ldg.analyze()
def run_test1(): import aircraft_FW as aircraft ac = aircraft.load('Baseline1') aero = Aerodynamics(ac) fc = FlightConditionsAVL(ac,0.5,1e4) #results = aero.run_trim(fc) #results.display() results2 = aero.run_single_point(fc,0.0,2.0) results2.display()
def run_test2(): import matplotlib.pyplot as plt import numpy as np ac = aircraft_FW.load('X45C') #bi = BasicInput(ac) fm = FlightMechanics(ac) V = np.linspace(100,400,50) Treq = np.array([fm.get_required_thrust(v,10000)/1e3 for v in V]) plt.figure() plt.plot(V,Treq) plt.show()
def run_mission_B15(ac=None): """ air assault mission """ if ac==None: import aircraft_FW ac = aircraft_FW.load('X45C') #ac.display() # -- mission inputs -- altField = 0.0 altCruise = 1.0e4 altAttack = convert.ft_to_m(2000) distAttack = convert.nm_to_m(200) timeReserve = 1800.0 # 30min speedMaxAttack = convert.kt_to_msec(360) Wf0 = ac.mass.fuel.mass # -- assumptions -- fuelReserveStart = 0.1*Wf0 fuelAttackStart = 0.5*Wf0 # -- calculations -- slf = Cruise(ac) clm = Climb(ac) # reserve fuel reserve = slf.run_maximum_endurance_fuel(altField,fuelReserveStart,timeReserve) WfReserve = reserve.fuelBurned + 0.05*Wf0 # climb 1 climb1 = clm.run_climb(altField, altCruise,Wf0) # penetration-withdrawal penetration = slf.run_distance_at_speed(altAttack,speedMaxAttack,distAttack,fuelAttackStart) slf.drop_payload() withdrawal = slf.run_distance_at_speed(altAttack,speedMaxAttack,distAttack,penetration.fuelEnd) # climb 2 #clm.drop_payload() climb2 = clm.run_climb(altAttack,altCruise,withdrawal.fuelEnd) # maximum range Wfcrs = Wf0 - climb1.fuelBurned - penetration.fuelBurned - withdrawal.fuelBurned Wfcrs += - climb2.fuelBurned cruise = slf.run_maximum_range(altCruise,Wfcrs,WfReserve) # operational range operRange = climb1.distance + cruise.distance + penetration.distance operRange += withdrawal.distance + climb2.distance operRange *= 0.5 return operRange
def run_integrated_analysis(name=None, outputFile=None,detailedReport=True): if name==None: name = 'X47B' #name = str(raw_input('Enter aircraft name:\n')) if outputFile==None: outputFile = 'analysisReport_detailed.txt' #outputFile = str(raw_input('Enter output report textfile name:\n')) # initialize aircraft and report output report = db_tools.TextReport() report.write_line('%s aircraft integrated analysis output'%name) report.write_Header(str(datetime.datetime.now())) report.write_newline(2) ac = aircraft_FW.load(name) # mission fuel report.write_header_in_quotes('mission fuel') reportMis = get_mission_analysis_report(ac) report.write(reportMis) report.write_newline(2) # weight and balance report.write_header_in_quotes('weight and balance') reportWB = get_weight_report(ac,detailedReport) report.write(reportWB) report.write_newline(2) report.write_header_in_quotes('stability and control') reportSnC = get_stability_report(ac) report.write(reportSnC) report.write_newline(2) report.write_header_in_quotes('performance') reportPerf = get_performance_report(ac,detailedReport) reportPerf2 = get_max_range(ac) reportPerf3 = get_max_endurance(ac) report.write(reportPerf) report.write('\nMISSION PERFORMANCE\n'+'='*40+'\n') report.write(reportPerf2) report.write(reportPerf3) report.write('\nFIELD PERFORMANCE\n'+'='*40+'\n') reportField = field_performance_analysis(ac,detailedReport) report.write(reportField) report.save_to_file(outputFile,'wt') display_text_contents(outputFile)
def run_test1(): import aircraft_FW ac = aircraft_FW.load('X47B') ac.set_drag_method(0) #ac.display() slf =SteadyLevelFlight(ac) #alt = ac.designGoals.cruiseAltitude alt = 10000. print 'MAXIMUM SPEED' print slf.run_max_TAS(alt) print 'MINIMUM SPEED' print slf.run_min_TAS(alt) print 'MAXIMUM SAR' print slf.run_max_SAR(alt) print 'MINIMUM FUEL' print slf.run_min_fuel(alt) clm = ClimbDescent(ac) print 'MAXIMUM CLIMB RATE' print clm.run_max_climb_rate(0) print 'ECONOMICAL CLIMB' print clm.run_most_economical_climb(0)
def run_test1(): import aircraft_FW ac = aircraft_FW.load('Baseline1') print get_parasite_drag_fw(ac)
# penetration-withdrawal penetration = slf.run_distance_at_speed(altAttack,speedMaxAttack,distAttack,fuelAttackStart) slf.drop_payload() withdrawal = slf.run_distance_at_speed(altAttack,speedMaxAttack,distAttack,penetration.fuelEnd) # climb 2 #clm.drop_payload() climb2 = clm.run_climb(altAttack,altCruise,withdrawal.fuelEnd) # maximum range Wfcrs = Wf0 - climb1.fuelBurned - penetration.fuelBurned - withdrawal.fuelBurned Wfcrs += - climb2.fuelBurned cruise = slf.run_maximum_range(altCruise,Wfcrs,WfReserve) # operational range operRange = climb1.distance + cruise.distance + penetration.distance operRange += withdrawal.distance + climb2.distance operRange *= 0.5 return operRange if __name__=="__main__": name = 'X45C' ac = aircraft_FW.load(name) print run_mission_B15(ac)/1e3 ac = aircraft_FW.load(name) print run_mission_B11(ac)/1e3 ac = aircraft_FW.load(name) print run_mission_B10(ac)/1e3
return 0.0 def set_flight_conditions(self,velocity,altitude): """ setting flight conditions to be analyzed. Flight conditions are calculated using FlightConditions module. Reynolds number is calculated using ref length 1.0 that is stored in self.Re1 """ self.fc = FlightConditions(velocity,altitude) self.Re1 = self.fc.Re # Re for L=1 if __name__=="__main__": import aircraft_FW import matplotlib.pyplot as plt ac = aircraft_FW.load('X45C') wd = WaveDrag(ac.wing) fd = Friction(ac.wing.area) M = np.arange(0.1,1.01,0.01) cd = np.zeros(len(M)) for i,mach in enumerate(M): fd.set_flight_conditions(mach,10000) item = fd.analyze_wing(ac.wing,'main wing') cdf = item.CDtotal cdw = wd.analyze_wing(mach) cd[i] = cdw + cdf #print '%.4f\t%.6f\t%.6f'%(mach,cdw,cdf) plt.figure(1) plt.grid(True) plt.plot(M,cd,'b-') plt.xlabel('Mach')
print ac.get_mass_fuel() #ac.display() slf =SteadyLevelFlight(ac) #alt = ac.designGoals.cruiseAltitude alt = 1e4 print 'MAXIMUM SPEED' print slf.run_max_TAS(alt) print 'MINIMUM SPEED' print slf.run_min_TAS(alt) print 'MAXIMUM SAR' print slf.run_max_SAR(alt) print 'MINIMUM FUEL' print slf.run_min_fuel(alt) ac.mass.fuel.set_fuel_fraction(0.5) clm = ClimbDescent(ac) print 'MAXIMUM CLIMB RATE' print clm.run_max_climb_rate(0) print 'MOST ECONOMICAL CLIMB' print clm.run_most_economical_climb(0) print 'SERVICE CEILING' print clm.get_service_ceiling() print 'ABSOLUTE CEILING' print clm.get_absolute_ceiling() if __name__=="__main__": import aircraft_FW ac = aircraft_FW.load('X47B') point_performance_analysis(ac,0.0, None)
def run_test1(): import aircraft_FW ac = aircraft_FW.load('X47B') print run_mission_B11(ac)/1e3
def create_wing_db(ac=None, glfPath=None): if ac==None: ac = aircraft_FW.load('Baseline1') if glfPath==None: glfPath='tmp_glf1.glf' def get_section_data(wing, idx): ptsUp = wing.airfoils[idx].ptsUp ptsLo = wing.airfoils[idx].ptsLo apex = wing.secApex[idx] chord = wing.chords[idx] angle = wing.secAngles[idx] return ptsUp, ptsLo, apex, chord, angle def write_curve(fid1, nConnect, pts, apex, chord, angle, rotAxis=0.25, rev=False): if rev: pts = np.flipud(pts) apex = np.array([apex[0],apex[2],apex[1]]) pts = rotate_2d(pts, [rotAxis,0], angle) *chord pts = np.hstack([pts,np.zeros([len(pts),1])]) pts += apex for pt in pts: fid1.write(' $_TMP(PW_%d) addPoint {%.10f %.10f %.10f}\n'%(nConnect,pt[0], pt[1], pt[2])) fid = open(glfPath,'wt') fid.write('# Pointwise automation by Maxim Tyan 2014\n') fid.write('package require PWI_Glyph 2.17.2\n') fid.write('pw::Application setUndoMaximumLevels 5\n') fid.write('pw::Application reset\n') fid.write('pw::Application markUndoLevel {Journal Reset}\n') fid.write('pw::Application clearModified\n') fid.write('set _TMP(mode_1) [pw::Application begin Create]\n') fid.write(' set _TMP(PW_1) [pw::SegmentSpline create]\n') # 1st segment ptsUp, ptsLo, apex, chord, angle = get_section_data(ac.wing, 0) write_curve(fid, 1, ptsUp, apex, chord, angle,rev=True) fid.write(' $_TMP(PW_1) setSlope Akima\n') fid.write(' set _TMP(curve_1) [pw::Curve create]\n') fid.write(' $_TMP(curve_1) addSegment $_TMP(PW_1)\n') fid.write(' unset _TMP(PW_1)\n') fid.write('$_TMP(mode_1) end\n') fid.write('unset _TMP(mode_1)\n') fid.write('pw::Application markUndoLevel {Create Curve}\n') fid.write('unset _TMP(curve_1)\n') fid.write('set _TMP(mode_2) [pw::Application begin Create]\n') fid.write(' set _TMP(PW_2) [pw::SegmentSpline create]\n') fid.write(' set _DB(1) [pw::DatabaseEntity getByName "curve-1"]\n') fid.write(' $_TMP(PW_2) addPoint [list 1 0 $_DB(1)]\n') write_curve(fid, 2, ptsLo[1:-1], apex, chord, angle) fid.write(' $_TMP(PW_2) addPoint [list 0 0 $_DB(1)]\n') fid.write(' $_TMP(PW_2) setSlope Akima\n') fid.write(' set _TMP(curve_1) [pw::Curve create]\n') fid.write(' $_TMP(curve_1) addSegment $_TMP(PW_2)\n') fid.write(' unset _TMP(PW_2)\n') fid.write('$_TMP(mode_2) end\n') fid.write('unset _TMP(mode_2)\n') fid.write('pw::Application markUndoLevel {Create Curve}\n') # 2nd segment fid.write('unset _TMP(curve_1)\n') fid.write('set _TMP(mode_3) [pw::Application begin Create]\n') fid.write(' set _TMP(PW_3) [pw::SegmentSpline create]\n') ptsUp, ptsLo, apex, chord, angle = get_section_data(ac.wing, 1) write_curve(fid, 3, ptsUp, apex, chord, angle) fid.write(' $_TMP(PW_3) setSlope Akima\n') fid.write(' set _TMP(curve_1) [pw::Curve create]\n') fid.write(' $_TMP(curve_1) addSegment $_TMP(PW_3)\n') fid.write(' unset _TMP(PW_3)\n') fid.write('$_TMP(mode_3) end\n') fid.write('unset _TMP(mode_3)\n') fid.write('pw::Application markUndoLevel {Create Curve}\n') fid.write('unset _TMP(curve_1)\n') fid.write('set _TMP(mode_4) [pw::Application begin Create]\n') fid.write(' set _TMP(PW_4) [pw::SegmentSpline create]\n') fid.write(' set _DB(2) [pw::DatabaseEntity getByName "curve-3"]\n') fid.write(' $_TMP(PW_4) addPoint [list 0 0 $_DB(2)]\n') write_curve(fid, 4, ptsLo[1:-1], apex, chord, angle) fid.write(' $_TMP(PW_4) addPoint [list 1 0 $_DB(2)]\n') fid.write(' $_TMP(PW_4) setSlope Akima\n') fid.write(' set _TMP(curve_1) [pw::Curve create]\n') fid.write(' $_TMP(curve_1) addSegment $_TMP(PW_4)\n') fid.write(' unset _TMP(PW_4)\n') fid.write('$_TMP(mode_4) end\n') fid.write('unset _TMP(mode_4)\n') fid.write('pw::Application markUndoLevel {Create Curve}\n') fid.write('unset _TMP(curve_1)\n') fid.write(' set _TMP(mode_5) [pw::Application begin Create]\n') fid.write(' set _TMP(PW_5) [pw::SegmentSpline create]\n') # tip ptsUp, ptsLo, apex, chord, angle = get_section_data(ac.wing, 2) write_curve(fid, 5, ptsUp, apex, chord, angle) fid.write(' $_TMP(PW_5) setSlope Akima\n') fid.write(' set _TMP(curve_1) [pw::Curve create]\n') fid.write(' $_TMP(curve_1) addSegment $_TMP(PW_5)\n') fid.write(' unset _TMP(PW_5)\n') fid.write('$_TMP(mode_5) end\n') fid.write('unset _TMP(mode_5)\n') fid.write('pw::Application markUndoLevel {Create Curve}\n') fid.write('unset _TMP(curve_1)\n') fid.write('set _TMP(mode_6) [pw::Application begin Create]\n') fid.write(' set _TMP(PW_6) [pw::SegmentSpline create]\n') fid.write(' set _DB(3) [pw::DatabaseEntity getByName "curve-5"]\n') fid.write(' $_TMP(PW_6) addPoint [list 1 0 $_DB(3)]\n') write_curve(fid, 6, ptsLo[1:-1], apex, chord, angle,rev=True) fid.write('$_TMP(PW_6) addPoint [list 0 0 $_DB(3)]\n') fid.write('$_TMP(PW_6) setSlope Akima\n') fid.write('set _TMP(curve_1) [pw::Curve create]\n') fid.write('$_TMP(curve_1) addSegment $_TMP(PW_6)\n') fid.write('unset _TMP(PW_6)\n') fid.write('$_TMP(mode_6) end\n') fid.write('unset _TMP(mode_6)\n') fid.write('pw::Application markUndoLevel {Create Curve}\n') fid2 = open('./templates/fw_db_automation_surface.txt','rt') for line in fid2: fid.write(line) fid2.close() fid.close()
def create_fw_cmesh(ac=None,igsPath=None,casPathSym=None, casPathNonsym=None, yplus=.5, glfPath=None): if ac==None: ac = aircraft_FW.load('Baseline1') if igsPath==None: igsPath = r'E:/1. Current work/2014 - UAV performance code/CFD automation/fw3.igs' if casPathSym==None: casPathSym = 'fw_case_sym.cas' if casPathNonsym==None: casPathNonsym = 'fw_case_nonsym.cas' if glfPath==None: glfPath='dbg_cmesh.glf' create_wing_db(ac,glfPath) fid = open('./templates/fw_automation.glf') lines = fid.readlines() fid.close() #print ac.get_cg() nWallChord = 65 nWallSeg1 = 30 nWallSeg2 = 31 nWallTip = 8 nFFx = 46 nFFy = 75 nFFz = 46 #yplus = 0.5 dsLE = 2e-3 dsFFy = 1e-3 dsTopAft = 1e-2 dsTopFront = 1e-2 dsZ = 1e-3 # igs input file #lines[14] = ' $_TMP(mode_1) initialize -type Automatic {%s}\n'%igsPath # wing tip tc = ac.wing.airfoils[-1].thickness tc *= ac.wing.chords[-1] / 2. sweep = ac.wing.segSweepLErad[-1] + np.radians(5) pt1offset = np.array([tc*np.tan(sweep), 0, tc]) pt2offset = np.array([0, 0, tc]) create_wing_db(ac,glfPath) dl = 34 lines[40-dl] = ' $_TMP(PW_2) addPoint [pwu::Vector3 add [pw::Application getXYZ [$_CN(1) getPosition -arc 0]] {%.6f %.6f %.6f}]\n'%(pt1offset[0], pt1offset[1],pt1offset[2]) lines[53-dl] = ' $_TMP(PW_3) addPoint [pwu::Vector3 add [pw::Application getXYZ [$_CN(1) getPosition -arc 1]] {%.6f %.6f %.6f}]\n'%(pt2offset[0], pt2offset[1],pt2offset[2]) # ff aft span = ac.wing.span + tc lines[186-dl] = ' $_TMP(PW_13) addPoint [pwu::Vector3 add [$_CN(11) getPosition -arc 1] {0 0 %.6f}]\n'%span lines[198-dl] = ' $_TMP(PW_14) addPoint [pwu::Vector3 add [$_CN(13) getPosition -arc 1] {0 0 %.6f}]\n'%span lines[211-dl] = ' $_TMP(PW_15) addPoint [pwu::Vector3 add [$_CN(12) getPosition -arc 1] {0 0 %.6f}]\n'%span # number of points lines[380-dl] = '$_TMP(PW_28) do setDimension %d\n'%nWallChord lines[387-dl] = '$_TMP(PW_29) do setDimension %d\n'%nWallSeg1 lines[394-dl] = '$_TMP(PW_30) do setDimension %d\n'%nWallSeg2 lines[401-dl] = '$_TMP(PW_31) do setDimension %d\n'%nWallTip lines[408-dl] = '$_TMP(PW_32) do setDimension %d\n'%(nWallSeg1+nWallSeg2+nWallTip-2) lines[416-dl] = '$_TMP(PW_33) do setDimension %d\n'%nFFx lines[424-dl] = '$_TMP(PW_34) do setDimension %d\n'%nFFy lines[432-dl] = '$_TMP(PW_35) do setDimension %d\n'%nFFz lines[439-dl] = '$_TMP(PW_36) do setDimension %d\n'%(2*nWallChord-1) lines[446-dl] = '$_TMP(PW_37) do setDimension %d\n'%nFFz # wall spacing BL ds1 = ac.designGoals.fc.get_wall_spacing(yplus) cr = ac.wing.chords[0] ct = ac.wing.chords[-1] #FIXME: high taper ratio caused negative jacobean, so it is decided # temporarily assume yplus at MAC for all wing cr = ac.wing.MAC ct = ac.wing.MAC lines[453-dl] = ' $_TMP(PW_38) setBeginSpacing %.6e\n'%(ds1*cr) lines[456-dl] = ' $_TMP(PW_39) setBeginSpacing %.6e\n'%(ds1*cr) lines[464-dl] = ' $_TMP(PW_40) setBeginSpacing %.6e\n'%(ds1*ct) lines[467-dl] = ' $_TMP(PW_41) setBeginSpacing %.6e\n'%(ds1*ct) # leading/trailing edge spacing c2 = ac.wing.chords[1] dsLEr = dsLE*cr dsLE2 = dsLE*c2 dsLEt = dsLE*ct lines[551-dl] = ' $_TMP(PW_59) setBeginSpacing %.10f\n'%(dsLEr) lines[554-dl] = ' $_TMP(PW_60) setEndSpacing %.10f\n'%(dsLEr) lines[557-dl] = ' $_TMP(PW_61) setBeginSpacing %.10f\n'%(dsLEr) lines[560-dl] = ' $_TMP(PW_62) setEndSpacing %.10f\n'%(dsLEr) lines[568-dl] = ' $_TMP(PW_63) setBeginSpacing %.10f\n'%(dsLE2) lines[571-dl] = ' $_TMP(PW_64) setEndSpacing %.10f\n'%(dsLE2) lines[574-dl] = ' $_TMP(PW_65) setBeginSpacing %.10f\n'%(dsLE2) lines[577-dl] = ' $_TMP(PW_66) setEndSpacing %.10f\n'%(dsLE2) lines[585-dl] = ' $_TMP(PW_67) setBeginSpacing %.10f\n'%(dsLEt) lines[588-dl] = ' $_TMP(PW_68) setEndSpacing %.10f\n'%(dsLEt) lines[591-dl] = ' $_TMP(PW_69) setBeginSpacing %.10f\n'%(dsLEt) lines[594-dl] = ' $_TMP(PW_70) setEndSpacing %.10f\n'%(dsLEt) lines[597-dl] = ' $_TMP(PW_71) setBeginSpacing %.10f\n'%(dsLEt) lines[600-dl] = ' $_TMP(PW_72) setEndSpacing %.10f\n'%(dsLEt) lines[608-dl] = ' $_TMP(PW_73) setEndSpacing %.10f\n'%(dsLEt) # case file export lines[1089] = ' $_TMP(mode_1) initialize -type CAE {%s}\n'%casPathNonsym lines[1113] = ' $_TMP(mode_4) initialize -type CAE {%s}\n'%casPathSym #glfPath = os.path.abspath('temp/new.glf') fid = open(glfPath,'at') for line in lines: fid.write(line) fid.close() #print glfPath os.system('\"%s\"'%glfPath)