From 051eadb6e9a98049bed80da1b76e2078cd0c9e53 Mon Sep 17 00:00:00 2001 From: Emmanuele Sassi Date: Tue, 2 Jan 2024 14:46:44 +0100 Subject: [PATCH] - aggiunta verifica start ed end dowel - aggiunti dowel a pezzi che intersecano gli split - aggiunti nomi superfici dei pezzi --- Profiles/Profilo78 - Offset - Copy (38).nge | Bin 0 -> 20550 bytes Profiles/Profilo78 - Offset.nge | Bin 20550 -> 20560 bytes Profiles/Profilo78 - Offset.nge.no | Bin 0 -> 20529 bytes Profiles/WinConst.lua | 4 + Profiles/WinLib/WinCalculate.lua | 251 ++++++++++++++++---- 5 files changed, 214 insertions(+), 41 deletions(-) create mode 100644 Profiles/Profilo78 - Offset - Copy (38).nge create mode 100644 Profiles/Profilo78 - Offset.nge.no diff --git a/Profiles/Profilo78 - Offset - Copy (38).nge b/Profiles/Profilo78 - Offset - Copy (38).nge new file mode 100644 index 0000000000000000000000000000000000000000..e560455fb0ed2b909515c2b7d86a464d0fb2d52a GIT binary patch literal 20550 zcmV)CK*GNtiwFP!000003gvxkujIy&<#z%475i0vxA-Vl6@&()kso7VY#EZU`%!4v zJ!@e#YLC<&FZS2(IT4XBG9xp2Z_BW~_KcgX8>~u_@qV2A`kT+c`sU-0e)+%N|N8B_ z|MeiT&BzX>fM*`K7aQwAAj`Q&%gQh z7r*?~#~*FiPxSw$%LUi)^MCsd2zc`Ox4-`C_aA>WeRjby{{4jiy?l!Qe!~CqiV0-D zd;O~)-~7khk3ahL#~;0#aH;-P{x|zKec}8WsG48+^_!pm^zAqA{ygxVUwr$;Z?VYb zv$^=rSJS8S^}1W8l6dcI}DqPI=7&s_SY8HA38L{JR`Hp72(x>$rk+ z#$N-Cu4Q_b%ZntfdPiu@a;jQBp-Y!p<>2}{JExLmB(^r?LWt}hcWdcj!m5i2z zfCq*I1h+IMA9(+R;(^!yOzFVe9}^C$^XCZ%mHVJ@P?wJh2Q~Jfa8MUNQ#dAC?g8N- zn?74Oru)6?3FR^|<9Y66;_0$o9y2Ym*$>z;en9K>cs#D_1xD)=7^CGfKeo&5Ms0S# zKh4{6f7~1!Cc=X+xQI@BdO!s1#POR78a+8$6P4v8QKl>KE1#MwcU?2S41A?7Xqxl~ z^sKfb%2`2VXBCC3i-NpG!91}n2%lc2OHq-nElYoe5*Msu_ABrfXk*-)r~J)Veyv)J zaNP8%YD!^^588KvDTjJ(c>Q7)8+RohRK<4U*Lud2^106PHqCz8iD!x^l~GHacu|y6 zy-web>JR@-iTe}`@R?UdYrLgb6^{K^6>RX%@fdkkbhlKy*_}`iHExR9LsXTkGjOr} zXI8hzQxr!t-%@01=D&FV<8KhqMMH1rH1*)QQmx&tPup#U`l|TFP;b<1kEZr|+V1Ox zem&g($93b))FXwOQx1l9LXuWU;KwQ8@+=B!hEDV(LTF`y+A+#fZ9A(IRB%}w-Hg5IQbd9nu2(~=kORn>XxML^?vEkU>~b;e z&wag8wSk#$(`}iP|BSyqu9sCpOfoW9eS=|sy3Er&E!V3U>FIKRy4~0HdT&_ir)}F1 zmkOib*ZKMoR~0ew#;90>;_G&uJ!|Z;I!r|fe=j#tF&6%=2oyezGPpTw6P6b}Xkopb zZHsTUh4+td_bkU0 z&Ki$VB}6YWGL@5txr?IWn}$(?@au1X_0@0jCLjCkrJLkSnO4mpT7oqsTlpR(Zz*a9 z37M8$(jWZY>tDS4>)Y?YdiPg63H!`f@8A6gzk#2u#V2}AMuqPo)q*6=lSAxO2@t!2@Y^f$q z`7B#XDusNh-SqU&annl*R94G?Hg0+wziBWq-!%Ry-n6|*dv7zeMe(AU*{~1z#;(v> zyElD(0|NipPwj2baOC!H8{dwX&2)8A{R6js`)9fBl~!k%#hamUDc67BZ+oMK z?A^B2p{`?PBjv2|%F*^2*fy(1ovIwYnqly@zM@A?`6v^mH`=Zw&9L8jC5gYW%DplylA}g3X_m@RNYnS+3#*&yMe?Xnj;Mb>YiC@5 z5QOhnlhDeD=rw#+bcprH$%Z5XJ-WC7DFa{e^8?Yo9^u== zJ_tX!V|uI$A9+;=fCu>`a=P#&EPFX2k?AN)u%FZ+SA=%>jtB1fhDeVu4`Je+LbJ-z z@#nRq&nj4j6nR{^*45JB#hixO$_6$0FH*?S%`058?ltkZg<|(4Tpd9VOt0dK5%X3p zjFs@gKT47RLQm~d#nZjktK{hLbPiVJ-nAm1fBzS;zP#cWgH)D>pQ9y7sc{~@ow+B6w=_gEj#Yk}gr ztTa4GsyyAd+g<7v8=e|;555v*kf+;xe>}Vf2XKu;4M|#%-{6wxC*0}7HR9Ape6I6# zWy<~meF2pz#r$A$`KUGH0=&2R(41He5mklH$nu+%OO>W-&#g|*0*hXo-$blV=#pzRr(% z_Dq0vWE9^^ex2@!a6IiFTQdUH-t3OHW=wb3fyZT)JZw__Tn$XiA|E%JGb-%3>&_Te z{=va4*c+~nr*>Iypb8NJlPaH>%1tFNr$-uZ10P*nBMZ)Kss*s^?IwDGZynroTPMUA zWYF7ng-Mn0a)IKx-H}H;uz=Oj!J!M5w@wSZGBN276a?kjn*eOcn&06{@OSQyWkcT# z8Te^k?~sG5*sFP_I+|uLDLJvA0rR$9#BYF5UZKZCRltHzPy-Nnh{MzTfVK6W39~7v zQ>?J~H(4z7#sdk_xK^Z8B|{1Bx!mB%;V$SBG2zPJx}l>8532Go%$$O?Uy=DP4_T%@ z|5b~lSQ@&1XnEv$E!*ZAL0IKix2JWwU9VK>q`#p{C}o`SAa$Y8kt^C2>HDD;yKV~_ ziO5rT)u($iO?#=A#+dKu&-I)% zyqa+z&00;=scE}t(bqcTq0vkZI%rTR=lwINhn{;D{VVnz4Tk6p@HB`YiO~9$SHNqFhED-{*O1C)BEEa8WWHXMOflqwyi`^CJA%LJj`H1e4c8Zr!;7Qfbm z0AfS%C^rdD5srpL{9rifANn*BLLi(I_2V_T)~UgN5LmeZbZhY`p>&NFm?D+X&y1o=2|@G#9FCT4vGqWyI)T_J)}4iL`YBE zK!=XqF3w?-Lbqjwo}64~H=&}^xFcpc_VOgZ)C+mY`*g$OD#MBE3p1mUBoVzBu|8*Ucs zNLe*B9z2=_S#3OEVgs#LkN{p;PlI^92VTad(U0urJFNGh$lz$8n&p^k3!$NLb5TVc z$UBrWZz~B!d391@?Q|LhHW74lb#!v`e4dx|tKD(za6e`l!3l`LA2&Fp;%Oo`w_;R8 z?wl#fX6}*M%Phm$PK-*XGG<2egsRu$;H7K3%~$NB%(B7lB(k(p#x!$EJ$p^R36 z)a&sTV|*Dh##!q{*(=QG4jmU%xRC7WKEdop$(BE^k6?~h;^|aPwyo43{9Z|vP7LFy8@kUR+)r@N(5G{~%1y2aH`ndDd0q_k2UmeE z9K0l5#r1+D4z8sd+8*Ewe!g*aXvTF`*Qj<#B>8+rB&tQ56RnP7r!)E8^BScyTQ7@r zK`&J=Gt)}-Qm-V9HHKObOQ=J|Q#?L*sq7Qh))%B;lui{<^&(qn=-`Iv(tU>LW)8~b zvaRUFh)GYdFC`GJ%5?>=YMX{Mt;8e!EcU_7U1es&ZbcuACdTn!DK4a57`DQM8OF=f zs2(pm#rWO-dHYA5I{ejl-+%w*f4%+j`!|1n&Ab-RfARMF_itXmx4KO0yz(;g3p$R2f1AUJiD2!`Cnf?Od38Caw(ZYh5zTZ2$~lJ{JvFE(%c6@Q2dz=X z^*OVOdJ#2~W zjyjWz>q|x#k%_I%F0Pl8(~HvQ{6XgzRra#4ln+`nj99c1#9GS86eF)vWgxn)UcF|Y zrv07&Hm4aQ0W#F>fyPK62hEYjL;=&@qNRO}6nfMgYeX9Nd4qeLxJa{G{mI7XO>fC) zV>Z6kA8w2kYj?acQRq=~z!7Eh=RGKfba9G{3iHTi>IAS8P!#I3h8z(ujF^h|KYpjv z|8()PDzexIU8dR!CU92xXkJ~69@!02pVO(}h4w;!KAF6Oj`U?iA`)&Y2P7_VmBmh> z?;6F0E4nm`Y3f?=LTd{0`7vEt={XE%(a z!WIcM^5}o1gTnhZE%mTNT)vGd961t?+?%711b9ddQg)?80zIk~QgsRB!i+@ttV(VU zY2Za;iJ(%)XBRGyCOe)OyFIVh$(sXeooqOw)yZc;>o=7;xh5$6woWHUM5W(W>9jqg z8l5chOodJc8Pw+z9X?N=OKNFUpG(v?sLy2rFlzjcK9`xlXXI0&z{@O2X{@)v?q6yE;{qt$RPRbZairY?^adW$ZKPZi(MQ85b=u3P zv_djxx(s*PSDJ2NE?Nz7fPe3n<~Qi^Ad^Dd9JORSi0wCL_YFPe3A zq?hRyZ=^TiZpcWl^g+l-FP?oi(d$+a)OW7V^a}rv5A`|%@bal%@OD1d8%{fOy?e5C zY_hj58vTw4y6wB!-rd-4E&Nj`3%y8zp73B$%#sRnISCnmxOe?OfndOW^4x3ZU8HE(U znuE(3g;vWB%Q!YVO)x3P8^3&_D8C7d7#P2JJO_|p{T=B7*86ftfW?+Z3cW9PXizEy zkwWjwC6@ebq{vp(uC33|FvmN`Sji{+f8Kv__usrzP)KRJjv&X`bAHB~|M~8J~@jxZ+C<}qp-u~5W9Kq z&zWKmm+BaMe~vvHWFMMj{{W-xUR&$hZID%*&7wuNKhC};63iN$8)#pDripe*vJ_p+ z`pL*lJA&yQrRwIfp?1dBwW;>Jabs+*T^q$e;AFdM#QYoelac9mjA!g9!$TRGZ^z~J z3HKEv(Ze(DRbqH?19R>rmE`){qwX1r9yW*F(YhK)cF(0b?QWNeqVCVT8_C&$ceMtx z{LC=4E$|KA-lzpq=VL}%B^#Wu6cZ;HQ%a7=_6azSXmkNLP7v79XwwI86gduGt0#ij zu`cess6ddiH8UsF*EGqbPVC>*X)9ZVH^?Dq;5Y5R4xPLd4?JG>bSvIG=0(vhfzAo9 zk(ZfZD+r_K7tYxw8w@QT)Wp{Dh%ayGf1Ne5zzJ7L`ibLr%O_a$6WSz}%>#6os`j2R z)A3$%EVBY#JHwK8X=cuhVrZ4yfqZ#!4|Fk&(HX~(GI&C&=?-K_Dck|j=}u%wX*?Ur z=y*k14v#|_oftq%;=3T=<~Lpu16MpWz$#=C9`@1j;fkdUFi z5ZQ@~Y9b9X@}=_qGvg0;>XERw8HpYWa84EHMXISWph@jV0ri5d{nTV`+mWG{h)P<~ zT!nE@Y761!eER~wqsi@$vf*`6Pw09Ax;ISxX{2TQXOo3t+XSsMNAG9w=%B=7=-7xnWU?kesZ9=)HYu$eL<=1S< z``wpWQ(l}4lm@%%bJ5OLcj8X-*0I5^cnNujUGdtyI%d{lSL2|xKS_yz(dn=gJrg7R zT8kZ_6|x>XpWBrsL(87Zm43G?kf9^bq&Eq&*OQltx*lq)q-Umb8dF5I3nFT<(P;l( zYPK8b@{laarWb0;BIYgUez!Ozj`!Ce#t!Xx5q)D{WmT>$QLy<_N^w$y|Ch=?Ch(1xagZ5gx-+{66f z$SV+-Fv0dfhieH#B7Y$CkKROtEvcTjR&~zEt3AlFgbAidafS&ddZq_iM*oPyP(x4yl+QRk z8~53AFJNA%ivL!$$UW2Av$kLd&<5?S(7x-?`T2LBn^En z1$W!_2&0}p%2wVaEsVJ=Gf;etF>iN3c3N6=U1aLl!{2FUXp3fPhMHjqB-T{|YgPb( z<35LnJTh9i6%16_Q!rd@kX4?Nap&y_?VKiK6ML41D&?omQfSG`1FKQy)gdKK+J&>N zYM(T!mCBJ_73hqu8&)kb^GUEitqbTPHPs)_9!S|ZIY22M?FnN=!nYd1{h|n=cJ)D! z>LzSg)JjC31gq1z!Vd>mm(AJ~fOTGrgR9>^Fl61amE+j%QCo||7#|k3&TV+<6ig{9 zX9}hilIIspDJefoy;KUZIeOgyeBGIPDZPwm*Gr|?dZJ#M>Z{r_DLrd0E;pI!1u%Aq zP6iC>Zse#0vdhh>K-pocNXlo{+MwGACUbg4KUA=%7o>*+mK}1IFsozsv_P{HJunVu z=k-#q~HAXr*Hqq+aKS5 z_lGy%pMbDqsPlj^c;3JPHsFvBfX$%nYL!r!weV;D>m%L4ge3xgvrmczCxWnuW}X@i z*@qkLw3(L%2ph(S{bB@nE4B*AZlJ9ehz*HA+uH;4>exyE`zz=(3oRV4BK(;fo^43i zOMr6hFbr7&_V#665ZD|(0Ws=P$UO4#+4nIb+?XhKYjCjri9n95f5)i_Zy1YBM8Q1w zQNp>$kzGndNDSFmm3AGCz6iJ<3FJsTCwC_q)JSE=W+fV5lpvAYwS4PUG88PU82A)OTv(D>zAO-E6t%ZO{cxz?e4S2cWpF#vA5^ti})-m5*F_A0FpC)B>*h4I>=pg zu%8Y46p}vjy5g|69ucAM^2Bq+7t@n_#p5eO@=N+UwH#5c?jci-Lt;cO*cq!_hi4fC zycUKN3B~{)5N%H8uVeGjCh%@&q(g)@h;>^Th@=L2$aRR*@Z+f{d)0oTo&uX`z_#M# z8%T;X)3>!%Wh&Vb41ZM=*vwe8Z4Bi#8ll`Yc`Y)YISdc0(Gfw3t(#sk)CeL~E+pCS zY{n%%4O+|RE0D)QooAV|F8{LqKQ-I$H>NspIx@fm-bxIZ9p;WDn1aXSP7~PJ=mP9* z*-S}#w617@5Ww*P;H_;@+$^;ccB1$V?v5*avM3ZjR0FkG-E>Fji;iGOC=ksC8t-_j zVNQLaA|WMN^h^AO`l2$hP>~hGAyYvMrwTDrU#JL;UKPlq=rq7DXzl9GB!Tur?i`9y zlIO8D*4j^2fuBQRZr7cqEWrHoo*C@cup}{>tc}`+7ouF95p47_0p8+2+-b?pc4{E`4FO=I*{;SWY$N_GWHu{zh~4w zjtO^?&#t%Nn(9~WAR+Tm+MW$fCU>sw1_qx|Jipv~bgG7) zbJ|;!1PPh*+i{v{fHJ2!xY|`yM?-_%@k%Gf3lffIgg6EbhiM1(-*-Q}Ka=jmK0Ke{2cDholbJbbp;04^aV}?@Z_(3% zLehFoe36Vo4)sTB=|st0MGE`6HhlDTwG{6bxZS5-FtKO4~&?9-mL}G_N#L2{0?iJ3}ck}b9eE<0* zvoeFUUsa14boCO69EKgFyvYS)<>OX*wzkfud6G2rCdQG(v)$}HB!5mMlvGBua?Powa;Vi8xki5LDpY%{pI7oK)QWThq9m&x@+2$#(xT_tVdV2LTsl*3oO^$V{!}8qv#*2EDvjxxLVg{Fv+X zjx`{gW!50KBVK;gvs1m5iJi*qV8?<=vM1Wu!uGm3QqSbu(mFX($G;G!w~bxtk4VO% znbV>3gYisFj%4k)ArL!2qqy0U3g_Pk+`3Ml)R^6eg3WWIS<-YYPijWnBAu`$A9ikN zW=i*TkQbe3Fwfznob|Ui!~SQr0Db)TgZ+r*1(wIRCY3^ z3fdg$nA?>P%#%GUO|seoQ>UL(5JxaWu@(nj^Bhc?CfI9i1{(4rEfI^!Qjs*v*6dp2 zm^jUHrCAd7RNizMiKEI{{S-r~y|$@&v*)-$uWm0@ma*}E41WUM<8eXyScX5bGw6a{ zSS`haH;khBdh8|FrAe3-=99C*$M9h>BI!w9b5yg~B$^cy*{=%!xqJK8QXai=(e2Dc zDovV4&!<}(d39@ne9ZF|`@zELMN$o&=n^N!?gbW>CDn&Mdb|cy8gJ8dlW3|pf-8QO zGZT#3AUbHU2{H44;PA(Sd}OQJ!yR2tL&6aGG$hRL>Wwo?;z~!Uv*~I3q_*Q#nzOgy z`#99CmbhVvDFVq56E`NJzU1B~mt-wQj-C)6cSqcd#-Y4e;5RmL^CHXIWaIUk6!GWz zg{>n=lsf+cVc#48AW3S5Bv4h_^!rZ$9NfTEzysmD47lWWT~U8R(p$D=zTfUhW*_p` z_J+y2Cm)@v>S0e*LlJQDbqEb3AdJw& zoj@2N&J+M5s^}c@c@55^x>E4}bp&HX3)mR&nG3*d!j6iy&qJ%|wo$N*-kD^|{D}F}nf4l9c52 zvz^kV855#enzWOD9ZB+5gnvF0Fk3}<-w92Fk0?WcmoSQRpWw)5nQ;7ZeFSU-z-wY2 zRj?6mw;8>NVG;-Z9hix2)P(amhrQpuKS6EEAZs>FKl2nq>uj8w}d=e+5LPGLCrbf^dA=$86kwIF+_meoWO3|6b z@f6qCBu>mTCFP~r5oAgH^-A){5>$cE6j^5y$EeWeu|AeO;mnN6wqo!-rd9~=sd40W zeO#~mnfRpYLZSZJ_H(rP6W`GYUCu?v#;H$d5F4%E&0P73I=!uw9tYKHPYxhF`*T-vhSV zhlc6C=P=!RG62&JJ-#Efxs>O@bmQx4Fx~faFx_asl%a&52d4Xefa#V`Mqs*+g!gtG z6TWLkaqs%Nh^|Yb`&pQ7ULeno4T{B-5o&|${c$7cC?o0n{SG)gZVe9bj86HN&g(rd zGs}rzp{DW3NbX%{7yfD>GNqr!qefu5fp|$RqB3PCZbt(wMMlz5Kx`X0XrK;E_x+hL z-FlrNbKiTIG#oH0i0s6(=!8PdNbY@@?uDoi(! zl)?~_LM!!Px&cay=kXz7y44uv->9FAz;que0qh+&Mi_?a1`^zeaU)1~4Wb(nm-9?C z#oU@t1!LABy0LKr5rD6pk{W^NCOt}7SMHwjVIjKj9~z?DzEFl;x)9wNMMuuzZ{%V= z0MTvaid1Dvs0q<+H0L3@)jczaZao=>=*B2ilRJCZJtZKU;7-33kWJJ^1(40vGftYY zt@2(3$X3zHF9T%DEJ4SF&~hdt^Bk_#4J&HlDIKfaKo+Lc$paRg9m<7XD`&;?zYZwJ z9ezv+$A%3Z;+EAvBOIG><%WR)rXF%QHet&XaBNMsd@&r`fiph<99zbmWsc`O92>qW zgJX+l9XPfFopEU!jxCdoY}q}>SN*>XjxC*a;Mfj?QGA+kY*Bz-498~a5e(%G$kZV{ zqW(B%XX?ojs|&5$F-cLx>biOCfBxswFW&w2?e|~3`zyp1|N9#MeDm(lzkmDVpTB

zm(NX;F~NGcfB)TI@BeJK zFR;mBWJO>9@%BIe_SawiUSQB0Nzqk=UN)Qm_Uk`?{~dO+{l(kw-@kcH90J`m`OE)$ z`{Va-{wy;3%uSRr#g111FQvpZ8cmQQF$0OmfF}Fm+PFsX@7xPR9!$+&f*y%~mjnHB zXSgY&$X3!$j82!s4R;cwc)D2yAHRw02Zo#Snqsek8S-k^X)J;hB)^tgCsb^+D`@m& zZ9j`ZF=5ENK@9H6DD?2^m3*K|ltSJ^;OsnMBK1EHA34q_P1uMrrc18-q@M%5EY+>f zwr1d6`RICnMa=!Zm(a7%sbc*qa8}M&F9`X#F^#dc+$4FH-(Ig8Mz$6bl`fwesfvum4i#poT9Xu> zl&@4Gm3=#@zHMPXASJJ8s=UfQ;zDJn?s|eFO-4 zA_Ii2^hUK{mV(UWnw%JOmYE)KvJW7yD;>Y@wWk2dk(m}VemxE;9&;HJgM%R!weA~X z(bz<9!l3CHJ;@buwJ}lT$*}@v=36t!#naAB4mQq98RFbXIZg6HA2P%hgXx>2&h7`1 z>vtACZGKR0;@H{yAP9!K5GF*Pc#0wwF-vOKb!ws(&4|&L<7r)0p>(U1#vCp`LChv~ zBT^1Yxwg8}t?(!F0zQBChY8DMubF@xCnD^d+b{vqbVOs5EKggd78i`F)TUvLM%eVP zIHHcj6>PBQSPpHND;$+q;`Vdq*`^*PU!U|V3yqrc=}@R)dlOfoO3&|cN0q2h3E7f1 zFwxB(y}iaOJa`+>k^8Z}GT|Hf&P|wQV|}tOrGlZ!$j|@)TJ(P;Z6_*H8l_f$HwFy^ zOS<&IkyqpH8JVM&zu*3g& z^An;I3#VDK(WeX8qAY!}5f~udZ3IXcL2g!Tbqag{jrH8#dsVAh3P0kVg@DX*{t%t8 z0ZStSN~H*32s-=1v?WO(m5v+3R3wRoyCH4vH2d$hIRzintJeoM08LH5bKE9#WHTiV z-OZG;oJ1#=5#zWK zha!e?xkKUSV50wFd72`F<9pA{4(&Hn8ulkxyX*P8QJ0&~yVvDe^$yI3#!&Q*NACvW zblgj++)4??#}S!qH$G)clVtMcwqa5!@}*Vp=;wx6-RJP-u6UR2|3LL>ny9sx(jj+s zDBhJ@DFx7sbo z25mO4+I}v#-joVA1EQ|An(siE@G4OREOf7 z#g3An;xEeo>wjOd9Xi&pI_{U|@&B$XckH}Q^`KPuD?bkv!tB#n|3faX{8&mwAtq;4 za4EceZBK6$1>14eR6bNIik&TovTR~yvSao0<@L~?`>C>{_vBOU2txT(;er2MmKtCF zT>0XU?7D)9iB*enDZ2Af@vMgD)8N*&-?-z}|F54bd%B0~qgNoZcD8c)=Iu}KS43}k zaj!s|v~|$hYCNc}zxXX{t}DuaS163*x%mf`OtT(pE)doHp=IKS0s z#@EB``1DHgr17BSpju<1hZP8T0BEVW8pLUR12Zrzi+EH3dvIdmTrH?0i>2(%iMe3yYh4jPY%?~`%03v0SUq z1{%?SNL0;Knc391Ulu;*v{qEm8m2%i6kq-Y-9-_&U(VQsPKOgQ37@<5y}U6!4C<&%;sT;!E^nEMJMdtzlwe&I6KR=6|@ zb2xU=xKZ9uWXdR$m>)*QOASmo_Du*yv8pcCxC3CrKS^dfFoG(CYQZYOURTuyez0e8 zDYYwcK$6k5Gw*FtR-^Vf@wzCtye_;W>Xp{}5)Uj`?K3Zo7F+-=^@WAw#tRE}dvEhc zUKqVKQ+xJ`L^(BH7Zr-o_-Z5-{=nd4Y0(%7BWuz148C~(<8OZ0Z|YOq(+59~a;|Oi zm7yG($2hX7PbhOqJRw_)L5+m*&?5BkN(uECrxjx~xAe)vs%9)kmm`E?S^QR8C0V;3 z8}_jJxiNf-JDag81JDqwX7R0~>zvrRw;rmyEHG~d^Hg+^AjbdIPz_p52%guEv!Z@B zWV4O0k9$)^cv!NtZLoDfhgIVpcI^Ss+JvxHcJpE9Mt=*RSUDrB+ooU2>$)45FuU#% zR*z`e9Z_ZWqF^Slo!M?aX=^QSgEIEysz$VQf}Jf5L>u9Lxh7B5x+4N1*90mPiv~UrRed$9)L){ChWwtTt-@Ig7)WG9FETO_gcc}J5SG^F z+=EsjOuDV8ymTe#P%I1i$#$u1MX9Xy-8${`cU>xj!ay|(?#MtIJ5&f)Oga5?+_vmd zrXE(mDzaj-X#BSSo(J1L!7%cP8^`uZ|1>u)eF>v)93W!t<4{v|^>Gc9D*sWXHtRSY=V34w+RsI{-Y*Y{hZMf?; z7`Vcw{0u{b6ZQiw?-(5s!y|)&`(yRhLAy^t8Uo+8Kw|l9ruif_s;DBu=@eQECBG;95s|w5eu4#7U17~pkYHcPw4~B zzf?a0K=M0>~5j@w09X^r*0L;{%ICN&Fti9`>@v#G9%+5bdxbmfTSy;bEn6ZdEk~5_sO(B!22R_6G@x9?z?|V2m4K zqY*u>wm2}`pV8Q{`(Rk;%W1%5{C=MvFEppIV}Cu&^y_yDjSPCZi^m&{1UztS{@l+j z5?~y-K}n30K)?e;a^CN=pqG&VEu%>-kcN?jhmshproaei$oAvBBcogBUI=O^P0O@O zVk{~~Q+aEl)f5u3VX7e(H+OtApV$x9_mvD~c8A**r}@-k%Kt`ZAlGzGkBXSVx}qJJ z=fmA%!_o_1SfSRjQ^FG9-f}ZgTLc~&u5Op8o7KU-&+= zv@PpSNz#`huS6XUkMAK&8HFAC3K9}k(3nqCyC7{hYDCH+!G3v_jRSXLSI-uEwrb^U ze8@o}o^4BMh+k|<*@aOzyd6tQ6Fh84X?2I~Xf(Q_^qXds<(xq)Y6jOVXUB-r;ttwS z$>5!~p_1kvwV|x7pRu7*VON_gkFaM$S+6@|Ls_jGwxLp54@S0WLs^^~v!UFYcGQLn zrff2^9UCf$vV%61HMjFNls!|UHk7L3B{p=v4;azBFJZyrcDiXsVj3o&&OSQwGNcpK z9hL=i7q%nCjJ_o9(uz+X*nR1;=l~Z~#IilM#)cHsVE|zvx+%f|Y~8SIOsG&Rtq7YW z8n~_Zt%Bng0dVTX&`;ZSx^W!twqPb?M)>6TL!~y$E6}u$*emG@_*n@7uXpUrfz5L$ zSBUBA6PUWNEY{F*o1g>z;hQqxI8mXt*n?r2Y${<*PG{8skj=*hm7Z0CB75Sri3kkLghvC^&BTBY9$OVB)&5OS}s@!OT&MZy(?u98VR@B+Hhc8qNU+t1W2KS#* z)x3)M?IoF=R)a$e-U&vV4BLr!%&oh_m3+a$;JN8Vn%iU)&pbgIU){mP?!?agz?25K z3{1zwidd6sSM}|L@YH7u8oOX!xl6HZxNLDMCkVH4o0L!;#dZYig1*`!u093`_h$O{ z9I~_K+olPc=|%J5$U7ReGt-V?JlsoDI;}I!gz1Zh!)poMmraM~S>#jc=T3kM0Xhb# zwXqX*1X4V!G)29r|>*z@t}eeI`Dn#j)JId0X7UBrd)`m^EKaU>3hOZGSphu^&( z5=OA#$pGw3rVO*;WXgc+%%n+YG`z)>{$#jihlo+pnhZbkHuv*-$0f zCz<&`1K~603cFdzw|{v5-Mb$Ie^tt~saV)r<){9d}nyq1x_*^VKEYp0W*EL zcPXO56FIS7?Ec>1vcJW8CFBk%VV4;~hrv47VGy=xi|E79RX<0Q0dleMyPt_mEbj|L ziLp|k$IiU2%63lP+`P@Y3>3^tE3R%HLpv%Xi5?#pbF7qX``aIBG_Xi9D9y<>fGS%D z{2E}q&h~av+Yokoaz;x^qHyM!fmlGo?kaeEW-#Tr_WcmQoWzdZ{heaFfxeJf4pF=b zA9*Ok6z497w6W$}llfJZK9*eWkFT)ej|*V`$v;`!KyO1Qj)-Y7>qBkmBv@U_p7~eW zM;N+TAB1&x#%kGcpg~MVx$7G6n+D2C2RbL7R$vs%bZ}O@K+nR{GR;WVIUK?yk4LYy zjOp$c>|=&dX*8ABppPYwf*yPJ`Y^-xokGL3*W^=M;X^5e_U^-7GF_h2Fh$m+xAI4z zA^nW}tTWqh1rVj!y;EO-SOH{?IWQ_aH}A+4j-{oFEBr?!`_F44ONlH$)wm*+L5eFH zt4f6sB@%RH|0b*ylF?TBn`~QpD~8NM!EB8lRn3x>Lo(Wnk5$HP8RYwnhMApkT-DoF z5-I2f&Agf*ur$mp6r>|Q)XcE87R0g$iVi7fgI{X{R7p#M+3(a>7c5^B zCu6z|*jR5DIcqDZX<}_FXl)~xcNOGXKkq8Yt%Q@c$-4?F)+%)sBy>@}zz#q#B}RJ+ zN+X&fsqWk6`jCF%8`+v-$F9+*MCk&Aq~}t^yiG~&tIn9YnNUheshe=t%-w`d;ZpLZ z&7QQd<}ccIa&|VnpB#`@TWor|E8#iD`UBbO7ntgkminZjjupDh_PTcZl$kzhrB4~@ z(4}zBNQW+kK_i{@DGVCvtW#moNN2qYgGM^*Rv0nTpyzabS{h;>D0S0W~7f5ln3@aD#Q9?TszjhAbJdwIT=)2y?a3bt5f^J zx$XtVB@4DGUzqzz9SICe<|~Ij9rw*toi;lZ)L8?=guK!NZ51xW)=ulyTNse#i5(0U z<&JeQ$j_%1hIr}>F6Yrvkt(jE+lH}+)Wnd2Ch^||KA`UWrZ$F1W-STL%Tgo5;j(HZ zRkkvO$mm#fZJ;n%GXt*`Zz+Uf{sx8C&QSTaE(AmBXGl?;BB{H9T5Xm&AZ0xof+8fkjoe(#wXlqso)=pUjg*aEr#)y;ks(HT6Q@E z!*=GKhdu{hD?%1RU034R#-GQ-XC7v1bx1~7AEzHITeCxMhleCCG&{_&5LrWYJoQ@s zH9nfT1Hr=0bPxRw8bM>!Ou8KQCC5saLo+UZR+qyH^@vtN$>Qzu2SXtEsmX!ia@cXh zOR5euIUK^}7wujh^3r+I`2~BKrL4DPx_e3Tl=Xf|yxiQxdY9yv`NDc#KqZ{@VI$gO z;n(Bkil;b`of&R+0RMTLM?^3WG`iAN1egc9UN5?T-~bSQ*6WaOVx9LoFqPAR^Jo+Z$Fd%^>b)?;9x47{Yv8 zqssw}1OBu4*;iXYC=9H&neF>qv<)Z*=dN$yRpa?K74_d_#n`ZKWX0C%fKHMgm;wPC zzWp36K>vmApU~;R#MaNy=>W(bmT#Wd=>YFgcbRVQz8wC{e_x6GIMw__z;E_RB{LBS z!Xld07NGy^ZgZrgAx?kJz+}|r%$WNK$Ii@WAW4i&%-l{P33r4YOZd%_>#^fTBSTIC zpA;81+87dn9J!m4N-8=KAopJ-P5ladpIN;OI~Ah}m~RKxZ+l>}MSzY`@CjQqmu(LT zBBAWu^(#sG+Ssr_fJ5DnnO|?aG~@B2mC-N~us7bO$O%rL0nrj*S`8;b_7jYq9Rc5r z;aIjsbEEtwsGI5QC_EVa4Dblv8i=+Tsb1w_j3x}4;0Q3s0TSUA+8h)ofj>*gLxDti zg(t5#2@P^ZOd4fO^C4|=F%=x)9H0Rv!y}J zUCJjcVFvB+8;8glcyoP2>wzrH=qZSXHdDG4pTPvDRL+GbW+u0_Uvh2-(mvI+56Nz% zjg#vJf{#lLSlTjq*SEI-S##cCBnmLtZYu;6F|@GU_&a&TIikYOAoeylq@2;F%NL5B zm!q19N!=t6wA~9SmjwS~zKPy*eGy7lMiP!as8PWxGN#DgDT`$K?1%^0;>Q#H3(qsa zV!2;xe<{DuGQXm{qk-;O-(aiFK=+KV*y?fH8%(vC=f3F`TbBKxQoAoh7ga&>K&1$!&feWAyAhC@shaqh()KSl67wKf{=xuW(iqzsL2`=#X!jH9D z8g^viGU#JBtt|Rfzdev8mFzbeWbsc9f5`n}`#U|zW>HZ4DK3kregGx9;@%B9|h!Ummq4WgDUa1^)}yIuUArw>Fgmt^6z8a`Uk5R9?WoLM7TB}AU` z>K4T!;8(ffDtTo`7te8X?sYWJ;X0#Bw$AT3AgdG+>xmc71_!w~#k=ve7RuTa6}zoL za$a#2iSOw%jke>(@>D}0>;|dil|v*vB7PEebB6=2Rm13T>W9Q)$5BQVM28|UHdF_T zM~1r`uvJMvEb+HL!4u2(dcqbhhT>4>26f7tgWjT&MtU72B32j&W<~|up^S&~JgU>` z&`IdprVuccF=t9wgW!ssn?C|ODU(5pBpfai&M6#b4)(Fla8nkUmF2kxO@4!aFXkSj`{ z4dx_bvywZ(9AZzyy@B2(EJ)A>@kBR;axflL%m&HjE0lw~LrIGV1%+9YGSs5Rg%`;( z1uoof2S3(j!_dzVDiy<=sNYC6A4@HTF-omkK8Xm9@0Q~(nRu=xv4{!c9h2iM} zp#3}a+4D-nh`^*YJYzE`{_70Chd=Y*W@$JP@SB^Z;Y1J?(H_Jjtp4ss+r{A-5}V=b z&nrQq*kVgx0;NVf_R7OT0`-|RXD?=u%m5ycT_wk@s*R-ZGnyGYgf%aq3d(8Zq*b$_ zrpamK=UNxgFy=IRQfvEDrAQSsa}i~!qvuRg!|*b5?a`O&REARbz0xQ|p9($qlW50q zR4>ew*ky9;YD)=Dv57=kQR&@@j+TdN2-;$rZ3j&L1)56VL1Tu1J7{U|l_<$@?AC(u z=5reEUg)R$nE*@_a^&_NFy>4Y6KXj%+7xGsm>16Aq4~gd0WEAH0D+)XIL!yer0Krc z(t%xIY>FiYu!W-k05|u98k6X>PX7UOi12k_AMe;g0a6^f6x|lZWNp!a0CZI^4=4L2 z#4qgXXi0Ra4%hW!+cL-PqFxkbXf(k?^;rGjp%NRZuZg|tA($u1NdCxL)x(0W=9`EZ*_1e%OncDB2W~qJY?_A9f-pNeUAM6kAGC4rqV6IhQhcf$<#@n&yyOa zy-1)94`za%;!c15E}@dQjFoESG^UVHM+Ais3UL$Q{ukXrppgydl{aiOfQ=V3?cysJ zSGQ>ENBlOOS`Eu@RO^`xjslEiioe#TQXlI=hl(c03E^WOjPi z(n;;~Gdo9P?k9G7Z4RRLg7?t&ImDR>ZbVy8?K~Ovm>Tt#(n(4VmXq1ZRoQ8~iOpIE z)Kq(31srBWDvi`m0mo_E&}wF944RWXxGXbfE%VflFrkj9jHGs2OeoVTUT(+Oum#M? z=?O`($h>6KhRpCFk4pGnP4X-pb_(f6$zGcAysb{&sNl*hXA)akx|p2C)S4=>P04$y zojqANZ>4sU9MqQSXcz=ucAc#c4;#s~Zfb{OlGDZWR%(aBV$&+s)Q;Krerm_IBS&$2 zKv{qJm-pFboZ%oB$$&v$`JAg9enIL_)Yc^;btbrVdl3q~ zlbD9n(?;1|B%`2;eDADpFB*s1t-C;xk!xI$JPkW8E2L!`iYY6vL^X9F*Wk z_E6`PO5SvBwdG{YIurDtI-eOM2jdP7E`#bnoo$9ggf`4OKu45TSVwxSLMAQbKH#w(Qv z4+PK}qv4E3KQ#`T`3YZ&l6GM0h4I82%Ao*-3#7SC2E=Y2IUhx$&_lO1Mv&4Xg;qf; z#Ia>g--uACo|2KXG;t=Vob5IODp>8;pEr2(x-VjV;w)<@AWQk_wzwxlJ~+Uyzw0iI zyNNS~TCJpvOs=Jov-y^QFA-g2LudPZpqnQVOhF3mQ#pw4^kn(8HFLW)vERwxm>_aUrF9Ass-&wlLq3(yTPI z6VpB%cAoSqq_n8Z3`l8SJt(ELm9}q6Y5A3!6PL2ah?L$D#y;PWW^yEzo~9wqD6}lp zGNc*BDG7CC|0tn%BwPCus=XPao7e`JMJ)MK*V{h#1O#}a;&&LjFqAJT&?=uYO5INA zFubEzNz3<)9f!TVh~(a7U|VT=NyKpX(ugkCVXH*BaY=pYNiBks;Y*=;WIxocnKL{Q zMzPEE1YMP0HIY_Oiit)udP6$XBNxII4>4glsojwVCA_7gaM`^j4NK%Uv?!`4=w)@M zV>KMfsU(1EUn2oYPNip8fJ3@v`q0r4sq|Ny*MvOI{+dSLy|i`6V)Fe8=5E|B4d!~G z^}sXY3MbWyPE!on9zbs&szSJ49yl)y0+#u($bbw*;#Fe6SG><*(QroqG9f# zEww9k7SbjSQ3jV&7vDq&5(8Ph%HI-{NV7XKdoqn{bi$LrqeOZFwR-d=ES8ZeJu&f0 zH2frF@=C5m1Rz>#lgpG(qe+@_Vu5?{|0nXlBiq>+Nu(oql~hm26(_&OQ?pztNzQy9vovcrau|5diV=q!g(aENb_ataZ`7ZTpd{9H$xN<-e`xt$?DcwWVZ5t(m; zpXoQ-AN|5|wk`6U?5)(tQAmzx+j|X`JaJN!Kcmy!^R@$rM&~>^>Q1+P&X*ws@XYv; z=WcDD(=Lb|o6$SWV~|V4PawM)s6q`&0j=nSPau*)zB@$hw{HP%2_q_if^Z^H6==4^ zrBna~@w^pQ!NpQ&#Q?kQA+qj!e&ImJ{hk>Qn?n>W_d|X5i68CVv3IY)r8Y2bZMkot zDd3v~2|+cgohaati<`M8GwoWtCXPBM4VtGb)ooGLPIVinx!a|1fatnjfG;Cp_{#--jTb2dzw*Q*c*q$? z>h@wLs)$Nmm@s8a1#mI4c@FCigE6{*D3t1|c2pKp+R6e`25+iv&P;X;4BpMglqT z*_Te6loBhGIX!_QI)q%S+H7U9xTe@NaX{=uAvyk1x9Z6~7MFOT9J-H*Th;~wgjo$r zzRN%$2aU(X_sJ;#IgbgiSgzG)1C8iEB&uer%xq@dFA5(sS}W>j4O5`?i7)?x-l7QG zFK2Xw%0c$ie-cDK8W11?ibOJBEC?53QqvS4CUS?Qhl!&gT}|NuQ;fxtpMqv)eP7*iD`-wamWfIfF$akrM3CF$(p(s|>#Txhj zYxpP0Ob13#g-|V5CD7}t+Q1L?EH0&XB??F~x_0KhEy`-t9w%NG<(AilcSOC?dSBv! z1*?7Le}&P43!J6CuyEXXVZm=k%@6x6eQG=U;O9}ywJp9fj6?GnN4E3{MJ|aaWMeU?kuV%ugdScYp&sM3 zVvOd7K3Q1RjK%13gitJt-)gHQYu97L9#TKIe}zwRXERo102*S|EWUMgofA9v)!SlLtR#eZ1Y_{?Bac8Os4oh~n?X?cruxh-+o;`qBn-JE@ zUOw#G=x^W?>tJcq_BdW|^l*v{g83!2*el=tV{*g3y8l3c}LbntRYHggLhrb(gLL9ZF>(KiMvnttgbWzFTLV z{;msUP#CCX!5tY$V~6_SiW#SWj@yK8>;%oUB__TTeZ+b0-BK5^sNJn5h2 z#-%G^^o;{T?4Rbwm*WVlJI43;3<^IhC>?iM{`$>Ne}dQi{hObD`sPpH{o#NA@b;&l zUN5kM-MW=c3Swpr2Fdx2Yc?o|ayHy`8w*@vQ+|e#!3n#8mUoPPh~a@jL4C3Ue+Lf% z=BK3u6*P9@y%qR-83lYke!E8u7SAa3P(Y`vg&O#Ffy4u6 z8kjYNw+DRj`2tvdLdLAEOfyz)R8wTdin9R2*_*f4yUA$IYUw zw8r{gA_2&5lbVISM52e{*;H4>?0+J;at_v|WkM+s@ZhF%9M$h-e33}50D)>yOYSI< z@UT)jx2hTg2|Vv?4nOr9`(uQ}j^|ZeFoun=&4?aXTO63}&uHw}eK0Ka`t>`7M#j9{f5qdCMgktVHGl4A76~v6+@K`FNg&_>B02B(S$B{3Eiqp7^L&}s^a*f7-)i<>(>nosNo z>-$QEF}p);i?e)cG39@wGmvXKr$O8W!9@z5dOl5mc9t)EpIO?Lb*CihOOaQij)uqg5T=a64t)g) zi7IH!r>R|#HXAh}WszXNyvoLbJF%x{i#=PlayCBX5E0L|r8LAZHl^&ss2kpnC8Y@- zHl(z=!*(2K*&Y%@FgKL(vV?=3j2W_Zi@J`!MNpp|dP}bJZ*ifmktId^1 z*t4Om*PXGUtkw%X^8#>=4!FhH;n+Z5pdHf~rpCRC`ER)kFw4cylIRzY!#@Hcg0=%?*E-8c+) zTQCtaBYblFp;DXW6=>Q=?38o`_^gD0*E@FQz}7jGE5vm5`Ac0`7HjCRP0)e<=uH`L zoTyM+?7^^1f401Ww$(t&oeg3GQb`3^MT@@Ni`aHrQrT%WB1zUZi(k%^_o*c<@{wS} zbh6vMN=2FU_KC+QDib`y=cj&yow>1-v?i5$pB*Z3T+`nfn|(>5`t{vVQ>U|P0LbR! zf=bUSL6JRi+QrNOoO$H5li^ZbU^ERr+fvEq7UaZ}f2YR9rO1T@TZO~$Y^o6@TOH(r zK&9rzUmaC$G(l&UCVlt96c#J$WZT0RDu%CiNg#v!PpN8NMfCQP%ucJpp#|@RqD_YF z#5?B3-Qh~U;9&6F^dik|GKy!OAdRo?Ut)J+XMSKx16&5CV`4?5Nwur`c0zdSvjvS^ zu&&&re^|C#wm6mZgIl>tN~n%vGlF$NUu_Xr9|MGYGyQuG*IDyz(*(`*qUmtt9Szu- zX~!@e?xiW6)|qC)^hKlLwS?}=X2bI=@~QN5CqRV&9Rt+b*oisiVEOi@mUaA5umxXXL+@0tx74pcx4JYV$)9_z z6Jod%i=7{>w^lCJ=_U#D-Wl3;F%OPMSPX~FDN3AsZ` z*ky*$VXzK%7=#VlBK9zJ)z8snfLtv6f9_|Z63hF-P-3hU=&>`etFoPwH@9xHE(3+K z(u%8_$Iy<-NTSEb#T+Xo+y3@P8VxK`3`%pd?Vrll0lx+qud|(<)HZ~Do}AH=k|>;c zW*`=ju(t{xpBYR!u6;kmFDJ2McXy}QZlEtDmO~V6!p9woAjP@MA#JSr#$UV3ZcFGe_)qPm*+H0ku~Y9{1IqKKO;Zu%=TLWL@9Rf)K?%@ z0GVSBjLOc*;TP6H8X6j1+grGqC?8r;MdylRML`Q_B-{}1OtMz*Hd zv1{}xQMv#j>A4g!Z&Q-{f2uQPZYGpcQtBq0HFGy%OSqK0X|pFStoe(!nVg*s?+VGt!|;VbDlteF}p{ zI_p#zG}2kG!l04Px)nx@bm&(YG18%9VZ=y>o`o?Z9l91qjdbW+e;6~;p>yG!kq(^; zV@5jlE{qxJV+G}b9goVe{utMeH7|%B!(>i|)K>3a5V-2pzHqL4fpN)#P0APMeo{vQ z!;<;Rp-;zsGgYU}4h41Az%U`N^gvsM3$eA+di53tWO-r-gGISx9SrjGsf8h)I)lr3 zbX25@>)5to>>)KVf25#E{C9y5s5`%@jUkd*OG5Lq)W~qStQtv`tqdVDIu>0UC=Axj zz-z@@3SpSPJ)yNTRDP`s!I1hHQWU2+>TVzxIvR2tk=I_k9SxYo*Y~9D3GuYu)3Cd$ z7M~ru8kFeN(@%X3@rB2Tu*zQcqp7pu@T0w#kXjp}sY2I6fAg^jj)OEeL^6#j8+&br z_6D_BC&Y~^+L{%DwNn;BAy42%vxUL$lmR%0Pu$_75q0fQWijaj+ z*OfT7@#pdInTMHL9g-2&$LR;l*6fhm;US3&%?>jxMAlFpPra6ZjgMyTKd^8s-9x{F zM$i~FlP-sSf61}Z<zSFN=nk_CorZ&#hCj!vvGbvLAxk}1*I-q!DWzhC^)k`yo``P;j3N(f=-`41IK;wY_EPnRY z77z*pf2(a~`~DVf1B$`9>l=90c)m?V{Wn=Lw(A>Nv9&s&lcWcxK){A?KSvADf1&#) zbUHAx^)qxj0CI=ro9A^pz&q4ErrUcjhd=Y*S0X=7H9ryXn|)HrOay|kh-S3~=s&yL z9O-C?)1Nai8Fe``=03u)GxHfp5+f5cw^K;Me;r}J5`MGfdhEE-$dHr3C&h)0HikqX zNA8xSl8O!l$o*GIQ@;Y=XI3x6KEMh<-2`K2N5D5@IF@bD+$g^Z zf9huXItmX4KLb31w+5nZMygkN7^4Y;CO87jaezd4g*FGpN#M^C@=zcVUg60rPC^45 zp-ztBC5%}-x&09=g(MO=MC-3hPX5biu*NpMpd%+5Ij(Fz96?aXZ5hohkeJOY$VCNJ zIMe=|YVlmKSoNEgYF@dn+7$^kL22@xf5`*Vb`v&X#w>ieOpXDQD*J7D&RJdEZQ zRJA#goM7_8{|$NN8Ik;8^9sK8oJdYK-Rrx08+`2<%?!MxCOuz!Mx)0*NCGWIPBSkI zPg_?IR-vQ{XMQ1=8JCi3=1!be754HiN>ke~)@2i7EQq3c*ASEiAYFP9AZNsIW7Ly{!!?XSC_^g<|LBs3u}k zHwgr7_d?1g!T*?VqW4^1gp!q!e}rQXYE-a_j45(=$|9LQJK_Ph`0+&l!t)HUSnikF zU&`;Z%&#c#XrO!6H`r=3&^_ZTwtC$522*Y3xo>*KR_FG)Z+SCgJ!W`?zs?(8@#4-H zUiLAZGrZDSddl!J&2Y}}vX9}E;bkYo8NVjd%>)EF5`gVl>2Zi2^fB1ZI$KhHYC2%z#Qi)71~@ zt5aMC5V?~M)P#n{z(_l3w6|U*+n|pI(pk2i6XT)N`ebKzVKtMmWCZ!xD5K( zO)HB&)o%}ENhSMD23h=*!yj_D*#1rrvRM?=eu~TDsUJXzel0?-6Ax5XZH(87fX$r^ zq_RC24ym+iNZxF1fDYA%s^MNZWgzB-;Hr5QEkMblb?~wV!QzJaf9^yLLKLyR`EYqS zuZMD}x1q2>Ctic7WeXeyuElN_zvt-#(aR-SIIV_{7BmE7Y&2)qNLC4vr@XpFu?YB8 zZn#Qb+0n&w+?;zI&2zZU=#s7TI}XSyMZ|jI#k0XdE>7`oJgtSY_C&>QYml5*Tt(u0 z`b?wkc(FXy5D2?Le=2$95DAZnpG4i<;ecz^Fgl$2A+gwTlu-rIp$Lo()xqMC;VuVk zRniYj{OwQh#PYqKutkfZIFz|To$}_Ox2U9%UI&SY6~=*?QNea7a;p^61ui2 z1Po=&nbOrDxFYA~kHAjKWRM~Whs%U>3Wu44eQYz_ltpG`fBRzrDZzavE8fhthqzgI zsh7p4)MSbNya3>g0p#&=ZxZH^nppsf-_6Z5n;K?tn!z@}fqN*J!)}8T|9E=AQvq5tC3gzJLP}1T-L1EUU47I3n;YG4cfeW|W z!H;#>F!VEoe@ewLC+as+&BszpVT@8O<;F+wiW^b!KOPoxNbq1#)6l`xV+iMdrl%l- zG$?MBr+$l+&k6HMO|Rl(>m&Ee5BbOvngS~6;<=kQqLyc#Nl_cLsAd8~m5mQWN)tMJ z-j@4g|Gty>*zP3DJd)bnBR9-QluPAM3V`z8ctFV6e=q=lzm1iJfAhnezfECyx&UbZ z4t@5#(l8=0DGkrq42u6c!|&nG{I^*eP6YhsW@$JPghjLm@d&HGyU})Wc!tDgxcc)- zkSMm;(w9J~(T=_Hu#iA~Ce7K486-1+2V_^tajR-0Dg2CP#tvc43#fu}8aZjzY^Z5+ z8u_`_e+4v*IgOsw+Wu52QpL<%L|N+SIg`{dyv$sC^rbqLq11h^Gz!tDLeKpq+A$o} z3o|8lnH;;?Qi4-#B2iXUdUv9u<)IpawwPwy0h51$rqXxNm?7W}TH1RhN-`X~wP3vY zoQAs>`sscq0275AxxELBITOW%T275N#hD`Je}yx6Xg+XVKnq(4Kp-d;PV+%AX}T}A zbYK@4n_`IpY@z5sz|B3O#w0qe(|^DmB77a#$2+!AfD}hAMYlyUSz9z90A1C~!^wUL z@e8{;S`rU8cpy}Jyt(>sKiFW7_(iIPvLl&=#>ZIurb zL0d%xsTcLhL7GnaFeeGet@2^uid-uWGvtKwVV@&E|KlGOsHt=du%R&SNiubk=kuh7 zX)h9J!-JWir?}Ifze}j(En}q`IgKeKf7B5{A%sHQ1i1f2cMxb~!+GTm8x3IN#Z0^S z%Ei?!+WHZ{O{W$GP<{fm3jBroBE*?UWW^%1zsVCqdKCx;F+aK>Gn3yeCxQ&;COw#% zM@C0O-qil_H?-^Vl~jUlKu9%o*~vi`R99?-rPBTdSVRj9AAa#gl$Fk|WSJe$e?mE# zou0LHQak<3&e53riJe}XgQ&gWJ+yreab|)W(biKtPewhaM!ltUl9GevWOi~@cG_-Y zv(^DM)t*-YhuM%yBehe&aoRStn%NnH<|Gd;%ZypeJhdZCs3R&Psht)R%Cw4?+c7q5 z0dsPCLQ*U;FB!EVGd#$n624cHe>@9^okF@%vX^E&Z>y6xD!4MsnZ#C>E+(fjwWdmJ zQ}SMFXHOQ+TdAES2eoB78U}%vU1#gV!$xwgo7$n6mqkZ#0@U;&o94f90 zrhvL(Sl&v)zMw(|;LK4!Ug*5d7=I*OeJgOR34>JgdRdZ89)Qc1@^5ldGqrVzNSz68 z-Cl%3?)VUQp?2#oP-Ns9S0qov&RZpWN=hzTCv?6Dja@5c zLc7&Q#a`t_pNNsgQ$HCf8MK3R4l#(N(M&+4WFAt2e*20@&p|{7SVa2i7|5`;tO><% z>L&*!_>n!-Ii->}U0ZEA8MDp=eXLWAID?1z%T%a1)G4sRZYosVf0jm}!Zy+S?vHQr z#=6@JoArfX^BD@i&#g2_haF1Rc-m4Q)kWpwc*>&Nuo{U0%#3v2|X-bi;r~?5A zMZ3H4O69==0kp!k40?9oTwdJn@EdC_v!?X>OANv71NEN0BJ>&~1$o zq_jw(RnQ7?Y?;$HeUPuSf zur17Yq%G6PbYR}V@lZKds-Qd)kc=ES9}F(RdRgt5;zq?sH^ zrKf2~GYTyWf3*y0MsZ3)9oauh=pD({zJzLThUg}?0cH_P{?zrh&piPF-l+H;hAs@{ zOA55gr;Jj!6FLm<=vC74J!8jVFE1jwcNy4LnqCqy+`TlS%XQc)QEpsPUwTrDpk(+` zXdc-Qb!+AfPlQqIGCe_8rB_X)6_jG4(Tv`Z&h*HIe{jV^Oc+jTcceiHZ>cC;c5g|; z61fd6is}h^S>5Sa4M%b+38327NI;TP>Dd+FkZzeibaX^2{nh3*A&;}arqOpVZ5^_h ze7}OZ8@Ee?xn5{J@Qk>^N%bX3pejUpOGx)6Nn5#0wb*rfQn8HLEH;xTN}^o1bZB+9wj7bKs@bLqW&QH?R}WH(*^pUO}Rcb1=uUh&%$Np4_M^R7R9U z-Gd5sY86)-ASA(yKi#^)e6zN0uzH7P(N)xMs-C{2cZ1{Hg_D4vh~N>qlQ3aWxCtLY zJ5!i+Nr}bSZS}_dI?#vrQt$NhBWn{+R%f#wc-6n-&z1Qup5&6%+|0}lA@t% ze=?%rP6SY__P~~2sgMyitP)N=EZQAeJoRxcbX-{iQH6TV7#SwR%NB zw}_^f15I_)YdeRCN0kxTNyGoJ$*j!dkkPKD{~;!{pwhFJKP5x61(mL?d5yHRA26GF4zROU9JEtA~%zyQJYn+bfo(R$snpyMZdOO@`r(YjWC7YMKv(LoDZ#1an zZbEXIivJyceK>Zo>~a!0hQ?_;gg|gd*NIO`#Op{PM*{Fz6CUUtA&_Su9L^k@O&aUE zx$=90Wkb8?zC*FGD^EWS$FDZ8f0}Ln2Gm9dj6KoZgx!GJ>UT+qY>X(rLR@PIZH0H8 zHX$mz`OvQ8wG`6x5l+m%Qa(sM)71w~&qvmh(d9)7JnqJ?lEJe3j*Z3KsVhCE*wg5M z)xjF(FRaqi7@i2&CKeL7vQCR0yIjalIWxTgW15vxWn>By5B#x!z{o-&f0E?WavSC@1G(v-Q55zv0oa(0~@SIqyh5#xFt(R8d2g7?^qR8e%YY2$c0 zFeo~VNJm9y$1O!ykoOdwzDZ4JIy#a35eekT!}B0}un)ZqtJCDO;BF4+xzv7-{>QQr zJ7aW&X4U~X50(V)X##-bf1F|KO)y?40s{2JhCzHC$D~R{uN0`0IT~e8!I1^C?^E_X z`iT{mTt-<^I{=g=Bao`{z9#VGIM=eyz#Kp->k8gt(N@MGf6Tcp$=^zDdz^d&$*oje zvx2^v>8RDf<~t*ujj=~=YnHZSx#G9MCRMzXZp?dN58O~ZHqi7dn@&E6p|y__FjV}Pn^``&*(Jw zyzRiD(K%0!y3=i+fAeJs0X#E)r&h8^2yE zZgqBdid!7>e2TkYgp9tf#t6N5fjYSe7h0i+WHtgpJHiREkh;YoDr&^^UPM2-&wMLH ze91QRPNbTdf5SL})`;ersXOl16g^#L;#25qqess8TSaw`xUW%lTU51E-NtF|b}1Yn zx~>=C%Lo|$azS6?MGC>MJn;w~a>kLmy_ktAqEZ(oOxaQaT#PK9dkN2iJ2RD|9(Ah+ zUYMG@eaZ4nBZl)@gs4Ve5ej#gc_xR>X%K_M;sOSabcfGFXP`(_h(XB{UqfO-<(j3w zb|Il42r1UoO3SQ6VXG)cvw0N&A&Y{jf-?ggXWuOIW%fEw$~mbX$u=b?B2Moee2BK> wID1Sb$q8NM*ZWA|w}-#ccu(?1oaB}N*Z)dW`7eL>i;qA0f0y`;m^QBg0Hs8F@c;k- delta 9076 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 diff --git a/Profiles/Profilo78 - Offset.nge.no b/Profiles/Profilo78 - Offset.nge.no new file mode 100644 index 0000000000000000000000000000000000000000..78ef43f617fad19dc82087d0906cdfe304f35ff8 GIT binary patch literal 20529 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≪EJ4^Z)^=O;c%I7E_Q>@ zh6JS1zy5UzN+~9|&t%1$x%Ln@3orGu_>`I~(VrIpoH2krUhYl898xn2K=He|nPyYN z3{ErH1~_mJ1#{SKP=Z`h0&OrS5u26V3FZ)c8tx7BE@44}Hi#!`o5C9pDrSS^@)gR# z-Jzt#gMz}WNf~NU>G&xWC&Ayg_@4R~xb9Ogx)wp~utZ={-! zoLCs6R7<(h#eT(&sQ9189`N=}0Ub;|2Hgn0mFX$SAPtIJ<*DBy<#WP(Qq!yW*!sx* z@!mc9f^jdtvnhlK>{GilCV%pjQo z?nAFv$#JV{BPslhX2uR-%?qf4avC{l)okcv<}~titqW)va~eIVwf(75q>7ojh_ckt zb0(=_c$vBO=u34fL#g{-X%wPQg`WFKv|~7`7iLQAGC6j&r39zgM53&y^zKAQ%R@B; zZ86QZ11A3hO{MRkF+;!|w6yn1lw>$|Yr)*P*62yY-3$G6KNEn7LXOFiYu!W-k05|u98k6X>PX7UOi12k_ zAMe;g0a6^f6x|lZWNp!a0CZI^4=4L2#4qgXXi0Ra4%hW!+cL-Pl7N-U&}f2(>aqI4 zLnSs+UlV)PLoiR2k^GUhs)q$#(c2MFJG|#8k1@T*ynL9y_JQ)Dv0%M?SiIw1{je7? zQM4%}MFBBKWZ%^fI}sBlpHeAbCz9GKA0~pfiU?9K>XU;so$_H$5{_Ht!@w1}Rvc!? z3FX5+M}GdNKPgaC=@wu^Vce5s>LkzSNe$CpB+!NjGeJ*rr$2v}P{~`yN;PsCQ%I;I zf-FS>(3BOA^uZ`f!68!u+s#aAw_Zqe3{_-#71D1h=4pjF^6)E6PnL?SB| zq5Vys5YnqaFo^ll1(})rW;qdLI5+9R)I2ge8uF(0kH4W^kFTT>Yy(27q03GVvY@(R zBP^BnFTf&NVEFKhFQTk;b|uT~coxdZ?DVXqliKNLc8&;law4RC$p2QveR}Go3#$8srI}IILwAr8mXNEj?=cG)y&QqG$(m* zS!T>y=BXWFLLE^VN$s?lP^MM9+>Wtf3z(DB6Ov+)dC8~^nc+bmmGHfq$s4dgcFbKTtI$IweHj-=I z)DFcYr;F#U)DDHkrd6t`9kcI9$9GaYwjDW&+XKq_%Rj%*HY1laZs80Exkv^K`pV~A z5veo5t=o%G=$*tgoSrty_97VtRpfhTeS6V3)Nb7c zii}+2isWh7d8=ekNy$a)gw7YCv1_GFXt&y^*sHwg6EU)Q>L&vwgLaV4AqJ5&nhB_s z%tK1hZ(kAVIf&>0i%35m0~ywqHK7XYeq8 znF7AdrLSs{)sbNWVvLiLo4oTZ5~LFH_>5m3Qu zzy7?zo7a62>l0^L8J8^Or`zJ54Ef*yzy7YfG_rb~O`I{*Y9(c4axIOV&9?-6iRdC5 zI@{+1-8_kC>f$T4KS8=~j%g~Ua@RyEp zCQPTqR5Am;OiLOzQfL~%m1!195{07xDmRab^XH4HB_OL}+Csy&jDTJjPa0BM&}dqt zC8ZgK9=4=3qtGz4C8hd|3n|?T=>QtGh53$@W~G^(nD*hY^Q2cHrA1w4KuYuKK`EuJ zw0%=b%dfNw+o+V@5yn2>kY;ium7b;{%_y`i)H0+Q#VHAOWdA6kcO+Z;5~{r!qMO(T zm_;o4Q`g%*_XGrZqvCfMx-gV4DbOmPGD_V}=rFvaS4qqFj2(x)yolu9Wnf!rdP&4^ z_tJP90GkQZh(<2wc z6%R3CIH}!{1|__uqHx*0B@IjDHnb?JC+KB$r(-o7$*ClOYF{G(Nlv9_SAavhW%|(3 z5vlZ7o7aRq&icGG?>bOr9u-a^2FsA({2j%T#IWUK?)Q$7!EPbk2d7Ru2UoH{ZZcJl}wI`FI71 zI?lly%Odg!lzMWbs!$nG5_JzM)TvcmZGeyjFaC7v2J_9@y20ulnnhPpzo~lqlHLuD za~Dnmej=(j_GpW0x}x92KiK6h7uwZ8^c{Agr;m%%-2*bd&exF9Vt{jEd z@toN8-$MtkDko)rKC_tqt!t z`ql!df!&bgXSRl=k`xV9lMw}XB7kDG2e$M|g^aLam2m1|(eB9NsgG-+6$ym7cZy zDH)nAsB~@3Yow(ur?Ru!4ku={q_a&HqeR2pLtAQB>MW#98lns?r!KyU4kQM$c$L2; zD3NA&WcFkl*XV>Ne@BV*1Zwr@OIR!;Q+i_Jm1y`$$mEq=i3mWn)+U`7dg9`pDABF> zEz=Hd#1o(##S4MH!4t0qOE6Dp49f`3RSn4$Tl@ZUy)?4otE9yQ)$QvazyA((<6i*C zZMjaLVHwZOqTiWW#j^%fZyU@l{P`|J4ep$F_%r|2@2zn_acZ>NNQ* zxSIodF16pI|FLYu&KMnWoOJ-sgC)UxngHN9XV`iZj2DW406no`5MReJsZ!A^1?psu zM%hzvWWntFls%7rVudA_QI^yW0ALU&y0u7A&Qp!p+5V>kM{1^yI0^+8yL5?+&9n^@J)h*pc>Uq6mZBzQ`nQ4cCB3# zN1c-f&Q{#Za;UCVNGQ|IiYg^w2@aIAC|tcL(8a*k>zS3vCTMa+R5+k1nDmUd+~1Dr ziad(X6gPgoRNU(9?i9B;=J^zNzX%z9U5ycX@d9;n5iYbs5y@->f_8)xVj*>lLsZm= z>Ai@4bf5WFi1?Ci=AB42Gly{mtr5*LQ+M32DSEoh#HY~JMvt8Fw~Fc>abKhAwy0{S zx{cG^?NT^EbX_mNmk}`h<$}J(ixh%idEyZ~~)-!b5cE$ZAwl= zoZdV55N*kE_LxeN6S~T;_mRMF4}YWap5%=<$t(Y_|COflU;qABAAj`!0SR}ZNoTDA E02B2d*Z=?k literal 0 HcmV?d00001 diff --git a/Profiles/WinConst.lua b/Profiles/WinConst.lua index cb36bc9..24f9261 100644 --- a/Profiles/WinConst.lua +++ b/Profiles/WinConst.lua @@ -176,6 +176,7 @@ WIN_PRF_TYPE = 'Type' WIN_PRF_MAIN = 'Main' WIN_PRF_START = 'Start' WIN_PRF_END = 'End' +WIN_PRF_SPLIT = 'Split' WIN_PROFILETYPE = 'ProfileType' WIN_SEPARATIONTYPE = 'SeparationType' @@ -195,6 +196,9 @@ WIN_FILLDELTA = 'FillDelta' WIN_MAINGUIDE = 'MainGuide' WIN_STARTGUIDE = 'StartGuide' WIN_ENDGUIDE = 'EndGuide' +WIN_SRF_MAIN = 'MainSurface' +WIN_SRF_START = 'StartSurface' +WIN_SRF_END = 'EndSurface' WIN_BOTTOMRAIL = 'BottomRail' diff --git a/Profiles/WinLib/WinCalculate.lua b/Profiles/WinLib/WinCalculate.lua index 0a8fb4f..92e805c 100644 --- a/Profiles/WinLib/WinCalculate.lua +++ b/Profiles/WinLib/WinCalculate.lua @@ -1526,6 +1526,7 @@ function WinCalculate.MakeSolidByExtrusion(nGeoId, nOutlineId, nMainProfileId, n -- recupero outline del profilo Main e lo estrudo local nMainOutlineId = EgtGetFirstNameInGroup( nMainProfileId, WIN_SECTION) local nMainExtrusionId = EgtSurfTmSwept( nSolidLayerId, nMainOutlineId, nGuideId, false, WIN_SURF_APPROX) + EgtSetName( nMainExtrusionId, WIN_SRF_MAIN) -- posiziono il profilo Start local nRefStartProfileId = EgtGetFirstNameInGroup( nStartProfileId, WIN_REF) local b3RefStartProfile = EgtGetBBoxGlob(nRefStartProfileId, GDB_BB.STANDARD) @@ -1596,13 +1597,14 @@ function WinCalculate.MakeSolidByExtrusion(nGeoId, nOutlineId, nMainProfileId, n nOutStartProfileId = EgtGetFirstNameInGroup( nStartProfileId, sStartProfileType) end local nStartExtrusionId = EgtSurfTmSwept( nSolidLayerId, nOutStartProfileId, nStartGuideId, false, WIN_SURF_APPROX) + EgtSetName( nStartExtrusionId, WIN_SRF_START) -- taglio estrusi per ottenere solido local nExtrCopyId = EgtCopy( nMainExtrusionId, nSolidLayerId) EgtSurfTmCut( nMainExtrusionId, nStartExtrusionId, true, false) EgtSurfTmCut( nStartExtrusionId, nExtrCopyId, true, false) -- creo fori per spine su Start local nDowelLayerId = EgtGroup( nPartId) - EgtSetName( nDowelLayerId, 'Dowel') + EgtSetName( nDowelLayerId, WIN_DOWEL) local nPrevOutlineId, nEndOutlineId = GetPrevNextOutline( nProfileType, nOutlineId, nOutlineLayerId) local sOutlineName = EgtGetName( nOutlineId) local sPrevOutlineName = EgtGetName( nPrevOutlineId) @@ -1673,26 +1675,29 @@ function WinCalculate.MakeSolidByExtrusion(nGeoId, nOutlineId, nMainProfileId, n if not dEnd then dEnd = EgtGetInfo( nOrigDowelId, WIN_DWL_TOPPARAEND, 'd') end - local nDowelId = EgtCopyGlob( nOrigDowelId, nDowelLayerId) - EgtSetColor( nDowelId, Color3d( 128, 128, 128)) - local nLeftGeoId = EgtGetFirstNameInGroup( nGeoLayerId, WIN_GEO_LEFT) - local ptDowelCenter = EgtCP( nDowelId) - local vtParaStartPoint = EgtSV( nOutlineId) - -- posiziono i fori e gli assegno estrusione e spessore - EgtMove( nDowelId, ( EgtSP( nLeftGeoId) - ptDowelCenter) * vtParaStartPoint * vtParaStartPoint + vtParaStartPoint * dStart) - -- EgtMove( nDowelId, Point3d( ptDowelCenter:getX(), EgtSP( nLeftGeoId):getY(), ptDowelCenter:getZ()) - ptDowelCenter + vtParaStartPoint * dStart) - EgtModifyCurveExtrusion( nDowelId, vtParaStartPoint) - EgtModifyCurveThickness( nDowelId, dEnd - dStart) - -- creo solido di estrusione - local nDowelExtrusionId = EgtSurfTmByRegionExtrusion( nSolidLayerId, nDowelId, vtParaStartPoint * ( dEnd - dStart + 1)) - EgtMove( nDowelExtrusionId, - vtParaStartPoint) - EgtInvertSurf( nDowelExtrusionId) - -- taglio estrusi per ottenere solido - local nDowelExtrCopyId = EgtCopy( nDowelExtrusionId, nSolidLayerId) - EgtSurfTmCut( nDowelExtrusionId, nStartExtrusionId, true, false) - EgtSurfTmCut( nStartExtrusionId, nDowelExtrCopyId, true, false) - EgtErase( nDowelExtrCopyId) - nOrigDowelId = EgtGetNextName( nOrigDowelId, WIN_DOWEL .. '*') + -- verifico che start ed end abbiano dei valori + if dStart and dEnd then + local nDowelId = EgtCopyGlob( nOrigDowelId, nDowelLayerId) + EgtSetColor( nDowelId, Color3d( 128, 128, 128)) + local nLeftGeoId = EgtGetFirstNameInGroup( nGeoLayerId, WIN_GEO_LEFT) + local ptDowelCenter = EgtCP( nDowelId) + local vtParaStartPoint = EgtSV( nOutlineId) + -- posiziono i fori e gli assegno estrusione e spessore + EgtMove( nDowelId, ( EgtSP( nLeftGeoId) - ptDowelCenter) * vtParaStartPoint * vtParaStartPoint + vtParaStartPoint * dStart) + -- EgtMove( nDowelId, Point3d( ptDowelCenter:getX(), EgtSP( nLeftGeoId):getY(), ptDowelCenter:getZ()) - ptDowelCenter + vtParaStartPoint * dStart) + EgtModifyCurveExtrusion( nDowelId, vtParaStartPoint) + EgtModifyCurveThickness( nDowelId, dEnd - dStart) + -- creo solido di estrusione + local nDowelExtrusionId = EgtSurfTmByRegionExtrusion( nSolidLayerId, nDowelId, vtParaStartPoint * ( dEnd - dStart + 1)) + EgtMove( nDowelExtrusionId, - vtParaStartPoint) + EgtInvertSurf( nDowelExtrusionId) + -- taglio estrusi per ottenere solido + local nDowelExtrCopyId = EgtCopy( nDowelExtrusionId, nSolidLayerId) + EgtSurfTmCut( nDowelExtrusionId, nStartExtrusionId, true, false) + EgtSurfTmCut( nStartExtrusionId, nDowelExtrCopyId, true, false) + EgtErase( nDowelExtrCopyId) + end + nOrigDowelId = EgtGetNextName( nOrigDowelId, WIN_DOWEL .. '*') end end -- posiziono il profilo End @@ -1759,6 +1764,7 @@ function WinCalculate.MakeSolidByExtrusion(nGeoId, nOutlineId, nMainProfileId, n nOutEndProfileId = EgtGetFirstNameInGroup( nEndProfileId, sEndProfileType) end local nEndExtrusionId = EgtSurfTmSwept( nSolidLayerId, nOutEndProfileId, nEndGuideId, false, WIN_SURF_APPROX) + EgtSetName( nEndExtrusionId, WIN_SRF_END) -- taglio estrusi per ottenere solido EgtSurfTmCut( nMainExtrusionId, nEndExtrusionId, true, false) EgtSurfTmCut( nEndExtrusionId, nExtrCopyId, true, false) @@ -1828,24 +1834,27 @@ function WinCalculate.MakeSolidByExtrusion(nGeoId, nOutlineId, nMainProfileId, n if not dEnd then dEnd = EgtGetInfo( nOrigDowelId, WIN_DWL_TOPPARAEND, 'd') end - local nDowelId = EgtCopyGlob( nOrigDowelId, nDowelLayerId) - EgtSetColor( nDowelId, Color3d( 128, 128, 128)) - local nRightGeoId = EgtGetFirstNameInGroup( nGeoLayerId, WIN_GEO_RIGHT) - local ptDowelCenter = EgtCP( nDowelId) - local vtParaEndPoint = EgtEV( nOutlineId) - -- posiziono i fori e gli assegno estrusione e spessore - EgtMove( nDowelId, ( EgtSP( nRightGeoId) - ptDowelCenter) * vtParaEndPoint * vtParaEndPoint - vtParaEndPoint * dStart) - EgtModifyCurveExtrusion( nDowelId, - vtParaEndPoint) - EgtModifyCurveThickness( nDowelId, dEnd - dStart) - -- creo solido di estrusione - local nDowelExtrusionId = EgtSurfTmByRegionExtrusion( nSolidLayerId, nDowelId, - vtParaEndPoint * ( dEnd - dStart + 1)) - EgtMove( nDowelExtrusionId, vtParaEndPoint) - EgtInvertSurf( nDowelExtrusionId) - -- taglio estrusi per ottenere solido - local nDowelExtrCopyId = EgtCopy( nDowelExtrusionId, nSolidLayerId) - EgtSurfTmCut( nDowelExtrusionId, nEndExtrusionId, true, false) - EgtSurfTmCut( nEndExtrusionId, nDowelExtrCopyId, true, false) - EgtErase( nDowelExtrCopyId) + -- verifico che start ed end abbiano dei valori + if dStart and dEnd then + local nDowelId = EgtCopyGlob( nOrigDowelId, nDowelLayerId) + EgtSetColor( nDowelId, Color3d( 128, 128, 128)) + local nRightGeoId = EgtGetFirstNameInGroup( nGeoLayerId, WIN_GEO_RIGHT) + local ptDowelCenter = EgtCP( nDowelId) + local vtParaEndPoint = EgtEV( nOutlineId) + -- posiziono i fori e gli assegno estrusione e spessore + EgtMove( nDowelId, ( EgtSP( nRightGeoId) - ptDowelCenter) * vtParaEndPoint * vtParaEndPoint - vtParaEndPoint * dStart) + EgtModifyCurveExtrusion( nDowelId, - vtParaEndPoint) + EgtModifyCurveThickness( nDowelId, dEnd - dStart) + -- creo solido di estrusione + local nDowelExtrusionId = EgtSurfTmByRegionExtrusion( nSolidLayerId, nDowelId, - vtParaEndPoint * ( dEnd - dStart + 1)) + EgtMove( nDowelExtrusionId, vtParaEndPoint) + EgtInvertSurf( nDowelExtrusionId) + -- taglio estrusi per ottenere solido + local nDowelExtrCopyId = EgtCopy( nDowelExtrusionId, nSolidLayerId) + EgtSurfTmCut( nDowelExtrusionId, nEndExtrusionId, true, false) + EgtSurfTmCut( nEndExtrusionId, nDowelExtrCopyId, true, false) + EgtErase( nDowelExtrCopyId) + end nOrigDowelId = EgtGetNextName( nOrigDowelId, WIN_DOWEL .. '*') end end @@ -1854,7 +1863,167 @@ function WinCalculate.MakeSolidByExtrusion(nGeoId, nOutlineId, nMainProfileId, n end -- funzione che posiziona i fori delle spine degli split, li estrude e crea il solido -function WinCalculate.AddSplitDowelToExtrusion(nGeoId, nOutlineId, nMainProfileId, nStartProfileId, nEndProfileId, nProfileType, nSolidLayerId, nAreaType) +function WinCalculate.AddSplitDowelToExtrusion(nOutlineId, nProfileFrameLayerId, nFrameProfileLayerId, nProfileType, nPartId, nSolidLayerId) + -- recupero l'area di cui fa parte il pezzo + local sOutlineName2 = EgtGetName( nOutlineId) + local nOutlineLayerId = EgtGetParent( nOutlineId) + local nAreaLayerId = EgtGetParent( nOutlineLayerId) + -- se profilo Bottom con BottomRail, esco + if nProfileType == WIN_PRF.BOTTOM then + local nBaseOutlineLayerId = EgtGetFirstNameInGroup( nAreaLayerId, WIN_AREAOUTLINE) + local nBottomRailId = EgtGetInfo( nBaseOutlineLayerId, WIN_BOTTOMRAIL, 'i') + if nBottomRailId and nBottomRailId == 1 then + return + end + end + -- verifico la presenza di eventuali Split + local nSplitLayerId = EgtGetFirstNameInGroup( nAreaLayerId, WIN_SPLIT) + if not nSplitLayerId then + return + end + local nSplitId = EgtGetFirstInGroup( nSplitLayerId) + + -- se presenti, verifico se intersecano l'outline che sto analizzando + local ptInters = EgtIP( nOutlineId, nSplitId, EgtSP( nSplitId)) + if not ptInters then + return + end + -- se interseca, recupero il profilo dello split + local sSplitProfileType = EgtGetInfo( nSplitId, WIN_PROFILETYPE) + local nOrigSplitProfileId = EgtGetFirstNameInGroup( nProfileFrameLayerId, sSplitProfileType) + -- creo copia del profilo + local nSplitProfileId = EgtCopy( nOrigSplitProfileId, nFrameProfileLayerId) + local sSplitProfileType = EgtGetName( nOrigSplitProfileId) + EgtSetInfo( nSplitProfileId, WIN_PRF_TYPE, sSplitProfileType) + EgtSetName( nSplitProfileId, WIN_PRF_SPLIT) + -- recupero intersezione con lato In + local nGeoLayerId = EgtGetFirstNameInGroup( nPartId, WIN_GEO) + local nGeoInId = EgtGetFirstNameInGroup(nGeoLayerId, WIN_GEO_IN) + local ptIntersIn = EgtIP( nGeoInId, nSplitId, EgtSP( nSplitId)) + -- recupero frame del profilo + local nSplitProfileFrameId = EgtGetFirstNameInGroup( nSplitProfileId, WIN_SECTIONFRAME) + local frInvertSplitProfile = EgtFR( nSplitProfileFrameId) + frInvertSplitProfile:invert() + -- lo applico a tutte le geometrie del profilo + EgtTransform( EgtGetAllInGroup( nSplitProfileId), frInvertSplitProfile) + -- assegno come riferimento del profilo il punto di intersezione + EgtChangeGroupFrame( nSplitProfileId, Frame3d( ptIntersIn, - EgtSV( nSplitId))) + + -- e lo porto nel sistema di riferimento corretto + + -- recupero profondita' start e end dei dowel + + -- ne disegno la superficie + + -- recupero solido del pezzo + local nSolidLayerId = EgtGetFirstNameInGroup( nPartId, WIN_SOLID) + local nMainExtrusionId = EgtGetFirstNameInGroup( nSolidLayerId, WIN_SRF_MAIN) + -- creo fori per spine su Split + local nDowelLayerId = EgtGetFirstNameInGroup( nPartId, WIN_DOWEL) + local nPrevOutlineId, nEndOutlineId = GetPrevNextOutline( nProfileType, nOutlineId, nOutlineLayerId) + local sOutlineName = EgtGetName( nOutlineId) + local sPrevOutlineName = EgtGetName( nPrevOutlineId) + SplitJointType = WIN_PART_JNT.FULL + if SplitJointType == WIN_PART_JNT.ANGLED then + + elseif SplitJointType == WIN_PART_JNT.FULL then + -- recupero profondita' d'inizio e fine + local sStart = WIN_DWL_TOPPERPSTART + local sEnd = WIN_DWL_TOPPERPEND + if nProfileType == WIN_PRF.BOTTOM then + sStart = WIN_DWL_BOTTOMPERPSTART + sEnd = WIN_DWL_BOTTOMPERPEND + elseif nProfileType == WIN_PRF.BOTTOMRAIL then + sStart = WIN_DWL_RAILBOTTOMPERPSTART + sEnd = WIN_DWL_RAILBOTTOMPERPEND + end + -- recupero profondita' d'inizio e fine + --local sStart = EgtIf( sOutlineName == WIN_BOTTOM, WIN_DWL_BOTTOMPERPSTART, WIN_DWL_TOPPERPSTART) + --local sEnd = EgtIf( sOutlineName == WIN_BOTTOM, WIN_DWL_BOTTOMPERPEND, WIN_DWL_TOPPERPEND) + -- ciclo sui fori trovati + local nOrigDowelId = EgtGetFirstNameInGroup( nSplitProfileId, WIN_DOWEL .. '*') + while nOrigDowelId do + local dStart = EgtGetInfo( nOrigDowelId, sStart, 'd') + if not dStart then + dStart = EgtGetInfo( nOrigDowelId, WIN_DWL_TOPPERPSTART, 'd') + end + local dEnd = EgtGetInfo( nOrigDowelId, sEnd, 'd') + if not dEnd then + dEnd = EgtGetInfo( nOrigDowelId, WIN_DWL_TOPPERPEND, 'd') + end + local nDowelId = EgtCopyGlob( nOrigDowelId, nDowelLayerId) + EgtSetColor( nDowelId, Color3d( 128, 128, 128)) + local nInGeoId = EgtGetFirstNameInGroup( nGeoLayerId, WIN_GEO_IN) + local ptDowelCenter = EgtCP( nDowelId) + local vtPerpStartPoint = EgtSV( nOutlineId) + vtPerpStartPoint:rotate( Z_AX(), 90) + -- posiziono i fori e gli assegno estrusione e spessore + EgtMove( nDowelId, ( EgtSP( nInGeoId) - ptDowelCenter) * vtPerpStartPoint * vtPerpStartPoint - vtPerpStartPoint * dStart) + -- EgtMove( nDowelId, Point3d( ptDowelCenter:getX(), EgtSP( nInGeoId):getY(), ptDowelCenter:getZ()) - ptDowelCenter - vtPerpStartPoint * dStart) + EgtModifyCurveExtrusion( nDowelId, - vtPerpStartPoint) + EgtModifyCurveThickness( nDowelId, dEnd - dStart) + -- creo solido di estrusione + local nDowelExtrusionId = EgtSurfTmByRegionExtrusion( nSolidLayerId, nDowelId, - vtPerpStartPoint * ( dEnd - dStart + 1)) + EgtMove( nDowelExtrusionId, vtPerpStartPoint) + EgtInvertSurf( nDowelExtrusionId) + -- taglio estrusi per ottenere solido + EgtSurfTmCut( nMainExtrusionId, nDowelExtrusionId, true, false) + -- EgtSurfTmCut( nDowelExtrusionId, nExtrCopyId, true, false) + nOrigDowelId = EgtGetNextName( nOrigDowelId, WIN_DOWEL .. '*') + end + elseif SplitJointType == WIN_PART_JNT.SHORT then + -- recupero profondita' d'inizio e fine + local sStart = WIN_DWL_TOPPARASTART + local sEnd = WIN_DWL_TOPPARAEND + if sOutlineName == WIN_BOTTOM then + sStart = WIN_DWL_BOTTOMPARASTART + sEnd = WIN_DWL_BOTTOMPARAEND + elseif sOutlineName == WIN_SPLIT then + local sStartType = EgtGetInfo( nSplitProfileId, WIN_PRF_TYPE) + if ( sStartType and sStartType == WIN_RAIL_BOTTOM) or sPrevOutlineName == WIN_SPLIT then + sStart = WIN_DWL_RAILBOTTOMPARASTART + sEnd = WIN_DWL_RAILBOTTOMPARAEND + end + elseif sPrevOutlineName == WIN_BOTTOM then + sStart = WIN_DWL_BOTTOMPARASTART + sEnd = WIN_DWL_BOTTOMPARAEND + end + --local sStart = EgtIf( sOutlineName == WIN_BOTTOM or sPrevOutlineName == WIN_BOTTOM or sOutlineName == WIN_BOTTOMRAIL, WIN_DWL_BOTTOMPARASTART, WIN_DWL_TOPPARASTART) + --local sEnd = EgtIf( sOutlineName == WIN_BOTTOM or sPrevOutlineName == WIN_BOTTOM or sOutlineName == WIN_BOTTOMRAIL, WIN_DWL_BOTTOMPARAEND, WIN_DWL_TOPPARAEND) + -- ciclo sui fori trovati + local nOrigDowelId = EgtGetFirstNameInGroup( nSplitProfileId, WIN_DOWEL .. '*') + while nOrigDowelId do + local dStart = EgtGetInfo( nOrigDowelId, sStart, 'd') + if not dStart then + dStart = EgtGetInfo( nOrigDowelId, WIN_DWL_TOPPARASTART, 'd') + end + local dEnd = EgtGetInfo( nOrigDowelId, sEnd, 'd') + if not dEnd then + dEnd = EgtGetInfo( nOrigDowelId, WIN_DWL_TOPPARAEND, 'd') + end + local nDowelId = EgtCopyGlob( nOrigDowelId, nDowelLayerId) + EgtSetColor( nDowelId, Color3d( 128, 128, 128)) + local nLeftGeoId = EgtGetFirstNameInGroup( nGeoLayerId, WIN_GEO_LEFT) + local ptDowelCenter = EgtCP( nDowelId) + local vtParaStartPoint = EgtSV( nOutlineId) + -- posiziono i fori e gli assegno estrusione e spessore + EgtMove( nDowelId, ( EgtSP( nLeftGeoId) - ptDowelCenter) * vtParaStartPoint * vtParaStartPoint + vtParaStartPoint * dStart) + -- EgtMove( nDowelId, Point3d( ptDowelCenter:getX(), EgtSP( nLeftGeoId):getY(), ptDowelCenter:getZ()) - ptDowelCenter + vtParaStartPoint * dStart) + EgtModifyCurveExtrusion( nDowelId, vtParaStartPoint) + EgtModifyCurveThickness( nDowelId, dEnd - dStart) + -- creo solido di estrusione + local nDowelExtrusionId = EgtSurfTmByRegionExtrusion( nSolidLayerId, nDowelId, vtParaStartPoint * ( dEnd - dStart + 1)) + EgtMove( nDowelExtrusionId, - vtParaStartPoint) + EgtInvertSurf( nDowelExtrusionId) + -- taglio estrusi per ottenere solido + local nDowelExtrCopyId = EgtCopy( nDowelExtrusionId, nSolidLayerId) + EgtSurfTmCut( nDowelExtrusionId, nMainExtrusionId, true, false) + EgtSurfTmCut( nMainExtrusionId, nDowelExtrCopyId, true, false) + EgtErase( nDowelExtrCopyId) + nOrigDowelId = EgtGetNextName( nOrigDowelId, WIN_DOWEL .. '*') + end + end + end @@ -2271,7 +2440,7 @@ function WinCalculate.CalcFrameSolid(nPartId, nOutlineId, nGeoId, nOutlineLayerI -- nAreaType = EgtGetInfo( nAreaId, WIN_AREATYPE, 'i') -- until not nAreaId or ( nAreaType ~= WIN_AREATYPES.SPLIT and nAreaType ~= WIN_AREATYPES.NULL) -- --- WinCalculate.AddSplitDowelToExtrusion(nGeoId, nOutlineId, nProfileType, nSolidLayerId, nAreaType) + WinCalculate.AddSplitDowelToExtrusion( nOutlineId, nProfileFrameLayerId, nFrameProfileLayerId, nProfileType, nPartId, nSolidLayerId) end -- funzione che crea il solido del Fill