4Misc_Startr4Platformr@9VersionCheck xHHL Xg(HHdh xHH@Rg(HHdh Layout0xHH@Rg(HHdh ContactAngleLayoutxHH@Rg(HHdh SnapshotResultsLayoutxHH@Rg(HHdh x HH@Rg(HHdh ^Graph*neWDashSettings#  ! 5G6Normal@ Menlo<HHHH$$4 4 4 4 4 4 home[CdJJW HD:Users:jjw_work:Desktop:inbox:JJW HDBDinbox cuDesktop/:Users:jjw_work:Desktop:inbox/ inboxJJW HDUsers/jjw_work/Desktop/inbox/DesktopM=dJJW HD:Users:jjw_work:Desktop:JJW HDBDDesktop cujjw_work/:Users:jjw_work:Desktop/DesktopJJW HDUsers/jjw_work/Desktop/[miscellaneous'd JJW HD:Users:jjw_work:Documents:WaveMetrics:Igor Pro 8 User Files:User Procedures:miscellaneous:JJW HDBD miscellaneous cuUser Procedures[/:Users:jjw_work:Documents:WaveMetrics:Igor Pro 8 User Files:User Procedures:miscellaneous/ miscellaneousJJW HDXUsers/jjw_work/Documents/WaveMetrics/Igor Pro 8 User Files/User Procedures/miscellaneous/RecentWindowsoAdvanced Topics.ihfCommands.ihfContact Angle PlotGraphs.ihfHelp BrowserIgor Reference.ihfProgramming.ihf 4Misc_EndrTXOPState_Start rPeakFunctions2-64fD4XOPState_EndrV_Flag!)K:9"r޹9+'xa'a2U0*#????Q9@>z4mC@0n@ʤӈM@@.N'@$<^T@lW@j[@c{@Dq@ 2@12@_h@ @ XҀ@!k@3@:u @[ @VO9 @WU @X @MTx @.7= @dS3j @ @HEt @qQPHf @"yA05 @[ @)o @yp* @nAg @X\U @)- @> | @b[ @J@ @@AÖ @Jxp @MjM @jF+ @ @愫@Nn2@3G@T@n@tQ@F 4@F@p-@@Do@>X@%@T7@jz@V ga@OoI@F$l1@KS@4@8@@TӇ@)l@:q@R1@%A @498j@}f߭U@(;mA@uVt-@Hm@P@c"@+5@'@"@ܨ@U@vg@zys@-7b@ XQ@^ F$@@jTvg/@@8ǒ~@!P@$P@k}@@Ư Z@8@#)ޠ@ܑ@*<@Pt@` Ue@_ZW@tI@F*}j:@֠_ ,@Q$@~ةd@ a@LeT@~T5@:@؎@J@ʹ@ TZ @1@g@1ގ@v p@GyGv@Zi@Ⱦ]@o"rQ@ E@:@O.@@"@4Ē%@ɳ @X@2@cn@#Щ@RM@@Kl@@rC@%I@c-@q@@8B~@zOt@cj@N`_@rU@peK@ WA@=o7@0+.@Pk$@H"}ż@vye@2J@<@@*sE@HrP@<=k@h^@@I6c@q!BP@lK@ST@L*ʂl@]h@ɣUpŐ@Xk@LT@`Wv@x}n@\e@]@CtT@ib=L@*C@3G;@hZ3@^y!'+@4#@]S@W @WW @5@E@2z@pC]C,@/^@*;@O0@+6@;Qy@@>k@@4@'!l@@@)&7@ i,H@ߘ@Wz@2 s@^}k@(d@]@8:V@Oa1O@80H@!ؕA@oy:@sdͼ3@,@fu1i&@d #6@(kg o@D @`. @J@lE?n90?.+?$'&?|?1H⥹?D-3?Oϟ?T?_3?К{y? l?,5`?:aSS?wc'G?!=:?^{^P.?[!?B;X?5/t ?0N:o?.i_f?]?eT?kK?`9C?4!:?.d1?8޽#)?DEQ ?D鎄?KJ?Xj? o/?P*?Lo.?0?F?6g?VRx?0/?ɖú?Ar?R '?)?"?뢙?7i?6nV6? ?\kx?iEp? ,h?V`??X?iavP?fضrH?12t@?.F}W{8?T0?"*(?V_| ??R ?6[ ?vOI?|??ʰ?:t7?RzJ?Jh?9K!?,?Rdz? 83ػ?T.;?>"^O?7? 炝?P?v?~O:?P>~?z}@ x?Qup?7/i?a?`hZ?ʨm S?dGlK?bD?"=?^5?|.?rH'?O5* ??$+?1x ?D&1O?&[+?3 ?(HK?jڳ?И?^ei?4ݓS?¥?(W?e?fʹ?vuƮ?.R ק?\j?[X?f8$?UFF?Ol?`̬~?d2w?Ap?X>{.j?ic?rv\?r zU?)2O?4}H? [A?$;?(v4?Nd-?20'?> ?Ts@?jzHd?

te4?;*?}?ތWC?y?s?t-3.n?[.h?T)Mb?I4]? W?&Q?qOSL?XtF?* A?B{Ĵ;?l5?ri0?.*?̎1S%??n3rG?n?F-F?@8 ?|P?hv:?&:e?*? ?@2?&mv?qZG?H ,?L?!?G?$j?P#t8? z2?e?k?l$`?{]Ψ?p4x?p0;?2?̛̱?T"gp?.q2?v?~?V܅y?U8Qt?6o?|&J7i?d?Vږ_?=EnZ?HU?fe6?$P?VK?cE?@?:_;?-~6?X^~1?.]Vk,?:Z'?lK"?jr>?R4?,?Ԅ '?.# ?N <"?>Ǚ#?Γ&?u~,?rH4?@I>?fsJ?X?i?(_R|?~K?Ϊ{q?? 8?h3(?ۙ?y7?J9?R؂4?TUj80?>B+?m &?T"?(b?xC?*!e?˖?U ?".?9/?n%?r?˜? $?$ɇq? ?e?ZH?v|a??d??n?JҤ?I?jm ?H?`L'?+¸?6SK?Pߣ?¦u?HǙ ?#3?B? ߍ?@ȳv~?ޥ?QL?֣^?~Y?ouU?ʏ*Q?AXL?JH?F|SD?@?e8;?b 7?DK3?+G /? V*?l&?+]"?25&?TZb?B)?g?X ?t) ?4?G?C8?Tz{?usS?-?6Q ?n&?V? ?H*?pli?TN?jR5? ?J?S(?^uݾ?+=l˺?|κ??0?*yꑪ?nHqB?~?`v?#%p?ak?h?q&?62?Kf?Z?Y ?2 ?gOD?j~.~?ܖź?q ?x c6?tM+ v?#?n?ފ?Q3G;? 7?204?_2j0? h-?d rF)?B&?D'"?ui?^?9?Lb?*rv? ? ?,^?9?P<1?KC?~hwo?,?mt?B? d?Ȏ\?|Ew?|G{?z, ?|%?321?3Q?Lp9Z?z8Z?(]?~ ?(}|?&QuT?z? W?GQ*?pz ɰ?`h?v; ?0w?[N?`XH?zO>?2b<=?z"A? kN?bZ)a5?myߋ?h'?6??L' ~?3A{?aw?:R=t?STq?"?In?"j?WRqg?w'd?rĬ`?l֖]?OZ?B W?'N>S?XP?=Jl>M?ߚzI?4bF?|D{C?|<@?!l?]C!?tۧ?@+?CV}?cϮі? &?#Y|?]ԅ?1-?z?镙_t?AGCo?ai?eDd?e^?}X?p.S?-M?70G?qgB? 02?,?Ip'??@rE?#w9rN?Q( X?ߴb?YAn?x|?9iO??9xZ?/7/?Γ? ?[N;?S-?+?" &?u.>{?{UeXv?Gsq?[Kl?'qg?Mb? ]?_ߨ Y?(P,T?Y]OO?qVrJ?QE?eK"@?:"a;?mƼ 7?472?Ya-?w(?'A#? p&?GB$?8[?C)? _Ad?'LS?y3y?Q?Z?iG1^?s?mR?b?}?-A?ō4?j{?aTTħ?ٱ?opY?V??5A?70:?ٿ&{?優1?L}?1x? x4+t?oƝdo?mj?7m/f?Ya??\?O.9†?,L?ϣ~`}? ay?ct?Q#zp?ml?Jbg?!'c?n^?i:JZ?nU?pQ?SAM?ϚH?׋L1D?9y]??}+a;?_6?K2?%/.?m)?WTh%?v!?;?}cE?7??k1<* ??%nr?QV?և?d?EZ ?t?cz1g_?5# ?? ǵ?%aRb??7?-y[m?Z?;PN?{dy?EM3?ڛ?!x?OJ"Q?o?̾?I7Hv?B0?mW?}H0?]ixq`??wډ?_ ʘ?RW?q}?yx?T֚t? k]p?MW!l?㔄g? Ϫc?p_?7[?V?e R?J=?}"9?+t]5?[Sy-1?9,?E+|6(?!Z$?QWt ?E[N-H??D`?}$?2 ? w?pP?Y>`*?#?Vn?(?"̙?vNw?1fV?945? P?a>g?H?s}`?e" ?K??si?'O?e6? ,?D?b?%[`ڬ?3Ũ?˹?E6^? ы?z?N$i?Y?I?xM+;?6s-?'/ ??i|?B* x?)ޙs?S~o?ok?5(Hg?Dpc?Nj_?![?!u)W?i\S?,O?IK?s)G?q C?S ??׌g;?[b7??3?/?ES+?'?9#??AO?3?~?;? *e ?Qy ?#?^?#7#?Nh0??3>?_L?[[? k? \|?<ԍ?\? ?U?J?5A?Em?EHEN?Z4?kM?KB5f?u?U??T??7oѭ?O?-k ?nZ*?H?lh?[pV?*L? 6̎??֛@?C._6?o3:[?;Ѐ{?a1m!w?C-s?Lo?k{ul?$ְGh?qd?SU`?Zr\?)X?տ U?LNQ?e|M?yEI?BXE?% B?7T<>?C n:?eWr6?cqi2?/</?*=+?+/r'?;[!#??~?\;O?kUو?i?Y+ ?t 8 ?E's?I^?)ab?)s}+?j?)Rh?ϩi?-cM*?k??sc?93?? x?ϡ~?s?pH?3b?]=?ͼW?Ǧh?+e5?O5?G?[DU? ߫?{,?7;z?ɠ?ծE(?M-g?in?Gr ?h[?g譊?>?'yT?=Sp?${?aazTx?t?y1q?_ Zm?n}i?g f?y]eb?)߲"^?'P[?[(wW?S?ѿW0P?ŤL?AH?[)CLE?SA?)2 >?nm:?2`6?I13?}۔/?ሙ+? h\(?i+$?H'!?X?x?d\?Q?L:-?u/A ?٪r? pIl?R?qC?`? ?a 3?k=?-ɂj?kV ?AHJ?sܻ?ظ-?eC?7?W?a?}?&p?E,)?EQq\? pY?GJ?Ibi ù?7;?U@?OI/?*:?3[<%?۽I$?y㍫?tњ?2?i??e?:U?fߴ?8-?rD?~?Hz?q26$w?#fCs?'-p?}l?qF:i?e?;BHb?^?'6Y[?_vW?)-mT?;P?%MڂM?;J?F?)!(C?µ??Cb5?|D1?n.?y+?A'?ᷟU8$?E V ?{6^?+J2!?l?-J?=A?_I ??1\x?7T?Uz?WnC??i/x?-p?G?5K?I?K?av$?6?ɲ.b?5s?_?kD?/3?'vއ?i/*?2 ?Sq?٘g?orB?Ba?=?CN?WU?D? ;(?%>O?KF? ?3aM?gDE?{1?%OQ?&^?͵X?XZ?sC ?3{?Jmhx?Ewtu?q?q_{n?GOx-k? L,?mo?Ğ/?Wl?qi%|?}3>[p? * e?9;Z?iKO?\> F?0j?^Q?N.V?Z b?D?Rw?j?LY?~i?6қL?N?bנn?::?;/?bj?н?~?6!?vx_?je8?F(#~?ڭw y?B*bs?OХm?r`Ĩg?d:b.b?*s\?*/\vV?Q?c JK?D$E?&F??o':?b s4?WB.? )?ޮ; \#?9?]H?by4L?V ??Rc(D?^Ԉ?b?!C?JBԚ?6?RK?_ۤ?E??Z}Z??蹋?2[Zq?&7/з?/?⏬?F6?1(S??ҭ_?꒥l~?m?:Y*J?PM?ƅHz?z{t?>ïn?n&GVi?zc?f-^? ՚X?GzS?b%dwM?NtG?XKWB?Ƃxp?Jt?vt?t<_?Ҧ?2YW'?xIU?3?>0槿?g`R?^H?Fi?K|V?c?_r?2a?!5?ՙ6?z2s?%?N;F?dz?NKAu?o?麬j?ߙce?=`?¦Z?ZҌU?IFP?>xK?&j`E?6W-y@?F-6;?f^5?w0?©vq+?.1&?Rɜ ?8.?v?9?~o ?S?Nd?8M?I^??>q\?zG}m?^7?EK? `?Z1B?cf?ƌ4?$e?ѽ?~d?^ r?:H^C?J^z? WT?.y컞? C?tWe?^0);??2?BGk?q(ٙz?4]su?[Mp?|(k?Xf?fa`? [?.V?VhzQ?&ZL?N#:G?B? k f-<?ΐؘ#?& ?jp ?|4?D?5?^R?O΋?,zy?-f?нU?D?N+5?b%?:zU?А ?d?"i -?N?ٳ?&rϮ?Sũ?2?b"?ɭ?:&?}8?ލA?]}?沩?r|?23w?lr?&m?&/Ch?c?ӌ^? *Y?=4T?*qO?VbJ?[-E?^@?*U_i;?v.&6?6T1?JŹ,?'?fwS"?O?I;?B? q'?W' ??><'?B{P6?~jYF?V?.'g?ˇy? ?fE?,?2?3b ?? ?i ?8?RޣQ?nMk?#? s⟧?֥O?"kם?ҋ4?z?R$/?FN?E$n?Q?z&,{?jv?vq?"m?D4Y9h?ړ]c?gz^? Y?j2MT? RL8O?:&K?EF?ފmA?˘??BL0;?%~6?ކZ1?p3-?jدj(?vUgϺ#?Z ?6\?.?n^?#T ?[?|{?R?:h??ݢV?s֭?,4?3_?zԸ?V?j=m?{?B%?fd?~A?D =?v?;?c[?:k(?2N??:yzx?|D?b7 ?Hb ?]gDq?֙օ?RqDj?"Âe?Ra? \?:W?zګ\S?Z"N?c6J?FE?GmA?nʂx.?:]F*?ɸ%?|+!?Vu???n镐?l?ht ?{?0b?pY?iuR?4^?:EE?>֒?B:?>?~@$2?~ݮ?G81,??v(?@ ǧ?'?է?BH(?*J?J&i,?"?.Sst2?^?"":?rO?E?baː? 1R?ꡩ_ڇ?BItb?f1 ~?dtz?ʮ@u?q?ߒm?֒s`h?$w+d?i_?~pE[?-+V?bbR?M?N{NI?NGE?(@?ѯ4uX3?BO(.?*?wt&?z!?K??"K G? l?.g?TW ?"3??Af?d/?f?$7?rwA#?>4o? ?蕪?H? ?O#9?:A@'?&?f i?6 ?"?WP?Bw~?>?V[(?t{?"@ w?@r??z}u?{3?Ё?w?VS5r?P2?3??nƝ8x?d;?Z뿆?Z~º??AL??2Rש?2OI?{e?b -??ֳ龔?]Z?rVR? ?K?&g?6{?ʬkLw?s?*rn?Ƶj?rf? Tb?;#^?*m|Y?LU?""Q?&n.iM?r}G;I?~eE?6@?~{7?vRh$?L8 ?~2Q?Buhڣ?NiŸ?_?.\?rb+? [ii? T?j@? ,?[Ֆ? ֧{?:&=v?]Xr?֝n?j?Įf?>b?^?&}׀Z?;rV?RdR?WN?R1xJJ?ڞ>F?k2B?Rѻ'>?f::?6?fA 2?vg.?JWY)?JRTd%?A!?* ?z!???Rv ? ? ?~a?vE_?޷?B?b)Uc?J\h?ҭ?Fd?8?w?z] ? &?ڵ?*sŽ?ʣV?Fh?’?jϽ?Թ?Nrڵ?ڀL?&b??RS ?.?X ?DO?nqke?'?"3?N>?r,J?&LW?&_d~?qz?vsv?䓎r?*0Pn?⡟1j?F>f?3b? ^?X^Z?ۋeW?;hS?'O?oq;K?VhrOG?^cC?Eix??2g;?_7?ʸպ3?l+/?)&:+?^w((?]$?6o}2 ?vгK?ʉe?|'?e?" _ ?[ 6?͹?"Z ?2٦(?pF?d?w?>ǵ?.{p?C?yX?2$?Gi0F?VUh?)?֪??N?|N?X??d?&ފ?.88Y?v2SOد?!?IL?6kAx?sy?~m,с?nX}?z+z?ZZv?G巈r?ʷn?zWj?>\g?Gc?Bx_?1E[?Fh/W? ْT?BZ oAP?0tL?Bk͑H?2D?+A?nF=?S~|9?H5?RL=G1?g_ .?֤W*?&?@z"?r?N:?64st?;+? ?:hQ% ?Ha?z8U? ? 6?z'T?H?Rb\?N?j P??%l?DHO?JpR?4x?N!?!z?s\?JT?&ls?s)?m<n?yd?RH???Ԇ?^t+Ϊ?`?B$9^?Z烈??Iм9?U҃? ^ΐ?^?Vd? ??NI~?֎<5z?R+v?bV!3s?v%%Ɓo?r k?ul h?^Fmpd?x`?ߝ]?(cY?zU?f} >R?nGYN?r2"J?*nG?6TC?!\Z??f{S;?rzS8?N4? +60?V V-?J)?&?c5]"?pM?QRQ?h?ھ?^*% ?rw ?o?<.? ?T?̛Y? >D??D?ԺHz? 8?1?܂z?4y?Dϵ;? 1? {¤?51?LL? C?D:>ڇ?|Lޢ?Zky? $5r?Tk?\c?Z$J\?dfU?lcY65N?d}G?)??L|38?$zw1?Q]J*?d0#?`Z?L3?^= ?jdu?DjM?oO&???U8?7S?ԇ5o?jM?y,?lA ?,?,xϰ?tՍ?"ٔ?y?|t^?{C?,||*?Sa?w?:p?jri?lhb?pv[?!BT?:{M?9nnF?]??DN8??1?C1*?̓##?ow?Ԏ ?,3 d?̧ƛ?4A?\]s?c"a??d|?d?L?,?T?l*?\5Ĺ?Dl IJ?~ū?Ȥ?\ʝ?,Ζ?,4sӏ?z ؈?|J߁?\Pzz?Is?d.bl?Df?ѧ _?g X?,cJ#Q?D^0J? J>C?t] M?F?C(?\ :?\өv?4?|j? {0?$3jo?L=ʡ?|&?}2?F"u?5Ε?Ԗ'? 64Ay?Ԭȇr? vk?İ]e?\>^^?\VW?l=P?1;J?䨔tC?Qp? 4{?4f8u?adn?|*h? ia?$*Z?,8:9T?\'M?֦ G? ^v@?9?4 iM3?D,? 9(&?$Gd?l?Tru? ?J-X?$b?D=?d_F?Lv7&?TU???J?EeOy?C?l?$?ucc?uߩ?]?4/ۜ?ԻrY?6rُ?|Y?vڂ?O\|?Clu? bo?Tf h?Tglb?,[?|ExU?<%N?ܾH?lB?f;?$E^$5?D.?c;(?c !?zU?4}}?\r?LZ?ג?$?ܞ?lH?Lq?ϣp?d?%?Qr@2?7?8a?<??u=?".?4t+ɧ?Yte?~a?ZП?l^>?d܇? |?K{?St?L`n?<h?耦a?$8J[?+T? xN? ;H?\W86A?776;?35?܁w.?,r(? ׹2"?b#{?lb?ԩz=8?P>??~D?@??4{W?L) ?P4?Dhc/q?tG%?a?R?֎H? B?m?lq?|D+?쇛?E졗?{^?R?9؄?T~?DϒVx?ۅr?k?Te?"Y_?ĖBY?\X-ZR?eɣL?iF?l/@??9?&'3?\E-?cM'?& B!?cm?DT?ew?hVD?p?UF?<-׭?8#}?^*M??8i?DTs?5?L7Ah?D?_뎕?m?Mv^F?G?T?CՌ?? ?5jz?Zp Ht?&n?h?a?R[?,b^U?|7ZGO?=,mI?PC?$^!5=?\07?Tr0?Lu*?$?\ߛ?tB?T?lHq ?\?T H?DWE4?D9!?)H?F?D^? |c.??l? i?T??d)?t~?wVt?j?Lu a?7$Y?~Q?J?RTD?F>?:{?5u?32o?'/i?!-c?T|1,]?D,W?|߹#,Q?,K?\Ĉ.E?D 0??u39?|gmi73?jp;-?,@'?LF!? M?4VGT?*(\?Md ?dn?ޟx?l ?tv?*?^y?@`o?D=,?7? ?[?,TT?l?^&?@?.x ?\A??DE?M?K?$5 ?4S?`?\z^?t^?_l?a?y|?lE?w?\?ݠ?F0?U9 ?PgI?Ҽך?&e?ԕ?y?(6??_Z6z?ԯat?4Z [o?lNUUi?Cd?<0_?ąY?XAT?fPN?jioI?\i$D?t>?~89?\[ 3?\`l.?G&D)?Gɢ#?V>? K?Ժ y?<*?<յ? "U??H;+?%Mm?8 a:ۿ?HPп?hx><ƿ?hd?(G̰?HQ-?[?xhP?E?h=;?ޕ0?xJ%?xTH??}?̱?hfr^???x<۾?uо?hPlFƾ?v߫?8q?@z?SL㛾?aM?"?Q%|?=ߓq?g?Hs\?LIQ?V!;XG?8rh?V ?87 ?X>?H%`?B48?(X?82׺?Wͺ?Mgú?]?^?>?8??Z冺?H|?ӯr?h,זh?ؐ ^?khT?HW_RJ?x`>@?+6?,?j "?h;?(b- ?M?XE?X4?h?۹?:֭ѹ?/㻧ǹ?y΢?:C?z??ٓٚ?/˛?8&ꝁ?84w?=pm?hX Nc?oY?kO?H<$Wʹ?F_]Ĵ?HҀ?HL{B?ȟ=ק?l?X1?嚋?#3?x?ho? f?u\?xcv@S?(I? *@?g9"7?(K-?Hrh$?( ?8t?HW)Q[?Ȁ?x ?{W?躛L?5dٳ?3]г?~ dz?o򼽳?n?hYc ?ӡ?Z?3UBx?01'pg?fV?0E?o`5?K;$?(s?̭?&?pa'?Pc hЧ?P2?z_?PG4?0|?p |?Ul?pa[?pJ?uR:?PfX)?0 ?,?pa?k?t֦?0e}Ŧ?Bߴ?pi,sD?_?Њ?0&~r?P)a?\YQ?p@?Ɵ<0?=F?p(B'?p&? I?_ݥ?Zͥ?Xb?.?0ў?請%?ЦFz?p9j?0Y?2TI?=8?0 Fw(?޼ ?E|?08<=?n.-? ?pIn ?p ?V?pܡ?3̡?Ѕ?pY?C#?E?<}?OJ m?P?]?0jM?,=?;-?M?.` ?0#u?00R?0ݠ?!͠?M%߽?U?0y?YB?g~?pmn?p9^?{N?QV??/%>/?0^Yn?P? ^B?T?PՊ? Y?bx? {a?`%vB? G"?`X#?X w?Ğ? |3? ˅?gf?FUG? M'?`QoR?? : ɝ?n(`?>$? Lk?`%TL?RS-?`:??lNϜ? \?pHZ?`H4r?)kS?23?`?? 6? Lծ֛?? 'ֆ? =&y?Z?;?`?`##? %ޚ? f𴱿?`AŠ?Х܁?"b? fMD?`D9%?`?/? Bș?`/ 멙?#!?_L[l?*M? (.?@ڍ ?`si?3pӶҘ?? |d\?v?>X?`;fq9? ?_?N)=?Ĩݗ? Y/?`j? u?P}c? 'D?gs~&?Y#?`ю?˖? f?C?1o?`lJzQ?r03? A?u_h?aؕ?` Ĺ?ߝx? cH0}?Z^?y@?rn"?`4?`Gs?ǔ?` ?`u?`*Om?Lh?-O?`1??`E|?-֓?gg? ѧ? |?`+b^?e@?$"?`*,?cW?`Ȓ?෉֪?쌒?`EVo?`k$Q?`kjE3? uj?tѓ?wّ?`K$?`VA%? *\? b?m7D?+'?`b ??4%͐?`,KM?0?`t?฽4ZW? XpS9? }/ ?@9?@ =?@}aʆ?@K?2?@Վ?@꺣?@o_?@X $?@o?=4Hخ?{s?T&9?@|X?@+Ì?@SAӈ?@N?%k?P(؋?@Ɔ!?@Ec?$(?k?@.糊?ky?@>?l;?F $ʉ?@1ŏ?\nU?6qW?:;??@`<]l?" X+2?Q?ݽ?@ƒ?SI?@֠?PՆ?^.?@2ma?@'?@oE?=w?@P<z?waC@?jx?נȵ̄?@S ?@]ڨEY?@?@?@ҧT?ýr?~..9?@`?@D.%Ƃ?@ ]?@b_9S??@ k??m?@0l4?@v&?@? -?I`O?)3W?sek?S 7H?WQ~?/l?иy7?XӉ<0?p=b#?ugP ޹9+calineZӼ????BAsg A?xH. U bottomline???@@@@  Packages!BT *d TXET0RGI Send to Notebook.ipfSend to Notebook// Send to Notebook // v 2022-02-09 // create a notebook of results // puts figure and panel in a notebook // respects aspect ratios of graph and panel // override input to have graph fill its region // puts stamp of information at bottom right // requires Igor Pro 7 or greater #pragma IndependentModule = SendtoNotebook #pragma version = 1.0 // //Menu "Macros" // "Send to Notebook",/Q, notebook_FrontSet() //end // directly create layout Function notebook_FrontSet([string notestr]) string gname, pname gname = WinName(0,1,1) pname = WinName(0,64,1) if (ParamIsDefault(notestr)) notebook_results(gname, pname) else notebook_results(gname, pname, notestr = notestr) endif return 0 end // function call from other routines Static Function notebook_results(string graphname, string panelname, [string notestr]) // parameters string ntbkstr, ntbkName ntbkstr = IgorInfo(1) + "_ntbk" ntbkName = CleanupName(ntbkstr,0) if (strlen(WinList(ntbkName,";","WIN:16")) == 0) NewNotebook/F=1/N=$ntbkName as ntbkstr create_NtbkRulers(ntbkName) put_FirstHeaders(ntbkName) endif // put information if (ParamIsDefault(notestr)) put_Info(ntbkName) else put_Info(ntbkName, notestr = notestr) endif // put the graph and panel put_theGraph(ntbkName, graphname) if (strlen(panelname)!=0) put_thePanel(ntbkName, panelname) endif return 0 end Static Function put_theGraph(string theNotebook, string thegraph) string gtitle, gname variable wsize, gwidth GetWindow/Z $thegraph, wtitle gtitle = thegraph + " - " + s_value gname = "\rGraph: " + gtitle + "\r" Notebook $theNotebook, scaling={50,50}, picture={$thegraph,-5,1} Notebook $theNotebook, text = gname return 0 end Static Function put_thePanel(string theNotebook, string thepanel) string gtitle, gname variable wsize, gwidth GetWindow/Z $thepanel, wtitle gtitle = thepanel + " - " + s_value gname = "\rPanel: " + gtitle + "\r" SavePICT/SNAP=1/O/WIN=$thepanel/P=_PictGallery_/E=-5 as thepanel Notebook $theNotebook, scaling={50,50}, picture={$thepanel,-5,1} Notebook $theNotebook, text = gname return 0 end Static Function put_Info(string theNotebook, [string notestr]) string tstr Notebook $theNotebook ruler=Subheading Notebook $theNotebook text="## Information\r" Notebook $theNotebook ruler=Normal tstr = "#date " + date() + " #time " + time() + "\r" if (!ParamIsDefault(notestr)) tstr += "#note " + notestr + "\r" endif Notebook $theNotebook text = tstr return 0 end Static Function Create_NtbkRulers(string theNtbk) Notebook $theNtbk newRuler=Heading, spacing={12,6,0}, rulerDefaults={"",14,1,(0,0,0)} Notebook $theNtbk newRuler=Subheading, spacing={6,6,0}, rulerDefaults={"",12,2,(0,0,0)} Notebook $theNtbk Ruler=Normal, spacing={0,0,0}, rulerDefaults={"",12,0,(0,0,0)} return 0 end Static Function put_FirstHeaders(string theNotebook) string tstr Notebook $theNotebook ruler=Heading tstr = "# Start of Notebook\r" Notebook $theNotebook text = tstr Notebook $theNotebook ruler=Normal tstr = "#date " + date() + "\r" Notebook $theNotebook text = tstr Notebook $theNotebook ruler=Heading tstr = "# Experiment Information\r" Notebook $theNotebook text = tstr Notebook $theNotebook ruler=Normal tstr = "Project Name: " + IgorInfo(1) tstr += "\rIgor Version Information: " + IgorInfo(3) tstr += "\rUser Name: " + IgorInfo(7) + "\r" Notebook $theNotebook text = tstr return 0 endd TXET0RGIbSend to Layout.ipfSend to Layout// Layout Front Set // v 2022-02-09 // - can layout just a graph // - can take notes for layout // - independent module // v 2021-11-10 jjw // create a layout of results // puts figure in upper left, panel to right // respects aspect ratios of graph and panel // override input to have graph fill its region // puts stamp of information at bottom right // requires Igor Pro 7 or greater #pragma IndependentModule = SendtoLayout #pragma version = 1.1 // *** change these for your preference // US etter page in landscape with 1/4 in margin Static Constant pgwidth = 792 Static Constant pgheight = 612 Static Constant pgmargin = 18 // graph takes this fraction of page Static Constant gfrac = 0.75 // //Menu "Macros" // "Layout Front Set",/Q, layout_FrontSet() //end // directly create layout Function layout_FrontSet([string notestr]) string gname, pname gname = WinName(0,1,1) pname = WinName(0,64,1) if (ParamIsDefault(notestr)) layout_results(gname, pname) else layout_results(gname, pname, notestr = notestr) endif return 0 end // function call from other routines // set gfill = 1 to have graph fill its region Static Function layout_results(string graphname, string panelname, [string notestr, variable gfill]) // parameters variable gwidth, gheight, pwidth, pheight variable grwidth, prwidth variable gratio, pratio, wthratio variable toffset, tsize variable gonly = 0 // graph & panel or just graph if (strlen(panelname)!=0) // sizes of regions for appending grwidth = gfrac*(pgwidth-2*pgmargin) prwidth = (1 - gfrac)*(pgwidth-3*pgmargin) gratio = grwidth/(pgheight-2*pgmargin) pratio = prwidth/(pgheight-2*pgmargin-4*pgmargin) // validity checks and window sizes DoWindow/F $graphname if (v_flag == 0) return -1 endif GetWindow/Z $graphname wsize gwidth = V_right - V_left; gheight = V_bottom - V_top //print gwidth, gheight DoWindow/F $panelname if (v_flag == 0) return -1 endif SavePICT/SNAP=1/O/WIN=$panelname/P=_PictGallery_/E=-5 as "PanelSnapShot" GetWindow/Z $panelname wsize pwidth = V_right - V_left; pheight = V_bottom - V_top else gonly = 1 // sizes of regions for appending grwidth = (pgwidth-2*pgmargin) prwidth = 0 gratio = grwidth/(pgheight-2*pgmargin) pratio = 0 // validity checks and window sizes DoWindow/F $graphname if (v_flag == 0) return -1 endif GetWindow/Z $graphname wsize gwidth = V_right - V_left; gheight = V_bottom - V_top endif // strings for stamp string enstr, strdt, strsys, strprbx enstr = IgorInfo(1) + "\r" strdt = date() + " " + time() strsys = IgorInfo(7) + " : " + IgorInfo(2) strprbx = "\\Z10\\JR" + enstr + strsys strprbx += "\r" + strdt if (!ParamIsDefault(notestr)) strprbx += "\r" + notestr endif // remove window to refresh KillWindow/Z SnapshotResultsLayout NewLayout/K=1/W=(30,50,600,500) as "Results Layout" DoWindow/C SnapshotResultsLayout LayoutPageAction size=(pgwidth,pgheight),margins=(pgmargin,pgmargin,pgmargin,pgmargin) ModifyLayout mag=0.5 // append graph if (ParamIsDefault(gfill)) wthratio = gwidth/gheight if (wthratio > gratio) // too wide, shrink height by ratio tsize = gheight*(grwidth/gwidth) toffset = 2*pgmargin AppendLayoutObject/F=0/T=0/R=(pgmargin,toffset,grwidth+pgmargin,tsize+toffset) Graph $graphname //print "too wide", wthratio, grwidth/tsize else // too tall, shrink width by ratio toffset = pgmargin tsize = gwidth*(pgheight-2*pgmargin)/gheight AppendLayoutObject/F=0/T=0/R=(pgmargin,toffset,tsize+pgmargin,pgheight-pgmargin) Graph $graphname //print "too tall", wthratio, tsize/(pgheight-2*pgmargin) endif else AppendLayoutObject/F=0/T=0/R=(pgmargin,pgmargin,grwidth+pgmargin,pgheight-2*pgmargin) Graph $graphname endif // append panel and text stamp SetDrawLayer ProgBack if (!gonly) wthratio = pwidth/pheight if (wthratio > pratio) //print "wide panel", pwidth, pheight, wthratio, pratio toffset = pratio*pheight - 2*pgmargin pratio = prwidth/pwidth else //print "tall panel", pwidth, pheight toffset = pgmargin pratio = (pgheight-2*pgmargin-4*pgmargin)/pheight endif DrawPICT grwidth+pgmargin,toffset,pratio,pratio,PanelSnapShot DrawText grwidth+2*pgmargin, pgheight-1.5*pgmargin, strprbx else DrawText 2*pgmargin, pgheight-1.5*pgmargin, strprbx endif SetDrawLayer UserFront return 0 end// Platform=Macintosh, IGORVersion=8.050, architecture=Intel, systemTextEncoding="MacRoman", historyTextEncoding="UTF-8", procwinTextEncoding="UTF-8", recreationTextEncoding="UTF-8", build=37523 #pragma TextEncoding = "UTF-8" Silent 101 // use | as bitwise or -- not comment. NewPath/Z Desktop "::" NewPath/Z miscellaneous ":::Documents:WaveMetrics:Igor Pro 8 User Files:User Procedures:miscellaneous:" Execute/Q/Z "HideIgorMenus" DefaultFont "Helvetica" MoveWindow/P 281,53,859,1005 String/G root:gWMSetNextTextFilesTextEncoding = "UTF-8" // Text encoding for "Send to Layout". Used by Igor Pro 7. OpenProc/W=(5,53,705,508)/J=89914/V=0 "Send to Layout.ipf" String/G root:gWMSetNextTextFilesTextEncoding = "UTF-8" // Text encoding for "Send to Notebook". Used by Igor Pro 7. OpenProc/W=(5,53,705,508)/J=86293/V=0 "Send to Notebook.ipf" MoveWindow/C 139,476,758,611 ContactAnglePlot() KillStrings/Z root:gWMSetNextTextFilesTextEncoding Window ContactAnglePlot() : Graph PauseUpdate; Silent 1 // building window... Display /W=(139,115,758,447) bottomline,xa,caline as "Contact Angle Plot" ModifyGraph height={Aspect,2},UIControl=4095 ModifyGraph mode(bottomline)=7,mode(xa)=7 ModifyGraph lSize(xa)=0,lSize(caline)=3 ModifyGraph lStyle(xa)=3 ModifyGraph rgb(bottomline)=(1,4,52428),rgb(xa)=(1,4,52428) ModifyGraph hbFill(bottomline)=2,hbFill(xa)=2 ModifyGraph plusRGB(bottomline)=(1,4,52428),plusRGB(xa)=(65535,65535,65535) ModifyGraph negRGB(bottomline)=(1,4,52428) ModifyGraph zero(left)=1 ModifyGraph mirror=2 ModifyGraph fSize=16 ModifyGraph standoff=0 ModifyGraph axOffset(bottom)=-2.55556 ModifyGraph zeroThick(left)=4 Label left "\\Z18x/a [unitless]" Label bottom "\\Z18z/a [unitless]" SetAxis left -0.1,3 SetAxis bottom -0.8,1.5 TextBox/C/N=text0/F=0 "\\Z18\\JCContact Angle\rPlot" TextBox/C/N=texttheta/F=0/B=1/A=LB/X=1.94/Y=35.00 "\\K(65535,0,0)\\Z24\\F'SymbolPi'Q" TextBox/C/N=textangle/F=0/A=RC "\\Z14Angle = 35.0" Slider slidertheta,pos={229.00,37.00},size={67.00,120.00},proc=LP_SliderProc Slider slidertheta,fSize=12,limits={120,0,5},value= 35 ModifyGraph swapXY=1 SetWindow kwTopWin,hook(DemoHook)=KeyboardWindowHook EndMacro  #pragma TextEncoding = "UTF-8" #pragma rtGlobals=3 // Use modern global access method and strict wave access. #pragma version = 1.2 //#include "Send to Layout" //#include "Send to Notebook" Menu "Demo - Meniscus on Wall" "Send to Notebook/N", /Q, Notebook_LPDemo() "Send to Layout/L", /Q, Layout_LPDemo() "Quit Demo/Q", /Q, Quit_LPDemo() end Function Notebook_LPDemo() string notestr = "" prompt notestr, "Note: " DoPrompt "Enter a note for this capture", notestr if (V_flag) return 0 endif if (strlen(notestr)==0) SendtoNotebook#notebook_FrontSet() else SendtoNotebook#notebook_FrontSet(notestr = notestr) endif return 0 end Function Layout_LPDemo() string notestr = "" prompt notestr, "Note: " DoPrompt "Enter a note for this layout", notestr if (V_flag) return 0 endif if (strlen(notestr)==0) SendtoLayout#layout_FrontSet() else SendtoLayout#layout_FrontSet(notestr = notestr) endif return 0 end Function Quit_LPDemo() Execute/Q/Z "Quit /Y" return 0 end Static Function AfterCompiledHook() initialize_Me() make_AsDemo() return 0 end Static Function make_AsDemo() HideIgorMenus ModifyGraph/W=ContactAnglePlot UIControl=4095 return 0 end Static Function initialize_Me() Slider/Z slidertheta, win=ContactAnglePlot, value=0 update_graph(0) return 0 end Static Function calc_xa(variable Cterm, variable za) variable xa, lnterm, zaterm, sqrt2 sqrt2 = sqrt(2) zaterm = sqrt(2 - za^2) lnterm = sqrt2 + zaterm lnterm /= za xa = ((1/sqrt2)*ln(lnterm)) - zaterm + Cterm return (xa) end Static Function calc_Cterm(variable theta) variable sqrt2, sinterm, psterm, nsterm, lnterm, Cterm sqrt2 = sqrt(2) sinterm = sin(theta*Pi/180) psterm = sqrt(1 + sinterm) nsterm = sqrt(1 - sinterm) lnterm = nsterm/(sqrt2 + psterm) Cterm = psterm + (ln(lnterm)/sqrt2) return Cterm end Function modify_forzero(wave ww) variable zp = 0 FindLevel/P/Q ww, 0 if (!v_flag) zp = v_LevelX ww[zp,] = NaN endif return zp end Static Function update_graph(variable theta) wave xa, caline variable Cterm, zp, xs, mf = 1, xtp, ytp string strtb sprintf strtb "\\Z14Angle = %3.1f",theta SetScale/P x 0, 0.00015, "", xa ModifyGraph/W=ContactAnglePlot rgb(xa)=(1,4,52428) TextBox/W=ContactAnglePLot/C/N=textangle strtb xtp = theta/18 ytp = 35 if ((theta < 20) || (theta > 65)) ytp = 25 endif if (theta == 90) xa = 0 caline = NaN return 0 endif if (theta > 90) xtp = 5 ytp -= (theta - 90)/(1.5) theta = 180 - theta mf *= -1 ModifyGraph/W=ContactAnglePlot RGB(xa)=(65535,65535,65535) endif Cterm = calc_Cterm(theta) xa = calc_xa(Cterm, x) zp = modify_forzero(xa) xs = pnt2x(xa,zp-1) SetScale/P x 0, mf*xs,"", caline SetScale/P x 0, mf*0.00015, "", xa caline[0] = xs*tan(theta*Pi/180) caline[1] = 0 TextBox/W=ContactAnglePlot/C/N=texttheta/X=(xtp)/Y=(ytp) return mf end Function LP_SliderProc(sa) : SliderControl STRUCT WMSliderAction &sa switch( sa.eventCode ) case -3: // Control received keyboard focus case -2: // Control lost keyboard focus case -1: // Control being killed break default: if( sa.eventCode & 1 ) // value set update_graph(sa.curval) endif break endswitch return 0 End