ࡱ> [A G( !"#$%&')*+,-./0123456789:;<=>?@BCDEFH^IMKLNOXQRSTUVWJYZ\]_a`bRoot Entry FP7*#͔kn'Workbook"_VBA_PROJECT_CUR"`gQ p Ctls   !"#$%'()*+,-./012456789:;<=>?@ABDEFGHIJKLMNOPQRSTUWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~R*kJ9SOy?  2  none  ,!/^IJ=,#-?@0+[Select a Video File],uArial`ҋB `8G, r0Take Dataaw @ArialrU   \pDr. Mike Moloney Ba= ThisWorkbook=xX/!8X@"17Arial17Arial17Arial17Arial17Arial1 7Arial1$7Arial17Arial"$"#,##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\);_(* "-"??_);_(@_)"Yes";"Yes";"No""True";"True";"False""On";"On";"Off"],[$ -2]\ #,##0.00_);[Red]\([$ -2]\ #,##0.00\)                + ) , *    #      `Sheet1"    _~ ""{hUA6+e@="{hUA6+etA=0.xcd``a@P?f`Vd`Ppuc``d(ad`c 3Ѥ6ȱ0`fA@ Tw! l.'Y>V0 T fs3DyW1Tgj H9@jXW-qbN4"TT)A*t7  P6?dȥl $"r_M(@=r_M( ,*{@xڵVKTQ?73_fqB@)Ɋ :deSbAbVhd\Up¢eP:s߻ps3'H MV 0b0Q#h&@xP,X`t~4͒ϋސi2D1TaXAWi$a5#g~+ch $1*U\y:y .zBg|ihvhC;ѣrī\8d!*iW/wD\X9+yТ,察_cK4zв |7ǖ Halr6Ŗ燖eBlزjgc-Ǒwzdc.7<#zQP^:wI}p߂T%tt0âSin`JC˭{>%/&S_#gfL-<s93|6tw~coEb~{~o3+vE;¢bQ™ *S|h'N9U`muA}1Yg88yl\r{UNk}5.V}u(vS5r(wT$opw*7 0h@VümOGu? !"#$%&'()*+,-./0123456789:;<=>?Dl @@V>(  l  s 2A ?@WMP-]Z P1 0&TΦWMPlayer.OCX.7z  s @A ?@ScrollBar1]\ 1 2 P&TЦForms.ScrollBar.1,x  s >A ?@Label_URL-]X 1 .&TҦ Forms.Label.1`  s VA ?@,ToggleButton_TakeData K]` 1 6$&TԦForms.ToggleButton.1@l>@7 Sheet1 VBAR Pʷ Sheet1 R__SRP_2__SRP_3&*\R1*#d7PX\dlt L@ 4 D   P8 ff`  @:ff  : F0 "  0 4P4!|j(0 "  8 8 L @4 J`BHh xf8 " &8d;PZ**2J23pphVhB    0 "  B "  :,H(`! &x8&:(!@pQaAnkc| NX@gf}_ F\56ìIPEx%WMP, 1, 0, WMPLib, WindowsMediaPlayer$ScrollBar1, 4, 3, MSForms, ScrollBar2ToggleButton_TakeData, 7, 4, MSForms, ToggleButtonLabel_URL, 6, 5, MSForms, Label\56ìIPE NX@gf}_MET@[LSSs{{s>"<\< <$<(<,<0<4<8<<<@ xP`JMiz i|i~ij,h<P@j$@4H@@l @h @d @ `   `Dkmiz 8i|Xi~xi `|Jtiz i|i~8iX%b F@bD@b*N@iz (@8\ @X *ATX @%*ghpx @%*cp| @b"@H@@T i|@D %%8P8P@@Xh `l  di~i8xXHh  p `^4bDfj Hx @h @X @H @8 @(  X  @ @ @ @  *$,0 p X xpx @ @ @ @ @ @ @ PZND.7Vhl @\ @L @pH @8 @( @ @ @ @ @ @ @ @ @ @ @x `@h @X .7V@H @8 it@( @ @ @  (x"*&xl `8" *((l @j xX @H 8 @( 0 @ ` @  @  @ Ԩ$@  k@x H$, HR4"$*(l @j X @T @D @4 @$ @ @  @ Z @ @ @ @  l l (h @d @T @D @4 @$ @ @ (t @l H XhX`H&"v`D*\R8004*#3*\R8005*#6c*\R8005*#69*\R8005*#5b$*\Rffff*02446085980X "   v &V  & l[0PZh VCVCPF+H* 8 " X x^e "   :8 *`8 X6( 60 @H " P (*xex  "   : &V 4 4`  < X^l <X^8l P@XX^l (08 ]@Pixel where Y = 0kpoh8'H P$J H ,R H 'H P H %RB@T H 'Ho X 4(6Open Movie with player.X f(h-!Allow ToggleButton to be pressed.XkWhen user clicks the URL label.on'@Put movie in first frame.'*'$',o`o@Taking Data... f(dTaking Data... Z(v$+5 Hold [SHIFT] and click on the video to set origin. $N : Hold [CTRL], click, and drag to calibrate x coordinate. $N 9 Hold [ALT], click, and drag to calibrate y coordinate. $N > Hold [CTRL] + [ALT] and drag to calibrate x and y together. $N ; Click on the test object in each frame to take the data. $N 8 The frame will advance with each click automatically. $N 7 To select frames use the scroll bar under the video. A@D Take Data f(dReady Z(v% Click [Take Data] Button to begin.A@DkHo@X |dIf end of video...ressedKTNo shift buttons pressedF @ @!B 4/If the end of the video has not been reached...$'f2Stop taking data... ~'" Set X origin '* Set Y origin'@kKTShift button pressed*This will jump to any frame in the player.nkoP f"If togglebutton is down...k@o8 |'.'*Set a shift state for all functions to useko f"If togglebutton is down... | f"If the togglebutton is down...te x)kk !When mouse moves on the player...KTACTRL & ALT (2 + 4) buttons pressed (calibrate x & y units/pixels)] @+Calibrated Ratio of X distance units/pixelskH>Any questions, suggestions, bugs, or errors can be emailed to:$ $',nko]@Pixel where X = 0 f"If the togglebutton is down...ce@]@@XPixel Distance from Ymin to Ymax is used for calibration of X coordinates to real scale. t]@XPixel Distance from Xmin to Xmax is used for calibration of X coordinates to real scale.]@XPixel Distance from Xmin to Xmax is used for calibration of X coordinates to real scale.]@XPixel Distance from Ymin to Ymax is used for calibration of X coordinates to real scale.]@h$8State of CTRL, ALT, & SHIFT keys when mouse down occurs.KT.CTRL button pressed (calibrate x units/pixels) F $N$L'J7This creates an array pre] +Calibrated Ratio of Y distance units/pixels4When a mouse button is pressed down on the player...tton i( ~ " X , *  X ) Z(vU8Display the X and Y coordinates in the Excel status bar. ~ " '  Set Xmax to start drag to pixel.he p ~ " '"Set Xmin to start drag from pixel. *  '( Set Ymax to start drag to pixel.4When the mouse button is released over the player... .'|'GSet the mouse up shift state to the same as the mouse down shift state. *  '&"Set Ymin to start drag from pixel. 4!8!: H ,RB,Put the frame time of the video in column B.oWhen a single mouse click occurs on the player (remember that mouse down and mouse up have just occured too)...'HF H %RF H 'HFG(Find next empty cell on sheet1 column B. .'|'HSet the shift state to the same state defined by the mouse down event... ~ "  $ H ,R8,Put the calibrated X unit value in column C. *   , H ,R8,Put the calibrated Y unit value in column D. @ '@04Advance one frame (See ScrollBar1_Change Subroutine)( ~ " X , *  X ) Z(v]Set Excel status bar to (0,0)-NOTE: This is not a WMP built in subroutine. 4!6If there is a video loaded... X b(d"Display File Name above player.Bar1 iP{Any time the ScrollBar1 changes this will occur whether it changes because the user moves it or it happens programatically.\2Se 4!<!> 2 @!B 4!8(:\MSet current time in video = time of frame desired. (Or display desired frame).ocx @!pA@0&.Select frame defined by ScrollBar1's new value97C84Movie Files (*.avi),*.avi Z%\'XE1Get movie file name with Windows Open File dialogb  X$`$^STRING.5If user did not hit CANCEL on the Open File dialog...G) ^ % Click [Take Data] Button to begin.A@DDGive an instruction.? p b!dA@j!oThis causes a pause time for the computer to load the video. (If you find a better way to do this let me know.), 4!<!> 4!l!n @(BWESet Scrollbar maximum value = the number of frames in the movie file. @(pDPut the movie in the first frame. (See ScrollBar1_Change Subroutine)'"3Set origin and calibrations all to 0 for new movie.N3Toggle button will switch to True or False on clickV f!p(If button is clicked down...\ Give the user some instructions.d 2If button is clicked up reset everything to ready.i1Puts instructions in column A starting at row 26.kay01001@byui.eduEVideo.xlt was created by Justin Kay, Brigham Young University - IdahoKT-ALT button pressed (calibrate y units/pixels) $+KWithout this check the program could have an error because of user input...ILast Updated: 8/9/2005 (Yes I found a bug the day after I presented it.)FIt uses a new row when a carriage return character (Chr(10)) is found. Numeric Distance:$'82If the user hits cancel the InputBox returns NULL. $+KWithout this check the program could have an error because of user input...um H %R#FThis while loop clears the cells below the new instructions if needed.umNumeric Distance:$'82If the user hits cancel the InputBox returns NULL.Numeric Distance:$'72If the user hits cancel the InputBox returns NULL. $+KWithout this check the program could have an error because of user input...do     ( &  $'$P0myInput must be numeric or program has an error.t     ( &  $'$O0myInput must be numeric or program has an error.or p     ( &  $',P0myInput must be numeric or program has an error. P J(.This for loop puts the array on the worksheet..2005 AAPT Summer Meeting - Salt Lake City, UT.ָAttribute VB_Name = "She@et1" Bast0{00020820- C$0046} |Global!SpacFalse dCreatablPre declaIdTru BExposeTemplateDeriv$Bustom izD2ControlWMP, 1, 0, LibindowsMediaP`layerSBc$lBar!4, 3, MSForms,  ToggleButton_TakeD, 7, &$&Label_URL, 68, 5"B@'Video.xlt was ckQby JMin Kay, Brigham You ng UnZrsity - Idaho '2005 AAPT Summer Mi@ - Sa@L2 C , UT. Any questionFsuggbugor error%an be email@'to:kay01001@byui.eduLast Updd: 8/9/&(Y@es I f/d a  the day aft@+I presentit.) 0 P XZmAA@g 'Pixel Distanfrom toax Pis uf0c@alibra9 of X coordin@s @\l s@ e@E3@on_Forg Owhere= 0 "ubl0ic XADoe 'Cd'R!d$uniPts/p&s*Y* N$Ym**_*_?9vGY-*Y*Y*f Y *nShiftStValuNej:3CTALT, & SHIFT keysB =n moW @Gccurs S6Sub!_Select_Fr̈(By my!ALongh'Thawill jump^af> jp @` 'N8OTEvbnontuvi`subroutine If.` <> "" Then '@ Wa v loaded.. !Ka` .ds. r Po@`3Q.du$y*f/Ǻ1.MT'Set  ti`#= desi@. (Or:u!!  B@(End If /1@AInsPtrucU(S@Puts`g1column A Lrg at row 26)AItLsnewrB"a carriage return characT(Chr(10))PBW4Bi@26 1 my Splity , $Cj n2 ay0v tP0 To UBe^(+) QYloop p(b Rworks!4 #.Cells(i)(tqi + 1 Next tWh0l + # wBB clea p cpli8 if ned .C!a/.Y O We?@s "` [ ] åXbegin." 'G @$ ٦_q.Enᅹ 'Alq)#АMsgBox o/caGp3SA;20om`;Pz]rUPT0y0ou f JbetHw@do `lY0Yknowa/1gB\= I8nt(__netB.encoe;oeP*A`3bar Ћimum vay``1numbp `qY m/- S}= 0 '\(`ffirsFtc Seej_Chan[ =d'Give the us@er som/sPtruc"s.DisplayIn  "qHold [SHIFT] and n+ videosetigin." + Chr(10)_y&1@CTRL],/,!4drag-calibrate x coordiFn3ALTy[3?[3TRy8ge@Sr4C%kcteobjecteaQtBdAhãadvanceth  autom@lly3To sel/-s-sB bar und7E|vup reTeverythr@ready(`yA(!yxvrR k#8[a] a6bei#hBE`oIf Sub Pr ivb WMP"_b (By nAs Inte ger, $ShHifte fBXLongfY%) 'Wa s(le EccursQ4(rememb="6a!Bbmo3hajuWá@too)F5 ft'.n= 'SJs# s@`s$defin}bv `KntjS#YCa 롢0'N`_bs pVsed i`1: Whi 0Sheet1.Cells(i, 2) <> "": i EAeG'Finext empt7`5sB`lumn BHb a =!N.Conts.@?rentPosi! )ri ofbycƠco3)`(`S- Xorg) x* X` 3bd X Bit va|gC } 4bY - fYaYohd YoDo +~< .MaxH, %has not be`0Kchedmz& h=hQ D'AD[one\(Seeh_Changubrout.?V ? dOUgs'Stop i!Yiɕ$ Oqr31'r= ??30Q#w`$>XĊ5= Y_Ԙ"(uStr*+ |",𔐑&)"Exce0ân@j(0,0H_rE rOaAaM1VDaaafcba a#Qa6#]1^w>]j^#k]fa`funAwiW!XmD X@"$#QPbrt bfrom pixel?Y3R~rMovegvSm ~Os_Ole!nz_5_5_5r[T5DbgXYsQ1j7$OO5Up/////' 5r@d rRc__Do5o5 #-  plw2X3Xm0q?7Q[37  Ymax = Yorg - fY 'Set to start drag 4pixel.Select Case nShiftState@:2 'CTRL button pressed (calibr3 x units/cs) CGmyInputBox("Numeric Dince:") 'If the @user hR 4cal: returns NxULLh4!I s.(<) Then 'WithoDthis check-program could have an error becaG ofKid..<>Xsx/ Sqr((X- Xmin) ^ 2 + (-ք C~must; nBPhasM End Ifq@4 'ALTpyppAPppYpt pC6& A9(H4)D:sr& :sss:trss ss:CԃDK!?wôcub # ) A ! XI aq `\  6d 1 i`n`o`p` I li  ` t  `I/iy)1eMWW0   0 8  0   0   0   0 X  0 P  holxelH#h*#d*#`Nl#\*#X*FD% T! T 2 hd`\XT5D8$ (hd`\XTD0   4 <` T h p tXldddd rU (`9(`Q/$A`$`$`8`8A` 8`$8`( @H 4@P < 1 @dA` a @XT  @ph  @|pn3n#xME ThisWorkbook 3_VBA_PROJECTPdirC__SRP_0 V (SLSS<N0{00020819-0000-0000-C000-000000000046}@(%H@0v`D xAttribute VB_Name = "ThisWorkbook" Bas0{00020P819-0C$0046} |GlobalSpacFalse dCreatablPredeclaIdTru BExposeTemplateDerivBustomizD2 0* pHd VBAProject4@j = r v`D J< rstdole>stdole h%^*\G{00020430-C 0046}#2.0#0#C:\WINDOWS\Syst em32\e2.tlb#OLE Automation`EOffDicEOficEE2DF8D04C-5BFA-101B-BDE5EAAC42Egram Files\CommonMicrosoft Stents{Label_URL_ClickmyURL Application*GetOpenFilename]?UCase5 TypeName Label_URLCaptionxToggleButton_TakeDataEEnabled۪MsgBoxRnetworkSlencodedFrameRateWValueKScrollBar1_ChangebToggleButton_TakeData_Click StatusBarʜ WMP_ClickPnButtonI nShiftStatefXK]fYH] Calibrating WMP_MouseDown WMP_MouseMove WMP_MouseUpInputBox Sqr( ThisWorkbook|Workbookk WorksheetClickChange MouseDowns MouseMovevMouseUp_B_var_Calibrating_B_var_i _DefaultjThennpi _B_var_ifP _B_var_myURL _B_var_UCaseaWhenoD _B_var_When۩user _B_var_Chr\;_B_var_myInstructions_B_var_tmyInput1#_B_var_myInput& IsNumeric$*myK^vbalt _B_var_ForjL _B_var_WhileIf $WMPLib.exd#Windows Media PlayerP*kJ9SOy*\G{0D452EE1-E08F-101A-852E-02608C4D0BB4}#2.0#0#C:\WINDOWS\system32\FM20.DLL#Microsoft Forms 2.0 Object Library*\G{9394EB50-841C-42hared\OFFICE11\MSO.0DLL#M 1@1.0 Ob LibraryKc`WMP WMPLib3`^6BF52A50-394^1D3 -B153@/C04F79FAA@R @KRsERwmp.dll#Windows Media Playerh/;@1De0l@E00}#:0l# 10;237B69D63-492F-405E-B670-947DED796D22DOCUME~1\Justin\LOCALSTemp\Exc@el8.0\P.8exdR8P*kJ9S@Oy@MSFor ms>SFrms `oA.0D452EE1-E08"FA-8-02608C4D0BB4`FM20LB ̆d0D9JEBK841C-4210-8BF4-D6BED6023459H22*2'bu@@.E .`M c4 "VV>@|ddaelaTyrl`b`a622D6F304-B0F6-H11DMABY80C74C7E95}#fmsdx m.ocxJF PDXMxcxDXcy 4w`73F0DD5C-D071-46B6-A@.-897C84EAAC4 .y!Uz pbility L| @Bn¹ShePet1G¹S@eA`)t12UB H1gA",b k""+ThisWorkbookG TimW"oko k 2Io9oi"n Sheet10244608598K*yrU~~~~~~~~~~~~` ݫK Emj  a  1aAi i Q Sheet1 ThisWorkbook VBAProjectF /C:\PROGRA~ay  *\G{000204EF-0000-0000-C000-000000000046}#4.0#9#C:\PROGRA~1\COMMON~1\MICROS~1\VBA\VBA6\VBE6.DLL#Visual Basic For Applications*\G{00020813-0000-0000-C000-000000000046}#1.5#0#C:\Program Files\Microsoft Office\OFFICE11\EXCEL.EXE#Microsoft Excel 11.0 Object Library*\G{00020430-0000-0000-C000-000000000046}#2.0#0#C:\WINDOWS\System32\stdole2.tlb#OLE Automation(*\G{2DF8D04C-5BFA-101B-BDE5-00AA0044DE52}#2.3#0#C:\Program Files\Common Files\Microsoft Shared\OFFICE11\MSO.DLL#Microsoft Office 11.0 Object Library*\G{6BF52A50-394A-11D3-B153-00C04F79FAA6}#1.0#0#C:\WINDOWS\system32\wmp.dll#Windows Media Player*\G{37B69D63-492F-405E-B670-947DED796D20}#1.0#0#C:\DOCUME~1\Justin\LOCALS~1\Temp\Excel8.0\WMPLib.exd#Windows Media PlayerP*kJ9SOy*\G{0D452EE1-E08F-101A-852E-02608C4D0BB4}#2.0#0#C:\WINDOWS\system32\FM20.DLL#Microsoft Forms 2.0 Object Library*\G{9394EB50-841C-4210-8BF4-D6BED6023459}#2.0#0#C:\DOCUME~1\Justin\LOCALS~1\Temp\Excel8.0\MSForms.exd#Microsoft Forms 2.0 Object Library.E .`M *\G{22D6F304-B0F6-11D0-94AB-0080C74C7E95}#1.0#0#C:\WINDOWS\system32\msdxm.ocx#Windows Media Player*\G{73F0DD5C-D071-46B6-A8BF-897C84EAAC49}#1.0#0#C:\WINDOWS\system32\wmpdxm.dll#Windows Media Player Compatibility Layer  v`Dn Sheet10244608598 Sheet1kgAThisWorkbook024455e441ThisWorkbook98m"LFuIέ*oV$BtHbf2_IfSetThen Excel+ VBAWin16~Win32MacVBA6# VBAProjectstdole`OfficeuWMPLibMSFormsC MediaPlayer WMPDXMLibߺ Sheet1 _EvaluateXmin;XmaxXorg3XcalYmin"YmaxYorgYcal~cnShiftStateValue WMP_Select_FramemyFrame2WMPURLControlsKcurrentPosition  currentMediaأduration ScrollBar1MaxȲDisplayInstructionscInstructionString{i`myInstructionsSplit)ChrK~tkCells ClearCon1\COMMON~1\MICROS~1\VBA\VBA6\VBE6.DLLVBA  A0F4C:\Program Files\Microsoft Office\OFFICE11\EXCEL.EXEExcel 9@0FC:\WINDOWS\System32\stdole2.tlbstdole !IPL-[DR?C:\Program Files\Common Files\Microsoft Shared\OFFICE11\MSO.DLLOffice 1`P*kJ9SOyC:\WINDOWS\system32\wmp.dllWMPLib ))Qpc7/I^@p}ym 4C:\DOCUME~1\Justin\LOCALS~1\Temp\Excel8.0\WMPLib.exd )).E .`M C:\WINDOWS\system32\FM20.DLLMSForms !iP딓B־4Y5C:\DOCUME~1\Justin\LOCALS~1\Temp\Excel8.0\MSForms.exd  i"L~C:\WINDOWS\system32\msdxm.ocx MediaPlayer  I \sqжF|IC:\WINDOWS\system32\wmpdxm.dll WMPDXMLib  1 F NX@gf}_ F\56ìIPE{lFWJO ScrollBar1/^IJ=DF WorksheetQ*kJ9SOyWMPR*kJ9SOybҋB `ToggleButton_TakeData`ҋB `"-?@ Label_URL#-?@b}IlńÏYl|cҋB `Yl|WMP_Select_FrameDisplayInstructionsLabel_URL_ClickScrollBar1_ChangeToggleButton_TakeData_Click WMP_Click WMP_MouseDown WMP_MouseMove WMP_MouseUp ,,`ThpT`hp ( ,  )FsrU~~~~~~~~~m      A (  8 9 HXcalYcalWMP a X ScrollBar1  hToggleButton_TakeData  x Label_URL  __SRP_1+PROJECTwm>PROJECT SummaryInformation(myFrameInstructionStringnButton nShiftStatefXfY%Sheet1Sheet1ThisWorkbookThisWorkbookID="{6BED0C51-025E-40F6-834D-6C2BCC277DE5}" Document=Sheet1/&H00000000 Document=ThisWorkbook/&H00000000 Name="VBAProject" HelpContextID="0" VersionCompatible32="393222000" CMG="797B8F7593759375937593" DPB="F2F0049F7CA07CA07C" GC="6B699D2617271727E8" [Host Extender Info] &H00000001={3832D640-CF90-11CF-8E43-00A0C911005A};VBE;&H00000000 &H00000002={00020818-0000-0000-C000-000000000046};Excel8.0;&H00000000 [Workspace] Sheet1=22, 29, 694, 476, Z ThisWorkbook=88, 116, 1124, 850, Oh+'0HPh Video AnalysisJustin Kay, BYU Idaho Justin KayMicrosoft Excel@)/@f? DocumentSummaryInformation8CompObjm՜.+,0 PXl t|  BYU-Idaho Sheet1  Worksheets F!Microsoft Office Excel WorksheetBiff8Excel.Sheet.89q