setinfo? needs to put selectof(xy.data) into xy.abc into manymany.htm.... Comments appreciated: Bob Hanson home page manymany.htm multitype=0 multipt=3 new Array A[1] function getabcinfo(sinfo,stype,sdef) { var s=sdef var i=sinfo.indexOf(stype+"=") if(i>=0)s=sinfo.substring(i+2,sinfo.indexOf(i,";")) return s } function getabc() { // sinkrate = A0*V*V/sqr(Wingload) + B0*V + C0*sqr(Wingload)\ // or, more generally, A0=A[2] B0=A[1] C0=A[0] and // sinkrate/sqr(Load) = SUM A[i]*(V/sqr(Load)^i //data format: // A[n] A[n-1] ... A[0];vu=km/hr;vsu=m/s;deg=2;wld=350 N/m2;gwt=800 kg var xy=parent.CALC_xy.document.info sdsrc=xy.data[xy.data.selectedIndex].text var sinfo=xy.abc+";" if(sinfo.indexOf("par:")<0)sinfo="par="+sinfo var sabc=getabcinfo(sinfo,"par","0 0 0")+" 0 " var svunits=getabcinfo(sinfo,"vu","km/h") var svsunits=getabcinfo(sinfo,"vsu","m/s") var ideg=eval(getabcinfo(sinfo,"deg","2")) var swingload=eval(getabcinfo(sinfo,"wld","")) var sgrosswt=eval(getabcinfo(sinfo,"gwt","")) getxy(sgrosswt) var igrosswt=eval(sx+"+0") wtOK=(igrosswt>0) var swtunits=(wtOK?sy:"N/m2") getxy(swingload) var iwingload=eval(sx+"+0") var swingunits=(iwingload?sy:"N/m2") var iwingload=(iwingload>0?iwingload:350) wingOK=1 xy.grosswt.value=(wtOK?sgrosswt:"0") xy.wingload.value=iwingload+" "+swingunits for(var i=ideg;i>=0;i--) { sabc=getxy(sabc) sabc=sy+" "+sabc A[i]=eval(sx) } var s=svunits+ " " + svsunits //table is set for 350 N/m2 wing loading var e=Math.pow(iwingload,0.5) for (var V=50;V<=200;V=V+2) { var ve=1 var vfac=V/e var sinkrate=0 for(var i=0;i<=ideg;i++) { sinkrate+=A[i]*ve ve*=vfac } sinkrate=sinkrate*e s+=" " + V + " " + sinkrate } return s } function windinfo(irange) { return "Wind from " + fixwind(hwdirec) + " @ " + Math.abs(hwval) + (irange==0?"":" +/-"+irange)+" " + hwunits } function getwinginfo(isloadchange) { ... var e=getvalue("wingloading") if (wingOK==0 && wtOK==0 || e<10) { putwinginfo() return "Relative Loading = " + e } ... } function putwinginfo() { var pt=(loadtype=="wingload"?0:1) var sselect="" var stext="" usr.selloadtype.selectedIndex=pt if (wingOK==0 && wtOK==0) { usr.wingloading.value=1 return } setwingunits() usr.wingloading.value=(pt==0?wingload:grosswt) var s=(pt==0?wingunits:wtunits) usr.wu.selectedIndex=finditem(usr.wu,s,"lb") } function analyzedata() { ... fval=1 if(wingload<10) { fval=wingload }else{ if(loadtype=="wingload" && wingOK)fval=wingload*toPascals(wingunits)/defwingload/toPascals(defwingunits) if(loadtype=="grosswt" && wtOK)fval=grosswt*toPascals(wtunits)/defgrosswt/toPascals(defwtunits) } ... } function dograph(gtype) { var irange=0 if(gtype<10) { multitype=gtype }else{ irange=gtype multipt=usr.thisaction.selectedIndex } var itype=multiplot var sinfo="" if(irange==15)sinfo="aob" if(irange==10)sinfo="wind" if(irange==20){irange=2;sinfo="vario"} if(irange==50)sinfo="wingloading" if(irange==15 && aob==0)usr.aob.value=45 parent.CALC_table.document.close() parent.CALC_table.document.open() getinfo(0) if (pt==0) return dofullanalysis() writetheresultsone() ...xlimit, ylimit stuff var s="" ...opening stuff (irange?usr.thisaction[multipt].text+" ":"")+swhat if(irange)s+="
+/-"+irange+" "+sinfo ... sloadinfo+(irange==50?" +/-50%":"")+'||\n' aob+(irange==15?" +/-15":"") lift+(irange==2?" +/-2":"") windinfo((irange==10?10:0)) ...isLD,isR,iswind stuff here ...need setting in doanalysis for wingloading<10 var sld="" if(irange) { var ival0=eval("usr."+sinfo+".value") var icolor=&H808080 for(i=-1;i<=3;i+=2) { var ival=(i==3?0:i) ival=ival0+ival*(irange==50?ival0/2:irange) eval("usr."+sinfo+".value="+ival) getinfo(0) dofullanalysis() writetheresultsone() if(ival>=0)icolor=i sld+=curveof(isLD,isR,iswind,icolor,ival) } }else{ sld=curveof(isLD,isR,iswind,0,0) } var sm=""+Math.random() newwin=open("","CALC_output_"+sm.substring(3,10)) newwin.document.write(s) sld+='' newwin.document.write(sld) s="