From 9fd065fc8e72378a9b8945c1ddb128b1c6c59830 Mon Sep 17 00:00:00 2001 From: Anton Date: Wed, 24 Feb 2021 15:46:53 +0100 Subject: [PATCH] Added simple algorithm to calculate the grid of gratings --- Database/Databas.xlsx | Bin 56390 -> 56435 bytes Database/Load.csv | 42 +++++------ Wardrobe/GUI/Draw_Grating.vb | 34 +++++++++ Wardrobe/GUI/Individual.vb | 2 +- Wardrobe/Gratings Data/Grating_Fill.vb | 95 ++++++++++++++++++++++++- 5 files changed, 149 insertions(+), 24 deletions(-) diff --git a/Database/Databas.xlsx b/Database/Databas.xlsx index 8b8d45a32501aa79cf3463f53bc4d3d79e9671ba..5aa78b864bba81f456fde852fc02b7dcb54f9e2b 100644 GIT binary patch delta 20724 zcmagFWmr_qRbPh@jjFd<>NGO7IC?eh6Al*x90O_Gyq@;%K?rte*>F!223;$>D zbM|$e_j*6fm*HN&j{AAm&{czcQiEKwh=CHo5|I|Yg2495HNt~a)Fn-MOd%~m8HqmRDh6AH(coyvdeVC*feF`#4AGwpW` zr<1!XXOsaH>|Q9nGfGRWGOjfVH_zZh7imWEv##c*hlUiSJS}^?Oxq6G42g;R@xFgW zcFBG~H-9WhT?eTHW}@6Q@x3mt`)<&om4Cr#>6}vFcUt>Y09Bb@$*f@O9x;T9(F-9zH;wDW(*>g8tl5Mi$KDYN=)0Jol;mJXB zh7Cakol!`E9O7*ci;yyG$Gs|(S(Kz)4x*zcjie$qvfNtyW*Bubs66&2a zog=p|w=jb*g>8E8D98|l_u~nVjQ6Ya8=|%R?)jEkjMgce-=)39>CFhWr6w>tRPLCQ zRD9F+QiHk8&V)aln5;d~n)IZ_DeR>kjqU0aU}c&58e_Sl(N_NXjVJZ?dcn_u42OWdc6xX)h| zms6%_yvbpv`8|^;dN6Q!I>6HI#j7)1g%}XI`MS1^F}i`=yLDM(x{%)u*)CPJ{t-5~ z`Rf|@)hFc?p*^WMiU4%#IzuPJt!RzL*xx{*3!W>?u}eo=+4_$`O6SP8U)cy;Jazf> z7and*tEXg$ktZ+FjrKz~CR@tG^!;BL1_}L)uNCA@VJG9Kd5Vgaiy%HrIKROBa?`pm z$h$L+B5SApGe>#Yi$@}G!sg2?Gew8XFP+=s4EuAt>wD~jWgc1@VlqiQVlq_SxPmp( zfU4?{iE%^ajrBK;JWzs>N3#_PdzPc8#N`<{N~l;}Eeda11s*->8h;$!ibGOP^mOns zr|!iC)%_QTzsu*%fs7aWX#*Q4M!4grxi>ce>P12A)rr8##*Sk3@ZELyhFghgak**q z3nF@eNobJj@2%Z^@vLGgTQ!x9>0)g>l<75_bXdz~M#&W)T1HQjODokY}MC^n;h9!mQQINn^IvTENB+D4pA{7pBKV~ksJ!|YhP zO1A_BE|)aVQLwVrl@AzFl@Hu&m1_wtrchNQ3#?;>3#CSC_S35n_=92H32%(gXmGpQf;Y7O0z7gM=lCvB#yL!b5+{;oH z?aR&-a?#)RlX<%~&05!SdzZ>BxEeOpde_~ZCkNiVNgFigm=iqN<6+}WE*9H%B_9ww zKi!!he4{(h=2Ge;sWsqoBj0nVEp>Ek6`q<(wV?>yJ3BPpuXi4t47x;n>X3>gV|eLk zy5VjT+Md-F(OfrF{(dc)?h-N#I5&M!NL^5Uew{`*h{Z&IoxD~qn$EP-=Dd00(!YV^ zU zT3ar%uJ7>qZosQczPfDudd@=Xj3|UTe z2?s{);d)%fftq;>3Yte{8o1bIqXPtA#dk-@(+Wz9PBG zVeg@9&X?JJzML4!&CHs==ROb#2%Z;CW_EA#t)mh!s5EnrLx|Pf(tgz&E2_7@Ez@anP9myZ<>~BZ{Suq0h&X1*b?a=8b$^BB zpzyTfyC@gQXlwA>C1k!1-}lDD;h$HE4Z2D`Vh9)P99ov>D3{tA?P`{cklIhh4s+3YP}j*_Gobrp<&zFgTkVmrmV^S|QGinS)dHN}*L*om6&i z?{>=^XnFNA8P4(fY#>d&iQ2w|Q~!~hIUT)2#smauYcA$YJ})KY;5Dfd?;81Y8JV{(n2P#M zpe<`8qjT+VcM}Ff+1+FRfZ>c58H4!L0#j!*k%%8m=lG%u&ruRR8xk9h)C!r;lNPn8 z9d=X(6}sZ4;nZTd%_d?ew9cg44Bv#sBgbW2b43V5>8TX0q$34@NC(C40y^EXf&CXf zBVS+Az^OAFqJ=2Pfl3S@KC~#21p|^sN%=GMrLX@77ZW@JqswqbR~-h+D%zfyRwf#{ ztWmQ01koCsZB5o2B-012P-rzEo^mCzO){lGYj89 z*4KYsdY95S1%}S)UfmIglE~?55FaTqEMdQsGp&t6s)P=d(uuwUt;Q2o5JMqt)C8ZA zBL#CKH9PTtq5i)>nWi+gPM>z^Dk|T~_+sM(6{WwBLO&zw*~1r=IDk#}cF$b<#GcOx zG}oRXTQ-tQcfqDx`_pI4vTb3Eprfk0P{0>k7vE-20v^F|4sT7I;XG$i+u4}uorY*a zjC!I1eVbmu*+d5X>q6iDd`N(eAUfxjD`@4w)nKl7WMYR7 z8lXlk%QOu31b4Xyy1k%yz_Q`<0HVNO2}{EYVQf;vdo6#pfGmV4>Cd_=JhW=uq5knEU zmngWRes$$)ES~nDd=jsa)|pro_SC@Sp`y)A;xiD_Vkots#MPAti#8$*rZnG_!2eUy z|6Q#AG0);(3l+?OEmR&gSLfs!8Ct~o0(1l4Se$?s@UP?gFJBwLF67*(uJ)#D8y(nx z?FSb0Ltnm@%xr$lwD&^Q@_PUC`^?_gZz6b5 z4_~SMtw%08HSszAw)q6v_|KMO?IF$2!}?L5DQ=Rd8X;QVx-sujnS!w=ua9JQw}slm zdt?g%hO#Wh%OhqlCu?iIaLQop)2(13@pS$44^%``FXD4OnK{*@SI7Fe1l0Fj1hNor zFJ!m<_wYir&cBJHZl8)%{uny^G#}SvcPh1pR7lIIW=_vgKyz$xCLULT(frmVs$VCn z$Jn4+3wv}uKs5PGj#crjYGS5;C#40^i?4YC;B`&XxnZ1f$3@oCqw@dg(>f2!LY)-S z=2lsUPByTsmB-ZyjT`2*%AC|zK>n_Ft*}ohv1O$Ff^bZAXl$3+((**+Fr49=!(6;8 zWh8qInR(QtEgs1yP2g+FHj)VE(di*nv$I(>8S?sXqd}ml4oQmo@HPZh-J%5k>k$A~ z&W2XSxpTNH$u`KTK2a7w%d|>~LG3w>q4XUHd4?2X*r%}tCv+QstfEv`ahyY=zPHGq zjcA=B4YEV{#!pLFmi8}1O+QLpSU22EI5rT@BQ%H)bYtdKleQ`ut58sp-0l1g(WLwY z>leg%GPqmj@~|ST-<^x;ku>s<04DJ@-V@3A6_W;jv1w^vD@FRjDLDyF$!SaEGAl7Q zi(Y86YSo2U0!bq|9Ck3(Q!@Ui~-fb&% zzt74s+1h{acs5^ueo8H48eK;9qHlBl=gXGRtV-Ixlm#J1oucqb2%}ixh1rlt~wD^r6ilqfVGJO1R!n+CO>CPjbb`}x#ItvFM2mxV)rE)3pr@Z#%!If;tEH4? z@MNryF1uoKIxWds-XR#yC@E&|#81k}eL=rm?1pm-^?#PD5M0nqbNGrL+r^iqR$MwL z+g8yhmUfsnFD=IZsX^QYKHaG=(GX{|=3rnDa9k!IGt(KT1)=L0J9%3IUnPB+y$WIe zgdC=hXyG(68$O1XG+6l=JD1YM>tU3h3gLs5w=Tn2yW0Qjt(bjhJXB2c7~0feb@C75 z2}0&jxTa>?=}M~!<2^|s>3#BN-|x`O;$BJPsp;VQ7@ykgetdMl9UYL;vXBY9W#0Sv zR4u0?tqZ~omWdhxoxl6UHM@AssHSC#_JCXHq`M-L%I|1BE1rnx(NTW2zX1eAXF@QO z9XIR@M3>l0H?vG5=Te@yml&nWOzaLtrQ*H#ueebyKVJf0O{7=SKJ~QYi%A@G3B~0` z3izlqjc80^R!ov@e3IIMDx(9>$oyitRR++5=iRipR)}xkEth;yu8k_Jo}TGUo3}*L zyc+9!hGJm3MkuvkWZMj+zy5qHPjS8a3i#3WGQ&h5oLkA5Z_7sS@%$0lpFzLYRU(^5QvN?MnTf3*~SX!Mw#v&3t(yffTp^x5oPXHmO$>_{lq6Kq_vu1gjAv3 z;ffs+gUFmW$kJTSS1AE3%io5o?L%@(j$d;4W9qlcw8f>q(C`0Xd-NKYK=;%JUGOHM z-uF}hBiTXY*(FHq;#24{%bCzsbk!;*+uoH|mf!>1n1cRplE^39otEdN0Z!h~REMsg z?ng+Le>Yi3$%jw<;_*oeY3+iuY3=Y*EL%R(ju$`Vzz9=(9iy9Ph4z>$o-Ux+E&azji)CU+@#iC1_Km!#`Muaft92Q(C zUX*Xnzaqd*94tM@W`zc&y;bK4*QKKf3U>0xpZ>0DS;%Kh5?>{XekQ*Z3p)&{n zlN1C>vic{<>YpUZ(?j}d62l#`lwkS&7qqnjsNy&(tEd_KFZjf5x}TZ-Vr_#~3rrHJ zrA@36$@_5CO8d~Y2B7-4d|RUaMd<1v;%^t?VTg;y;6PJK76klJFdrObPui*0Et>2y zc~N(j{eyGrhG+MkHZ%M5lzY%N@5XaA;uMOa=Ou#KVV|q%1-Z*7ujUj6w-Ut7S+;QN zTQn{X=hr>a4~Z_;8=Udk#FIN$VkYNaWF}Vbw>3O~MDZR#-xt`2WtRH+fHG@PM1M=9YlO*K1Cv#R!Y5o&O`a5bs7LDO7o?0ZIOo9MuvMFZ(d>n3<_Ssq>Vg_9j`z2dxybU>L2K2h+jm6;or%Mx3D zJPEC}smqX}W^1`+rgwCDr6pzZ6`d`go=F%N8kuH80ZAb@E5Xo++VcZ_8{HL-yV*iC zoqWn+h43!Q`?ZSmB((Kwe2eHp7J3XD8DMA3%B)D?+JM;JMt29qI#Qfln=nXPM%>%~ zCQ+r54Djz~!Zwu7+p#a>t(?3iE(`KPb@Z{6B)+%qx@4>4+bQn`94Z=zd(8KE@CUP; zsO|%3Ep*~d40UAh{O0Z&C|8;XF)hkquD5)Wf*SF+l8euOuYv)Zcfuu!epv+YpuHn@ z)p7ZEWQ`LBaoktLPk#v@fWd)Ry#3jubc7P6~5lal^O2IdKm~;}aI*7Zf=A zz0#V(+i}E2%YO2E+Ua!-hIGti_RNTeJ#_WFl5(X@9*=lPA$*dOc)bD|KBN!Er>Gtm z(-4wfxh}SeG!@ASmUk$C$0zIwO4IQ0Oc;mpd&i-exUZ)d4tfO%anJcPTTs0aAn?^L z%H>c9-7j(%7M#&wKz1-tAYa)`gd|As7+IS?pX+Eq<(k6ZL>jb2e^A_+7f5XS5J6&x z-z1VZmh9z|UK=oI@R)`JjiXQH{%gLJt{RRyzKzQ6FbANb5wF*L?=Me+`c9KWJLqar zEkRw2hD$2Bg5ey=e6ohe+(ST+Nsb#}hMh^qO6f^F;tqyAFSebU4(%QnIuY~1;z>@M z8;uD68yv6Pb+a>P5lUZlQ$wILW%qOS+M|IpyK+^cXK!jJiM)BKyC~TlS`A6t1eit( zqBV8nC~RWYlS^EdYSGTkXv>(t1l*%f`)U|QojYHa&)oyjke zHI8YLyI`Gvt~+@B6fa}**@anCq0A^b_sNjGyiN04=dg3ikU+Caim!=Hluw9N?uYn! zz1%}L8}ePa!t~7@yCKHtxVhiX3V@C{da-c!PMlU~QgwXqE=C&ZM2*k7K=I7eL1xz( z9-@YUy+$!BuCP*bM_Wu>hDc^tb6ym-!PDfh>~;q{q1LmJj;7CZYr)qL%P?u|#0`ni8MWmS=hi8iZK5K?}5$ zCRfvzu2ZvRme&%g50vb2Jw{Qu;$tRue;pb*o7TW4 zpB61nSNTwu?YAHh`-Z!9z#5mL;g9&A=9@Z6VZpegTI%qbaW9VgI?J!}@l#`syU-n6 zik)qduF~0O8@~`jf&x!+#NUZsj9EQRFgkY}{$ObX5t~x>QU9S?7cXoy-%o$rCgMy) zMj50Gu#Y4hto7z_EXtN=c$o8U%W--H2rn1>Mf=8g_%@L0MOMG%7NBz;>BKg=Fy$5c zu3GqMQfkVT&b#~!L3ZY;#0U9-S?8WpPm|mi{+Xh~ySyWUnyD#5!?Ruw8%=3fSM4{; z9C{QwMqH(2U)^L$B0tJ9PZtfN*b96#%RwKuKlm4$-Td#}SNWmkO&tkxC)5ERX!aap zmrPphH1B%K7KrW$KM^{3%{3nm1v9*jBh}|_NjoU-znoCh^wxe%lhC}UDDD$``2t)D zT79GZg-;@Dv@zSo`P*5_DcE)n>?gNftCb7A+k*#sMDCf1r?4DzZ?Tf%3zEov_pjW7 z0`8X7on}dkX7r6b5iq@Mz65pK-pt6^DUVP|m)k}_Q-`lSI@2Y%pzD@(udtgA^v#Ckgf(uT!qDyHEygG)HB;R-EFD^%w5Vs&Naym-M)x2|uz8i)sk_@- zA{Jm&#NFc2Nls~Bp!0R>|NI>ODOQ@@qM6Ory3SRf9dLBImI|L9Q_5tGOy*Fx2i78)dmebv4=i}&) z)7o@scv)xY$>Wdaxn`Wft=T5VzX;W%Uj~RRcRYBPUn@5vabe-9e$~GGf?Vsh+l{tr%@?K0T)S?p>CVIMyj$0Re0tJzPy#MlOcbQds}~3EPj;8rX4VZt0kcdG z*~?v{DOYxKF3R28=)@U{lgan=0hQn6>tm$-;8drur#rp|U(2ae%#Me4ZS6&2ry zX2f)^1tcvh1^Rh@!pHGY zNwnARmCV;TKAww?P!U^V123xMs)*vqF+yTBVlL@o?ZN#~Q{ z$RcA+LK}y)Z0&B{oPo3O4dl|)f^Oj{bUMR=nCcNyLA4i(At_yo!p2xM?09ZD8Q&y}p{{av`3Bq|ms#Cq%dxB&^$ z1cZoQ7-EB+-4_47YnTv}=ZcF_?%|c3oqD&!SrH` z`XhEO4o%XIwP6{rX~X(xyyy?okp`;vC2tUN346rkteK{=o$?lV@d^R)$ zqNBu!a?=*^ajPj%raYR)(@zFEH!TF@RI`j~9b}G0YClT^hdQYnCuXfzZ}(5fW(e4S zw;%Wf1>o(qFW#VkwKF_P(5VxLUwkz0LC~@d!d8#vp4!*Lb;Cb`lauA=Om7^;0BWoO zKg-W@fz@n=P{zW~Y9M<8*P6h2<3jt}|CADIH&s0T9<3manW zl`V$~faP@XW2~R!6*#=r5qaDjc2!||8}A)?!3h7iX1g?5xXZ__HImqWd64-}9^!`u z=HeP6WW;u4j>oK|Sck=-)w*h3KTpdxuR64#vi9Meb?am1v63A`)xe#2V{TvX`wl*bSvNuRQ z0u60Q%MFGc%`AUyqQ`jYrm)G%UiQ-Yy(@Xs-%WB_7ARUC&DBqi{S5?t84~}b_D~Yg z5V+PDIIiIl!03iCp4Y#o@p@NN`u~Fb{~+q&R9%}~b=4Mb&Si9H~`$U z54iV^j!x0xk)qO0ZTLmW(4CjjW{J2sX-(>$p~_FvXkOg_G!~OW!B0BYtPSf^+CAX%FmUME1e!#BdS9syVFuR{RK2p+_Ao>V*KQ4vmK=re` z%_a7(*3rgSz!zrzugqAu%)KAtW`p=htW`&~-pt6UsM^W5La(_gnQOB2(9^V9yI)@F zePGAZG1w1(V*A0)h6Yn1`7?L)Qeps(O>#)6i5_?P(ujiw>5|;!GtW>TJXGZJCAw8I zUp^B4Y62$6upNIHUF%6=AxjPY(nv+p@-Z`!?_W|837`dSg*omC8^O<(AzTg&jCZJ9gs@RkD#bFn5$5tOrWpHplztg+ zz?47O2Fr9A?@B<08I&IAJP%UPpS4|O5GSZ#(z$_CDIeU-Km+Y(^z#5Jnh8U^Jg^Ne zQS;vMH{W3nFyF!(7#rv(M_>>g2-CylBG@SnRQor%)S#aI^+}v50lI~tF|{yOP*d$c zO|_IBJ^wWIJZpEO(uILzbd~J)hgoU%6K5qj)9Qn!DMP&4f0}9y_=kZ@P|N|%)PtI6 zrqjskXyX!wTSpObM2LrL+ z6lSHlr%ZnqOt?`16oVEy@f|XfQ`6j73l6Z?sdxlCe-@ZIjJ#i)RWm4+Y17LVj+n~&R1_o1@rBbKeZxI!f{H?e*C!h1# zwNYD~3yXF5gJB7zfmTV(?tNCmEU{;hRPG7x3t<5PU&|Mrc81A6hdxZ{Rl{TVeo8;}1$m;B_o?dAT~lzCCcs{|kdZ6!Hoz zVvtYgMv7w;2R{Ys-im_@Z@D|jar_JHwK13=FW9%`+ubMS(TCcmKTARKh=J$|jW;5D zo!|ggVboSmpxnPIl!K-WePCc87b`Zho^*ACkKy%Dx!%?&)0NQIeJz(dU)_ z>Wu#f&IDQY&#m1h$4I$c0xiofo<@YZnyg3yAJ+7;CMEj)z}f zWfqJ}<}~Bv^?ZL_zQ(hBBrACG zcK=oW3z?y#s6qeut3-vx|< zPo#Gyu6UA)9y9eORhK8E?$^-O97W$xqm|YK@+z2IPa-+`tg-p=jT`U3xTSVZ>KYNK zQ>_e-4IH2D6JlC?Yg%&RO*EM0DKa1|-K|>_;q{@fJ&}!xZB)RKeS@ekqV&Y5go{bH zt(0Q}Am2@yEwM?gCQOpP^2{%Yo!X`N{lP&eZU0@#2XE{&2IMsLD|k508u?+$Y)}E# zo>{A0ZWu`8c*)Ylh_V}m)&ul1Zb^g{QH9Ho=_twj_%;Qq31V|uSQ6B)JckN48ge#9 zU`je^7ysm?Ga#p{yYa))!Nd5>F;puXy-TJl zO&zj^LwuK@ycoW7UU)i4<=h5`p&?2-$6P2_Yu%6BIUgm(vR#dRXnH(S8&=bHoD%;i z)i=4%@++=-%rWFUbXwJ0P-0}Xv9e%5;oKYSC2t*Ab83s+qqstrHE@G`{sAO9$GSe@ z!4m_$-92=%q_`VP0dMM#!`gMxbNMFZ^-R{liNAKXY-=Vq;I@er_4GkAiSulG$xQFZ zrZ3l6%cpI17z2f#RP8WYiy=!GSh&Yt*!9m1r#BZ0d6V=V!r9qXDjD0a+@AZFgMT51 zzg**K|MToa<(A>}9zfC#GPq+9hO2nRnR3C4uW)l^WUWFzSON`k6%SK=+ZW&Z<98^B zRn3p?|BZ7)&uzp3WywCoqXd5lkNF5w>WZ`agLkNYdq37}pCxQiKxpmrWkdC2hre_5 z>R?1*0WREReX_73ox@Gxg1K-GD@WTQ@M%CGFxQjRX4jgwJqPrYrya(e|62+cpvSTC zUtZ44a+46Xg*D>fa}Hj0{#MrEvfA`j(&1$OACYJ+!3U*$jgU??U zvRJh8(gN^^V%;KF-)CgaNHy1i03ZWe8%LPi&xm{jjt#Nvcl4)sS6?pbsbPaYf+ZvZ z!;y|T&Yt-|iTE1B=J!7_q<79pTuh7ICD34{CT{Y+_Ggg~p(p?E(BqogB0De4eoc%$ zFr1DQX9Q0ZYik0`t3(c9s9c0MN@jrG#FH=wHS~>t+L|05P{pJ~b#I5QsjELUnM|`? z9S_+&?uO5YpQ3OH3apf_AMX2)4GB{A46Q`MhmOuu^8J zG0E2`%qQvQc(Fh#-q4NPkW}`G1mZ5wm{gRi)SKL;APxCqQD6IMOdOyn3o;$D^YKKB zZS8c?JM0&%=b#SXpZL+*hCDjSrkZY#d!X|8&srE9{z;gesHXi3xQoMGuNO97fN~H1bARCx%Rd{9Eo7%m28SQ9AveXmW;VUx3=idiL>QVNcp)&JpYk7~MVFDN;0Pv(hv-4A z-eucY{iLIZrSrHQe@J%(g$rvDtsNQ+(V^OWM{M>bU=Ez^%oI)9x^Fg2mt~b#m7*Q^ zLzt$o&?NOtmT%NZyy@(IR@~h9o1`59@PG#vg&n}Af-W=|PlKfk{{a>HO56C&z0bOX zJO_TxlB9kq@)Xw^+#C@O8G%A8{UF=pfHbj7f%Ng?6n>LvTWuJ%P&9GUj_Dvcn2wVC z#fVC4-Vv)^a)Od~*)Q7o2aK2d$JN9x$E;Wo*{MJ=ydJ+hz+bT^1P#dlOkA83DL&}R z?vUrh^u4nZ`yWRNp|l@V82W?BkO5v$u42w?Jr!0531YNm&kF_B?^r@B^*v_>p<3Vx zT`;egXXB7aRUUyq)W+8OkB~jELoM*Ie`L4{9`+G4y@^LS_TYh3m8O^H317g}>OXS$ zK-qv>l3Jb9NK0pXf7?hV7-6k%qN(SisEyPQiw2RN09Ly^MnCQ43&T~i|754lZ$?e4 zb!ZjS|wo;K-@ey7k(J_Nedm=AbVJ;5n5spx&{$Epa0srwfp~vNCs=Q4zyiFS%NHjDzIkc z2~kss)<27qdBA`SEn6{w27Oy6`wp*EUjgYTvw^Cg>RX-%6i=;pFM*AmQX}Bw$}1>v z@tDGtQ$>{jggN0#L`rCuzYUO=?xWHAPw#k`n3sMmTS_v2q`H&$yxA`7%VC;;YdbRP zcaLj@gTeB^c+=wC6q?WtW4bGHZgNf9??!cAL_3~0BoPej1S6LrChq%>o)_~DzA>=5 zD8jnoxDDG^E5>g0!BsyPv)U}$;=7X75c%PcORX7{CTO`yx_Z)FLke78+}``jq%jZ z%P@4$liTFk2&^4#1<}Tg6>mBe9gc$VYspIkMu z4A&zf*X90{=$j+${BY7T+?6%i#lgbGmv@l>GvL`eF2|~vYIL5zv-zToEML9^ z@~2A@OOv@YAlJOLMjS)8-CYg9eH?W3e+457yNgyBwGSoGjKl7?MU@Lj=;Z^Y<+wrG8W znZ^jPjhVQ>5)1*OaP1 zew7p4q^3PDJF;r4l#Qr#jAtgdUrp`=FWmuSHk`P%D}*}l#-Srydzdg*g7ih__BKMF z*QqGG-hU=CQ|yAwggijFRU_*6%iV%#F)=+}Ob_!7hXh&n=>1@e#x@-#@Q$BQayxKr z1R23)Ot|m)CiJ73qwPmC=Q1Zrt{q(GJC^4Oc})xje2aeSAI!el47hAQ-oll?tcw6z zH#5*Az#DLnl@{VQHyUJ_HmAj#rr&GM^ zFK`dJ5%M1~q-^V)G7KIe`ObT@7HFhlA|qPs##yfFG2}S8wal^oJ}uDsHsRI zaatcos@t)X`^GyPuDp6I;570~3)wzM#aC=t+K$>#^^k*8gq;*De$oedC~SKYIPpd) zuQxFfz5L=K2Uu$b5kLqb2CmdDrUMN@z+%ofxp*0P#PKFqS(E~MjAZ(kyx0v)XMD4sJCv*t~YGi3Z2&GjxfZh zm{0aaUK_(67D%xcny!WUB~}IWT43G%jTu;T@z~5Ph>oX70oGp0uJXXpv%W)-bes=@ zIdnvhNm+?Ac30;J!??82H}dgJD1Z3(tvl4Z1x;2dCcLK_6zfp!9X^B;GSm3?zI=j1 z&=M;seoq?XDOaKzgJQU(!eF}8V)e9q%m!P_eBDQO(ymStIJcy%;i)01xz2Q3x_lMp z!L=1h!;pwuG4v>8&I4y5*?K;GKaVfiTZnvT)7AW28$hnKO4tyI6BW+(`Y7Y_uNs#a zH_GSiCymhq3!C2)B_#ufGm)nUGt0&K(#qPO9S*ibz9pN6jz*wno*X`Ue=>-i)z7DB z&TErqbPhus6cT#nNl975=IR=^Ie8eP+R_f<>rF#9BTz>{Jp80DbKqn?(}!}f#(n@x z5z`qUrmPrmLl)$rOzo0D>Og5xXk-usV%*XB8qt-q)B{E9AaG0%KNnDS!TAe zWvz>0bV-VMc-#7U17{_AQ``EbSq>r7=bpeOY1^L#ia1D$xu0_%!Nr{rGrsmB3kmp{ z*~XQXu|a%L<

xqG&%U`HAc-`~E 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 delta 20644 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 diff --git a/Database/Load.csv b/Database/Load.csv index 3a47e91..3d99104 100644 --- a/Database/Load.csv +++ b/Database/Load.csv @@ -1,21 +1,21 @@ -NAME [str],LOADBAR [str],300 [dbl],400 [dbl],500 [dbl],600 [dbl],700 [dbl],800 [dbl],900 [dbl],1000 [dbl],1100 [dbl],1200 [dbl],1300 [dbl],1400 [dbl],1500 [dbl],1600 [dbl],1800 [dbl],2000 [dbl],2200 [dbl],2400 [dbl] -H,20x2,62,37,22,15,9.5,6.4,4.5,3.3,2.4,1.9,1.5,1.2,1.0,0.8,0.6,0.4,0.3,0.2 -H,20x3,93,52,39,23,14,9.5,6.7,4.9,3.7,2.8,2.2,1.8,1.4,1.2,1.0,0.6,0.5,0.4 -H,25x2,97,54,35,24,18,12,9,6.4,4.8,3.7,2.9,2.3,1.9,1.6,1.1,0.8,0.6,0.5 -H,25x3,145,81,52,36,26,19,13,9.5,7.2,5.5,4.3,3.5,2.8,2.3,1.6,1.2,0.9,0.7 -H,30x2,139,78,50,35,26,20,15,11,8.3,6.4,5.0,4.0,3.3,2.7,1.9,1.4,1.0,0.8 -H,30x2,209,117,75,52,38,29,23,16,12,9.5,7.5,6.0,4.9,4.0,2.8,2.1,1.5,1.2 -H,35x2,189,106,68,47,35,27,21,17,13,10,7.9,6.4,5.7,4.3,3.0,2.2,1.6,1.3 -H,35x3,284,160,102,71,52,40,32,26,20,15,12,9.5,7.8,6.4,4.5,3.3,2.5,1.9 -H,40x2,247,139,89,62,45,35,27,22,18,15,12,9.5,7.7,6.4,4.5,3.3,2.4,1.9 -H,40x3,371,209,134,93,68,52,41,23,28,23,18,14,12,9.5,6.7,4.9,3.7,2.8 -H,45x3,469,264,169,117,86,66,52,42,35,29,25,20,16,14,9.5,7.0,5.2,4.0 -H,50x3,580,326,209,145,106,81,64,52,43,36,31,27,23,19,13,9.5,7.2,5.5 -H,50x4,1168,657,420,292,214,164,130,102,76,59,46,37,30,25,17,13,9.6,7.4 -H,50x5,1459,821,525,396,268,205,162,127,96,74,58,46,38,31,22,16,12,9.2 -H,60x4,1681,945,605,420,309,236,187,151,125,102,80,64,52,43,30,22,16,13 -H,60x5,2102,1182,757,525,386,295,233,189,156,127,100,80,65,54,38,27,21,16 -H,70x4,2288,1287,824,572,420,322,254,206,170,143,122,102,83,68,48,35,26,20 -H,70x5,2860,1609,1030,715,525,402,318,257,213,179,152,127,103,85,60,44,33,25 -H,80x4,2989,1681,1076,747,549,420,332,269,222,187,159,137,120,102,71,52,39,30 -H,80x5,3736,2102,1345,934,686,525,415,336,278,233,199,172,149,127,89,65,49,38 +NAME [str],LB-HEIGHT [int],LB-THICKNESS [int],300 [dbl],400 [dbl],500 [dbl],600 [dbl],700 [dbl],800 [dbl],900 [dbl],1000 [dbl],1100 [dbl],1200 [dbl],1300 [dbl],1400 [dbl],1500 [dbl],1600 [dbl],1800 [dbl],2000 [dbl],2200 [dbl],2400 [dbl] +H,20,2,62,37,22,15,9.5,6.4,4.5,3.3,2.4,1.9,1.5,1.2,1.0,0.8,0.6,0.4,0.3,0.2 +H,20,3,93,52,39,23,14,9.5,6.7,4.9,3.7,2.8,2.2,1.8,1.4,1.2,1.0,0.6,0.5,0.4 +H,25,2,97,54,35,24,18,12,9,6.4,4.8,3.7,2.9,2.3,1.9,1.6,1.1,0.8,0.6,0.5 +H,25,3,145,81,52,36,26,19,13,9.5,7.2,5.5,4.3,3.5,2.8,2.3,1.6,1.2,0.9,0.7 +H,30,2,139,78,50,35,26,20,15,11,8.3,6.4,5.0,4.0,3.3,2.7,1.9,1.4,1.0,0.8 +H,30,2,209,117,75,52,38,29,23,16,12,9.5,7.5,6.0,4.9,4.0,2.8,2.1,1.5,1.2 +H,35,2,189,106,68,47,35,27,21,17,13,10,7.9,6.4,5.7,4.3,3.0,2.2,1.6,1.3 +H,35,3,284,160,102,71,52,40,32,26,20,15,12,9.5,7.8,6.4,4.5,3.3,2.5,1.9 +H,40,2,247,139,89,62,45,35,27,22,18,15,12,9.5,7.7,6.4,4.5,3.3,2.4,1.9 +H,40,3,371,209,134,93,68,52,41,23,28,23,18,14,12,9.5,6.7,4.9,3.7,2.8 +H,45,3,469,264,169,117,86,66,52,42,35,29,25,20,16,14,9.5,7.0,5.2,4.0 +H,50,3,580,326,209,145,106,81,64,52,43,36,31,27,23,19,13,9.5,7.2,5.5 +H,50,4,1168,657,420,292,214,164,130,102,76,59,46,37,30,25,17,13,9.6,7.4 +H,50,5,1459,821,525,396,268,205,162,127,96,74,58,46,38,31,22,16,12,9.2 +H,60,4,1681,945,605,420,309,236,187,151,125,102,80,64,52,43,30,22,16,13 +H,60,5,2102,1182,757,525,386,295,233,189,156,127,100,80,65,54,38,27,21,16 +H,70,4,2288,1287,824,572,420,322,254,206,170,143,122,102,83,68,48,35,26,20 +H,70,5,2860,1609,1030,715,525,402,318,257,213,179,152,127,103,85,60,44,33,25 +H,80,4,2989,1681,1076,747,549,420,332,269,222,187,159,137,120,102,71,52,39,30 +H,80,5,3736,2102,1345,934,686,525,415,336,278,233,199,172,149,127,89,65,49,38 diff --git a/Wardrobe/GUI/Draw_Grating.vb b/Wardrobe/GUI/Draw_Grating.vb index a56d695..cb563a9 100644 --- a/Wardrobe/GUI/Draw_Grating.vb +++ b/Wardrobe/GUI/Draw_Grating.vb @@ -240,6 +240,40 @@ e.Graphics.DrawLine(pen, pTemp1(0), pTemp1(1), pTemp2(0), pTemp2(1)) Next + + + ' Draw grating grid for fill area + If AppForm.fillMode Then + Dim dashPen As Pen = New Pen(Color.DarkGray, 1) + dashPen.DashPattern = {2, 4} + + Dim singleLength As Integer = Grating_Fill.maxSingleLength / Data.scaleDiff + For i = 0 To Grating_Fill.numOfHorizontal - 2 + Dim x As Integer + If Grating_Fill.lengthRevNeeded AndAlso i = Grating_Fill.numOfHorizontal - 2 Then + x = Data.grossAreaPoints.Rows(0)("GUI X") + singleLength * i + Grating_Fill.revLength / Data.scaleDiff + Else + x = Data.grossAreaPoints.Rows(0)("GUI X") + singleLength * (i + 1) + End If + Dim y1 As Integer = Data.grossAreaPoints.Rows(0)("GUI Y") + Dim y2 As Integer = Data.grossAreaPoints.Rows(3)("GUI Y") + e.Graphics.DrawLine(dashPen, x, y1, x, y2) + Next + + Dim singleWidth As Integer = Grating_Fill.maxSingleWidth / Data.scaleDiff + For i = 0 To Grating_Fill.numOfVertical - 2 + Dim y As Integer + If Grating_Fill.widthRevNeeded AndAlso i = Grating_Fill.numOfVertical - 2 Then + y = Data.grossAreaPoints.Rows(0)("GUI Y") + singleWidth * i + Grating_Fill.revWidth / Data.scaleDiff + Else + y = Data.grossAreaPoints.Rows(0)("GUI Y") + singleWidth * (i + 1) + End If + Dim x1 As Integer = Data.grossAreaPoints.Rows(0)("GUI X") + Dim x2 As Integer = Data.grossAreaPoints.Rows(1)("GUI X") + e.Graphics.DrawLine(dashPen, x1, y, x2, y) + Next + End If + End Sub End Class diff --git a/Wardrobe/GUI/Individual.vb b/Wardrobe/GUI/Individual.vb index f3bec24..a237b63 100644 --- a/Wardrobe/GUI/Individual.vb +++ b/Wardrobe/GUI/Individual.vb @@ -81,7 +81,7 @@ Public Class Individual .Left = 110, .Top = 525, .Width = 155, - .Font = New Font("Microsoft Sans Serif", 7.8), + .Font = New Font("Microsoft Sans Serif", 8), .Enabled = False } AddHandler textBoxTemp.KeyPress, AddressOf TextBox_Max_Load_KeyPress diff --git a/Wardrobe/Gratings Data/Grating_Fill.vb b/Wardrobe/Gratings Data/Grating_Fill.vb index 8cf7182..ab298f1 100644 --- a/Wardrobe/Gratings Data/Grating_Fill.vb +++ b/Wardrobe/Gratings Data/Grating_Fill.vb @@ -1,9 +1,100 @@  Public Class Grating_Fill + Public Shared maxSingleWidth, maxSingleLength As Integer + Public Shared numOfHorizontal, numOfVertical As Integer + Public Shared widthRevNeeded, lengthRevNeeded As Boolean + Public Shared revLength, revWidth As Integer + Private Shared gratingDimensions As New DataTable Public Shared Sub Calculate_Grid() - Dim singleWidth As Integer = Database.database.Tables("Whole Meshes").Rows(0)(User_Input.wholeMeshesColumn) + Get_SingleGratingMaxDimensions() - Dim singleLength As Integer = 1 + gratingDimensions.Clear() + gratingDimensions.Columns.Clear() + gratingDimensions.Columns.Add("INDEX") + gratingDimensions.Columns.Add("WIDTH") + gratingDimensions.Columns.Add("LENGTH") + + numOfHorizontal = Math.Floor(Data.gratingL / maxSingleLength) + 1 + numOfVertical = Math.Floor(Data.gratingW / maxSingleWidth) + 1 + + Dim endLength As Integer + If Data.gratingL - (numOfHorizontal - 1) * maxSingleLength < 200 Then + endLength = 200 + revLength = maxSingleLength - (endLength - (Data.gratingL - (numOfHorizontal - 1) * maxSingleLength)) + lengthRevNeeded = True + Else + endLength = Data.gratingL - (numOfHorizontal - 1) * maxSingleLength + lengthRevNeeded = False + End If + + Dim endWidth As Integer + If Data.gratingW - (numOfVertical - 1) * maxSingleWidth < 200 Then + Dim neededLoadbars As Integer = Math.Floor((200 - (Data.gratingW - (numOfVertical - 1) * maxSingleWidth)) / User_Input.loadBarSpacing) + 1 + endWidth = Data.gratingW - (numOfVertical - 1) * maxSingleWidth + neededLoadbars * User_Input.loadBarSpacing + revWidth = maxSingleWidth - (endWidth - (Data.gratingW - (numOfVertical - 1) * maxSingleWidth)) + widthRevNeeded = True + Else + endWidth = Data.gratingW - (numOfVertical - 1) * maxSingleWidth + widthRevNeeded = False + End If + + Dim row As Integer = 1 + For i = 0 To numOfHorizontal * numOfVertical - 1 + Dim tempDR As DataRow = gratingDimensions.NewRow + tempDR("INDEX") = i + + If CDbl((i + 1) / numOfHorizontal) = row Then + tempDR("LENGTH") = endLength + row += 1 + ElseIf CDbl((i + 2) / numOfHorizontal) = row AndAlso lengthRevNeeded Then + tempDR("LENGTH") = revLength + Else + tempDR("LENGTH") = maxSingleLength + End If + + If i > numOfHorizontal * numOfVertical - 1 - numOfHorizontal Then + tempDR("WIDTH") = endWidth + ElseIf i > numOfHorizontal * numOfVertical - 1 - 2 * numOfHorizontal AndAlso widthRevNeeded Then + tempDR("WIDTH") = revWidth + Else + tempDR("WIDTH") = maxSingleWidth + End If + gratingDimensions.Rows.Add(tempDR) + Next + + + Individual.Panel_Grating.Refresh() + End Sub + + Private Shared Sub Get_SingleGratingMaxDimensions() + maxSingleWidth = Database.database.Tables("Whole Meshes").Rows(0)(User_Input.wholeMeshesColumn) + + Dim loadDT As DataTable = Database.database.Tables("LOAD") + + Dim nameInDT As String = loadDT.Rows(0)("NAME") + Dim LBHeightInDT As Integer = loadDT.Rows(0)("LB-HEIGHT") + Dim LBThicknessInDT As Integer = loadDT.Rows(0)("LB-THICKNESS") + + For i = 0 To loadDT.Rows.Count - 1 + If User_Input.gratingName.Substring(0, 1) = nameInDT AndAlso User_Input.gratingHeight = LBHeightInDT _ + AndAlso User_Input.loadBarThickness = LBThicknessInDT Then + + For j = loadDT.Columns.Count - 1 To 0 Step -1 + If loadDT.Rows(i)(j) > CInt(Individual.Panel_Data.Controls("TextBox_Max_Load").Text) Then + maxSingleLength = CInt(loadDT.Columns(j).ColumnName) + Exit For + End If + Next + + Exit For + End If + Try + nameInDT = loadDT.Rows(i + 1)("NAME") + LBHeightInDT = loadDT.Rows(i + 1)("LB-HEIGHT") + LBThicknessInDT = loadDT.Rows(i + 1)("LB-THICKNESS") + Catch ex As Exception + End Try + Next End Sub End Class