ࡱ> 0y~/  !"#$%&'()*+,-.T2345689:D<=>?@ABC7EFGHIJKLMNOPQRSVaXYZ[\]^_`Ubcdefghijklmnopqrstuvwxz{|}~Root Entry1WorkbookfY_VBA_PROJECT_CUR" 1CC 1CCVBA 1CC 1CC \pUWAL Super Crew Ba= ThisWorkbook=~6 8X@"1 MS Serif1 MS Serif1 MS Serif1 MS Serif1 MS Serif1Arial1Symbol1Arial1Arial1Arial1Arial1xArial1Arial1PArial1Arial1Arial1Arial1Arial1Arial1 MS Serif1Arial1 MS Serif1Arial"$"#,##0_);\("$"#,##0\)!"$"#,##0_);[Red]\("$"#,##0\)""$"#,##0.00_);\("$"#,##0.00\)'""$"#,##0.00_);[Red]\("$"#,##0.00\)7*2_("$"* #,##0_);_("$"* \(#,##0\);_("$"* "-"_);_(@_).))_(* #,##0_);_(* \(#,##0\);_(* "-"_);_(@_)?,:_("$"* #,##0.00_);_("$"* \(#,##0.00\);_("$"* "-"??_);_(@_)6+1_(* #,##0.00_);_(* \(#,##0.00\);_(* "-"??_);_(@_).00 .0000.0 0000 0.000 .0000.0;; .00000 .000000 .0000000 0.00000 0.000000 0.0000m/d dd\-mmm\-yymmmm\ d\,\ yyyy83_(* #,##0.000_);_(* \(#,##0.000\);_(* "-"??_);_(@_):5_(* #,##0.0000_);_(* \(#,##0.0000\);_(* "-"??_);_(@_)<7_(* #,##0.00000_);_(* \(#,##0.00000\);_(* "-"??_);_(@_)                + ) , *  8@ @ 8p @ 8p @ 8@  8@ 8@  8p @  8p @  <@ @  8     (@  "8w@   (   (p  "8@   (     8p@  8p  1 [ cc  (( ,  dMbP?_*+%&C&"Arial,Regular"&A&?'?)?MObi-WanP  oVXXLetterPDell Laser Printer 3000cn PCL6Nh@ dH Times New Romanp_0"VXX??U} *&} &} &} *&}  &} U &} *&} &} U &} &} &(XP@@@@@@@@ @ @ @ @ @@@@@@@@@@@@@@@@@@@ G.HHIHHHJKLMMMMMMNNNNO,Q%%%%%%%%RR%%%%%STTU0VWWXXXXXXYYXXXXXXXXZ[ V.WWXXXXXXYYXZXXXXXXZ[0VWWXXWWWWWWXYXXXXXXZ[ V.WWXXWWWWWWXXXXXXXXZ[0VXXWWWWWWWWXXXXXXXXZ[ V.XXWWWWWWWWXXXXXXXXZ[0VXXWWWWWWWWXXXXXXXXZ[ V. XXWWWWWWWWXXXXXXXXZ[0 VXXWWWWWWWWXXXXXXXXZ[0 VXXWWWWWWWWXXXXXXXXZ[0 VXXWWWWWWWWXXXXXXXXZ[0 VXXWWWWWWWWXXXXXXXXZ[0VXXWWWWWWWWXXXXXXXXZ[0VXXWWWWWWWWXXXXXXXXZ[0VXXWWWWWWWWXXXXXXXXZ[0VXXWWWWWWWWXXXXXXXXZ[0VX\WXXXXXXXXZ[0VXXWWWWWWXXXXXXXXZ[0VXXWWWWWWXXXXXXXXZ[0VXXWWWWWWWXXXXXXXXZ[0VXXWWWWWWWXXXXXXXXZ[0VXXWWWWWWWXXXXXXXXZ[0VXXWWWWWWWXXXXXXXXZ[0VXXWWWWWWWWZZZZZZZZZ[0VXXWWWWWWWWZZYZZZZZZ[0VXXWWWWWWWWZZYZZZZZZ[0VXXWWWWWWWWZZYZZZZZZ[0VXXWWWWWWWWZZZZZZZZZ[0VXWWWXZZZZ[0VXXWXWWWWWXZZZZZZZZZ[DB l@:4@4@4@4@444444444444444444444 @!@"@#@$@%@&@'@0 VXXWWWWWWWXZZZZZZZZZ[0!VXXWWWWWWWWZZZZZZZZZ[0"VXXWWWWWWWWZZZZZZZZZ[0#VXXWWWWWWWWZZZZZZZZZ[0$VXXZZZZZZZZZZZZZZZZZ[%4555 %6 %778 %6% 7777 % 6 %E9 %6 %777 %: &F &<>> &;$ &<<@ &<& =>>< & ; &A> &;&AA<?0'44444>@***7 Sheet1  #c3BD  dMbP?_*+%&C&"Arial,Regular"&A&?'?)?MObi-WanP  oYXXLetterPDell Laser Printer 3000cn PCL6Nh@ dH Times New Romanp_0"YXX??U} &} &} U&} &} U&} %} %} &#u@@@@@@@@ @ @ @ @ @@@@@@@@@@@@@@@@@@@          ghhhf   !""""""##  !  !  !!!ijjjk~ $`@~ r?.stttttttuuuuuvwxxxyzr@ L.{|}}}}}~z'@ b (!cccccd  )"  )  )  )  ))mnnno~ *v@'@~ b @ (cccccd  )'  )&  )  )  ))mnnno *'@ b(cccccd  )  )  )  ))  ))pqqql *'@ b(cccccd  )  )  )  )*  ))mnnno *'@  b(ccccc d#  )  )  )  )+  ))pqqql * ' @  b" ( ccccc d# )" ), ) ) ) )mnnno * '"@  b ( cccccd ) ) ) ) )% )pqqql * '$@~ b"@ ( eeeeed )' )& ) ) ) )mnnno *0 +,,,,,,,,,,,,,,,,,,,- . `- `/00/0///// 1  ////2&.//////////////1 B/2&.3/////////////1 C( 3. B/20.////////////1C/B/20.////////////1C/D/20.//////////////1C/D/20.//////////////1^YB/20.//////////////1CYB/2&a``////////////1 B/2a///////////1 B/2&a``////////////1 B/2&a``////////////1 //20a``////////////1C///20a``////////////1C///20.//////////////1CY//20.//////////////1C//20.//////////////1C//20.//00//////////1C///20.///////////////////2Dlb@h4^:V44444:<::444444 @!@" 4555 6 778 6 7777 6 E9 6 777 : !F !<>> !;$ !<<@ !<! =>>< ! ; !A> !;!AA<?0"999999999999999999999 (   9>@Z    7 Sheet3  #8KWX  dMbP?_*+%&C&"Arial,Regular"&A&?'?)?M\\ACKBAR\R2D2nter 1710n XX⤗Dell Laser Printer 1710nR2D26Dell Laser Printer 1710n  C s(*#>/A>⤗ XX <⤗"YXX??U} &} &} U&} &} U&} %} %} &#u@@@@@@@@ @ @ @ @ @@@@@@@@@@@@@@@@@@@          ghhhf   !""""""##  !  !  !!!ijjjk~ $`@~ '?.b(cccccd)))))))))))*'@  L.b(cccccd)))))))))))*'@.b(cccccd)))))))))))*'@.b(cccccd)))))))))))*'@.b(cccccd)))))))))))*'@.b(cccccd)))))))))))*'@ .b(cccccd)))))))))))* ' @ . b(cccccd)))))))))))* '"@ . b(cccccd)))))))))))* '$@ D . b(eeeeed)))))))))))*0 +,,,,,,,,,,,,,,,,,,,-$ .//000/0///// 1  ////2&.//////////////1 B/2&.3/////////////1 C( 3. B/20.////////////1C3B/20.////////////1C/D/20.//////////////1C]D/20.//////////////1^_B/20.//////////////1C]B/20a``////////////1C/B/20a``////////////1C/B/20a``////////////1C/B/20a``////////////1C///20a``////////////1C///20a``////////////1C///20.//////////////1C]//20.//////////////1C//20.//////////////1C//20.//00//////////1C///20.///////////////////2D> lb@hQQQQQQQU4J:V444444444444444 @!@" 4555 6 778 6 7777 6 E9 6 777 : !F !<>> !;$ !<<@ !<! =>>< ! ; !A> !;!AA<?0"999999999999999999999 (  9>@ 7 Sheet2 Sheet2 ThisWorkbookSheet1 usfConstants ;8 !"#$%&'()*+,-./12356789:;<=>?@BCDFGHIJKLMN'Ҽ#xME (SLSS<N0{00020820-0000-0000-C000-000000000046}@(%H@0KxAttribute VB_Name = "She@et2" Bast0{00020820- C$0046} |Global!SpacFalse dCreatablPre declaIdTru BExposeTemplateDeriv$Bustom izD2'6#xME (SLSS<N0{00020819-0000-0000-C000-000000000046}@(%H@0KxAttribute VB_Name = "ThisWorkbook" Bas0{00020P819-0C$0046} |GlobalSpacFalse dCreatablPredeclaIdTru BExposeTemplateDerivBustomizD2'#xME (SLSS<N0{00020820-0000-0000-C000-000000000046}@(%H@0KxAttribute VB_Name = "She@et1" Bast0{00020820- C$0046} |Global!SpacFalse dCreatablPre declaIdTru BExposeTemplateDeriv$Bustom izD2--------------------------------------------------------------------------- Declarations:ys]pAR----------------------------------------------------------------------------------'$ " &!(  " $,$ * " &%.$ * " &%.$ * $   " +,m* Left justify the name and pad with spaces'$k( "% Save the new names if there are any. $A0kA@2o 6!8Updated%Do you wish to throw out all changes? < Choose Wisely$: >GA@2jd@A@2k0o(] 8P+ Check to make sure the name is acceptable: J!d$ *$ H$ 'B Check for blank name B$ *Great taste, less filling.'L7The name you entered is blank and just won't do fer us.'N N P LA@:x|k D B B D$ $ H$R'F F_K-K0K1K2K3K4K5K6K7K8K9KT 9 Character is either _ or - or 0,1,2,3,4,5,6,7,8,0 = okayANZMT uppercase letters = 65 to 90  Bad characterBad Taste in Names'L=Sorry, but the specified name does not meet UWAL standards. 'N N2Try something with numbers, letters, and/or the _ 'N N P LA@:|n D+ Update the list of names with the new name B &!T &,.N Use the tag property let us display a warning later about loosing all changesUpdated 6(84 Provide a new blank slot to enter another name into &!T &!( GBLANK &B@Vj$ Move the highlighted name down one: &!T &!( G &!T &(Tjo0h &!d$ * J(dIndex =  &!T   Z(\ Put thL'xME(SPSSS0{DCF19746-A7E6-41CB-B35C-DFAA04192FCA}{599C98BF-257F-4493-A970-41E4CF9101B3}(`  `"x`$gs 4 @h--`B `D`F$ * X d55`"`f 0KK`v`x`"`z`| ~ ``fPH %xP %bb0h0 P K   " X x X  4 rP    , ( 0 8 "@ HX`  " 2"0  Xx"@  "8`Jh @ 2 0 H Fh @       2(`  Tx  :2(  *`4  "   *  $  H Xh " X  X h p  T    8 @ P  (X P  > (  `0 ^    8  H  X h 6      8   8  ,H $x * "  " h h \ H `x d (  @ >` *&n8     >0@X"h   .    .0` x V    : F`    88  Pp  0  x]]0R-------e focus on the edit box JB@^ J(` J!d J(boxR---------------------------------------------------------------------------------- Declarations:]R----------------------------------------------------------------------------------AhCONNAMES j'fM If the dr directory is available, then store the values there, otherwise use the online directory l Not Available nOnline\'d l\'k! Check to see if the file exists.J Otherwise copy the original connames file from the application directory: $~%\\ACKBAR\VBCODE\DR\FORCE\CONNAMES.LST  fA@pkY We're not showing all the usual names, so we have this offset from the listbox listindexX to the actual position in the CONNAMES file. So the first available new spot in a test will be 62.='1 Clear out the list & text box before we proceed: J(d &B@r "> t "$,$*BLANK "$,$* "$, &B@Vk( "1 Add a blank entry so the user can add a new nameBLANK &B@V &(T% Check this part for read-only issuesIf TestIsReadOnly = True Then# txtNonStdVarName.Enabled = False cmdAccept.Enabled = FalseEnd Ifoa This code taken mostly from the Force. Had to be modified to work inside the runlog. The wholea goal is to allow the runlog content to be extracted from the runlog when there is no final data.V before I put in these modifications there was some massive shinanigans to get it out. -SI 2/2007 Declarations:]Xp]]x]]=============================================================================================CONNAMES j'f SAVE CONSTANT NAMES:7 Check for duplicate names inside the ConstNames array: " t "$,'| z " t | z$, |BLANK Duplicate Constant Name Found!'L There are two entries for name ' |9' No duplicates allowed. Aborting update of data names.'N N P LA@:|8k0 z "8 Open the old drnames ASCII file and start a binary file$'x  f x$'v  NAMES.TMP v ~' Copy the old file into a binary format'" x$b x | |$ *'~ " '" v " ~ xV' Find the index number for the old name " t z " v$ ~ P Get a line from the old file (even though we're grabbing it from a binary file) v z ~ ~= "4 Found the old slot for the name, write the new name "$, !@@@@@@@@$ $ H =  "!@@@$'| | ~ v z ~y( k z "1 Start fresh by writing over the old drnames file  f x " v$ ~ v " ~ x ~ ") Close the files and delete the temp file xVF vVF  NAMES.TMPA@o ȷAttribute VB_Name = "usfConstants" Bas0{DCF19746-A7E6-41CB-B35C-DFAA04192FCA}{599C98BF-257F-4493-A970^E4CF9101B3} dGlobalSpacAoFalse CreatablPredeclaIdTru BExpose0Template DerivCu@stomizD Option 1licit @ Dim jIndexOffset As In tegerDRsPathSng PDH Sub cmdAccept_C0k() L'-N DSay5s:432, Upd@)Requi@_D(MsCL= wAGCFor@]a1 To lstDB].ListCounl If Trim$(g( Ir+)) <>D (J- 1 Then#`@,Left$(#[& "", 8) '  jify the n~and paPd wi Nsns/+n*i EIfCNextC!@' Save#eBws ifre t any.c- K%Call %#Hid9~ !fphRejeclhc`lP.Tag@/"d " +@MsgBox("Do you )sh torow out changes?1vbYesNo, "Cho Wisely") bB ,EB%.d/ /AwAXAtS, CharPosvacCodec$'eck!mak0e su9Jis aB$F=bQ0$(UC`YtxtNonStdV$ar.TI))WfyblankJc`1cc% !*F"-65Tit"G! taste, less filling. ӥ.Mag"`? =e`#ail won't do fer us E d , v(bEx@mb, !ExitO#\!7= bLxen(F ' B9=ŀ9cMid o;A6 ,qJteQSel2 parq95, 418p9, 5001020304056p7$`aracteSH_ @-A0,1,2,3,4,5,6,7,8,02okays Is < 6C> 90Ou ppercq leJt`s65+90BP:#aT# in}15#Sorr8y, pA2pe0cifiBXdoes not meUWAL Adards. (g^Try someth+\numbersˁ-,Vd/ Q:_^))l U q)BW"#3aT*-Y'dl0x ofb6s REcsov@0Ьqt]pro!ty@Bt: disy a warnr ab\l0[1X]/cdC' Provin0 Csl0c"E`o rFintoM_,b dAddItem "BLA$NK Mozhi(ghl0tW*wn0 one\stC+`H<# s==|b%ub| nCoe`eOgSYlabe"s.Cap &+ '!ut/focused`_box^ SetFsZStartMelpbgPxn(w Usergm_Activ0~(_ϾC'_ _er@lAsFile"Vc_SrOpenThisTes  $CONNAMELS"$Q ExJ' 6KdrIrxo_ravai *VlncovalupePr"EwNP\ ' the online directory If DRPath = "Not Available" ThenRDRConstNameBs`Test&H "O\"`Exlsett82n0d If4' Check to see iffile exiPsts.'Orwise copyriginaRlnnY fromapplicationF:(ir(x)+ FGC:("\\ACKBAR\VBCODE\DR\FORCE\CONNAMES.LST"), , & (X )FEWe're not showing alblkusuyx, so we haveis o@ffset @l!Qbox inXdexCoactAposiIin3BT. SC first aŏ new sp( a twi@+be 62+DpI OC(= 61 Clear outB ,L text 0be foD;proceedrtxtNonStdVar9.TA @ls tDatas.ÂIFor B%} 62 ToiAr0rayLTr(im(p( )) <> "BLANK" And  M (AddItem- NN:!'  a blank `entryD!user can add 7I2wD LL" (0F{hRparRA-read-y issues#'+GIsRBy True'S=EndFa!cmdAc`cept.S( !Sub !9 Si<`t F'codlaken mostLlym Ice eH ad@_modifiework` insi r`unlog whol@' go{ }owaCat@9d >r@w &}w `e lno xAd`` q' hI pm}`ccswasFme massi shniga"n@o gitv -SI 2/2007d: DePclarsuD@im NewN um Asoteger, OldC cL "2hÇ@hpStra, TempL@c * 12DV! DRabA'=?5c pN["0S1 ExtI' SAVE PSTANu#sgu(+w aQT1TaK%=M A2=x + _AC(esS2ZaY&sZ")F5M`sgTitPDC6"ant " Found!df@essage "=8a0twoXies "&' KNoGs1owedBAbodrtaupaFx1.(evb/oughgrabg 5.2@ QIn@n6', "La""0O qM 8slo, writ@bDYUCasel$( ,$ !@"Z`PrlB/c\T"lMid$1, 14) $O*qɿ42Q ?Q"?QॱxNfres0h bya]ovP--eR$#NaNstNamesFilen For Output As OlddNum Index = 1 To L@OF(NewR) / Len(TempLine)j| Get #R, , *)pPrin+ $NHext> 6' Close the fs and delett/-#1: P:Kill DRConPath & "NAMES.TMP"BE7Sub vbSubRoutines W__SRP_20__SRP_34 vbDigitalRunLog < B & $H p,@ ( " 08P.`* R(@HP h 0  ( H Xh x < N`x  B  d V J` X d p x t H \H   f \nexMEP<<86 <<<+p``` `..iiii0i `````@ @ +`8 yyi` ```"``` `@KKi`iii``` ``\RUN x----  (`LLiest )8 EU i @ `D` fil`"ing.`.`` ` .EU hh`FF  `i  onl %`` S` ile:`F``"`'K`6 N`"der `$o ch`& A`(`*`,t 8 `. s th`0 ss 2j V 4============ 6====% : % `@DataP p  R8 ` !!i\sn't`or a`^ ``ue i  `x iBn `"S.XX b ` 77idA ``: `f The`hU `j ski`lt co n beg X 0 ` !!i inde)@ n in ( `====`====`====````   Xp ` {{`he F`he O`|  %``ATNA` 8%` `+ ` --iists@%``"L`oade 8t lo%` loc` % `66`le n`le: ``|`` (  0 8 hpp %`K(*\Rffff*0?4addcd70\3$*\Rffff*0>4addcd70$*\Rffff*0?4addcd700 d8  d RX  $ 8 ( >0 p x   "   b h     . < ( 8  H  X h 8 8  X P P`    . (0 8 PH 6 VL82,  .0`$p8>  0 @P8h 8  P @ P h .   R 60 hTxJ, PX `" h dp d 4@ dx  d Zx"08 .Hx   2 4 (8@ HP `px      d H"  08@ H HXdBH  " d v( d   (8 dP FB 8H&    J ,@p x   "  d ^ ^x V l0! d! "& "H"`"x" d" " H#H# P#`# &p## ## # 0#$ $  8$  P$ (`$$ $$$ $ $$&%0%@%`%p% Lx%%%% &&& 8&P& X&h& p&&&&&& & (& & R'X'h' p' x'' ' "' d' $(0(*P((((((()  &0) X)h)\)H)0*H*P*X*  `** f*"+ "(+ "P+ x++ .+ + j+ P, h,p,x,  $,$,,Z,H-`-h-p-  x--R-. J . p... . ,. . f`////00 0 "  0 d(0 z0 b1 dx1 112202P2p2X22223 d3 Zx333*4 :04p44  44"4  25H5 &`555 5 555 5 T5(6 (@6h66  26H6 .7@7 `7 07 ,7 .7 68 @H8 :8 48 B9 H9`9 x9 *9 99&9 .:8:X:"`: 8:: : 6: ; ; (;8; H@;; (;\;:<"X< B< B<  *=@=  ^`==  D= > .0>6`> N>>? <?P? 0`???? p?8@P@X@ x@ @$F@$A$ A$(A 8A @APAXA `A PpAA A  A A B (BHBhBBCC 6C NPCC C.CC D L *D HD ,PD D  D  0D D &D E 0E@E HE XE DhEEE E E nEhFF F (FFFdFHG  `G " hG hpG ZG h8H HHH hH 8IPI  hI xI &II I 0I I J &J8J @J B HJ dPJ lJ Z(K HK dK 8LPL dXL L LLM  M (M0M 8M "HMpMM LM M NN N (N" 0N P8NNNN 0NNO 0OHO `OpO  .O OO XO 0P,@P pPPPP  $PPP P ,Q@QHQ  4PQ Q&QQ&QR R  R   0R  @R" HR xPR TR > S x`SS S T(T 8T HThTpTTT TTT TU (UHU`UpU UU U "U UUUUU V2V @VPVXV L`V @V .V  W 0WHW XW fhWXWR(X X$XHXHYVHY^YRZPXZ2Z Z Z [ 8[ @[ P[ Fh[H[H[H@\X\`\P@]*] ] ]] ^ ^ 0^ <8^x^_ _(_8_0H_ x__ _4_ __ _V` p`  `.` `.a 0aPPa a@a b>b <Xb<b bb c (c Hc hc pc ccc0c cc d d 0d@d Hd NPd dB d d J8e $e e Ze Lf hf fg g(g0g8g @g g >XhhhhHh(i :8i:xii 6i ij : j`j Hhjj j jj  j k k"k k k0k Hk Pkpk Pxk k Lk R(lll "ll l 8l0m Hm,Xm,m&m&m.n 8n Xnpn Lnn n n o*o Ho LXoo o Zo p (px]@]X Look through all the EU files:-- nTCAM\RUN_????.EU$~'---- a $ H'  .EU $ $'   G 'j ~'[/Highest run number that exists as an EU file = ip]Ph]]  for getting the file dateScripting.FileSystemObject$.$' n TCAM\RUN_ 0000$.EU'H LOOKS AT EU FILE ONLY $~|d  %. ! SHORT DATE$'kp  * Does the user want to only check wind-on? 1' WOZd'k Sift through the EU file:'F'F' $a   $ :K'K K8KT6 Not of interest = header info or bad data = no chargeS  Aha - actual data.  ' $ '&6 last 8 characters are always the time string hh:mm:ss G 'jnx Voh]=============================================================================================P Purpose: Load up names and their indices to the Datapt array & Const arrayD It will only take the first 8 characters as the name!Q Anything goes as long as it doesn't start with a '!;:. or a space.^ GetDrNames = true if we succeed, false if we fail to find and load the dr names Inputs:n DATNAMES.XXX or DRNAMES.XXX file with the variable name, "=", and index # for the datapt array.A Example: LIFT = 47 ' The lift data nameU It will skip lines that are just comments, i.e. if they begin with a ' Outputs:_ DRNames() = Names of variables indexed by the index number given in DATNAMES.LST]============================================================================================= Declarations:]X]p]]]=============================================================================================K Determine if we are loading the FINAL data names or the ONLINE data names: FINAL nREDUCED $~ n DR\DATNAMES. 0000$$ 'd nREDUCED\DATNAMES. 0000$$ 'kd nONLINE\DRNAMES.LST'kX Make sure the file exists: $~File Not Found'LSData names not loaded because I could not locate the file at the desired location, 'N N P LA@:'zpkh r clear it out' Load the test specific variable names.5 Example: LIFT = 47 ' Lift read by the balance$'   $a   $ *$ 'K KK!K;K:K.KT2 do nothing with this line because it is a commentSQ Store the DR name at the specified index (which may not = its order in the file) ''  G   $'jG! Removes any comments on the line =' Gxj    $'"   $ $ $ * "+n VJ Check to see if we received a complete DATNAMES.XXX file. It should have0 the same number of indices as the Datapt arrays " MThe data names file does not contain the proper number of entries. It should'N N have  , names. This may be an indication that the 'N N$plot bin files are of an old format.'N N PCannot Open Test UW A@:'zd'k FINAL' Load the test specific constant names.$' nREDUCED $~ n DR\CONNAMES. 0000$$ 'd( nREDUCED\CONNAMES. 0000$$ 'k   $a   $ *$ 'K KK!K;K:K.KT 2 Do nothing with this line because it is a commentS  ''  G   $'jK! Removes any comments on the line =' Gxj    $'"   $ $ $ * "+,n@ 8 VK Check to see if we received a complete CONNNAMES.XXX file. It should have0 the same number of indices as the DRConst array " tKThe CONNAMES file does not contain the proper number of entries. It should'  have the  t& entries. The file may be incomplete.' N PCannot Open Test UW A@:k k i ]=============================================================================================^ Purpose: Determine which row and column contains the desired thing to find, such as Run # or. weight tare, or pitch, or yaw, etc.]============================================================================================= Declarations:]]]=============================================================================================T Assume the run number label is located somewhere within the first 30 rows and cols.     $%$ H' WT TAREKT WT TARE 'yxkpRUNKT RUN RUN # 'yk TYPE OF RUNKQNOMKCONFIGKDATEKT   'ykPFLAGKT A 'ykxYFLAGKT Y 'yHk@n8   Gyj  Gj] Now that we found the run column, let's find out the first cell that has a good value (<>0):B RowIndex is still valid since it was leftover from the last loop.     $%$ H' $  Found it! 'yk A Did we find the location of the cell that starts the run number:X    Label Not Found'LCould not determine where the  is placed on worksheet titled   $ 'N N4Cannot complete the updating of the digital run log.'N N P LA@:kPoH]=============================================================================================p Must have already defined the digital run log names in Excel for the variables displayed in the run log sheets.]============================================================================================= Declarations:]H]` !]=============================================================================================[6Correlating names from Excel to UWAL Digital Run Log, [8Names that exist in Excel but not in the UWAL files are:2 Ignore names that include the words "Print_Area":  ! $! Print_Area $!$ H' $ + D Did we find the name? If not, at least say so in the debug window: $G[$ jd +kp oX]=============================================================================================W Purpose: Take the contents of a cell, strip off any unwanted characters and place theX values into the array NumArray. NumArray() is an array which is most often 1O element, but could be more if the cell has double purpose. Example:f delAileron L/R would have a cell with two values - one val for left aileron, one for right.]============================================================================================= Declarations:X clears it out]`x]]]============================================================================================= $ *$ H'A Are the cell contents valid numbers or do they need deciphering? UPKT+ONKDOWNKDNKYESKT+OFFKNOKN/AKT+S * Loop through and save each actual number: ,' D   D$ ' $R/K\K,KT "/", "\", ","  Check the sub-contents: " '" "@  $ *UPKT "+ONKDOWNKDNKYESKT "+OFFKNOKN/AKT "+SE Remove any leading letters because we can't convert them to numbers:'    $ ' $RAZLaz KT4 letters  Ignore lettersS  'n  $*$ "+nX''k@!NT" Ignore hard-returns and linefeeds!zLTL Everything else in the normal ASCII set (numbers and letters except space):  ''n Dnpoh(]============================================================================================= Setup the paths & filenames: !$ H\'n n nUW $ $' nDR'l. 0000$$ 'j l\RECTABL j' l\DRCONST j' nImages'   \IMAGNOTE j'  Do we have a valid test number? Wrong File Location'LTThis spreadsheet file is in the wrong location. Please close it and move it to the 'N N:test directory, such as UW1547\RUNLOG.XLS, then try again.'N N P LA@:'|k Does the DR path exist? l $~` Assume the user won't have a DR directory and wants to save the info into the Online directory. nONLINE $~ nONLINE\RECTABL j' nONLINE\DRCONST j' Not Available'ldh ( Can't proceed... no online path either. Can't Do It'LbDR and Online paths don't exist. Please make sure the test is setup properly and try again later.'N N P LA@:|kk Is the test currently locked? nLOCKED j$~ Data In Use'L The DRCONST j9 file is currently in use by the FORCE. Try again later.'N N P LA@:'|k Open RECTABL file:     $< load up array correlating old DR constants with run numbers $~D Erase the ConstRecRun record because we don't have a constant file: !r  kh V% Load up the data and constant names:{ We use the ConstNames for storing the run log values. If we aren't using final data (aka "DR" directory and its childin')_ then we can only store the run configurations in the DRCONST.XXX file in the Online directory. l Not AvailableFINALAdONLINEAkoh]=============================================================================================t Requirements: Should name the run log sheets with "Runs a-b" where a = starting run, b = ending run on that sheet.[ Assumes that the labels stay the same in the run log header for each sheet.]============================================================================================= Declarations:]]]0H`]x] ]8P]hJ Whether or not the data for this name has been stored for the current run]] ><0 ]8 ]=============================================================================================T Use the first run log sheet found... assume all the others have identical headers. $ ! $$. !$ *$ H$ RUNS3 Find out where the run number begins on the sheet: !  RUNA  G|j. Find out where the weight tare column begins: ! " (WT TAREA, Find out where the config notes are stored:   %CONFIG '&yh k` yH k@ $N Open the DR constants (contains the run log info + data reduction constants):  B D " Loop through one sheet at a time: $ ! $$.+ Only use the sheets that contain run info. !$ *$ H$ RUNS !A-B( Loop through all of the runs displayed:       %$'  Gyj, End of the run log! EOT &Debug.Print "Coding run " & CurrentRun ' Erase the constants to prevent errors: D!FrF 6!FrF !2h 9 Read in the data reduction constants that already exist: 4 Load the auxiliary constants from the DRCONST file:  %G B  % 6j ; Clear out the section that contains the run log constants: " H t " 6,F " $ Make a note of the weight tare run: "  " %"$ K^$ K-$ KT( Copy the contents from the previous run  $< +<S  " %$ +<2 If the weight tare is "N/A" then it stores a 0...n8k0 / Store all of the constants in a temp variable:'0 " ! "$KTA skip names that are in Excel but not in the UWAL digital run logMT! Store a normal run log constant: "$!J "$!J!R "$!J "$!J!R $ '  C  C $ $'   %$ H$ *'< Is the value just a repeat of the previous run's constants?; Instead of using checkmarks, the user can put in a " or ^.# Did we find anything for this run? $ *G'0jX Only store info into the run log constants (CONNAMES.XXX), which means the index > 1000 "$ '*= Did we already store a value for this name? If so, skip it. "$2( Do nothing - a value is already loaded. "$  ^$  -$ eG If we see the " or ^ or - then repeat the constants from the last run. * :%F * 6,Fd5 Otherwise parse the info from the cell and store it: $4A) Did we get a single value from the cell? 4$4 * 6,F 4 ei For handling left/right split of a variable later on in the test if we don't want to add another column.$4 * 6,F'@ ( "  ! "$!J ($!J$ Found the other name. ($ '*O+ Re-assign the name pointer to the 2nd name @$4 * 6,F (+2 @ '@k> (k>k> "+2JDebug.Print Space(5) & Names(Index).Name & " = " & JunkConst.c(ValPointer)n8> " .Gyj  Store the configuration:  & %$ *' $ * 0Missing Configuration'LRun + does not have a configuration description. $ .Please correct this mistake before proceeding.'N N L LA@:'.y< "$  ^$  -$ eG If we see the " or ^ or - then repeat the constants from the last run. P :%N P 6,Nd8< AR2 remove unwanted characters...  P 6,Nk; $ Write the data to the DRConst file: 6'D  %G   ,j  T D,F B  % D ) Copy the current constants into storage: D': What is the largest run number?  , G ',j k: .Gyj $> Save the correlation file for DRConst records for which runs:      V .G|jg Does the user want us to check the coding? This is test-specific and must be setup prior to checking. ,@< GAVjAX" Inform the user of the good news: BVRun Log Updated'L<The ImageLog.html Data and the digital run log file, DRCONST j have been updated.'N N Z LA@:o8 b--------------------------------------------------------------------------------------------------T Purpose: Remove non-printing characters, such as linefeeds, carriage returns, etc.b-------------------------------------------------------------------------------------------------- Declarations:]  ] b-------------------------------------------------------------------------------------------------- ` \ \ `$ ' $R }LT Decent, upstanding characters: ^ '^S86* Skip this character - it is nonprintable.n6 ` Copy over the sanitized string: ^'\o58 ]=============================================================================================e Purpose: Search through the data names and constant names to find the index for the specified name.S FindNameIndex will return 0 if it doesn't find the name in either array.A If it is a constant name, it returns the index + 1000.]============================================================================================= Declarations:] ]=============================================================================================' Search the data names: "  B$* "$$* "'z2k2 " Search the constant names: " t B$* "$,$* E Add 1000 to indicate that the index goes to the constant names array " 'z1k1 "i1 I CellToWorkOn is the R1C1 designation of the cell on the activeworksheet.] ]( @ ]X p  ) Set the desired cell as the active cell: d p%rB@H t!v$ H'j) Force the contents to be all upper case: j$ H t(v t!x!z'f f 'h' Loop through and change the fontsizes: 'n ` jR Was the last character a letter? We don't want to small caps numbers or symbols: n$RAZL KT letters and a space Lastchar is okaySp/'nn`/ Is this a small word: of the n  `  j j `$ $ *'l lOF lTHEGa'njk.k.- First character of the string gets big font: n  nA f `~ t%|!x(zd(. h `~ t%|!x(zk- j `$ 'n ` All done!o- q-----------------------------------------------------------------------------------------------------------------M Purpose: Only load up the row numbers from the cells in the selected range.7 Note: This only works for the activewindow.q-----------------------------------------------------------------------------------------------------------------]H ` ]x      Was there a colon? :'  Only one cell selected: ' !t!+dX+ Multiple entries:   $ '    $ '  p%r!'  p%r!'    (     '  + kh*o`*0 ]p   ]  ] ] @X*' \ -????.jpg$~' |)k)FOpen ConstantFileName For Random As ConstantFileNum Len = Len(DRConst):Put #ConstantFileNum, ConstRecRun.Val(CurrentRun), DRConst var currentTest = ; b \ '  ' $'_ These need to be done in this order! Lets hope nobody ever codes something with a '\"' in it. !\\\$ (40 you need to 'escape' slashes in javascript code !"$\"$$ (A same with quotation marks !$ B !$ % var img  = new PhotoInfo('|P variable definition |"$ "$,'|P add the image name |"$Images/ "$,'|P add the image path |"$ Images/tn/tn "$,'|W add the thumbnail path |"$ P %N$*"$,'|S configuration |"$ !$*"$,'|P image annotation | !$*,'|P run number  H t $,$*BLANK |  %F,'|k$  !$*e? Do nothing, we have no run number annotated for this photo yetvar img  = new PhotoInfo('|M variable definition |"$ "$,'|M add the image name |"$ "$,'|M add the image path |"$tn/tn "$,'|M add the thumbnail path |"$Image Not Annotated Yet"$,'|Q empty configuration |"$ !$*"$,'|M image annotation |,'|M run number  H t $,$*BLANK |-999,'|k! d!6 We have something annotated but it is not a number... Run information for image  isn't numeric. 0ImageLog.html for that image will not be updatedA@:k | | $'| |);'|  | PhotoArray.push(img ); ~'x  \Camera  \R????*.jpg$~' b  ' $$' $G0Non numeric run number in an auto-acquired photo Bj B $ %  variable definitionvar img  = new PhotoInfo('| add the image name |"$ "$,'| add the image path |"$ Images/Camera / "$,'| add the thumbnail path |"$ Images/tn/tn "$,'| configuration |"$ P %N$*"$,'|5 image annotation - Same for all auto-acquired photos |"$ Auto-Acquired"$,'| run number | $,'|  H t $,$*BLANK |  %F,'|k  | | $'| |);'|  | PhotoArray.push(img ); ~' Close ConstantFileNum V|DError in the UpdateJsFileContent sub, ImageLog.html info not updatedA@:oXp}-----------------------------------------------------------------------------------------------------------------------------D Purpose: Retrieve a single image note into the ImageData variable. Image # = record #.S In the WTDO, this was made by GEP as a sub, I got rid of the global ImageData andF made it local. This is now a function which returns ImageData. -SI}----------------------------------------------------------------------------------------------------------------------------- Declarations:]] ]@]X]p}----------------------------------------------------------------------------------------------------------------------------- In case we are working on a CD or read-only directory which doesn't allow us to create an image note file (or doesn't have one)8 Open the note file (if it is not there, make a new one:    $ ' $ H.JPG'   $ $'"+ 8888-0012.JPG has image no = 12  "  !$R! Left blank in annotation file !$ * !. $ A.JPG'k@0 Did we find the notes? If not, it must be new. $H !$ *K KT3 Continue with the image data info that was loaded.SB Name doesn't match what is in the log... don't display the notes. $ * ( ( (n V 'i]]]0H \tn\imgArray.js'' $~G A@j.) get rid of the old, then in with the new  FOpen ConstantFileName For Random As ConstantFileNum Len = Len(DRConst)Jfunction PhotoInfo(imagename, imagepath, tnpath, config, annotation, run, '|  H t $,$ *BLANK | $,$*, '|k  | | $'|/ nix the last comma |) {'|  |  this.imagename = imagename;  this.imagepath = imagepath;  this.tnpath = tnpath;  this.config = config;  this.annotation = annotation;  this.run = run;  H t $,$ *BLANK  this. $,$* =  $,$*;k  }  var PhotoArray = new Array() E will close the file after the sub that adds the runlog info finishes|PHOError in the UpdateJSFileHeader sub, the ImageLog.html info will not be correctA@:oAttribute VB_Name = "vbSubRoutines" Option Expl@icit FuncXFindLastRunNumber() As Integer Dim TempFile8Sng6; 3`' Look through all e EU fIs:  U= Dir(TestPath & "TCAM\ RUN_?.EU")po Until ys )UCase$*_"Z= Val(Mid,#r, "B -@ 4, 4)$I&fF&>  T(hen = G pxebug.Print "High run nTat exists ayCXAQN$f End CSub GetStart@Time(Des0ired6, }Iing, CreatXedDW@OnABoolea.n@RAO,@NleaCodeToIgnoreJ@LCou~rD f, fs ' f@or getg d. S$et= 3Object("ScDring.-SystemT 3umbFreeyA(1:꒻"Amormat_0") -LOOKS ATjFILE ONpLY Rai )""QMExit =@lseccfs.@A(G#9= Ff.;D`SHORT DATE @B Ifb`@kput1 umCP@' Does/u@ser wa^to only c@heck w`G-on?IAld)C1"$WOZ)G#' Sift`ÖthF ;_:f^iO= F0LEOF)um@~a #d ]QSelM A `Left$Ba, H":"@/n'i@8!' Not of er= heDad,inf`,rP badA^a@nbo-argC E#E Aha@actual.K!+ 1/ˆ= R *8)@72l 8B er@~alwayDt s hh:mm:ss a} 1ñ8D .ůClose砇TubfDRs(WhatToLo)fbĝ '=?5C0Purp :up n`G1bd16ir dic7o %pt arraypFCota'`= SPHs1(exepd by$čgivcLST#/! Declara11Garbag2VnNext]X,@_d`bpNo EqUsPosZCSk  Nyeterm 3"2 a'Bup'YDR\$ugCurr /9, 34{ pR _m_ "^0HAC~\F1~i' MqYsu=QHNMsgxTitJF d`Mess0cbFs not !!=ecap I couldcGdh y Box d, vbEx :p x F^sEr Jc{ r@u4!@} tspecific j]s[Ex-ZYLYFObalxancC9OpV As NextFile Do Until EOF() Line Input #h, G`arbagtDSelect Case Left$(Trim$(H0), 1D"'`", " !;:."wX' do nothing with s l becaupit is a co`mment<gE lsKStoreAe DR n@ame atspecified index (which may> = its order.fi-C=PosInStr}t'"If > 0 Then_- ' RemovexnyyMnJEqualsIN=I $Ex@VD oIF= Right(Len0) - F=DRN@[s(B)9C,1@8)End  Loop Clo A' Check to see if we receivwpletATNAME@S.XXX s. It should hav 'UsnumbIoficA`sBDatapt arrays xJ<> AHySMesseA" ds!wntaivpropG!်ries -·E&@4& %!!aThha^bcnatioe9 plot ba)S@m%an o)formatE{MsgBox , vbExcla  fCanOp cTest UW" & Curr!)Get;DK`)F]}BWFudnc TruJIfcG`7WhatToLoad3FINAL"H7' Bth $ca5stan:t9.ťreea(%` Dir2(Pa 1RE DUCEDvb`@orye"I! Aj DR\8CONZ&"u$(ZF/('`,0"}k3k $ t x-; *?ԡ?Ԃ?Ճ' Wլ0?dJ(ƿe -ueYc]of _ffp Qxffm,ConstggeggIgggAc?/h/h"h?:?h 0BF [ Rowf = GoTo C heckI ' Now that we fou~the run column, let's fAout  irst cellhas a good value (<>0 ):$ is sti@ @id @since wleftove@r fromBlaloop. j =330JU$(Worksheets(SNameH).C@,s(,r S))@L() XC'@Hit!@Ͽ Å jaDD`YA`location of"-starts4number`-; (*e#FMsgTitle~& " LabelBxs@Messag"Could not determine whereb" & S'A `?placed wE3 t!d@ & 4Chr$x(132% CancompSupd &ng%&`digit$log.sgBox , vbE xclam-, 9# 53aSubAc LoadHeaderKs('=?5 iMuchave alry0`s'@+Fl n^s \inH|rb4variables dis 3y!% go_7ADe/r/sWPDim *I As Intege`%F6TStrM * 8 ReEPoiar(1 3.ct4:CADebug.P`t frrel SC2cto UWAL DU w@Kg@`av `[exi!bZ'1fiar e: 0' Ig47, 92, 44 ' "/", "\," S8If LastyGood Then%)'eck the sub-c:.Index+ 1ReDim Preserve NumArray(1 T|o pE Trim$(Temp"UPo)>;^0Z%ObNDOWYES*0TEFFA$NOB/Aj999/ElseC@' Remocany leadingtters@ becau@we can't !vertm to numb cԅNewZW"4For@ar2 Leny ؀م '܍n65907 - 1229@qle"(.E ' Ignoree.;: /&}1[ End$Ne~x6%|lVal(!x()x}$<@EJ = Ffa` If B,Is < 33O5d-returns a`&lin@efeeds 3.3AD C E jythne inBmal ASCII set (m K except space>)p'%%@&Tr>u,3A ubSub Open!vTest(?'=?5Ee'`Ztup"+paths & filenames[&!P`JU@$(ActiveWorkbook.)@Cur~r[,PmStr`LstyUW") + {/DReTDRRF@ E6= "."Right$(Smat(0"),d 3d5ID!2 t&RECT8ABL onstantAN[DRCONSTA^Image? " rst NotepB IMA`GNOTEs ' Do @hhaj valid t;$h?c<= 0LMsgTitle"WronLocati on !TMess/` *6rqshFe8# is:wl4. PptPscloPit;2v@sQ5 dirory,Pch as UW1547\RUNLOG.XL S,!-Cry a gain.sgBox d, vbExcla#, AAbortProc?Ex <Q=SAes6DR #A6IistDir(S( )""' Assume0r wo$ w`+1o s1"!inLfo OnZ }F.C Q`# 7O NLINEvbh <> ~ z6~\6`}7_\7[>Bp6 Available!-'`apAed... no o3ir y4C:ItR74ArTs dex0"G3mak11b06o[@ pXerl.vt/ lay/ //+.ai.//Ѐ/r c` @ked/ @LOCKEDN) % :1Datad Us C0 "dnJ 005 by5FORCE T/11DDDQ~ d3 4zrymR%om P\k Writa #S<2 0Œ6RecRunDrG],yXoad 'a rre 'qold0Q;s w2 run numb@ers If Dir(ConstantFileName) = "" Then' Erase the `RecRrecord becau "Not Available}Call GetDRB("F INAL"+Else ONL8INE ]k nSubh @ Write@Log(CheckCoEg As Boolean '=?W ' RequJments: Sho0uld A}sheenwiP"@-s a-b" w(her=larFt@l, ben3Apolat Bd'NAssumes@ AfelsAy!sExAheaderBeachGL8&DeclaQhDim isSC$8Workb b aLocbWAStAj, Cell{t.Cur jt,!Inte ger, Ro"wMColJWtTr Index/Bons , TempPoirMax# AbortUpeb, FoundSometh!N'f ueS@Ped() `h``Fn@!M•E s_hasenOored"LAc2 P# w jsC Sl>J|unza"Type, Las; Re Weigh9s(1 To?LimitbB-C"t@!f'?a?61c' U#first# s_@'@5..aB| a%orsCidY`ic`Czs@F3@4N= B ks.FcSeto=: (G[p`Le@ft$(UC}$(TrimPh;.!_)), 4RUNS_Fi`]~ozO 1Is#ginslK1AvOc#Posi1m<(T>4?, "p%eA@ (@n*a! 0PP+Exit fSQ' `wQ& t0Calumn ? nd? Pa", vG? WT TARqq ~ 9aa aed! E!30gA InVϸ!W4Wol`"@FIG")a{`:N=p?_b  NextO E',7OpPQ'DRƦs (ta')a8info +CٰLuc'W)`GH@Vr R`ormФckJ L=Q( 6 Qo!roug*h0ez ~a timePqo>unt#o>Tvso>' Рy"IDJ1 G5A :AX@(&D0A-B%= 0)9 Qof2CDspsplay{/V|=?!@a@+< 9tN1= j0UG) :sIF' * _!0 EOTq'D@ebug.PЏt "QS" & K,o prevd errorA1S).c:Dy!wr|tb(fL R>eք6t'alry exis~t0e q!p;auxiliary: fr8 Ͽb,18(HN #J?umQp_R&={ Cr !q seSFth>6eƁG %e]Aux Si}oPS Arr|ay G8dex!q90 Next Index  ' Make a note of the weight tare run: d@If WtT6Col > 0 Then DSelect Case!isSheet.Cells(Row,I)A:Chr$(34),  9 452x' Copydcontents frompreviousk8 W~os(CurrRun) = - 1^Else2Valx(Th~ is "N/A"@n it stores}0...O(End oIfK' S0 allEastaAain@temp variableFoundSomething\FaNPFor1 To N@ames.ct"AsI Poi|r(mL' skip n1@Rat 5Excel butA _UWAL digitalA0 log'¸Isq100Tr:mG EVLQ+Lo@cation%M0id$(%$.RefersToR1C1,*Str"!R") + `Len7)aIn ")Wb3?!a"C+vCE= Trim$(ZUA3$Xq%) ' ;AAvalue jus F repe@GD's&: s?OECPInstHeadkusdcheckmarks,{ user can pQ`Qa " @f^|!  Did fi@anyrf ?4'!*) <> """ |TruOnl&ycmfotol( (CONNAMES.XXXwhich means"exoP`RocVw+alr`9EaE,!? @*so,it8ueBd| r1' Do{K2W- Z*@c loadedAnpu{ Or $(|3~} E5f)seeB.a.-nE67gFla8" VJunk+st.c( ) L?M?F' "O@ rwiPparP1 in@- el ap8R{{^&ZCwPA(," ` Logb"s(_KF !?ge!KqFle)a O@F !UB|(iP{a{J wt)Os)>/&E'Jr hlVleft/rxsplP0\1; 8latWvteP&ir*don't w@ Jadd oqJlumn(es(iZ TCa` = 2AaxE)O{ 5)oAT?G> w ^1Re-assignQ p<2:qO F>$a 1?wHР M/ &?Y"qD_'Deb ug.Pr Space(5) &Ɣu.A+0"0"p q 4k3AbortUpd F1 ExG0:tohe configuration: CellContents = Trim$(ThisSheet.xs(RowIndex, TCol))a If (x )"") And (FoundSomething) Then DMsgTitle9Miss*u"3essag2Run " & Curr&does not have a descrip.hr$(13)#"PleaFs'ct ]s mistake before proceedT.NsgBox MQ, vbInem, wjAbortUpdaBtlTrueExit For pElseȉĀSCA534) Or %945k' we seeFeZor ^ -n repeaM¡Mfrom last run.6JunkAst.n(q_NotesL AOCall SanitizPeStrm( C)$ ',mo@unwad characters..)*&IfO'K' Wri t Ha to .DR& fileLE= F/k AJonstRec/`.Val(l!30?bzuG .c>(" A kPuXt # 6F@Num, + 'pyB&cCaWin)stor(S`n :- $Whdis largecb numpber?0g>p Max@%/d=Next %EP B #'@i eLcolK `, jdsbwhicha~s@'Open IDA6 name2a RandLockaXAs #;2 L=DEQ#@, 2@ Clo`H hSubDǁuser u5:o e`? 1 99est-specific Q  mu:bAt4upiHch`a ReDi`m Pre *WeightTa`(1 Tod=sd I geCy!Co@I>DO3eJSQ@3\ir(ofgood 8new6 CY{(Log cd qo0"p% Imp3.html 0Dataadi gital! l0aJ:ONSTy1 E,A}|be :uRrdwvOKOnlyv S#90$`-bDesiredStr ϰ(`''- ' Purp+: Reinon-pkt`@(i, su5as linef0s, carri@8turnetc`l ? Dec0MrA#.C0u , New QG&/ ?_? '= B8G( @ #& = Mid$HcB , 1C'S(eleCAsc"r32A?125w*' p, uph2?h=&I!Sr 0]kipǀ?@L - Ð''able24 c;DurPtd s 6 9Func FindNcb(Temp%'=O== :Sear 8throughRmsbNb #`f pexBrPceW ;4j wi Pre= 0 if!n'txP~ in eir `Aay\dcg ,c + 10001oDAAa'= 03e WD9D# DoArrayE7 Oq,ADR-s(2) 0v׷ Exit FunctionEnd IfIaN b@gd: Dk +K('l+ 3) <. -Pf=$(Mid$3,6">)%a "O`F" Oro@?TxHE"%"pa? !A!iE"FiXrstAČs ge ebig aOGcd; <>O)@A"mHcNs(Start,:=!b,a)gth:=1) yDh@;f@ ht _hC818 " e1`llpe!)!9 Sub ParseRowRStrX, Datay()aDa` '-`Purpose7Only 0load@X2NrowFFfromBbs s"`PdrQE0o'NotaThACq+r@'isPow/ txA/!f9 +ColonPosx,P3J-Fou@!ցgar`qp? =0`%(%, ":" $ J80O' onPwQtD?"= E3.ReqG+}B1+s@W'@P B' Multiple2 riv Left$&- = igh`% ) -C p M )v). -t@($-#Yp#*{## C$=C% QcQ'o(S1NSNUpdJSFil6eA("curImg!1`*, SPathYt'6iCaImageIn`fo, iIcG1X0ndxnmyRqTypCurRu7,ev; @HErrpGoe$rrpdl LPr` =` Dir( B& "\" & r.Te~0-1"?.jpg4 "BLANK"pGhg[?1xac'End IfGNex2tdxG#ElseeE0%= "-' Do /A, we havݠdo(&E3f%s p{ yet'''Vc0u__ M sG "G %e `s ACo;Yet!' `ty? u7߀A -9994o?@+?@t?@?@f ?@dx?@ = 7 "A W???' Wq+ 1c Cur = q, 2, 5)?aPhE7ө CaErr.Raise(5000, N(#Yhan auto-acquir0,bh%um / hpe#pu bOhC%߯Z {h#t\%1epDODcoG&[ϰϰO'@ES 8KQ-_*o۱  JA!.A$.1=wQ`_ de(7 N, #ppO p_ '_ p pp tempStr = Mid(4, 1, Len<) - 1)|& ");"BPrint #JSFileNum, R""PhotoArray.push(img" & 8couL bIcurImgNameDirLoop Next i 'Close ConstantL  U Exit Suberrhandler:MsgBox "Error in the Upd`ateJs)/teVsub, ImageLog.htmlfo not ud 5nd5Function GetNote(ShortlAs `ing) Ihnfok-y PurpV: Retrieve a s*le i@A=ntoK/Data variable.% M #@srecord #BI\WTDOhis was made by G8EP @_ got rid ofglobal?@vB}local. TQnow2ffwhich ret0urns -SI?bx2DecPlarasDim TotalsntegeBr@Sndex*EndPt( /5+OF`sdIBooleanAn ]bdW} '??4{On C{ResuI‡' Ncaw [re work[ ua CD @read-on ly diVtory Edoesn't allIus `ct` ncf@ (` %ha ione ;Ope_ +e Xif V"UtA\re,ak@ newe@b.@ F R_om">t o4H= LOF(qd) / I=@'(UC'$Ǚ), ".JPG "@ IBQ= Va l(Ш, 6,  - 6)) ' 8-001r2 h}%12 #d]O~=Ifc a.T) <>, 0-' ft@ blanka~nZ!A/c̫\#eft$(Trim~$M !!f$" "s"A` If"zNfindBa?s?@f,?muse>Select }- ..nQ, m.e 'rtinu0/ithd[inmthatBXloPXd pElseE2@U-mtat@TwQp+$tlA@r.. do2display0a 6r$lo1@6= "Ru[3a!怲-Yy!{ SubҏHA8er( O3PaT !D0+Y?AWc[c;, O6U FNGoTo  ;3\tn\js0 = 075(4""A4Kill ' geyold|7!w&0LLKOutpurg>':aNumK ODR$+"fbn8pP` nsconfig, C, run0?A "= AuxStart {S` , /A5s(QpK"BLA|NK@ & Q(O@ Q-1HCndxrBgz2Q[nix 8   >8 Hx     , ( 0 @ H \ P X ` #|$0t2xRR @RR''R@R  RR\ME P@8@@@<> <<  ʘthdBʘPBʘBʘH>BʘPB L @j8 @%hh nX@0Runs a-bp  @( @* @,L @`8 un logUWALdx ASCII D lx@`8(F  used(NP be 8 Pbers, xk). @%@(u haas A@%( -$  entsX(+<p ( tar 8(<0... ,(J all d ( ``$KT`at a`in t`log` a n`nt:``"$`!J``  `,` `'`e va` the`tant`ad o`the @or ^id we fi( xG'` fo iconstant`s th`$`= D``l`` ` %@L    `ll`$```&```` ` ``` `  % :``$``"`<```````>` ````@`B       8  ````l`D`` ` %  Hp F` H`J`"` `$`L``N`P```RUCTI`TODE:`Vsure`Xeets`Zcrit`\ - L`^.EU``eade 4. ea b( - Tbel shou d`UN # - RH` the`fere `hat s` . jthe %@lL-10"@nLthe @pLat y@rLsaveHh ``$subd`MES ` WTD`&E.th` be `hara`ers,`  nam` ive.`"u ha`er t`e, s`/RIG` x` one`@c T x, inon under` date%@L; t  ` 14 h``  14 @`@L`of t`tion`NDX.`files`.en` r ofa array,h`$`ords`, DR` `RCON` - c`uce `$`XX f`elat` ord ``"`$`cons``un n`&have`, we`h re`====`Totes`R  `@ 0est ]X`Lfied` each j' L% TS\U > L%ata % 54 *`33 14`,  n sp%`.ay`$irst 6P `0  14`$/ W : `  14`$thre V ` mm 14`J M`Bor a`  `h`Dmine@FLd nu@PL (We@HL use@JLtege@LLn't @NL@PLtersʘ>@BʘBʘB( BʘxBʘTBN @0 @<@@l@ $@0P @d @h@H\ @pl2 @p2 @0 P @p@ HXP@@hh(( x( p x2DK$*\Rffff*0?      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}p x n j  `p $x "  f8 \ ^ B`  8Ph  8@H P ` * Z@* :8X x   R (d8     2HH .  0  "0 6X  6   n8, :  (08@Xh  @p& (0 8 H 4`      P0 $Hp.$ jx  $ 08 @ H X `      64  &H8p   $B( &8 ^` B !N!h!j! ! " " ("XH"T"" # "# # B# X# P$ p$ %% 8%X%p%x% % &*0& Z`&&&*& :'X'x'  ^'' 2( bH( ((( (  ()( )H)8h)&) &)")*0* D8*2**** L+P+ h+ x++ +J+,, 0,@,   H,h,,  2,H, .-@- `- 0- "- -- .. .8. ( 6@. x.J.. . // /(/ 0/ @/ "H/ P/ d/ XH0 `0 B1 H1 112 02P2p2 22222 2 p3*3 Z3 484*H4 :x444  b4&`555 5  N5 56l 6666   666  27H87 .77 7 07  " 8 BH8 "88  n8@9nX99D9 D f:(:(:::  (:0;88;p;;  @;;;<(<@<  X<`< h< x< 6< << < << < P= $X==.=$== j>>>>>  $>??(? @? H?P? X? h? p?????? 6?4 @  &X@8@ @ $@@>A@ALPA^ABBHBPXBBjB 8C HC XCjxCPC8D PD"XD `D bD dPE E E `FxF F FF FFG G8G@GHG `G pG G G H*8H ZhHHH*H : I`I  :I$I&I&J 8J4XJJJ J LJ*K $0K XKhK K KKK :KL" L HL"XLLLL &LrLBXMM0NN"O0O "8O`OxO  2OHO .P8P XP 0xP LP P"Q8Q (HQpQxQQ Q  Q Q 8Q R 0R HR  "`R R R R RRSS0SHS`S xS S S  "S @STT T $T T T(U(0U XU hU xU  *UUUU UV .V4@VrxVVV W W  ( WHWPWhW WW  0W4WpXxXX XX XX X 4XXY (Y j0Y YY`Y(Z @Z HZhZpZ Z ZZZ Z "Z Z Z[ X[ @\ \\ ] (]H]`] h] x] ^*(^ ZX^^^*^ :_P_p_  ,_&_  b_P` 2h` b` aa a (a  N8a aaja b8b@bHb  :b c(c"@c lhc ,c .d8d@dHd Pd   .`d dd(dd<e*He  &xe"eee De.0f`fpff Lff g g0g HgXgpgg ggg Dghh(hHh `h ph hh hh hhh   hi i  20iHhi .ii j j 0j Pj :`jj j  "j @j <kXkpk jkl l(l0lHl 0 ,Plll >l*l(m F0mJxmmm mm m  &n (n@n`n 0xnn nTno( oHoPo Xo ho poo o 6o oBhp p 4p"pp q&q 0q N8q@q qPr>hrr r "Drs s&s 8s @s Hs "Ps Xs rs jXt ft 0u b8u u ru v vvvvw  w8w Xwpww"wwwww x"xxx"x&x& y$Hy$py$y$yyy2z@z Pz $z{* { P{ $`{{ "{{{{|h|*| 2|| &}(}0} 8} @}P}X}p}f}}~~   6~P~"h~h~~    88 p J4H`hpЀ؀ (8H  Xx؁  8H P   `Ђ   " "Hp   &&Ѓ   "8FP "؄   ( 0   2@x& \ :@  8 Ȇ@ ( .@px  Ї   NX2p   Ȉ   6؈*( X h x    ȉ" (   H hxNЊ    @   &`   ȋ  " H P@h Ȍ ، .  8P Xh D؍  08@H   Pp "4$ H`hFp؏0   FP*ȐА     @8 x  ȑؑ&   * Phpx   ؒ  (0   *@0p ؓ".8X h (4ؔ( &8.`$.6 @ P p &,$ $80`*6  Zx ,2ؘ2*Hx ,2*( N@   *К (0   ,8hx  ț؛08@@Xd   P&h  ""Н  (8  @"P&x  "&؞  "*8  h"x*  П$(  0$@(h  $(Ƞ  "((  P(p(*  $*(   2XBfRP<     8@ x   Ȥ  "x d t p` (Ц d `x d 88@(`ȨШD8PX` ,p  2ȩH H 2X.  2Ъ  $ HbhЫ  " d ` @p @ 2 d( L   8 H P "خ d 8H P .Я dh pȰ( @ P X " d dP ` \ dx N $p,>ȴ0 8 H bX L( $8` x  :"$@h *XطB0x" "ȸ &8Ppx: V >0p DxȺк "غ лػ    ( 0 8H P Xh p x 0ȼ~P н8X  h 4x Ⱦ ؾ" INSTRUCTIONS FOR USING THIS CODE:? Make sure that all run log sheets meet the following criteria:. - Labels start on row 1.EUR - All headers are the same (i.e. each sheet has the same labels at the top)C - The run number label should be either "RUN NO." or "RUN #"o - Run log sheet name must be of the form "Runs a-b" where a = start run for that sheet, b = ending run.\ Find the first run log sheet ("Runs 1-10"), define names for the run log variables that youn want saved in to the UWAL digital run log. The names in the UWAL digital run log are stored in an ASCII filen nup called CONNAMES.XXX in the UWXXXX\DR subdirectory. The CONNAMES file is also used by WTDO, FORCE, and OFFLINE.thr The names can be a maximum of eight characters (numbers, letters, and _ are ok). The name is not case-sensitive.e If you have a run log parameter that has a split value, such as AILERONS LEFT/RIGHT, then define twox names for the one column.c To activate this code, insert a menu option under the Data that is called "Update Digital Run Log"p thro; then associate that to run the vba subroutine called Main.+ O-------------------------------------------------------------------------------------------------------------------------------l +-----------------------GLOBAL DECLARATIONS:@g Most of the following declarations are from the ARAYINDX.TXT and UWALDR.BAS files from the FORCE code.en]' E]@$4 Max number of records for data array, Datapoint.D()]d$7 Max number of records for constants array, DRConst.C()lready] h$F For the DRCONST.YYY file (RANDOM) - constants used to reduce each run]($Z For the RECTABL.XXX file (RANDOM) - correlates run number to record number of IDDATA.XXX]P t] "]>x$ Beginning of aux constant names of th]$g Current run number so that if we have to rebuild the file, we can figure out which record goes to what======]$ Notes about a run]]] . File extension, such as .534 for test UW1534.] " The current test number, no "UW".]0 7 The weight tare specified in the run log for each run.ne]@ ' Location of test, e.g. T:\TESTS\UW1547da]X > Location of data reduction directory, e.g. T:\TESTS\UW1547\DR] 7 Location of Images for the test, e.g. T:\UW1800\Images] C Location of the ImageNote file, e.g. T:\UW1800\Images\IMAGNOTE.880LINE\D]$0 The first open spot in the constant names array]!* The first open spot in the DR names array] caus] t the]"/ Where the run log info is stored = DRCONST.XXX:] 9 RECTABL.YYY where YYY = last three digits of test number^ t^P 5 Ep], Main constant array for a tp^ >p] & Used to determine corresponding record number in DRCONST.XXX (We would normally just use ConstRecRun as a integer array but VBA doesn't like that)omment]H!M Hold the pointers to the ConstNames for the names that are defined in Excel.le)]p@^ Xp^[ make it big in case the image name is odd size. Should be standard 8.3 Always uppercase.'^,W 300 characters because that's what easily fits on three lines in the image note editore if w^d compGlobal ImageData As ImageInfo0 t------------------------------------------------------------------------------------------------------------------------------------'N` Purpose: Figure out how much of the wind-on time during this test (but it isn't always right). aU Looks to the 'Type of Run' column to determine if the run was "P6" or "Y6"X then look in the EU file to determine the start and end time for the run.; Add up all the times and display the info...\CONNA------------------------------------------------------------------------------------------------------------------------------------$ Declarations:]H`x]!K] 8P]hline] ]H]]0 in minutess on t]H]`]x]Gx------------------------------------------------------------------------------------------------------------------------------------e if w !$ H\'nNAMES. n nUW $ $' same T Use the first run log sheet found... assume all the others have identical headers.tain t $ !tr $$. !$ *$ H$ RUNSries. 3 Find out where the run number begins on the sheet: Open !  RUNA  G|j]== !  "qiA====y` kX $======K Were we able to figure out the location of the qi and charge line columns?ntains Can't Find It'Lfi Run [Could not locate which column contains the 'qi' information. Aborting wind-on calculation.'N==== N P LA@:======|@ k8  Let's find wind-on runs: $ ! $$.+ Only use the sheets that contain run info.====== !$ *$ H$ RUNS !A-B( Loop through all of the runs displayed:st        %$'  Gyj, End of the run log! EOT   %$ *$ H' $  ^ $  Found a wind-on data run! Open the EU file: n TCAM\RUN_ 0000$.EU'N $~GjDATE    Ag Was the previous run a wind-on run? Then use the end time of that run as the start time for this run:    $$4We found a consecutive VIAS run during the same day!j $$ l  Aq` we put the StartTime at this location so that it is filled with the EndTime of the previous runt kP! Calculate the time for this run: $ * $ *Gjs  $<'H convert to minutes  $ '  'fi ',: Store the date for this run so that we can sort it later: ,@abel N  +Coul  SHORT DATE$ +s  +t titlk $ *^K-KTplete - Same as last time - leave LastRunQ unchanged PS` 'nP ' ]==k0 $======I Time to summarize what runs occurred on what days and for how much time:  !efined Find all the different dates:for  the r$+$ first date==$, +====$+d DateList(1,x) = date, DateList(2,x) = run number list, DateList(3,x) = EPS time for this date====== $G|j'  $ $'rrelat Do we already have this date? Run'   exist  $he'yk ore na   New date - add it:Area":  ' @ Print_  +$ 'k(/ Add the run to the list of runs for this date:If $ $,  +$ Add the EPS time for this date: $$ $$  + H Write the results to a file: nWind-On Summary for UW 0000$.TXT'   Wind-On Run Time Summary UW 0000$$ Prepared on   GENERAL DATE$  Total time = <0.0$ hours  DATE $ TIME (hrs)$ WIND-ON RUNS    $$ $$<0.00$ $ $  V Total Wind-On Time'L " runs for a total wind-on time of  <0.0$ hours.'N N $ 9Two summary files have been placed in the test directory.'N N Z LA@:o( ------------------------------------------------------------------------------------------------------------------------------------< Purpose: Assemble a single worksheet showing all the runs.Q Assumes the column header for Runs 1-10 is used for all runlog sheets. GEP 1/7/04------------------------------------------------------------------------------------------------------------------------------------ Declarations:]h    ]    ( ]@ X p ] ] ------------------------------------------------------------------------------------------------------------------------------------ !$ H\'n n nUW $ $'T Use the first run log sheet found... assume all the others have identical headers. $ ! $$. !$ *$ H$ RUNS3 Find out where the run number begins on the sheet: !  RUNA  G|jW Find out where the 'CONFIG' column is located and how many columns are in the run log: 2  %CONFIGG '&j  %DATEG ' jX+ assumes this is the last column of the log y8k0 $ Copy the template: Runs 1-10$B@H$ Runs 1-10$B@ Runs 1-10 (2)$B@HAll Runs Runs 1-10 (2)$(* rename it$All Runs$B@ Delete all but one of the runs:  :100$B@H  B@'= Setup the sheet for printing (center footer is already set):COMPILED RUN LOG FOR TEST UW  p!"($ p!"(&1:  '  p%!* p!"((E Now copy the formatting of the first run down for the next 200 rows:3:3$B@H (, B@.General (0 B@4:  $B@H*% copy the formatting for all the runs 4 B@2C5$rB@H 6(8 ' Let's find all the runs: $ ! $$.+ Only use the sheets that contain run info. !$ *$ H$ RUNS !A-B( Loop through all of the runs displayed:       %$'  Gyj< End of the run log! EOT  Make reference to this row.     C'd C 'k0 Copy the contents of the cell to the new sheet:   %$ *=' !'!R @  $   $%r(vk   ' k $o ------------------------------------------------------------------------------------------------------------------------------------^ Purpose: Figure out how much the electronic pressure scanning (EPS) system was used wind-on.R Looks to the 'Type of Run' column to determine if it is a "+Press" run,Y then look in the PEU file to determine the start and end time for the run.; Add up all the times and display the info...------------------------------------------------------------------------------------------------------------------------------------ Declarations:]  0 H ]` x   ]     ]8 P h  ]   ]@ X p   ]  in minutes] ] ]------------------------------------------------------------------------------------------------------------------------------------ !$ H\'n n nUW $ $'T Use the first run log sheet found... assume all the others have identical headers. $ ! $$. !$ *$ H$ RUNS3 Find out where the run number begins on the sheet: !  RUNA  G|j\ Find out where the 'Type of Run' column is located and how many columns are in the run log: ! > $ TYPE OF RUNAyp kh $G Were we able to figure out where the "Type of Run" column was located? > Can't Find It'LcCould not locate which column the 'Type of Run' information is in. Aborting EPS usage calculation.'N N P LA@:|P kH  Let's find pressure runs: $ ! $$.+ Only use the sheets that contain run info. !$ *$ H$ RUNS !A-B( Loop through all of the runs displayed:       %$'  Gyj, End of the run log! EOT  > %$ *$ H'@ @PRESS @^ BPRESS Found a pressure data run!    Ag Was the previous run a wind-on run and during the same day? Then use it's end time as the start time: BPRESS  <$DO totalpressruns will be indicating the last run # since it has been incremented 'D <$$ l  Ar only get wind-on time` Is the new starttime later than the old start time? Then there is a problem - ignore this run.s  D$ G D'js  $ G D'jk(k ! Calculate the time for this run: $ * $ *Gjs  $<'H convert to minutes  $ ' < '<: Store the date for this run so that we can sort it later: <@@  <+  <+  <+  GEjk @$ *^K-KT0 Same as last time - leave LastRunType unchangedS0 @'Bn  k $I Time to summarize what runs occurred on what days and for how much time: Find all the different dates:h$+ first date$, +$+d DateList(1,x) = date, DateList(2,x) = run number list, DateList(3,x) = EPS time for this date <G|j'  < $' Do we already have this date?'    $'yk   New date - add it:  ' @  + 'k/ Add the run to the list of runs for this date: $ $,  + Add the EPS time for this date: $$ $$  +  Write the results to a file:$' nEPS Usage Summary  0000$.TXT'   =Electronic Pressure Scanning (EPS) System Daily Usage Summary UW 0000$$ Prepared on   GENERAL DATE$  Total time = <0.0$ hours  DATE $ TIME (hrs)$RUNS USING EPS    $$ $$<0.00$ $ $  VTotal Wind-On EPS Time'LEPS was used for < runs for a total usage of  <0.0$ hours.'N N $ 5A summary file has been placed in the test directory.'N N Z LA@:o;~------------------------------------------------------------------------------------------------------------------------------\ Purpose: Check that the constant angle for each run is the same as what was truly acquired] and stored in the EU files. We'll look at the online data set to figure this out. GEP, 11/12/03~------------------------------------------------------------------------------------------------------------------------------ Declarations:]](@Xp]]]0H`x]]0]h]]]?]]]0~------------------------------------------------------------------------------------------------------------------------------ !$ H\'n n nUW $ $'T Use the first run log sheet found... assume all the others have identical headers. $ ! $$. !$ *$ H$ RUNS3 Find out where the run number begins on the sheet: !  RUNA3 Figure out which is the pitch, yaw, and q columns: ! n$H JQNOMA ! p$H JPFLAGA ! r$H JYFLAGA  Gtj p$H r$H n$HGtjyh5k`5 $F Does the coding sheet already exist? Clear it out or make a new one. !$!Check of Run Log Clear out the exising sheet: !'N !$B@v B@H B@.A1$rB@Hd@44 Open a new sheet to list the results - put it last.$ !B@x !$z$B@ !'NCheck of Run Log N$( N$B@vArial p!!x(kH3 Put the info on the new sheet:COMPARISON OF RUN LOG FOR UW 0000$" TO ACTUAL DATA IN ONLINE DATA SET p%(| CREATED ON  General Date$ p%(|pChecking to see if average qa from the online data file for each run is within the 1% of the qnom in the Run Log p%(|_Checking to see if average constant angle from the online data file for each run is within the l- degrees of the constant angle in the Run Log p%(|RUN p%(|MESSAGE p%(|'J Loop through all the runs: $ ! $$.+ Only use the sheets that contain run info. !$ *$ H$ RUNS !A-B( Loop through all of the runs displayed:       %$'  Gyj, End of the run log! EOT E What was the alpha, psi, and q values for this run from the run log? " n r  "$H %$ *' ^! Keep the value from the last rund. $ "+4kh. "  Open the online file:$'L n ONLINE\RUN_ 0000$.BIN'f f$~Gj f L j L$ j'R  Retrieve the online values:'VF'XF'Z Rb` Rd T R L T j ~ j% T+b  j% T+d V  j% 'V X ~ j% 'X Z  j% 'Z T LV V R'V  Did the q match within 1%? V)\(? n$4  VGz? n$4 Run Log says qnom = n$4, however the average qa =  V=, which is outside of the +/-1% allowed for data acquisition.'hX+kP+  Which was the constant angle?'\F'^ " R \ " $b "$b  '\ ^ " $d "$d  '^ " \ ^  YAW RUNS:# Determine the average pitch angle:'` " R ` "$b '` " ` R'`' Does the run log say we ran a yaw run? p$4 ` l  p$4 ` l  (Data says this was a yaw run at alpha = `), but the run log says it was at alpha =  p$4'h)k)d( PITCH RUNS:! Determine the average yaw angle:'` " R ` "$d '` " ` R'`) Does the run log say we ran a pitch run? r$4 ` l  r$4 ` l  (Data says this was a pitch run at psi = `', but the run log says it was at psi =  r$4'h'kx'kp'h' kP' $. Reposition the cursor at the top of the page: N$B@vA1 N$%rB@H|&c//////////////////////////////////////////ERROR TWAP\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\tX&Error Encountered!'LWThe 'CheckAngles' macro routine needs to be debugged - something did not work properly.'N N P LA@:|% Write the coding message:% hGOK'hj  J N$%(| h J N$%(| J 'J%o%------------------------------------------------------------------------------------------------------------------------------------S Purpose: Assemble a single worksheet showing all the runs that were weight tares.Q Looks to the 'Type of Run' column to determine if it is a weight tare.------------------------------------------------------------------------------------------------------------------------------------ Declarations:]](@Xp]]0H]]------------------------------------------------------------------------------------------------------------------------------------ !$ H\'n n nUW $ $'T Use the first run log sheet found... assume all the others have identical headers. $ ! $$. !$ *$ H$ RUNS3 Find out where the run number begins on the sheet: !  RUNA  G|j& Where is the "TYPE OF RUN" info kept? !  $ TYPE OF RUNA\ Find out where the 'Type of Run' column is located and how many columns are in the run log: 2  %CONFIGG '&j  %DATEG ' jX+ assumes this is the last column of the log yk $G Were we able to figure out where the "Type of Run" column was located?  Can't Find It'LbCould not locate which column the 'Type of Run' information is in. Aborting weight tare tracking.'N N P LA@:|k *s Contains all actual values for the last good run (in case there are carrots for some of the wt tare config values)3 Does the Weight Tare Tracking sheet already exist?' $ ! $$! Weight Tarese Application.DisplayAlerts = False ' Use these lines if we want to start fresh everytime.% Worksheets(SheetIndex).Delete( Application.DisplayAlerts = True $'yk $' Copy the template if it doesn't exist:  Runs 1-10$B@H$ Runs 1-10$B@ Runs 1-10 (2)$B@H Weight Tares Runs 1-10 (2)$(2 rename it$ Weight Tares$B@ Delete all but one of the runs:  :100$B@H  B@'= Setup the sheet for printing (center footer is already set):WEIGHT TARES FOR TEST UW  p!"($ p!"(&1:  '  p%!* p!"((E Now copy the formatting of the first run down for the next 200 rows:3:3$B@H (, B@.General (0 B@4:204$B@H 4 B@2C5$rB@H 6(8 'd@> Find out where we left off in the Weight Tare Tracking sheet:  ' $.   d    %'    'yxdp   G 'jkP k8   %'  Let's find weight tares: $ ! $$.+ Only use the sheets that contain run info. !$ *$ H$ RUNS !A-B( Loop through all of the runs displayed:       %$'  y End of the run log! EOT  e4 Make sure we skip old runs that are already logged:XkP   %$ *$ H'@ @WT @^ $WT5 Found a weight tare!!!! Make reference to this row.    &  c Make sure we only copy the 1st cell of the config, otherwise we get zeroes instead of blank space.   C'd C 'k% Does the cell to copy have anything?   %$ *^K-KT7 Make sure we log the actual date (last good one found)' $   $,QT@ Otherwise if a value exists in this cell, use it (skip blanks):=' !'!R @  $   $%r(vn0k(   'k  What is the date for this run?     %$ *^K-KT* Skip this cell - we want the actual valueSP     %d-mmm$ +e" assume last column is the date...d   %$ *$ H +kn  kx $0 Set the print area to only rows that have data: 1 to NextOpenRow. We sidestep the issue of converting our LastCol # to the letter designation by using the Chr$ function with the ASCII table$A$1:$@  $ $   $!"(oH------------------------SUBROUTINES ARE BELOW:'Ah G|j& Is the test in use?AAA Updates the ImageLog.html code to include the new runlog contentA2 Don't bother checking the coding at this point...| Copy the new DRConst.XXX file to the DR\REDUCED directory so that we always have a good copy there for when we burn the CD. l $~ l\DRCONST j l\REDUCED\DRCONST jA@pkP oH  7 Use this main routine if we are checking the coding...'Ah G|j& Is the test in use?AAo h|----------------------------------------------------------------------------------------------------------------------------l Purpose: Create a printout of the online data for the specified run(s). This feature was mainly developedc for customers that use the online data and need an immediate printout for analysis after_ the completion of a run. (Does not send it to the printer - that's up to the user.)[ Need to have the word "CUSTOMER" and "MODEL" above the customer and model names.l The parameters printed out are hard-coded. We also assume the test is classified as proprietary.|---------------------------------------------------------------------------------------------------------------------------- Declarations:] Proprietary]] 8P]]]0H`]x]] 8P]h]]8]P]h|---------------------------------------------------------------------------------------------------------------------------- +FTP + + + +FV + +FLIFTC + +FDRAGC + +FPMC + +FYMC +  +FRMC +  +FSFC +  +  +  + This will probably be CMSA50 +|---------------------------------------------------------------------------------------------------------------------------- Setup the paths & filenames: !$ H\'n n nUW $ $' p!"' How many cells were selected? !!*$A Are we on a run log sheet?   $' $B@v $B@v  p%$' 3F assume the run number column is the 1st column. A safe assumption... p!$ *$ H$ RUNS, Find out where the config notes are stored:   p%CONFIG '&yk k  & Select a Run'L]Please goto the sheet and click on the run to process, then run this macro again to printout 'N N P LA@:|k/ Load up the data names into the DRNames array:ONLINE$Missing Online Data Names'LLCould not located the online data names file, DRNAMES.LST, for this test, UW 0000$'N N P LA@:|k Load up the data: n ONLINE\RUN_ 0000$.BIN'f f$~KT Let user know:No Data Available'L/Could not located the online data file for run  $ 'N N%Aborting creation of a data printout.'N N P LA@:|S$'L f L jn` L$ j'R R'''''''' T R j!r L T j j T+ Work on the averages:   j% '   j% '   j% '   j% '   j% '   j% '   j% '   j% ' T LV j!r Calculate averages:  R'  R'  R'  R'  R'  R'  R'  R' Find the customer name:CUSTOMER %!'CUSTOMER %!'  $' Find the model name: MODEL NUMBER %!' MODEL NUMBER %!'  $' Get the run configuration:    '  G  'j;! In case we are run B of Runs A-B     &$^K-KT  Not good enough - try againSz  &$'yznz + Note the values for the config parameters: !' " ! "$! Print_Area "$!J "$!J!R "$!J "$!J!R $ '  C  C $ $'  ' "$! += name of the parameter      p%$ H$ *'N value of the parameter ^K-KT( Not good enough - we need a real value.Sx  +'y`xnXx k@x " G'j @8H Do we already have a DataPrintouts workbook open? Then make it active: " ! "$! $ $ H DATAPRINTOUT "$B@vy@wk8w "/ Does the sheet already exist? Then delete it. " ! "$!Data Printout  6( "$B@ 6(ypvkhv " Create a new sheet:$ !B@x !$z$B@ !$B@vData Printout  p( Setup the print settings: p!" 9? 6%97/ give more space on left side for hole-punching? 6%9? 6%9? 6%9qt @A:A p%r(333333@B:N p%r( Make the new sheet look pretty:A6 p%rB@H ( Print the header:A1 p%rB@H Arial5x(5x(5x(zONLINE DATA FOR RUN 9vqsA3 p%rB@H7University of Washington Aeronautical Laboratory (UWAL)' Arial5x(5x( 5x(z 9vqsA3Ab  ~ t%|!x(zA4 p%rB@H  5x(zArial5x(5x(;KIRSTEN WIND TUNNEL, SEATTLE WASHINGTON 98195, 206-543-03379vq r Add double-line:A5:N5 p%rB@H  %  9 9 9qq Print the config header:A7:N11 p%rB@H !xArial9 9zq@qRun A7 p%r(vTest # 0000$D7 p%r(v ProprietaryH7 p%r(vN7 p%rB@H  9'  dd-mmm-yy$    h:mm AM/PM$ 9vq@p A9 p%r(vN9 p%rB@H  9Model 9vqoConfiguration: A11 p%r(v? Print the configuration variables 4 per line, 1 per 3 columns:'"F ' Start on row 12    " '" " G  'j " ' $ =  $   p, kpnA12:N  p%rB@H !x 9zArial9q n  ' move down 1 line Add double-line:A :N  p%rB@H  %  9 9 9qxm Print the averages title:  'A  p%rB@H 5x(Arial5x(5x(zAVERAGES9vql  '# Now print the average data values:A :N   p%rB@H !x@9z Courier New9q lQC =A  p%r(v #0.00$B  p%r(vC  p%rLBS/FT29v~7|!x(~7|!x(qPkV =A   p%r(v #0.00$B   p%r(vMPHC   p%r(vTEMPTS =E  p%r(v #0.00$F  p%r(vDEG FG  p%r(v PRESSTS =E   p%r(v ##0.000$F   p%r(vG   p%rLBS/IN29v~7|!x(~7|!x(qhiRE_FT =I  p%r(v J  p%r(vRE_WB =I   p%r(v J   p%r(vCDWA =L  p%r(v #0.0000$M  p%r(vCDBA =L   p%r(v #0.0000$M   p%r(v Fix the formatting:J :K ,J  :K   p%rB@H 9  "9#,##090qXgA :A  ,' E :E  ,' I :I  ,' L :L  ' $  p%r(B :B  ,' F :F  ,' M :M  ' &  p%r(C :C  ,G :G  ' "  p%r( Add double-line:  'A :N  p%rB@H  %  9 9 9qd& Setup the header for the actual data:  'A  p%rB@H 5x(Arial5x(5x(z TESTPOINTS9vqd  'A :N d  p%rB@H  Courier New5x(#" change font name for all the data $9qpcA :N  p%r!x(zF" change font size for units (7 pt)A  :N   p%r!x(zN" change font size for names (8 pt) Testpoint:TPA   p%r(v Yaw angle (PSI):degB  p%r(vB   p%rB@H Symbol5x( 5x(zY9vqa QC:PSFC  p%r(vQCC   p%r(v V:MPHD  p%r(vVD   p%r(v LIFT:LBSE  p%r(vLIFTCE   p%r(v DRAG:LBSF  p%r(vDRAGCF   p%r(v PM:IN-LBSG  p%r(vPMCG   p%r(v YM:IN-LBSH  p%r(vYMCH   p%r(v RM:IN-LBSI  p%r(vRMCI   p%r(v SF:LBSJ  p%r(vSFCJ   p%r(v CLSA, CDSA, CMSA50:CLSAK   p%r(vCDSAL   p%r(vCMSA50M   p%r(v TEMPTS:DEG FN  p%r(vTEMPTSN   p%r(v+ Set the precision/formatting for the data:  '0A :A d  p%r(0Q for tp##0.00B :N d  p%r(0V( for everything that isn't a coefficient#0.0000K :M d  p%r(0W for coefficients@A :N d  p%r!x(z Print out the data: T R "  "$ T$% T   " p, " T  Save it! B@( That's all - whew!o[~------------------------------------------------------------------------------------------------------------------------------@]=============================================================================================m Purpose: This feature will insert the page number in the footer on the right side, with right justificationi It increments the page number for every sheet thereafter based on the starting page # given by! the user. 1/12/99 GEP]============================================================================================= Declarations:]]]]=============================================================================================2 Find out what the starting page number should be:0WInsert Page Numbers'LEnter the starting page number:'N N L1$2', ,$'. . 4KT|8WPTInvalid Page Number'L<The starting page number must be greater than 0. Try again.'N N P LA@:0VnV . '.% Loop through all the run log sheets: $ ! $$.+ Only use the sheets that contain run info. !$ *$ H$ RUNS !A-B . '.&"Arial,Regular"Page . $$!"(& !$ *$ H$ NOTESe . '.&"Arial,Regular"Page . $$!"(&kT $ Let the user know it worked:Page Numbers Inserted'LYAll of the run log sheets have been updated with right footers including the page number.'N N Z LA@:oT]============================================================================================= Purpose:9 This macro will scroll up each page on each worksheet,: and set the cursor to the first run number. This makes+ the run logs look pretty... GEP 2/10/99]=============================================================================================]8A For sheets that don't have a zoom property (like the notes page) $ ! $$B@vd p(8A3$rB@H $oQ~------------------------------------------------------------------------------------------------------------------------------P]=============================================================================================2 Purpose: Reduce the last row to a height of 4.5,J then select the new print area. Do this for all runlog sheets.( Macro recorded 2/16/99 by Gep]=============================================================================================] $ ! $$B@v> B@<34:34$B@H@ (@A1:O34$rB@HO34$rB@v !* p!"(A3$rB@H $oN~------------------------------------------------------------------------------------------------------------------------------]=============================================================================================] Purpose: Check the ID coding that was stored in the DRConst array after the run was reducedZ against the information in the run log. This is very test specific and may notV be possible for some complicated tests. It searches all runs. GEP 2/25/99]============================================================================================= Declarations:](]@X] p< Run that has lift values for use in sizing wall corrections] Notes about a run] Run number of weight tare]+ Name of the CMS set used to reduce the run]  Tail switch, 0 = off, 1 = on.]>]@\============================================================================================F Does the coding sheet already exist? Clear it out or make a new one. !$!Coding Summary Clear out the exising sheet: !$B@v B@H B@.A1$rB@HdHI4 Open a new sheet to list the results - put it last.$ !B@x !$z$B@Coding Summary !$( !$B@vArial p!!x(kXH$ Put the tare info on the new sheet:)COMPARISON OF ID CODING TO RUN LOG FOR UW 0000$ p%(| CREATED ON  General Date$ p%(|RUN p%(|MESSAGE p%(|'J Loop through all the runs:  < Retrieve the coding constants:  % B  % D'hkF J D%N$ *TARE  %P The FORCE did not reduce this run, is the weight tare value = 0 in the run log? $<'h/ Must be a tare, cal, aborted, or flow vis run.dE<NOT REDUCED BY FORCE. VERIFY THAT IT SHOULD NOT BE REDUCED.'hk8E0Ek(E Do the weight tares match? $< H D%FG#Weight tares don't match. FORCE: H D%F . RUN LOG:  $< $'hj Is the tail on? L D%F'BTAIL OFF'Dd(D N D%FKT'BFLAPS 0'DKT'BFLAPS 5'D KT 'BFLAPS 10'DKT('BFLAPS 20'DKT0'BFLAPS 30'DnpCkhC* Now compare the CMS set and the lift set: D J D%N$ *GCMS sets don't match. FORCE: J D%N$ * . RUN LOG:  D $'hj B F D%FG h Lift sets don't match. FORCE:  F D%F . RUN LOG:  B $'hj Write the coding message:B hGOK'hj  J p%(| h J p%(| J 'J . Reposition the cursor at the top of the page:A1 p%rB@Ho0A(A߸Attribute VB_Name = "vbDigitalRunLog" ' INSTRUCTIONS FOR USING THIS COD E:HNMake sure that all run log sheets m 8e following criteriaD - Labels start on row 1b A[headeprs apy(i.e. eacBhs hasqsMlWtho4p) *T Xnu`mber "ould be eir "RUN NO." o#My n;must of~Hrm #un^-@b" wheaawxBf., bend.[]Find)ir1 ("Es 1-10"), definjeHsrE vba`bleKGyouwant saved in to UWAL dCx. AO=A;s R kstorCan ASCII file cCONNAMES.XXXCX\DRbdirecy  iUlso usby WTDO,ACE, a@LOFFLIlNEAQ-c#ya maximum keight @characs (Cs, letAC_B6ok)HB!no@ase-sensitivenIf @Yve aQ pi IO@ vbubroutaT@Mai-??5)TGLOBaDECLARAb@O%Ex 7 cit !1Mo@tfdecl>+Vfromb, YINDX.T XTV!jDR.B1,!Wfig1?piMQ& goho@a4%_Not= 4CabBU7MsgTitle As S ng6MessExt *3' ext]onY.534ve8UW17V% TInteg 'hc t!, n@o "UW"GWłiTs() e5Cw 0ppecifip1|4Q1ae/q Path' Locar`# , e.g. T:\TESTS\47|DREuc}1547Ia1? bK' 0 800\3$LbFG \IMAGNOTE.887X9IndexKfropYsp$RԜa!\ `DR?0&!?fs(1 ߐbb'4 18B4`Oj\aF:`1WQF+infoᕤ=^o0c[1 2)!Ro[aӷ=0;threes1#8 Typeu 1-c.SVAnC15\!End TBk{pBa7t! Gp gI` ValϠT" ' 2RecCo:0U`^dmB1@+Den@ z (We wo!normy jAypaSA dbn't liPg(PaerRp Ho4ir@ &b,\>1mAdAExcel7TAbortProcpeBooleanA4#ds5#1 Fw v8430@ m0bigc">iS2C3 odd size. Should be standard 8.3 Always uppercase. Note As String * 300 ' characterscause that's w easily fits onree li nes ie image na@editorrRuns r100 End Type 'Global I>Data, Info Sub CalcWindOnTime() --C Purpose: Figure out how mu ch ofe w]-^ duthis te st (bit isn't aright)܆'܄Look:o'APAX' columbo deqmf iCrun was "P6" or p"Y6".t`hen lEtEzU{l@ r)pet4f/,A@upM@6l.A s displayBi{..AvGDecl@tions: DimeetIndex©nteger , @`Tota6l@¿I CNextOpenR, ColowL;Cou r @ m qmCurrentJMaxK ProjectNumLastR FileNamh,ile偱, T@fQa ?eA kc ()?  !Li stIStartMaamJunk` Ef o'!qyuF@>dItBooleanc`pFor#Variant& Sh W!Works C[t"-6= 247^g??; TPath = UC$(ActiTveAb .) & "\XVal(Mid$(, In/"UW") + 2, 4)`ʁ' UBe`r`!alog "& f/ assuiValCo@hav dhichead `3i= 1 To F18s.c 5Set"]#6=(B@ If Left$(Trim .Q5)) @"RUNS"ew`#1'P\Qkw hekd\ numberЀgi |B`#PylP5PosiR(a( QpBrPH, qn" @ (J*V ) 0 ExqSubSQonQN[pqii#!If Y!Wwe abSqfAlocaEqi2nDzs? MsgTitp= "CaqF0 It,Y= #3Mess!Rz0 hi$conta1A 'qiaDym @AbortU*culC Box 4,` vbExp3, E!qtLeqf %`5!uo1o1ALo1tLso1' On+1t !>‡ (?5%<5f04(F7`'A-BpF)7pЏroughՑed7{2=2a3D4+ 95}= aQ9Cells(:P5:9' q P)g! EOTeA>nQ>KQF. 11) (5 ) > 0) Or "^" AQT` PQi^ ad`!0&B46 = ikTCAMr\pY_"6(;#0#0n.EU95qDir(S"3^ Gop!LP_ SGetQ,Qrue&c' WDZHprevious7@? ^e:vB%atq; < X` / (c!1 r!R3(ֺ>(&;!5'W@T"Dsecu VIAS @ ѭday#P;P 1 YojectNum)), JunkStr, StartTime, ThisDat$False) ' we put Hthe a is locati`on soB*it ,fille@d withpEDnd ofprevious run , If' C`alculWt for \:3If (Trim$(J) = "") Or  Then GoTo NextRZoFor)Diff(" s" ;/ 60convero minutesZTotal= + Val(<)JsJ+ 1 Max/ O'orze`db`Fc^a:@mrgReDim Preserve #AR(1= 3, ):F @LsqCurrenSn 2 @smat(G"SHORT DATE")FY?gKOCSel@se QCa@"^"-"game 2aasMd- hlea+L  Q unchangedB E@ F`Rc|PrEMA" RowIndex% Sheet ' - to summarize wh s occA@ d @days and…how muc`@#0@?S P32O3' Fi allC^ՠ|eK _s8X!aWListW1) AsfringC @\F)a(Rfir`7! ,#='e"& ALOg c' HxA ,A2,* number, l@k3cEPS ' d(G?0) <={aEx SubcLineCount @a4$"@@H4 Ey+hjG"o!alreadhy haft]b=?FdIt@  rXUB(+, 2 zA$ G`(1,F ) @eTruea5U 7  Not Wq'`rw - add itD1ni` a55YKk ?G7IW' Aђq2Hq2 s!1 =k8ep8& ?6, &x? e 9~eRKB). p(un}9)-#%DS S'` WritӃPuHltsQ\a @eFileN1l`estPapWA`X-On S_yUW"@.{tT0, "0!.TXTrOpp OutSZbums PZt #4@gd' nt Space(7)q08par`0k8 NowGENERALڈPsX0grGr10.0 hours `7s! ! 10 TIME (h(rs)4WIND-ON RU|NS4&7oRstkRv)JR& # >5q0A!_,C))  9!R0 Clo0" "y1MsgTitle"5%Messag&s!qsDa2nd-p"2wPֿP0.z& Chr$(13Twe@68spbe3pl + 0^nt di"rorysgBox , vbOKOnly, 1UB OneBigLog(D'-ᦐPurp0: semb`a sworksl s0 Ţ`.eiume@Ocolumn hq21-10yqus@Ql,ogs<GEP 1/7/04H ^-u ' Declarations: Dim SheetIndex As Integer, RunAllbs2LocG 5ConfigColfNextOpenRowl>ow Last,, WtTar~eK9  @u`rrent  owString cfThi Works ATestPath = UCase$(ActiveA+book.) & "\p" CA Val(Mid$(,?"UW") + 2, 4))' Use the first run log G found... assume all o@ rs have idbical headers. ForI= 1 TDo F]s.c@t Set ug=H (+ If Left$(aGTrimA=number begins on9A@!aC @OPosir(p`XW, "f(Z* )0" Exit0 SubC'CONFIG' column isC7|ed ah! wmanys n iC$=6`3xD650'dInJf.Cells(1, e/"M<> =F DATEJ  'DVs8"@\le%ofB<]_Ab2#E +If GTjA$Copy tem`plate,"s(" >s 1-10").Selec`qbBefore:=2Hn (2)y acbs ¡Ns"`$ f iH).Mo{,1 !letCbione D*'@KA\s(%]+ 1":10  ` .D  Shift:=xlUp `%" S,@up,r pet(c zfoot @alr y set)2' ge .C%F= YMP ILED D LOG FOR TEST TXhX Z-Right[@4Q 1:"pP - 1o P Title݀s !(@c).AddresjsN@cE) %matB_dow np_rRnext 200 rowa"3:3&CW@Uow.Free@zePane T`rue 3.!Clear`@t  =NW6` !*General b"4qX?wm155-g Ela* InseFrW(DowcRange("C519pplo_.Cu pyMode Fals0A^=6p CU'lt's`wD )sss7vsIQ' Only u3RatQnta0bbfo|AkGwow) A (G cHPqA-B@\= 0).zLooa=`rough2E dis Uyed 1 k4 G9Kqt;Pѓg|m}! :{' c q! EOT#!' Make Hrefnco9L91{q;- *_PKC :A9~E0]& VO _v/M'0}ycontc tAe new%%ͦm" )) P>"qX:?non).SGChr$(64pMb.PmulaR1C1qp,"=' "x'!R?_ b! Hp~5! U%Bs"!3kQS# cEPSUsaPY ='- ' Purpose: Figure out how much the electronic pressHscanning (EPS) system was used wind-on.` Looks toU'Typlf Run' @columndetermine if it is a "+Py" run, T]n l] iCPEU file (fstart@ and etime forH- X-Add up allHdisplay info..`Declarations: Dim SheetIndex As Inte0ger,_WtTareCol `TotalBbmsNextOpxenR@IowL}Cou&~rN#Aof Current@H,leNumNF@Na@12Str Da ta This LasCIInfo()7@e AListISATEnd!I 0Junk IOl, B>F j'l@tutesF`6dIt BooleanFor$Variant'R!WorksATWd??; !TestPath = UCase$(Activeb .) & "\"  LVal(Mid$(,n."UW") + 2, 4))aC' Us f0irstag ##und` .a@T%orsP hav@d@]ical head8ers@0I= 1 To .s.co Set 63=(B"waIf Left$(#Trim@E;.h))@"@"RUNS"` ew Da'pwhe@ number begins oc @5C FgPosiA( , " ̀(* )0" ExSub#locat`aanyʠdבlog?isb17$A,=TYPE OF 9R P! C If  A\)' WAwe abufw"2Oor}"u}ぁ?  vMsgTit= "Can'tY!It5AM ageP"bld not1 wh>i@ń4azrmBqqin. AbortpM p3culb.E@sgBox ,` vbExv, 5  "Eq yLet's0/PqzO:O:SO:TsO:' Onlya4@hatntaP((# ?1>,6>m (InN@)A-BPO= 0)@0p roughB$@s $ed1`;==;A= AZBCells(uCY5:iB'  [! EOTeAG3fT y4)o APRESSOr "^" AThy\u `Qp-vdap%!;[Getp(L-,a,`#isArueuu?Lq% viotusRva du2Ѡday? B+4i<$#Ɵh*#o ")? .(Ѓ)5 'з bs pbndrOQl2# sinc0! beencremed_ u |= rQ/me(80( 1pED !A3t oMg4 _' I1Te new Q 0dthaoj!u$0oum - ignoPtSq} !Diff("s"V OldTime) < 0 Then Start = If DateDiff("s",az, En6: ame as 9s`Tl - lea6Las+ unch`angedK E=fa +! RowI0ndex " Sheet  ' !/lsummarize whU s occ!AEd onda@ys and"how muchb, FiallQ ^e d e!M bs@c[AHListkZ1) Asiring g@^S ' firߠ. V=f& a8hi mx ,2,# number l k3cEPS̮]fr <=zEx Sub LineCount@  h7j2km=t`h&@"d\!C' Doalready haWVt6?FdIt oL UB!(E%, 2?j e(1z,U)BcegTruLB%'%] aNot U+k'lw - add it+:b[wa&q:/@g >P' AP +0u+ ofs*_51e1&76' &8o2t(}<) run?/(c!PQ?Wr it{ults%PaFle@Fi leNumFree(1b`@estPatha Usage bSUy "``*m(at(wT, "0.TXrTfOpv0 OutputqQb um PQt #`EmronicBsuSnpT () S ystemPily PUW/ - Space(7)!pLpareRbNow GENERAL DATE"`"LsRri0.0 hours "2# 102 TIME (hr,s) 4RUNS USING~ Pq'@ NstN 6*N& >5!-C|))~  9 OCloE#s/MsgTitle0 "CW{-OnqbM, wЎusol,Da`4 u00Fr .U& Ch r$(13A 3y:ks be4pl)[nB@Êtr`oryr@sgBox D, vbOKOnly, %Sx@eckAngles(`,'-?QKPurpP: `!]Pstant B]ea`Q_!sAtruAacqui<h2 st6EU"s. We'AОlook o nlta se1figQIouDt.GEP`1/12/03y- ' Declarations: Dim ColIndices(1 To 3) As I@ntegerDuPrRow,,>dex "Curre ntRun Sheet` -OnlineFileNSingl̢G  STPš!$GetK\, , C\ 1 ~ .d(7EncLj1 P H\+&qa !@ D@L"|$k&Close,  JF/Cc[g'pdbVq wch within 1,%?+u( > 1.01 * `sqE)) Or g< 0.99va}+ o"s  1p11C11v o 11p1֏!!]B"RowRSheet! qpo㣁{urs`Bqdtop opps(New).Activa.tp.ge("A1").S elect ExE/ERROR TWAP\1HadProblems MsgTitl"Errou@red!& 'ChHeckR5s'c0ro r0qwneed@eo be debugged!someg @did noTork properlyPBox , vbExcla, E G-ritCc9" m3 ge: If CodingMessage = "" ThenOK" Sheets(New$Index).Cells(CurRow, 1).0Valu$rentRun#t2:9 \+ 1 ReturZ End Sub gub TrackWeightTares() '-C Purpose: Assemble a sAworks show all the runsat weLren tn.* Looko'Type of ' column to determine if it is!wBLK6Declar@ationsDim GQ Integer,9 W€B LocConfigC$olH ANextOpenL l LastK, $dC @ %@ {M GDN StrLAs #,isD Info ()C%ThisB,WXv`6tB= 204@:B??;a Te@stPath UCase$(AcPtiveAbi.) & "\$)(Midt$(, Q%"UW") + 20, 4)' Usesfirst!{ log ~` found... assum `ors hav`vdical header"suForb= 1 To F1s."c t Set<#6=(BYa`Left$(#Trim@=.Name))@""RUNS## !!' Fiou `h number begioŸ|!aC!`OPosi(M^Lt, "(aP* )0 `Ex S;a WA"TYPE OF " i` keplt?ebt,6` di(led a. manyic-@e'Q$L4$50gInr.sF 1,`Q!"@CONFIG/<> V=DATEI P '44sP =al0Ypq"ogWQ_ B"If 73S>rWsz a~ w@fu[k0" y"U was`jed%++$#F+MsgT itCan'rt6ItJxCould not which%gQ$-rmrn IAbortb, t@.5sgBox , vbEx|, %  7RewfLg 'PntaCC1BactuQvjaspTr2VgoodrV(/c`^Г carrdotsoW4!wt cf9roe%e G!calrZy exisB}#ƈ= -7$p[un[ !])[Pհ"( sX'!10ApplcT.DisplayAler@= Falijls@we wanoD sЧt fh everyti|me@? D|elЧTrue"ng::xU$DpyR#temPtձd5RR_8 <=tNb s(";s 1-10").ScUx CoBefore:=2T' (2)?74SQz!' a0/i, #).Mo@\ f10' Sb}~oŔ4$fxs(x0ܒ:10 b.dShift:=xlUpO p4' 0up8  pK(cfoopτ:set) sR`gerF`WWEIGHT TARES FOR TEST> p@c /tup.RtT@vDP1:"$P -QPQbasPi!(@ԶString).Address  ' Now copy the formatt ofDirst run` down@,next 200 rows:R("3:3").@Select.ActiveWinA.FreezePanes = 0True$0ion.ClearContentNumberF?"Generxal"D40:204K*Insert Shift:=xlDuange("C5ipplica"tXutC7ModeIFalsiNOpenA DRu E' F out where we leftf inWeight TaTracksheetC2 - 1_SehisS!WorkBs(WtLo2) W ,IndexA. To (0 `+ 100 gCurr@k@ T.Cells(ED, Col If 0 Then!7I@! Exit /GZ6>  =And IfELas~tVCiE ' Let's fAwt7gmEh1gv.counGH2' Only useP#F@at`ntaSAinfLo.#*(L`W$(UCase$(0TrimAName)), 4)`D"RUNS")D A`&(In(F!, "A-Ba = 0)B@#ooprough0 all`s displayedd!?!&>:Bq+Z9 A SVal?Z  "[ V ' AH+log! EOT#,aqk <= Nh' Make su#skip oldsc;already gj(AaGo X[,?$`%+<TypA4E+A)o,'G$ `GWT@G<>1aGOr B7"^"ON!'`I@Y% *Fmd aWt! #-refncho,isei$Sy`'?(?fig ) F>B]EUI'!o@1@c\6con, oPXrwipBkgfzero}inst`$blank space! :-yXBa CECo Oa]& "C" & e`m' D'Q!Rto3have anyth`? Y0Y6 6qp4P2-m%`E0@ ctual da te (l s g@ood onAund>*vۤv,vg'?VOBIs pE>"OUrs1ifBvalue exists@6,Bvp(X2s)_kzRRChr$(64К +8).GmulaR1C1Q3=bÛx "'!Rf1?U /&?11Q 5PH p OLh{' Wh@ϱ4'0Yun,4Y~ov ?6?6l{BE?6 C:5'L S{P?s @-want52' b,?PX"dhcgr4exa6%a>tw¦p"d-mmm`{' a0ssumQAco lumn ..odR? bD? 3 O4 oI-q1 n/ Q-? gU_1Ѿ-pt2 a b| rows that have data: ' 1 to NextOpenRow. We sidestepe issue of converting our LastCol #the letter tignation by us`Chr$ funBcwith_ASCII table Worksheets(W@tTareS LocO).PageSetup.PrintArea = "$A$1@:$" & d(P64 +)"s - 1 End Sub '-SUBROUTINES ARE BELOW Main_UpeWTDO() Att@ribute .VB_ProcDInvoke _Fa \n1 4" Abortess 0Fals Call ThisFT If Then ExitCo) ' IeD t infe?>ABLoadHeaderNaxmesC:JSFile  CImgLog.Phtmldo1clunew runlog!tentWr@iteRun@(<)Don't bor checkcodEtB po@...4' Copy˜ADRConst.XXX f0DR\REDUCED directory so we alwaysa good@.re `for wZ@ burnCD!AUeDir(DRPath, vb@C) <> "" iC@ V-C \-ONSTExt, . 3Ifa"H] WC!*C")() m9s6)m`[u ~f a! P0.^ __#BP___@1"RTru2e@| n)‘out{ForaX?uT?'Purpose: C`a p!@aonlincYaspecifiedu(s) featu@was Clyཀveloped &cccustomeriu"K`%ane an immediaFanalysis af˫ acomp`͠a!(Does not se` _ b -"|'Xs u}eBr.;' NBAword "CUSTOMER" "MODELy`bomodel n` @V par>s4@"a4@@rdr-edot am!u`s8 cl63pro@etary!#De rb|ssX C }Qp@oU p`Dim Mh As Sung,< C%9pfi:giO&SK TPL/ņ9SP!sPR3>aqBook-AvgTempkle, Pr}7Re_ft|0MACLqcFVLCDWA.B*q ValWbCurry Integer, "IndexS `-qyWow@? on0=3oFir stn Numo`fSpacBTPTotalTlPs ^Pq@N(1 To 14)DowCoun9sToDC%SCx+um.Fd# 'leanGR Typ'lle9; ata)@Pt: 4s("TP!A2qPsi23aqc\= Sp\MPH)1"V5aLirfrrGBLPIFTC6DragCoPDRAG7PMa1b8YMBM9RMBM10SFk 2 >1CLSAe,1CD"C0MSA1 wi p@mby ber 50RQMTS-/)d- ' rpPs@Ǣp-p/UCase$(Aveebook thB\`TYA[(Mid$C2@, In r"UW") l+ 2, 4)) RunSheetIndex = Active%.L ' How many cells were selected? Call ParseRowRange(Window.$S^ion.Address, -sToProc(nA^we on a run log FskFor7Count1 To UB d( N, 1 + "Workbooks(BName).eate 'Cur0rent$;Val.C2GR) ' assume thexnumber column is 1st. @A safept..OIf Left$(UCase$(Trilm$ @B5)@'"RUNS" Then8' F@n out wh{&config notes aAtored: f8ColDf30'InStr1D1, E@'"CONFIG") p<> 0 (AC?$@ A Exit 'KEnd IfNext .(u* C@) (MsgTitle"C+"MagBPlej goLtoz a(cplickA…@p, n‹thmacro again B intApsgBox $, vbExclama!H, g"'Sub#!#' Load updata 2n gs !bDRcNFray$F*N@ot Get("ONLINE@>Q)Missing Online< D b 3+@|ldaVc`xdo(file, AMES.LST8, f +]t, UW" &H%ATes "0"M,lT,,$)c!F@!!@NaPathd*\|_ R, p.BIN)V pDir( "H/@Aet uspknow"&bNo7Available(b765(t& Chrp$(13)3fn & "AbortaJcre"a ofuCprh.)hAcc;b&Els?h+um7Free9(eءOpen^F=!dom AVsL=`n(dPt x TotalTPs`LOFium) /ReDilla(B^5)QaTyp AvgpTemp`Pr`Re_f|#7MACJqcVCDWA BTPiE xrQX Pt.dw J #:, 0CataPtAa#' a]aver`s3[+b3 (ATS-0u e 3 "p9qc[@V 8SpeedMPHT BA#DClosekK5E" S' culf |0/8p~?g/?11v_g8gg2:S4ustom dQ1;.(what:="CUSTOMER").p0p@s4= 2AS+ ٩Y model MODEL NUMB dOL) Md?  /; Nurq FirsQ@`- y 10 /3  -In cXP}BQy s A-Bc oow= IStep -1qt53^"-X' good enough tryCE*1}LrSY' Note the value s forpconfig parameters: ReDi(m CtPps(1 To 2, N\s.count) As S`tringvjIndex = 0}(Fp A!vIPf InK(_( 0). , "Pbt_Area")X Then;?LocatioBnMid$ FRefpToR1C1,3 "!R3D+ Len%) -$&) VColᅈVal(X`Oy"CF >)5yIh8% },]Nf ' n@ ofBKRowE Run@AFirstStep -1KuTPLine@uTrim$(UCase$(ActiveSheet.Cells(EA-W)))(B\(Select  ""^"9@-" good enoughwe need a l.TElseSCngHrg,Fu*ds")ut Exit 5/End C$kNext e/GIfB? }h0yMDAPreserved%TɒH ΒA' Do 2al1dy ha @a Dataouts workbook open? make #abO[%[~WDD0WL`eft$(k12V= "DATAPRINTOU|T"G Bbat,;/:Y3C %!sl %&exi4st"dfitZ!bt!>"0 1 " & Currenᄰ Appli.DisplayAler@8= Fani}kDbA*a T~rf+Àc ', CO 'a`w o",DJc;.s.Add Bee:=(1$J.Mo[Af}G4|S .% yoki'DtupCc} se ttP5With yPageSe0.PaperSizaxl2L`er86MargiqInchesToPoints(0.75bgPe more space l: sidehole-puFRight(on.5z.T>@5A+. Co"l = (- 1) * 3iO@Cells(e , d+ 3)`%(1A7 c_A32(2Nexti&#aHIfcab12:Nap).^@niySize10 ,.W`"A GlċX% F-Dmove down@LAM A' Add@uR-AO1f.Borders(xlEdg0eBotL.L!`StylxlDob WexlThickHHorG= xlAu ucC %citaveragrtitle$ *#>#F`#ld@TruoGq?E8 JAVERAGESFO䋆tc '  D% data1 lueEF "}F ?d}47.5 BeCou`xr New9 "A:sQC ="BAvgqc0x`#0.00uqu 9"C l LB`S/FT2 "C2h[ct16a:=OLength:=6)F.Su0g@script'Fals'/7, %1/:+6 S\ V=ormVqPbMPHsO"E#TEMPT6S? 7 F#vgTemp/ GDEG F  PRESS ٶ O9Pres"#r11| ϒ11IN111r15 .115]_h߱IRE_FT$$JpHRe_f{Ć " W~Bx]+>CMACS"L aCDWAogM cBae5YCDB h? 1_ ' (FixBfatting K,"`?3  hMergebaqh0xlLe)bNumberFormat = "#,##0" End With4TPLineA" & Ro@wIndex": "+ 1*,p& "E AIA ALA |ActiveSheet.Range(d).HorizontalAlignmenxlRight|B:ݟ[F  M K@-o>C@erC{C>CK.G K(Lef g)' Add do@uble-l@:ƹ=+ 2H"N2).Selec ion.Borders(xlEdgeBottom)CA.StyblAxlD*We@xlThickColor= xlAu@paticC}#'tup the hea foractual dataZ%1# o]%##B Fm$lBdTrueMNamcrialQSiz8rmulaR1C1@ "TESTPOINTSk#A A X00_'Courier New" ' cnh`3 nA 4all"5A4( q\ ":\4-7 s0units (7 pt\^ & ().I8U#@8G##' TestpointdZ 1A HPG Yaw 4w(PSI)w deg ȃJo%Symbo3݄9 d*Y #QC/t"J`.PSF/!lQCVD{ZAMPH sEV|LIFTϯڐN LBIo 3? "mDRAGF}"u:#PMzIN-O^PMY"HaYRo:Y"RSFJo#;D_,"SFmCLSA, CDRMSA50 K ?®q KTEMPTSo eNx6EG T#?0: Setprecis/~ting&x06oק?灔NuK0١tp &"sυ#0.0everyththisn't a coefficip"(!s: & ":N"`RowIndex + 100).Font.Size = 7.5 ' Print out the data:@For TP= 1 TotalTPs@H DUBound$(DGPoYer`s, 1)15ActiveSheet.Cells(h+ - 1, [)AllS(). c(3Next=3 6CWt ' Save it! QWorkboo k. That's all -` whew End Subd'-z %CsertPageN(umbf(KAttribute.VB_Proc]Invoke _Funcd" \n14"@M=?WAePurpose: This feature wi@`in5®p@6 n6 infooter oCright side,th justificationIt@crementsf@Ȁevery s!reafAbasedstar ting B(# gn byu3. 1/12/99 GEPG=aDec(larsDim Respo@+ As Varian`d!0w!cYB aBKoInteger, Bbs9ao7' Fi`raw`v7k1Eshould beAskU0 AMsgTitl"ICM $h_essOP= "E r6 : +=nputBox(M, e`, "1"$D+=1l(dSelect C@N #vbCanc elCExit㔡Is <= 0gvali~dB T+ml+ gccthan 0\T@gagain.)) sg! !vbtExSmS#Go@6""'@gDLoop6`roughqrun log{baZ`s.ccaaSet"b $'(8!' Only CIat c@ & !info.If (Left$(Ua$(T8rimP@S.Name)), 4u"RUNS") A 2sStr(='A-B!z) eQ 5=?D'1A).Cqup.RYFo2Z3&""AF@l,ReguI"" NopElse5NOTE`* eNoS |ht  I~f"!(*$a know0 wsjSmake]0'06sKok pretty .. 2/10 +~@ O`n Err kume . zM don't#(a zoom opy (liken CsbSoY7;iY<<Ҿates8 .Z^0qRange("A3").wķq;f--ӿFixм_A`x5?6D' 1AwReducla11 P@2a he2pL4.55&111n sÑq2nefw$ a1Da6 (܀47pu6M=recordQ`56by Gep5? c)!W&6 For SheetIndex = 1 To WorksTs.coun.td(l).ActivateP"eWindow.SmallScroll Do wn:=5)Rows("34:34").Selecpion.'@Height4. @ange("A1:OBRf.PageSetup.PrintArea6AAddress^=3 ]NextEnd Subp '-zEC CheckIDCoding() Attribute.VB_ProcDataInvoke_FuncF" \n14"@5=?W Purpose: ' the 0ID c0@at was sto@red inDRConst array afterrunB pucedagai Ainformatlog. This very tespec@ific a{m)no@' be 1sible  some1mplicdsIt sea@rches GEP 2/25/99@-?]8"Declars: Dim Curq As Integer, Desi@)LiftgJrentR.' B7M jKnS Png WfC  c9 _K 3'+' at*h@h@l` valu',useq8siz]`?`corr@;@zc @_No@9`[4i pabouIa1W`TTareA5CFnumb Nof wct`&Na?= 2j a`OCMS set @Co VeXE TailOn`&9 '  switch, 0!off,= C@DELF@62H4?LPL'€4yπ^dy exist?~la it a0make a newe. IfcsӤ4).d,"cmmary"wenc' C ! AD?^*BM Cexllsjg Lt'a$$A1Els' Open to l`!?esults - p@R"las.t Aebo(ok.#. Be`ae:= 1p_ 1).Move AqRFocS B.FontfA0rialftIf{#IP5=f~o a!R(1@0).VaA."COMPARI@SON OFQeCODING TO RUN LOG FOR UW"X & @a(MT`_, "0"2REATED Now@General Ͱve%(4 ?`2 MESpSAGE@ [= 7LooproughrffpdNUB@d(WMOsA $Oe`\e`$=cQxant1dQ:WRec) <>JTh95G@P#2`FileNum, Orf)`d(1@g= "q%% (Trim$(1.n(hQD))"TARE") pOr (0>)8FYP$CE did Ё]p,wcsl!l 0? p ;= ' Mu@ a 5, cal, Po@rted, @Wflow v FgK1NOT REDUC/BY 4CE`VERIFY THAT IT SHOULD BE.tqGot?#e!fRAHs P Trim$(DRConst.n(Name)) Then CodingM@essage"cs don't match. FORCE:  " &T& "RUN LOG J& Space(10)ZLg'[Xc( _RunW_>`?.\)K ]^' PWritCgcR mRdPrintVhN\"TbOKActiveSheet.Cells(CurRow, 1).Valunrent@JC& 2 I @+ 1Next ' Repositioncursor atBtop tofp@@ %Range("A18").ub__SRP_4A__SRP_5 EpvbIndices RmodAutofilter\$$!`$I`a$q`a$`$`a$ `a$ `a$9 `ay n j2T H h       0 @0:p 6$$,8,h,$ J  L@  . .  0DH: 4 (6H 0H8DP 402 P Dp .  0 20 2h    4 0  H "h " " " " $0 $X $ $ $ " " "H "p "<CCxME (ʐ`LʐZPLʐ\LʐLʐbLʐdLʐhLʐl@Lʐn(LʐPLʐLʐxLʐLʐp0LʐrLʐvLʐzLʐ|Lʐ@Lʐ LʐhLʐLʐLʐLʐLʐLʐ~Lʐ0LʐLʐXLʐLʐLʐLʐLʐxLʐLʐ LʐLʐHLʐpLʐhLʐLʐLʐLʐLʐLʐXLʐ8Lʐ`LʐLʐLʐLʐHLʐLʐLʐLʐ(LʐPLʐ8 LʐxLʐLʐ LʐLʐLʐ ( Lʐ Lʐ@Lʐ LʐhLʐLʐ Lʐ Lʐ$Lʐ( Lʐ*Lʐ.0Lʐ2 Lʐ4XLʐ8Lʐ< Lʐ>LʐBLʐF LʐHLʐ LʐLp LʐHLʐPpLʐTL CIENHTL$ʐT8LʐVLʐX(Lʐ^xLʐ`LʐfLʐjLʐhLʐLʐLʐLʐtXLʐxLʐLʐ~LʐHLʐpLʐLʐLʐ8Lʐ`LʐLʐLʐ(LʐPLʐLʐLʐLʐ@LʐLʐLʐLʐ0LʐLʐLʐLʐ LʐpLʐLʐLʐ Lʐ` Lʐ Lʐ Lʐ LʐP Lʐx Lʐ Lʐ Lʐ"@ Lʐ&h Lʐ, Lʐ0 Lʐ60 Lʐ:X Lʐ@ LʐD LʐJ LʐH LʐN LʐR Lhp (p  p  ``0x8`  P @x @ pHXh0H H  XX 0x ( 0 `0X8(hP 8 h  HP8PxpxH   P@@(h(@ X  K  8 RH"&,l (  " 48 P"p""""$8$`$$$""("P"x" >>@ """""@$h$$$$40"h""" 2(&`&&&&"("P"x""4 (.@0p000.00`000. 0P000 4 4X 448 8X82 >0X,.*.6H66 x1 Data Array Indexes DescriptionL --------------------------------------L]% Data Type CodeT]8% Current Run Numbert ]% Number of this test pointshou]`%Z Pressure Scan Position (needs to be updated for this to work - used to be scanning valves](% Test Number (no UW!)]P% Nominal Dynamic Pressure (Qnom) ]%B Indicated Alpha (use AlphaAcc if present, otherwise use AlphaEnc)]x% Indicated Psi Raw balance data:] 8]  ] ] ]  ] ]% Time, seconds since midnight]@% Strut fouling](%. Test section static pressure (absolute), psi.]h%( Test section static temperature, deg F.0 Corrected force & moments in engineering units:]P% = CLWA * QC * SW]% = CDWA * QC * SW ski]% = CMWA01 * QC * SW * MAC beg]x% = CNWA01 * QC * SW * BREF]% = CRWA01 * QC * SW * BREF ]% = CYWA * QC * SWn in]%8 Run number associated with the current 3pt tare. (End)====E Forces & Moments corrected for balance interactions and weight tare:]0]]X corrected for weight tares]] corrected for weight tares]{ DYNAMIC PRESSURE] $2 Dynamic pressure corrected for tunnel calibration ]!$( Dynamic pressure corrected for blockageATNA BLOCKAGE CORRECTIONS]"@$! Solid blockage (old UWAL method)]#$ Wake blockage]$ $$ Blockage effect = (1+et)**2 = qc/qa ONLINE-SPECIFIC DATA:%]%h$ Ground plane height (inches)]&H$6 Whether model is inverted (0 = upright, 1 = inverted)]'$% Whether tail is on (0 = off, 1 = on)](p$2 3-D or 2-D corrections applied (0 = 2D, 1 = 3D) WALL CORRECTIONS])$" Change in alpha due to wall corr.]*$ Change of CD du to wall corr.]+$ Change in CM due to wall corr. ANGULARITY CORRECTIONS],$1 Tunnel upflow angle (also stored in the DRConst)]-$ Change in CD due to upflow MODEL POSITION].$ Alpha from UWAL pitch encoder]/$ Alpha from model accelerometer]08$ Alpha, corrected for everything]10$ - Psi]2`$ CLSA*CLSA WIND AXIS COEFFICIENTS]3$! Coefficients about the wind axis]4X$]5$ Parasite drag]6$ CM for 1st MMC]7$ CM for 2nd MMC]8$ CM for 3rd MMC]9$ CM for 4th MMC]:($ CM for 5th MMC];$ CN for 1st MMC]<P$ CN for 2nd MMC]=x$ CN for 3rd MMC]>$ CN for 4th MMC]?$ CN for 5th MMC]@ $ CR for 1st MMC]A$ CR for 2nd MMC]B$ CR for 3rd MMC]CH$ CR for 4th MMC]D$ CR for 5th MMC]Ep$ STABILITY AXIS COEFFICIENTS]F@$! Coefficients about the wind axis]Gh$]H$ Parasite drag]I$ CM for 1st MMC]J$ CM for 2nd MMC]K$ CM for 3rd MMC]L$ CM for 4th MMC]M$ CM for 5th MMC]N$ CN for 1st MMC]O$ CN for 2nd MMC]P0$ CN for 3rd MMC]QX$ CN for 4th MMC]R8$ CN for 5th MMC]S$ CR for 1st MMCthe EU]T`$ CR for 2nd MMCnd tim]U$ CR for 3rd MMC Add]V$ CR for 4th MMCinfo..]W$ CR for 5th MMC------]X$------ BODY AXIS COEFFICIENTS--]Y$+ also known as CZ (force in z axis of body) D]Z $+ also known as CX (force in x axis of body)][H$ Parasite drag]\$ CM for 1st MMC]]p$ CM for 2nd MMCH]^$ CM for 3rd MMC]_$ CM for 4th MMCH]`$ CM for 5th MMC--]a($ CN for 1st MMC----]b$ CN for 2nd MMC----]cP$ CN for 3rd MMC----]d $ CN for 4th MMC']e8 $ CN for 5th MMC]fx$! CR for 1st MMC, also known as Clound]g` $ CR for 2nd MMCentica]h$ CR for 3rd MMCtr]i $ CR for 4th MMC]j $ CR for 5th MMCd out ]k$ Side force t, TRIM COEFFICIENTS (for stability axis only) ]l $ CLtrim for 1st MMC"]m$ CLtrim for 2nd MMC]n $ CLtrim for 3rd MMCou]o( $ CLtrim for 4th MMCne]p$ CLtrim for 5th MMCfi]qP $ CDP for 1st MMCte whi]r@$ CDP for 2nd MMCation.]sx $ CDP for 3rd MMCN====]t $ CDP for 4th MMC8 ]uh$ CDP for 5th MMC $]v $" Induced drag, CLSA*CLSA / (PI*AR)shee MOMENT TRANSFERS]w$ PMB transferred to 1st MMC]x $ " " " 2nd ""]y $ " " " 3rd ""]z$ " " " 4th ""]{@ $ " " " 5th ""]|$ RMB transferred to 1st MMC]}h $ " " " 2nd ""]~ $ " " " 3rd ""]$ " " " 4th ""] $ " " " 5th ""]0$ YMB transferred to 1st MMCs ] $ " " " 2nd ""] $ " " " 3rd ""]X$ " " " 4th ""]0 $ " " " 5th "" WT TARE]$" Pitching moment weight tare valueartT]X $! Rolling moment weight tare valuendTi UNCORRECTED COEFFICIENTS] %! UNCORRECTED CL = LIFTR / QA * SW]%! UNCORRECTED CD = DRAGR / QA * SW<] %% UNCORRECTED CM = PMR / QA * SW * MAC]%& UNCORRECTED CN = YMR / QA * SW * BREF] %& UNCORRECTED CR = RMR / QA * SW * BREF] % UNCORRECTED CY = SFR / QA * SW$ MISCELLANEOUS]%+ Mach number based upon qc, PressTS, TempTSK] % Airspeed in MPH based upon qc] % Reynolds No. based on MAC']H % Reynolds No. based on bref T]p % Reynolds No. per foot.t days]H% Lift over drag (CLWA/CDWA)ed] %$ X location of traverse rig (inches)]p%$ Y location of traverse rig (inches)st] %$ Z location of traverse rig (inches)Attribute VB_Name = "vbIndices" Option Explicit ' Data Array \exes( Descr^ifB -" Global Constd 1 N'Type# 6RunNumy2 ' Current  ber Test4Pt3  of this t poinYScanPos!4 !' Pressure  i(need(o be updated for3o work P- us ts1ning valvesa5K00 ' A7= (no UW!) (qnoAN6NominfDynamic3(Q @Alphai!7eK'Aic9 (6 Acc 0if pIi, otherwisGEEncMPs8 ,;BA Raw ance @Za:?LIFTR@-9DRAG10 TPM1Y2R3SF4( TimeStec$1sr@,@ seconsi4midnigBhMFoulE= 1:' Strt_Q b"jT, kLe6yPngCeԀy2bF- ZICLSA5M*ASWIN@D AXISEFDIENTR= 5o`J@1abowiEaxijCqplc DPp[`AParasidCF5)2 M10MMQwb'X2 _Q3=%5%063rd _Q4Q$Y4P_Q5Q#p}5_Cp"'CNV>q6g#T '0CN for 2nd MMC Global Const CNWA3 =8 613rn4n2n4thUo573757R(WA174 7CR]1݀25678QYWAk9  ' ' STABILITY AXIS COEFFICIEN$TSMLS70efficients about the wBiaxisD # DP Parasite dragMSB~7MCMY~@ A~7΋C T~@ A~7΋C T~@ A~7΋C T~@ A~7΋C T~NDC͋ C!KF{!"8KDa"8o""8"RM"8DSA"8kSb8SA""D#!!5!Yl8DBOD_CLBA8E ' also known as CZ (ce@ in z a of body)[" 9, X( x]< PC LB9k-LB"E9B"E9B"E943MBA!E9"%D|+&DM N{%D2|10#x_ Q1^0:"xrRs1R0j"' ,0l} pF10#v#QW10#V#UF10#VUO#VRYBA1B0}#SideqhceÈTRIM*= stabili$ty>nlBLT 10-&CLtrimnGLT3M&b LTr1Z&PO1z&1IwODP1NIDPDP1^IdnIdd~Id_dS &Cd/ecI11;#`I@nduced, C*A / (PI*ARjMOMp TRA NSFER PMC%PMB transferr`to / 2&"2S rsqP""LE02?&S4A?t 0b2]'? ?222'? ?t R2(R})_B_RM*? p+?0=O?4Y29 ' YMB transferred to 1st MMC Global ConDYMC2 = 130 &" 2nRd(""3C1;3'5C3rC4C2C4th$5!3!5! ' WT TARE lPM 4 (Pitching moment weight tare value $R$5 $0Roll#NUNCORRECTED COEFFI@CIENTS2CL @6G' LLIFTR / QA * SW D7DPDRAGM8eMPM%MrACN7NY BREF8ZRG4LR@R]`YHLY@SFKwMISCELLANEOU uMach@ 14  ' Bnumb@er bas|upon qc, PressTS, TempDSpeedMPH he@' Airs 8in  (Re_`4bc' Reynolds No.$: bb@3brefftb]Lp@$ foot.LOaX14h\T' Li ovdrag (CLWA/ CDWA)LTrav_XB\ X locati`of se ri inchesr aD14  Z5J' Z  !%rB@H% pB@jLQ Loops through all the run log sheets and appends the data onto the new worksheet  ! $!Runs $!A-BA : ^ ` $%rB@ n pA  \  : ^ ` \   Z%rBlUSheets(i).Range("A" & FirstRunRow & ":" & Chr(FindLastColumn + 64) & LastRunRow).Copy forCall AutoSortSheet.Range("A" & (FirstRunRow + q * 10) & ":" & Chr(FindLastColumn + 64) & (LastRunRow + q * 10)).PasteSpecial(xlPasteAll, xlPasteSpecialOperationNone, False, False) \ '\kX L1 Replaces all the ^ and - with the actual valuesA3 Z%rB@Hid Z!$r'meth Z!$f' $  $ \ effe  \ Z%.t t!|^G  \ Z% t(|j t!|-G  \ Z% t(|j \  @# Find empty columns and delete them j  f $ $vB@kx Pl) Make the Configuration Column fit nicely2C:C$v( Z!(@#$(@ Z!!x( 1 Adds the really cool autofilter stuff to the topB2: Z!$f@ $2$rB@H  4 %$rB@H B@xB3$rB@H (,ho ZB%(after:=Worksheets(Worksheets.Count))Z Get rid of spaces and such in config that will show up as different configurations in the the drop down box   $$z +8q  oh]] | Runs 1-10$.~rd |$.~k d  ~% 'fzHk@ 'fi ]`]x |" Runs 1-10$.~sd |$.~k   ~% 'rzpkh 'riH]]](    $'F F  F $ F$ F $ F $ Bad Characterxd  F'kh Hy 'ziHXAttribute VB_Name = "modAutofilter" Public Sub @CreatetSortRunLog() ' *:AThis macro w ill cm aHn a sring page a$the run?log content included. Try itFd find out! Co by SI aFft see0c DdeAJ Olson fr@om ATGE ditedEL 11/6/08Á = Di2wSheet As Worksi Integ`er, qLastRow Col s S @ngrCons t Firun= 3 E12Num= 1WtT8areF figFNewE: ? VOn Error ResuNextAppation.DisplayAlertsFalseQs().DeletTru S_Jc= .Add .0Rq"0%_=VndDumn("9s 1-10"If we have m@ore th2J6@l s,eX "F@G"@mmadoesn't w@ righI@ > Q@The dXiff -  $m"A" & Chr(+ 64E+Lρe `If 'opybheaxderj @.\s".Range(0"A1:a& "2").CopyM1&S >c @ActiveC5P@d"<' Loops rough -h nsappendAe dPata `oBnew".dtFUi@'1 ToEcouNn`!&1Inm(!Bs(i)"G, bA") <> 0 A!'A-B=G9 %)y &M()/|%)A aCa!+\ ( +* 10)`E"M J(g ).b0Special(xlAll, d!DOperB|None, zQ'TgZ@!'!!x##w#q`&Er is9ReS,ce jxME(<6 < < Xh`dd ZX%``\the `onte`  and`^ SI @Lrt @`L@bL = @"L@&L@dL+f`i|$` ~%+r`@i|` ~ %+z`i`Ѓ`F`hV%0h@K$*\Rffff*024b18c10a" F DP F ,  F0 x        (8 ` &     V @P`  &6  X0@6X \p   8 8Ph66   *@Xp  0 8 8X     6 `   "   B       8 @ P X p       B        ( 0 H h p x    B       V H ` h x     ? **************************************************************= This macro will create an auto sorting page will all the run? log content included. Try it and find out! Coded by SI after& seeing code made by AJ Olson from ATG Edited by EL 11/6/08L? **************************************************************]@]`x]L]] %]L] ]8]Auto Sort RunLogPOn Error Resume NextL!Application.DisplayAlerts = FalseSheets(NewName).DeleteL Application.DisplayAlerts = True !x.Z' d Z(L'\ Runs 1-10$f' PIf we have more than 26 columns, the "FindLastColumn" command doesn't work right   'hveA h@ $'^dx @ $'^LkX Copy the header from Runs 1-10A1: ^2 Runs 1-10$%rB@A1 Z.Tu^B/ - vthb.actual values73:37hWO`&(OSpSae6TCF7D\curCe0= A8u1:.VaQ^" q7 1/#'-/u/.2q ! emptyecdom %K1ep -" p i) WpiLu_&' Mak!me``znpu=mt nicel\E0"C:C %Wid(= 5@u%ds.@HeAoP 15 A(1)zF3pos.F\.pBoldЃ `~_ll@ stu0tts`top@jB2bP?-e)HmkV>, . SDown)).ca<!F" 9pW`ow.Fre@ezePan?=GÏO.Mo`'(:=fs([xn)04Gri@f spaEGsuch )A M)a!shBu p as цer0"sq@` drop dp boxW-3,A=31,ParseOutCh(Gp 4,SubPriv Fun`{3(OpQQWhichh`~})hAIcmyf8H7M= #(70qh100A .CCB"]BF=gaBBxڥEqn@__m _k _Rb OD_j_еW50oni, 1) <> "" Th en FindLastRo w = i`Exit FunctioEnd If NextT z0 Hl Private ParseOutCh(myStr As ing) ALDim iInteger c $Good# F;For;= 1 To Lenj)pcvMid , i, 1 If " " OrChr(9J)810 3)' Bad 1wactbElLse`= & cdz