From 262ec12a5f0cf234a7d9b9eb305ac63cd657ae28 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebasti=C3=A1n=20Santisi?= Date: Tue, 23 Apr 2024 02:28:38 +0000 Subject: [PATCH] Direcciones --- assets/nacele_126m_80.stl | Bin 0 -> 61984 bytes assets/nacele_126m_90.stl | Bin 0 -> 30984 bytes index.html | 12 ++++++++++-- js/main.js | 38 +++++++++++++++++++++++++++++++++----- js/windmill.js | 14 ++++++++++++-- server.py | 6 ++++-- style.css | 18 +++++++++++++----- xxx.py | 20 ++++++++++---------- 8 files changed, 82 insertions(+), 26 deletions(-) create mode 100644 assets/nacele_126m_80.stl create mode 100644 assets/nacele_126m_90.stl diff --git a/assets/nacele_126m_80.stl b/assets/nacele_126m_80.stl new file mode 100644 index 0000000000000000000000000000000000000000..f117b20b35d2688861aa27d30686b09335993ac4 GIT binary patch literal 61984 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 z zG$O*?gao!fdJkI<*FBb2tMMRt!JRS&Atx!N3pY~bE&ZuB*1NqhK$3X~n zb@pW!wZn;#v~9E2M)U@3LENpv_OUe1uC87iLl0$dZp9ScUwIEkO>9r~;d%CjEN47d zn1Y0U?eyIS)m-Vd?j7iFmv0-fMln}dZ-jJc`lnjz=`dPtZy6h=Ac4JrkYyVU^i;JP z^h2Jbg14hR^d3U~=+u!G_?U?%JUQftDM(;DvG1#OEkGaawW|M8KiSPCLUMUfMVoUk zK(UO;EZwi~tL1CZSb5%erBr`vU2RBrepl;LB@f+o_L;i0c?}s;kZ8DftaPMsW6gbK zJw|-*XI0xNdFc6zW*Jj{+p$Lqc;8S-B_n+mwfy{p%h=FM)Vt@QO% zkVboiTZkXFESSHLZJDaM5g^q7#REL%H5K3Neas{bm z$x_aWlj2aCzrYS^`jImG-_?z3UojhA-^oi1Xtm_d)G6xj;3c1<@WM*&<)4ZZC~A`r9`Nb)gN^M99bx zFZ$QZvh-Egd4dhpi#5XbrCtkG-8S~1$*zY48>qKX_-ZMpZ-{0K=8@%rvC)(?Ev2rE z4>4oULA_$_nuc_vbm?pL)|E~~0@CU(+oKr!0vyoJX66DhO@(l{OyQu$3yn#0wH zcC49MAW#a+#May`$VzkfYe(DrZ#H8IQA!-!|1|7Wn;q>#yLOR<+C>{8(Y3{E$uq-N zwNTmC^lJCjQkN37v<8jCgk6oe+mVpVukR(#$Xt_7-sUT;-M`aX}k~SjI?{;IQ2`x0AW=zwoU!nEhI~TuXZ!CqsGoJ z$(@nfKQqE45-4TaFF?W1 zt7Df>Q}bt;XD+wcs0EB`sO4_3&|ECEytah~XsC(pd|5k)ZZvwRH^<$4+i( zn1%ZE$VzKvtW444Feg|hLjDOUNSk%aLhC1%5D2t~G$G?(RHPlc6`;jJ-mveor1c5( z45ZoDRf_r2;+t~QRdp{2;eHSOAlp`*^=jzZa5^g^c z5h+p*`r8AQ=R_n1H-C^!*zZ+%tiwhs!De^eD_1ZdW6wyCW+U9CUh41To7-I)j+A+n zs!OFSd5S%D%8lnYwO7mR_PxhC3+;hXjTp(SOz@&bm%cP^Xyq;YR=r|w_2!uBaih6{ z1lnU~S?umcJ<6Q7Rh;@-LMf!h_-e!DQ8fOUhbxcdhqCV)TKDO zx2~tXc=7DXNT3w@G20dYIgWlVUDa6fMrRXBMND5|<~2PesiENcY!}_vI9j{UI^&J- zS|*f2e-&+nAMdIr1{XG#+QZs|dt6GrWBrJ=8`~v|TF9q?wegV{AwuS!p?{$rH4*Z& zU+FfG5dEs=_7U_>fzGzK4+cwEa-nvi7FY{jtwV#e?6psI_mS&NF5~d4FpoA05?Cg7 z4*l5?v{kA8wyOJolTZrl3hR))H`rK&R?fN2G-y+E!3OF@nteU{WiwiT$w*^AwWvU# z6xwEU=ct8h*{FNQv5$rb-j036QM;)lgWd;Ur}RO6%=nqm`z9+#RrVF|d%=c3y01#+ zwaW?rs5Tm(JM;15(#qD_m?BHeze`n>>C5=J24?4+HvVe$g?549GjHaJKhx=nR4Hzc z`B-|wHw*g)7W%!GdD{I@9%pEBZdjH_3AK-2-cK%g<=h!}t zwF}zN`yIE3bb5lf0hi(gZ=3YQ(oNY_)*SKmR>e4M=u&7yEJyUdn(D~s=MBXxM$^}m zXGq!KY>*#JU|$yp8zNz`66(FTxM@KBPW0KORnprYm6V|*LPL5`pK1~b^i;BhcV%sU zL(NV9y>{AA?m}CNDM(;zvga_Ry3ky;E7@9R{;J*$QO)Km)s*{cI}K@(c(QN=Z9IRt z?TI|p>4_=*1N#JOVrP=?GN~iRO-`D|zSD{2z>;GQ**SM3ORG6t1{>;Jj1~xe9OP|| zbov(5+XD%)%~!n`PEU+UG_1%yQN{QZ`v>*{_GP)oadg4beMu8M=O+sU8yWc6&PN8M z*Yw%8UZPeoTLz9 zdrUjlk&g44ZyhdYqDY{W*yhiEyijwNnq&LWJxuUj^jDFnI;TC|7_{9ueMDAaEJ1rB z5s~4xYC1gKSh{wEFqYu>Are3LLF~2qxPm!kv($1`Y0J%d<>vu!q&qnyrI_uFl@Za6 z6wl`4r5PuJl-0xhl&x8_N^SZFC(&zKdC&#x`sz#PlupC%Ec8dAK;q;+@H_88Y z0f9iN9IuX<-D#k5x>spd^6-02sQZ_KasiLp5~d*0_mRJJY+a}#JuStEHbo23A-!e! z$KHh!mK>#!W^)7OvwC4t8+m!1MFMgD=q9P%pWT!?Cp{FT*;?nM6KcSb4sv|-W(nIF z3AD|gi#{AepLfqMz1}fN!uirM_bigvg<8rx*A_y(F;9Fnl-|FSRoXamoP<)?=2+A0 zjr;n#w4sMhYO|oAj0CnC(yZh@1?a*vyQQRS1{tN0KHqe{le4*4`WyRB_1x~X(ewP~uj&H{ z=YyCltV6b^dQ~x6#3fYPyrG^@a-=bb>?voKjP$p#Bj)M(+4th1gh=4blD)ed<4SWs z4UjB50_f3R%cOSf`D#MTFb(fluk-mylWX}Z2e zPHgN-F$D>%1w!&(szf{I_K;h4I;El%mPsV8#kQt@8~%}sMD9{ob=hlP-KV~?v}02Z z3DiW$(|>wUuM4Ua`)q(fU|k{2?jK7N)!`u( zXsEA{E6j;V_#J(rYMEY37n5Xxz`laLfSo8mrz0&_a=f%C+dUz&#Jr2dvIi}xYvoN+ zqu)QOn1TeBiM>&*$7aIYh_t>!u!?ns1V%ONtd}2+=~9>6(&=GEg$Nm?&^Ei*_VQ78 zKN=+mUCv?SG3SDLVag!$QO8?$edPf5W_Aued(XLmJy#;^hlGBuzoXab|0cMUPVhI? zJbFzd_V#*^JcZ3^(FT{&2?x!dAT6jHrtnn+gzOs>tJZ!UDTfvxY>Mv@E?I)QC`aDr zl6AsC3xr(!xq9VRm`r~+neg6+w0P&7(WNEbA5}=++52%4O5wd-Bo3~Rqtmkom?uSr z`C*j7qt^vFTPXTFdV^1M#raM+<=wW4mt2raA$ZC8Ts@6=`$se#HK~GxghL8!{N#AD23xOA$iWdP}}|%CZD>NY&&h6CmpTVO$qBT zlA>pbMDrZ}>ZH(7a)aAzt$G`9zd`~vvH8dPQFPN*qZHWF%ZRzsYk`*ubI78l_OY}; z++*|lgmPAaNU0zGjvi@3{;PJeMjeDuyFJ!TP`6snRpALFAy^Dsia;X zGfLiB_Adhxx`*?2MmlxnKss+nLciuYB;>#P2QP=Nm)A6Z29(x6=6`Oc2HuR4eHXW| zVG0srdyK#KLM<{NOrE<*Y;$a9vE*Iu2hcpF^2!|o^BYkLTTLWR-kqy<9ywHgqK-3S z3g%GE)#WcOX_GYt<&^`%t*96KAZlXoKO#rb)|X{z&`rAm3EeYz3nI;)LNy#ghin)r zecSihic;8vMMCq9u>R{BCm;U4-HdIX&u_9~9UG?n-ld4+={X zbrVY6&3)+C1Zf){El=!KMM5d03)VfTOpEHG+*GP4>`nCye_P&&XgQ-t6)9*)M$4D} z-ISG|JQSowqS)mn#ywv;%caJCl`y63Kkb#crlCsv&9xPmAgWy68>sx%U1B!aFTR~p zLR$SHTIPB~vUn$lM-O4{j6}P~?Ueg7Ey~6%tynp} zJW_0)`v=KSgV#yu8R+>qvlLq}xwA*AXJGq_EqH6ZY;3eAgEZu2jEn?InIFiOcf-Au z;SG81?x?Ze*!@&C`H;Px9Ao^U_>`5D<{R56DCOG8Y?(N{m6DjH0VDQodTSW@Ag>(S zF+dfYSNm~Ed$8vRIn6foj5oK7L>Xx;o!j%2_ zN-F0I87v=cot0&@IwM-nmFupk5GTKAw8o55Nb_3IM+vqXv){Lb(YNE|NpJo&VG0uZ z-5~u~f_)olk*M}?PhB%#VOnO1@xNAoa=mDet-t!%)HZ18Ao+X6^}@)2ZH~UcR+!5B z3?mPAkY~@#B4Y}AhB%gtcNt?X`mwoOpj#0cQ;@(XI_%56L$es`%=4B1?O9tOP>T1* ztIL`y(>-6n_ zx$&{sbc8nza~LzRr#BOd4-p8wzaq`v zD2@!amah^c4RIUcAarj)f|okm)_T>}lkabnKBxm-lBBL&p61^m2!GDYsv^?@K&$cqQEw+J3jIK4q zwrAaXX~(2NP9h~L!h00b?1aA)vy&p57M7}4h!F_9CnD`^4<3=NVi6gyQN2BoNY{c6 zjPGmU_X+(?KEK!M*BA#mZ8#Apfl-)F;GLR~tUE7T8yw$|yto*Pl3{J_*!=|+e)c1e z8PT>=d&;SfGD>k@`Zd9#K7J0Q!xMEW?uq(!dK*iZ7g7C+I=x+&;`Q^wr;;|>qn#sK z*8k4lVAW}0bC2Ah+Pgbj@L|Qe+M=s%l$lp$%gnkpH0|FY1!=bTHL<17$s%Rxr0Du` z)ddO4n@<+4{o!WHiO^}vgKtf=Z3P=BmSQC>pWippN)+dD$@t>CeVchSq-Tnkkue1c zZiAok+$(~w5gwDXh3)yJZuC+9*HT8C(eip|TdndVw$>S>ZnIk0vAeytdRH|@@E;r7 zsXn&z^H=#S<H4fl*NX&da^{K?@7O$wd&z$h++*~=JBe4v zW2w8#K{KXsnyt#xZj>&ipeFXrGHjq=8}^ycIp=JUtX;-jPyRk8Rv=J{w_sX7U-9{jwNkk_I;_@ON1N;Z zgDr?&>GUhTfAFzZC-@kwUyI(Jl=YcUupqr_$($rANfJ+1v2zG`yn zm;l=!1`k@{N<)D_sTY+?TcT=8n%}mTjF^}6lJP_BkLtZ@U1dx`0>?)}HfkkIUB4bk z&Tur=F}vg6%HT0BO7U7qYmXD*fB7|@S602cG1@`sDM%D)q*xk8m(a4^;j1QBkM&86 zT$(ev^OZP(K&kY116tsSU3nHK+y{}sd!n<=Kc2sq96CN$xJRL1;r)t`v1K+TEiF7# z4e2;cMt{Y72GVRl&hiP?;`y`CsQe+qz6rdSpeA;&9sk(Sa({XHo55coum>Z}o@Jab zVT=gxLcizvBH?`k`?ffi*h<7FbuAT1x2zv8@e=Cy43rYbtDKgZ)|z!k(p)9_2n0&u z=*sqHs9Ozf*gfhsn}47Ul)@3**&ccX!26xeFKp$H#$A0iOweMqx6?pas))sJXEI}lGtIrJC@eHXoweRI<7iC^A<;q;{IKN8oa6DWl~ zO~{MK>kMO>52y7P{VsSr`Y!sLvjx|89!7g-oGB0}g^`n!=#~;+VG0uIBN-l%eP-T{ zDM;{Z{a(V}${Y(byqs`P4GHSus4KkCNvZXj7yPbZ(p;St=k&Zr=cCo%6OMS0^5nbMa@zjoJdhm&-K%kVPf2730&KA_$15=RTeK4&(7!%L_ zQO@G|6@0HYk9YZwb^Lk^J7IcQ@J>$5j-9a^&&xmpHL=z9B?s2##7_6U-gx!~5~zvi zh5sD6ipSmdNT4RCxLyvCh;fv|*XXVw?I2QZ;O_o%RnrL6#NM&YiAg&CAdaqH_{fAr zc}BQ+bkd4N6lXTlXhI@~#v9*%kE2HxjWeQkjF80I<@qwQGw8c5T4F;fJ#ORg(nMlJ z=_}SJjNs&d5&XF*(rol$(l5M{68Cj=v-0<{u^T7ZYizzE;Yxe{_hRw$rPgIBdrSL` z5nE?`O|pL~>>%`%pNVU;K1;F4ZA)(3iXLSG$=1Zr{;1smM*`TTI}ZY21%{xy4~ z(`@jop9y_OKhjRZbfSJ?C;Xz%?2#!s%!ss64K6I>yv9+($S1x zlF$bBE~K5kc5{w?e)mV`wqgnrT$A4a37LE%n!Z0-Sbg`lrLgN4clx4jLPoGXKVB^( zOc#f2a*PamIgr5JLu}0*dmhvF<#Fr1d}b5sLMhB4+k?gCn;~^4CI&Z-H{m)&T#fk? z!A76cnWGH$nTf*ag9N@AXJ7MRx$=5^&MBw}^-B$nO}8E-D$aeOjQ z(R-~f#rrv~@L)5RE$o?3!=-k4mC1|*O5vI^LPDR!(dfPXOd(hQw&Q9lq(vf@)z$6A z278Sq2K&z|;?a-w{?B%@vbxG`ool=|Z*&swUgS1(0yPoxVRjrnoUdc@oJvdVxc3nW z)WqI-y~=0rv?GMR&*{QWfr+u~Z8c8&(BPtS-thklJMXwEj;@a{`VdPVW5E`U4J=?G zpwjMzJG%;4u~$TjB38s+P>KRpuwY3f#vXfDkXyLBQDciWpwUE)8WUrTiDEQrO!A(& zxKDlqCa?c^Kg{`_Gks=f&Yq1{mffDCJq^Al|9Co53A&Q5&4?(H$pd>wc;KiRuIi5S zAq=IEZc3WGy%M#ocGrpMnd@O;@_*E6-sE8ldQr-?R*W*nEm2$0niDfVjZkwA#piY0 z;KcS!l9imPv2tOhaQRe&C?(ftzU-QKSx$NT-8|L_F?NJ&zIb?#>|& zg5{qU2-GA=0YtR;Z!MqAt-H~QHFl0ss%50g zubzG_5U7b(eIjoCzAN_+BJgGu^Im^!D`nTj`EvB~RaB0Rl&iB96a4;MFA^vfv#+Hx zd+j{=(-n(}h(8*k2A??Mw`rXd8{gDJX?{LM-rpczuqP5hWTRqMU%zcsa?BOp(P9qi z4L2f&hc)tBN(4&b?TJWCAmY=cTDd)lKq+hkk(f$EoZoEUPDJ312@A`ki zeD&|cj0-wClo=EUf8=3T8zDxw3Kq7&f==7Y3 z@20us_9cS%AD6lr8lM4>Kuwb5Lj*HSJ#wTJfl|0Tr{^dlp4}gQn`CO@wc7sdC`#jI}@~UPMeku+N9ji73TqwG*yU8lN9UVh9nB48wdU zl_GFlMv@*!RrDQ!b^>m+PD_6xI(n`g?dvx;#1L8rk?^+*n(k zYToSlSN?(xl)^QUZpk*J86TOPS={Pyfxw&~ElGEFUbLM&`d(13B}K*c!{0kW@nW;( z6Mys+Rtb9AzE{O|KgVXe@+w{}?iQo;d6p_4t2%@kPA4etN}621RWw6dlAPLnVx8Tw zJKNHuo{CbL(SwxbYv#%BL(^ENUK5qj_VZ=acj+`fZpV7qt`#P-bMw2~F$IaIb)%I% z2j|Pn^Z3g7>jlri&u*qLZ|$iK36u(JnWW6~SRltXbD`QDIed-z)you?nAg>YQVUOo zIrPqKvxbSpg~9X8_lQXA+1-XxxRQy)qmIq2UQ!BkIefSP*Kj0I6U9$_Jk$2;V*?v= z%~Qp78%zG5eg4X0Lz+C*IF(9%d3vjYnnxQm@5iA6fl}DAlC&lx*EXp06Vp-87!{?k zHAUj14msBO@&vyoT6fW`8gB!+2tp9xbLDT7Q-Q1k@YS6n7kyl_46pD z`GzUltd9L1aT!mXp6od5v-L<&(k>=y#ZCHBo6l)})aG+xq^;t;6cyJAZbK(f6ZwS) z-?aUf7Ftl4BN8Z8wBMwxG$v}DzlbFpp))qv^3p%Id4D4kD1~bmMZm0f)wawh*KY5h zpkfLVxWZA%<7eA^w>`7h35!-S1&Om&WW~>Aj&|%C@9iV6<=fI*1gf7Vw-E@G!Zny? zIC|o``%`Ci%SR2>TibdonQ`e_1+Rs|N{uwddo7<}o$xG4{o$5mM_s&~U211&d}hGi z2kpo%&okd5?*w+KWMkN(~Kh$E!*T8jdW&dI`p0GYP*Tb=0)k+$(S^T z1lpsBKt)#Ds*LLP$^Da5tRHMav6nQ+Ib<81`o#XKQH+WygtpajIntdx~smu>#3L%)GHFV z>(8}Kth>+Sq|>z#xa z#BnYX(}RtkYQhXmY=VVX0K?Uv`WtnEPR2$xxO^K_0k(}KRjqT&ustkU{VVc8 z5XNuDdmOyqA^)yfm(45aCT@4Jn-FJvkCdkPS%+w~>o=2;rs&_hGORaVj#pbQJt7e0 z?q(`QJqBo78@HE{rdyv2S;pscV$}WpiUk5=ZX-=&FSDVw@LnhN;E#g?Qn- z$NYUVv9@~=org|WmDU+1tVNzfy|iL`WL!x%W>Or}pWU|z1lB0hlC<{KR->VCn7VSv zLm}=tN+C^e_m3(tHXU=w9(yc7C@8E?Jg>>ZzuU*QYzavCciMb6XGBoGZjBUlqMCe^MB$AuUN>pXVCZhVC>ih@U7B zLklC7M3+Fhc2=}NQ@o|at*w_|d}-QIf0QcuxG42}gXP-a4$+X{xzcS@OxbbYS_X{x z&h*!fSb^}kIZAQM?I=Gz7a`CTrC?NbYsdyyX37mwx!xbIhsjU+_tTKz-@KoDrI$SF z{oa}+t+=|^pm85E@+Ct8rE=E~REobDC{OxtXCi(&chRzccu!`jRa?arBxaRssI;vg zE}s|>OvI_{TMaH3hO><9`*tKyYNUS`#r677`RW25L11Z`uk}*+WM+G?&b~Hlm{PPm zT8{goy@pbp=5H&!SH+8nRzBwf9`8+Jb0$?12$bSqo#$`xRGiX+2>vgM-kWIOPO@VP z61+V`g1-$o%m2C!36#RP?j<&K0;PCw*Y%bq`n)XGYj=xQ-C!}z_I#K*ts%)4RAlEz{ zL&WSgb&Ny%y)f1LFiOP~Bo-Cf<;R13!8)Lbb;wc{xl)_1rivOg}lOkf7ej6 z$YQEJc)UPhYa&g3_k+{c_U0?5o3W!*jEjK;M#7M!GZosfE#;lrU+0_!0wZi-3=ldA zc2Bd`{@jyQuVfSml)@fLG0Ej@vne*1edF6y=(|YZ=#r$}YkOHgTh*JzN-ipenUxnzsaQpdJtXBn?f;mA=^mMnx%@8?0g-w{epkQ62Y^Cn; z7`a=Hm$t_c|1ax@o-35X^{VXp5w<+Z32NdGgz z_Y69LbXh{*?;?RaR-{Y%ZbZ4$fx$mfbV|RUWqr29a@1Iz={R#JnMJqkzHBIttY~tl z@0sAfz2f=uN~Wu){Qe4Y4^Qu(S7~M}zihL~ylRp_;97#TB%S`Er}fdsBzElk%68m^ z;r^lQPUgt#eF>%@f%}z`l0W~sxhZVLY!&MScly{ilC)<_r15yAYNkq4l2oiwBv2FG z6@^qZ2Hu=+^7~?%iY4T2qwnrflO%mrFVH$Rxv}ZQ<=HCg#a=1q%4g{^v)|-rL7H2# zU<38?8qs@?B;`IyFq~Fao4Q%12%{L(YjR=*0-s)xrsqL(mSvjK zoUPc|LB;0*9FIuTo8FJIjaJ`YY}_w31tMc)Mf%!eKRNGsca8Ujzn><8>z%R`zZlKh z9lc;L{XC#car!8WlADb8r*VE}`#i(9HKw!8&hrEUrLe!1^b-BqfR|98!%+(Rn9M^E%KS8MDvmDA>S$jP}TLKM}n&{2qsO|y#Z}p)#Mb%Xt2dGzU4|8Xm<kmY7e$pXUu>Cw&6T;&6VEbmH-N24U)$_=+g!CxC>!&Rt19d!V3&bs z9P|Wv@h|h2y+YZBJ52-vrSQZ;l49Kdu$*r@nzb|(3VR=v!hI0E!PEbh@rTMI+4AYv zg_8*+a2}(#``>c5`W7Xz$5ox}xQ{};d^ON#B}q!&@T+-UUnlEL@@&K>q3?d2ET8Uj zmGL!Pe8!>qC$(grOI1;->g;g&QrM{fhd`-ygZs*7YVI`syA70D8Pi90Uw*aVjYLVN z$j=?~TbkhKq9ywhU7UNyqty7+aCzwTzN&8H%>+tW0%pqP({H?iIFLWn^5ORNMsKQJ zl+vnxAct?|Lh3|lskhsfBKi^W z(lyS{P6SGwdbC6dc@U=Ez1y=C(Ul0PT29^>B2cQrh%Ci3)1ZA=C#n=NfQaE;3w*6a zpw#BgnTl7un|2~St`yOTh?dm~k2q0Xp%mXo>%C7bd0(C@`lpf&l)|02NOZ^!WsUoI z`A24#5O3PIi^OoU@!uv7e0Gry+}&e4iv-WnL-N*|P~*6P-$CfUmFUri-eO#yPKAj` z(23VRa7dRWO1M;}oJdfzE*w_5$LF=Esp9X^iyVJ<$fgR!>y$Dy5+wk|%Wz1&PQh{@ z{aV=ZUkNd}?n*BO7#mk|$rkJbJQhLAocOvU`OJV(>Cb1l-t8_2X zd(S@;yyUtRx1s+oTMj*iOX;x_|3DyASIdIDyVw@8ZDK>q>cErL?$pC%F~$s^_cKRyoFMjk1cf&_Xxmef_8%LdD@ z4lmZfeKGKE6Fn{{YF(k-z&SpX@;cGIH~4S;Ru^fCj90T#pgX;j^IlA~K=kZIe-=*b aZ<5e^6SmP-ciNNmZa3D5Qb>!wQU3=@aBO`5 literal 0 HcmV?d00001 diff --git a/assets/nacele_126m_90.stl b/assets/nacele_126m_90.stl new file mode 100644 index 0000000000000000000000000000000000000000..8aa55ffabfb0fa33977e86ec33c7cb6749b92e84 GIT binary patch literal 30984 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 literal 0 HcmV?d00001 diff --git a/index.html b/index.html index 25c2b0a..a026ae2 100644 --- a/index.html +++ b/index.html @@ -31,7 +31,7 @@ function hide() { function help() { show('

Simulador de Aerogeneradores y Parques Eólicos (SAPE)

' + - '

Desarrollado por:

  • Dimas Barile (CSC-CONICET)
  • José Alberto Martínez Trespalacios (Universidad Tecnológica de Bolivar)
  • Sebastián Santisi (CSC-CONICET)
'); + '

Desarrollado por:

  • Dimas Barile (CSC-CONICET)
  • José Alberto Martínez Trespalacios (Universidad Tecnológica de Bolívar)
  • Sebastián Santisi (CSC-CONICET)
'); } function up() { light.shadow.camera.top += 1; light.shadow.camera.updateProjectionMatrix(); helper.update()} @@ -51,7 +51,15 @@ function up() { light.shadow.camera.top += 1; light.shadow.camera.updateProjecti
¡SIMULAR!
-
?
+
+
    +
  • +
  • +
  • +
  • +
  • ?
  • +
+

Rotá tu
dispositivo

diff --git a/js/main.js b/js/main.js index 2df352c..b7e3acb 100644 --- a/js/main.js +++ b/js/main.js @@ -28,6 +28,10 @@ class WindSimulation { this.simulation = null; this.xhr = null; + this.rotation = Math.PI; + this.targetRotation = Math.PI; + this.dir = 0; + this.checkBoard = checkBoard(width, height); scene.add(this.checkBoard); @@ -59,7 +63,7 @@ class WindSimulation { } for(var i = 0; i < this.mills; i++) { var wm = new WindMill(); - wm.position.set(i + 0.5, i + 0.5, 0); + wm.position.set(4 + 0.5, i + 5 - Math.ceil(this.mills / 2) + 0.5, 0); wm.rotation.z = Math.PI; scene.add(wm); this.wms.push(wm); @@ -114,17 +118,41 @@ class WindSimulation { } } - for(var i = 0; i < this.wms.length; i++) { + for(var i = 0; i < this.wms.length; i++) this.wms[i].animate(); - //this.wms[i].rotation.z += 0.01; + + var speed = 0.02; + if(Math.abs(this.targetRotation - this.rotation) > speed) { + var step = speed * Math.sign(this.targetRotation - this.rotation); + this.rotation += step; + for(var i = 0; i < this.wms.length; i++) { + this.wms[i].animate(); + this.wms[i].rotation.z += step; + } + this.flag.rotation.z += step; } - //this.flag.rotation.z += 0.01; this.flag.animate(); renderer.render(scene, camera); } + setRotation(dir) { + if(this.simulation) { + scene.remove(this.simulation); + this.simulation = null; + } + + var rotations = {}; + rotations[0] = Math.PI; + rotations[270] = Math.PI / 2; + rotations[270 + 45] = Math.PI * 3 / 4; + rotations[270 - 45] = Math.PI / 4; + if(! (dir in rotations)) return false; + this.dir = dir; + this.targetRotation = rotations[dir]; + } + simulate() { if(this.xhr != null) this.xhr.abort(); @@ -144,7 +172,7 @@ class WindSimulation { var pos = []; for(var i = 0; i < this.wms.length; i++) pos.push([this.wms[i].position.y, this.wms[i].position.x]); - var data = JSON.stringify({"pos": pos}); + var data = JSON.stringify({"pos": pos, "dir": this.dir}); xhr.send(data); } diff --git a/js/windmill.js b/js/windmill.js index 7fa79e7..7251fc6 100644 --- a/js/windmill.js +++ b/js/windmill.js @@ -12,7 +12,8 @@ class WindMill extends THREE.Group { loader.load('assets/aspas_126m_85.stl', function(geometry) { WindMill.geometryBlades = geometry; }); - loader.load('assets/cuerpo_126m_50.stl', function(geometry) { + loader.load('assets/nacele_126m_90.stl', function(geometry) { + //loader.load('assets/cuerpo_126m_50.stl', function(geometry) { WindMill.geometryBody = geometry; }); } @@ -41,7 +42,15 @@ class WindMill extends THREE.Group { this.meshBody.scale.set(0.0075, 0.0075, 0.0075); this.meshBody.position.z = 90/126; - var geometry = new THREE.CircleGeometry(0.5, 20); + var geometry = new THREE.CylinderGeometry(0.02, 0.025, 90/126, 15); + this.meshPole = new THREE.Mesh(geometry, this.material); + this.meshPole.castShadow = true; + this.meshPole.receiveShadow = true; + this.meshPole.rotateX(Math.PI/2); + this.meshPole.position.z = 90/126/2; + this.meshPole.position.x = 0.02; + + geometry = new THREE.CircleGeometry(0.5, 20); this.meshCircle = new THREE.Mesh(geometry, this.materialCircle); this.meshCircle.receiveShadow = true; this.meshCircle.position.z = 0.001; @@ -49,6 +58,7 @@ class WindMill extends THREE.Group { this.add(this.meshBlades); this.add(this.meshBody); + this.add(this.meshPole); this.add(this.meshCircle); this.spring1 = new Spring(0.5, 2, 20, 6, 1, new THREE.MeshBasicMaterial({color: 0xff0000})); diff --git a/server.py b/server.py index 1b6a220..25386f8 100644 --- a/server.py +++ b/server.py @@ -10,11 +10,13 @@ def index(): if request.method != 'POST' or not request.data: return abort(400); params = json.loads(request.data.decode(encoding='utf-8')) - pos = params['pos']; - ws = xxx.run(pos); + pos = params['pos'] + direction = params['dir'] + ws = xxx.run(direction, pos); return { 'pos': pos, 'ws': ws, + 'dir': direction, } if __name__ == "__main__": diff --git a/style.css b/style.css index 83c9bcb..e5fec23 100644 --- a/style.css +++ b/style.css @@ -26,7 +26,7 @@ body { overflow-x: hidden; overflow-y: scroll; width: auto; - border: solid #fff 5px; + border: solid #fff .5vh; height: auto; background: #00000088; padding: 4vh; @@ -73,13 +73,21 @@ body { #help { position: absolute; right: 4vh; - top: 18vh; - border: solid white 3px; + top: 16vh; font-weight: 800; + font-size: .8em; +} + +#help li { + display: block; + float: left; + border: solid white .5vh; padding: .1vh 1vh; border-radius: 1vh; - font-size: .8em; - cursor: help; + cursor: pointer; + margin-left: 1vh; + width: 2.5vh; + text-align: center; } #copyright { diff --git a/xxx.py b/xxx.py index c3d485c..0a5bd90 100644 --- a/xxx.py +++ b/xxx.py @@ -71,20 +71,20 @@ def py_wake_Initial_Cong(D,name,h,U_ref,initial_position=initial_position): windTurbines = py_wake_Initial_Cong(D, 'NREL_5MW', h, U_ref) -def run(initial_position=initial_position, U_ref=U_ref): +def run(direction=0, initial_position=initial_position, U_ref=U_ref): initial_position = np.array(initial_position); - #site = UniformSite(p_wd=[1], - # ws=U_ref, - # initial_position=initial_position*D) - ds = xr.Dataset( - data_vars={'P': ('wd', [1])}, - coords={'wd': [0]}) - ds['TI'] = 0.1 - site = XRSite(ds, interp_method='nearest', initial_position=initial_position*D, default_ws=np.atleast_1d(U_ref)) + site = UniformSite(p_wd=[1] * 8, + ws=U_ref, + initial_position=initial_position*D) + #ds = xr.Dataset( + # data_vars={'P': ('wd', [1, 1, 1, 1])}, + # coords={'wd': [0, 90, 180, 270]}) + #ds['TI'] = 0.1 + #site = XRSite(ds, interp_method='nearest', initial_position=initial_position*D, default_ws=np.atleast_1d(U_ref)) wt_x, wt_y = site.initial_position.T/D wfm = PropagateDownwind(site, windTurbines, wake_deficitModel=TurboGaussianDeficit()) grid = XYGrid(x=np.arange(0, 10.01, 0.1)*126, y=np.arange(0, 10.01, 0.1)*126) - xa = wfm(x=wt_x*126, y=wt_y*126, wd=0, yaw=0).flow_map(grid) + xa = wfm(x=wt_x*126, y=wt_y*126, wd=direction, yaw=0).flow_map(grid) ws = xa.WS_eff return ws[:,:,0,0].values[:,:,0].tolist()