From 267587fe2f90985c464279f58ca04e6f9b02a4ea Mon Sep 17 00:00:00 2001 From: Adriaan Wormgoor Date: Wed, 18 Sep 2013 22:35:38 +0200 Subject: [PATCH] vertical shapes implemented --- css/fixedPosInterface.css | 35 ++++++++++++++++++-- img/logo_smaller.png | Bin 19093 -> 31902 bytes img/vertical_shape_icons/converging.png | Bin 2339 -> 1935 bytes img/vertical_shape_icons/diverging.png | Bin 2640 -> 2041 bytes img/vertical_shape_icons/sinus.png | Bin 3344 -> 3107 bytes img/vertical_shape_icons/straight.png | Bin 0 -> 1241 bytes index.html | 7 ++++ js/canvasDrawing_v01.js | 1 + js/gcodeGenerating_v01.js | 33 ++++++++++++++++--- js/main.js | 6 ++-- js/previewRendering_v02.js | 14 +++++--- js/verticalShapes.js | 41 ++++++++++++++++++++++++ 12 files changed, 124 insertions(+), 13 deletions(-) create mode 100644 img/vertical_shape_icons/straight.png create mode 100644 js/verticalShapes.js diff --git a/css/fixedPosInterface.css b/css/fixedPosInterface.css index 56af0cd..eb071f2 100644 --- a/css/fixedPosInterface.css +++ b/css/fixedPosInterface.css @@ -17,6 +17,37 @@ body { /*}*/ +#verticalShapes { + position:absolute; + right: -56px; + bottom: 15px; + /*background-color: #fff;*/ +} + +.verticalshape { + width: 50px; + height: 50px; + border: 2px solid #333; + border-radius: 0px 5px 5px 0px; + margin-top: 4px; + /*background-color: #f0f;*/ + cursor: pointer; +} + +.straight { + background: url('../img/vertical_shape_icons/straight.png') no-repeat; +} +.diverging { + background: url('../img/vertical_shape_icons/diverging.png') no-repeat; +} +.converging { + background: url('../img/vertical_shape_icons/converging.png') no-repeat; +} +.sinus { + background: url('../img/vertical_shape_icons/sinus.png') no-repeat; +} + + /* Portrait */ @media screen and (orientation:portrait) { body { @@ -186,8 +217,8 @@ body { /* THERMOMETER */ #thermometerContainer { position: absolute; - right: 25px; - top: 370px; + right: 5px; + top: 360px; } #thermometerCanvas { /*background: #59b2b8;*/ diff --git a/img/logo_smaller.png b/img/logo_smaller.png index 17f27990ae8a9c5964bd4090aba1abf3b41214a2..f000e5c4ff29ecfafab7170fb69ab278164e90f7 100644 GIT binary patch literal 31902 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%0A2{$K`0M1|Ax zm%gEsdrni^?kUuDL?@~P<&>Pf?Bk=VY20O9P*@73mo;?bYjsRx z+^jGf&ML77-oAbNXrNetCx$eT0l|2^x1J$*fhW+lLD`D2m<@Z7ipxu>7K^O`XJ*4v zV!?dztgo){g;J_xVq&;H$QAic0!?)W3JVA(YE+!%l7`^=LBTf=m)M03x$oV}sMTs* zFkS_W<_w?n0mYZq7^@(cDxpj=(M#weLr@5XMaGcDY*s@iK60_G-hEHp66F;9XN8g> z&e8C8l-FK+O=Jn1Q})I^kNgw#&2pFiaiEvk8=ojHv4OCmFv|0xn@m61quJ zai&<>n2L4N1JTspHbJ^jkV9?HAE8s(7sv=kakIQcIJPiDAf-gLp#CWx1qI{(SYLH; zKs}P%(dnElKIEofj~+divSPz|%D9fF)~FhqdPR8TWleTQ(z|txv!mAQLckhm{rdHP z;T;d55ivC5t%X2DU;1>xUnukBVd^{TK1xj+2w!k33(cxl3)E#A+99=T^@Ir%ij?!` z&-Vw4>9ex4L?Fn;<%ZDTB@>FxZBkrcaaogi8^zn^@xO0pX3JP6?J{VKd(B6dxub?=>r#}yb3Z`Td= zAec*RO%Z8l#CEM(1d1&YSy_1r2xdFt{Z$acW0Hb#twrudNKWZ`B$ZjHLPvZA2TK^3#{b?-~SC-!~ z3O_i2`4b+d*Qd-RAFC%Ls={^WjG0Os5AUMgd-jYTHEL9E%qas7*hj`2Ynv>B+q;P{ z0FF{2SCQRuyO~Lpv8brH_3G8D7k~EIXR{*X66Akdx{?CJ{ON-yXVR~$mQ!$O1Wlg% zf?!j;*Uw{Ld@vCh)8(_|Ks=w6lzbVeTA;ji>5{&_u3qEG8#!*}fp`J8sSy>N)@^%%4^w<`(VEiC>klw%V+UnCQr}-TI^*$7?m5z^W)OcW40nK$1t^S-U(c0><&oi2KQbIMQma zqjoU~G-Jd>dVB4c1{nKz(AKl&db8-HcgPx&#Nvmg&Z8TFq2Yoey4|-*6|B;7ACI)R zZr$1wYtu`K_w*e!luqv6Mcbw?qjJRPVbQTP_q{Ku1!BdT%3J-ha=8aIuADw5{@p4e z;V7Jn8@i&fNrxw@)IQ#>au2(zN5JiHIY3wRBI(h<*YO_2THy;>ojTowC0W-I_^(OPU4b5=CNbP#7?@a z*NWgxYA7a3C%Cg2)bFwBy=dS5ELykjP_lHn^z?T0(MMAeyt+WsJzj~o(_guqj~Jv9 z9=!bxgTYV%3UMA(*3KTT1W=wQ+Y)xl@wrn@v(e#8SKt|&lI?)jmd`s zJy}!5h7B7gVQnYz?ub3R_ZSf;*D4W{014%wrDeT)_x=iK@&%{=8G$%P!#s{72CmA_ z&kw99uYXWO1Wk_bn+uKe%9Y8s&y*WR9PF0i!Y<{RZ%VGcj4F}((AM) zo7H-T$F2k|2!cR-)fzSV2N=lZO`)?zN=Bj4`8BkWG@Km)bc;@jqKBTJLR-Jt4*n^p zR&834A+UKAeY3(8_`w1-Mb zyLVp{HM8*Wuzm2%c3e9f9s_L59HEY() zm6VWcGSgrFH^roIeCp}H<6Zc9S*OVi>IhF*1?OOcGAiy>W|DR>a8tJQNJvVc*4+|u zJ)eMTQ*}Vm%_6EUGQsg&i9*b>WYC~NeSshg;A!(Y1_On=jM(iM3~a=?bJyv{^$Kc} z5&}iGQTOgGG1oS9J6lVrvl=mfy`Fm6BqPFVIZ1U%Tusva*=|I`Npqm#nGc!#b z({Tv_)L `TZOZLr<@ThlN$75ZjqEq2GBuH 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 Y0B~6WW9t*vtN;K207*qoM6N<$g1-~C+5i9m diff --git a/img/vertical_shape_icons/converging.png b/img/vertical_shape_icons/converging.png index 1e84963ae28735422411bebb1a5e915abd420db0..f243974483c7181b838ed2be594f93ddbeff81cf 100644 GIT binary patch delta 1896 zcmV-u2bcJx5|0m%83+OZ005C)ALfxECw~VqNkl?yYHaNU3uK4u=t)oL4Vxl z@9+lM^=@OX<1Izeiz>5cM`! zgbLy2_-_d{vt&zBD!ZQ7YTH2&nTA>{8h#Mjwikv`v7nnKCrap9XY}HW{i?ZZSkTPl zT(;Z6=a;J6+nw2&iDO4+YjykE?|;^tP5aP7dEwxsuH*BA#An&CB_pTtcD}&cR`BKJ z%9Zaojvt#_ICx-dt99Y?l}e??D4m%u>AFS<+l9AwSt&9mKq!0w7mJXg!j{qe0);x9zi===gTu)S$o2I5|Du2!yqq>%Z z{c|}+uE$q)u;lfxli(&2P>OK^SP8QDIgPPIM4qvT_-_htS(XPAX<81nfhzEXcN`~h z+%Tz)mXuLuuoAWi@%*savY}TYuj_g)pVtgsL(E&2YuSF>o5C$cbhCmblU7IpD`+&k zInKsLO-%B&J) znC6#2sYQUr!4qDi3C3(u>bkz;_&-y8_^^a$old_F!vY>qt;ZHb)PE8Yz0gZUjE66o z5nD19M!0_0@z82uYm$gXavT9h83ooLj8a&>{Yf^kNa`3TP5~Dupa(}Xkx*6RU@nXV zX0P7W@eq+sPfTFhUEg&A&KPow_IjYgIYm{XRR=-OfB)shVZ)-a!7;}8L8xhQIxyO6 z-hc(yQ$j?P4mM0mM}KAj3q1~<4kt(~lp!)5kCZ>S8)_mZVpu(=GpTrr42I8^aH3!{ z$xq#-~8LZVX&u8EC80S@-Px&!g|DlLF`V2^^)jGEA-9Nkk$l{C{*I*Q{ zy5dOz^M99z>!+s1jvbv{d}R8E<*oAs}w z=*>A|dytk#Lawgvym#utU*9_GdBGok|K#JxA7HVhK`wvd#;S{8t||RSD4Jm~nD4P) z+`qQo{PXK?FI}l9wwmS+-xcCfxMJ#Lz0^pQbP#N zxqpPiUiszG>GJrepZ)lkcmIhATZUBO4-XO+;t|z`CUf%n#g|SlV%7`8P)gGnef58~ zPl>|R{Ii&>k@#Ti<&#Is2TC=!UR`U*2rCYEkh_6M@J9~c_oqL;tn2E`y`vfgA!C$J zVqI~I6FK2y3LPa;8{U8ISH}?++6YZ{2!Am5GzJGthEYUjXG-%2Cl%y?FC0%LbW($> z{@)4${83(xAgHhpADVph$h6&cy%ugkC}M!HKmZ5}uyF9;arg<^#XQ}1RYSDG3BP+j z^jBTCp?Gm`QcdF6p*i{Mfx$Aze}~TFcTNL`T6h|!Cbw#L%blp^V^VY_HF0qitW|?% z%BSwc(0%<}Amja`cxEU4Y{Dc1KbE?!_fZ5)e;}tX4)IrveuqaX{J0&&9MeHo;@%E~ inV#WB(r}Ld2rvN4dXm@mGc51`0000yp#oV0e*CUKHts;CM@pb}C_x%b33=aS!$|MACrl{?&%?#xIk}!2Ab-X| zzoGKWT*^xNe-l>X2AVDxgLN*_vhRRMzhnf?qnW_py2rTy#t;~4P)dc5S?9*r$p937 zG~+{ahIML5#KxO_1tf4+a=!ccUf>sT!RD8h4uBbV@X;LO@lT$$G6zhpz~Ed#({Z3$ zYk=nkkcgX*O2xs&$Bl*qz8^p;X@5f^ffWHCl&sxRvOWYNUF!=VfwyG`e(6}uP*AIR zaO?Ie6bidAog0Q%E=@zR)PVaBHlR{zz{_VQ;LPbUuxpDbSX;rdc6(xhTG`|wn2Iu**>C{7iIw`ARd$}O^6u+(nATb zup)yPf`fxL82E1lWOug};zpGq5sf~gmTz>a@_qn<-D?u>g=kIG z;nGbs>Q;oPWp${96@PI$)M6pExD3jAEeiG3Lux4=5liB3H(QQwMM%f2(@Zf0LYcx5 z2!ZtcU_X$*;BIurl%4`%GV1#*eg-bq+=2DgB*(zobISnwAn;6vSAIR zyZHzN94`HW?G?6q3q*RGSsZmcVHjq}-l+-u-0p-N=S9UvF3Ofou zq7vu(CJz-3SbrpTO8>|Vl*Ebzl`OMZuYnM4LXB+VY+fwZQ43+mOH|sU7Spap)o7t9 zQ1j?}Xm}8qDripfA&d7`BiO=6Hk)59!WM!VN+q!K9ngXgi-x*E5CaKQH<8s^3s%=k z&_qCnFbp({d7ctx&wvE(YD!7Z6vEIuzWlfV>+2=RWPb)=^mqyvZbhA>w&NsL$v{dK zOLbUU-iF;q8!2cQSgCJ<TnzBm0#M@ zr!Llzx{#QyKLN#(PYZ^BHGw}#(}4lD?zb6>;k%fywo!%~?|%xpsbTo`x6VQ)J)rxn z@Ysjxn>u1z@aRYiW?vkG<5-=KK3;(vHy`PafC(J17$gz+ua2Z5Zu3^zYu(R-Ea^6c zRDWJ9?&{O_Qz+((b2)uDhmgsd5d+O6K2p)qf1k~!^}+Vs`6+m`v<)A8xE#(cl0|9% z!y^HLmaC6(lx$)SIPk%H_i-_g_2Oq|v)Yv?wHb?pFehJ+#m~KDSTmP_r{1OxAT?;h z+_@>Z^4e)VyDxsShA!6n&vnfoIuOQf)PI7FBdgR|@auQ~4mTH;^vU~4E#!_SLH}-=jhn*EtD{P;)TfLG^Vz-s7oE_&4!1l`?gVV+#Z3SB{2W4;Kjr>}qQ6s&Jl;D6`8 z_&qE>%;P{~(mv3-es&~4s1;v%vIE!uc29>I>EhaVE@0qg^g6ha!8^Objj?tYyg6AF zv9T>F4b+y>TKWF>F2U5qF?j!YN^$ zd>@BBmB2+$&k1XK<-aFMyRB608h;~u!lb8)ym|E^>M8@pb_rJ3%b)@+`jMw%$X5kI zNqzp@B>eOzZ-Q-`kUKGi4I;9FrLhuYsH0T%^S@PF{uytZR& zkax}?bckL&d>}Yt2e@m~xeUyn9-|=-Jy}A_F%iHRh}h&P7pdwO{kbqF)_+t`M{`DJ zlMOic@)%sWIEC|m8=NYgxM(z&4j%|Jbi{cc9U?ed*rW-fQ&LU<;3!=OGr^$M@F9^hP8~XsSp581C94?~wBFNU$Ksc9VH+Ygj^aM{rC-{F zuVFMBPY9#Au6P2dLkPSLU2I)634ChDJ9HrCz~y^^x0b{}%<2;qmS~_GwV%pmj0{cp z1;!I;r5szymMvxbF`0m{PT*5d*Uqzk`EO3xzh$VKMj(5K&gwMD`CB((MAdsHPohyGk+;k zKu9y}VT7OaR%|*NDVodzA21>gc5x3}^a@KEu@wI~q`NU|JIHrrCYI4z{;L$pq3=Kz znf9INx}m~#Qt*sW9WCe?{&SDyp1&9vxEE~!Re`SG3jP>GRT&ysE%OLrD9k+C+~5C?JYr+-=gvj1C#`2nycQ0JfMdJxywmv`>`^?{#uXD>~U zO&46xeI`|Q8KxGPs?mCTt-ijp)oDc|6NTy16*Ck|95Hkdupk_o2t@SGMs5BN3!PTy z%6pft{_agtiaWaI18d(TOd9bO`U`eU+?I=<-~asM1z`BqpPd;$R^mi!B!4aP=f<(8 zOmtC(8Sc5<^SL(W-tE;J*Z=-#WxE~iEQ*gq)BIL$3KPIGRL4AA+PpQtbmzu{`d$;J zB8*bZ7;@2zwAB+ViXAK|VPxWX`JLZfo<24H=(fY zxw?1b)5W#>n`1|YU;D+`bAPWLOJ&?hg}tbm^k#0%-FtEUBO5`Y2 z-1X?_Oy#HVU!J>i^5NY__r6?@MO0TCfvI=n2tU7;Hz8A-JDs(AkAF8F?i5F}m)%c>FjAIWJrnJfx zQs-YkUf*rbe|WQ5iv$T5!jJwI{QkE7u%@=FdyTcFt?iBK%&Cc2E>33)8Ehyu9QVM} zzDqSEHfUcejR_r{EWQ5j1=n{MzqlW^LxmV9OJjks#tH|GPJgEvxgI}ydb~VcK-eE5 z6EAf3K4DqQ0o&9V83Pf#@RO6}sbY1zvA5MQaZCyL5>nc@)ks17*tqCWik5fFuL#6-EL&xqwdqjAlG~} z)MX38Xn(VhU>Qp#ZB&!i4nq*3e}J|OQ0s2_9>9hyOU8fzlu*Jw4p$V$aU{BvODRPx zjRIB)_}Jj~iQroVIiP&t2_z4f6cPyQ#u)HLoyb-y@K#0!2MbD2QbugPf!?{tv_iVu z)EFcp2?k+}1fH^%VenvJ!Bl7Y)f}n7rqoN*On=^o*+E;#3fx4Y41*YWa$N>dezFf5 z0Ia03dAl#(E(W88VBqrz{Uo|R+q3O<7_5^t|8r|P*_9q z83-ci3}ofF4peQW^be~`1jNzxd8Z?4J52~>&<a3Db}EzeXXmB?qvvz#(6O13{BV|g4!8#BOK8!b(X)Oth33duLvIKk zW`}*-MjL=By*%@Wa*3=U1K^nogI#zZM%^#Z&_Jj=;U{&yff4I&BB1#LJlJ;g@TJ1V znK|!$2M-jMWkj0zUOeB$bd0|NjX-y8=I>nXUWP1twc`5s^$ l(je#uIsOl8KjYs53;n@%9 z-h6vYPMekjP371FoXn0a9qDMV{e5eF>)S_6DTV)rgMZlzG^2aPR|H*6n(T)VDB zfOsrLuQCLY0~rYTs{b7VbR#b+-G7k-acH7RD}jc(Tk5F&=|-@Fez$?pC64hPtVA7L zU(I5#re*#d0lD@05#3tYi$1ze3j*J95c(2ID)1O!+ew6$|5{2E&gM~hf8; zFgsnZbgbG-{cZ~zw`;id*A*nwaV%V#Lv^lzcp?tQMD%&rX+)dFrrKEStA7SfUSe;Z zu5)J>PS-UTzlyzO~S!*Ke~h; z{Nh;zB_BdIO&!^fSGtCnCf2*g&n5`Ru2ZX=PjAxXZM-&wS)$Wd7RU##GgH{STf^IbzHPt=N_LCczmtgU2f17n0jTbNCg`a*Em8l}G zzq*9?ZmdEOX`5;rZMidl@YznZmu$=3c_K1`(8s-xYIx(dzZ-5`_|{oG_u?hYE>nZxW8lavk$?fo9QZLI}@N`v}!1UIWc7k?8m$3~LsL`dnhjkVib zV3eK{CrT(!jX|l1&L&Y5vriSpiM5=Va1XU0W-y7Wg}af&JNwb^>S)dwRJ2)*5c#TtjIhkJA@UqB2{6D|;A| z)6bTz`IRwI?SDTKua#w!ZpoT{Gsfbf=1L?Z$RV`yE{S?HlMcJp|kZfxWsB zEM4DK%YSM{duY_#SpQ%bds_{hJTr|aF3ura$WZVE;!(EyFd!Zp2q~`OOe|CG_#uUc zapKBM30J=VG~&rPmacyYx95^}TF~BFvVh)7?~54vZGQ(&$D_h&vc4CTHu0eG#i}n_dGOqJLCvrm^oEJj-to~Lljcl>D+tNjg?^ZwGa-~ zl#b2gg9|Z5W)a5t>9Mm>CqlP~Kf}}_F1dZrq<@`FJepaUM6sMF36}84Su4ekrbDD` z3J6Y3L&C6I7COBs_jUfa>s_=PJt&RN(1=W;7n-OfQZ^Ocb(KQbW3ng?F!1mUmfPZz`0 zwy9$4;SoQ4FF4Qvgkgw)z$qe=j+meZ>Jup^j}*x1>>QlHds8aeAPgoFn(TUnwDLMC z2bD*I@*HpA3J8QQp!X-i7>*Q(*KfD8`BI@lmKl)wQq*XE%HxfLoAxEEDk(8f` z%J8C;Uh$+2hx(3Ytz%NGPaR{oQdha>BYG`efmC!Aua@`2$fr z7C`#4sU?eR4`nDaER6c_yom59)3fVyhU_#rKZZbt$9o5gWv0glU7<0L8VD(vZ!F8e zYca+~ngxfFTKX_OJWXCJmVbFpj|P;s_rn{oktVxR#}3HZ`|_&?xm@G7hCV(D2X#fe zU#2iJ*&S&?Oi@8Q*agu*V#%1<7V^no}=pw;eJ0g1CrH^-}J%Pj=9i|lxE&@d@2y&)2L zvL<6W15TMcY69B&XZXYK_Z|w6ycn-pOjKE@wps*+DT~G+|6_VPNN)@=HQ01Opn;<# z9y?nQ)Ax=QkSwpbw13iVdR!1JwtTP+#9^OL@N_>^zU`^btpT}}2C_KDr#HUHeZqgq z&{6-Wrbq32sJz6-`fi0;G4A*2bziv&40lv4X8UPg3`Zt4|NnK+F+08pM>^2A5CMH7 zU*8_nzeor^u^@U|o-8lYG!nyWTf=kz>Gx;_yGrAiG~Uu%%pCu7sr3&51^{u@zLqxq Rsks0E002ovPDHLkV1h(l<+A_) diff --git a/img/vertical_shape_icons/sinus.png b/img/vertical_shape_icons/sinus.png index 742a7777b93e1e7570091fb88d2da055ec0baa3b..a0524f729e609b499895ddde8c762d32bbfd699f 100644 GIT binary patch delta 3077 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 TN=WJK00000NkvXXu0mjfg}enT delta 3316 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 diff --git a/img/vertical_shape_icons/straight.png b/img/vertical_shape_icons/straight.png new file mode 100644 index 0000000000000000000000000000000000000000..f9df8f87dee1dfd5ae0a9a79c19aa05c6336e851 GIT binary patch literal 1241 zcmV;~1Sb25P)r!(@)9NLEmXna3-<0@PS4CPwSf?6z1hWM3GBhv z{`lsb@0?jv03ho(7+K39R`^Wr+*q63SVw>Y!AD2Rn6u0}oHSvQ08q{%#_p)N4Xn)C zSEK3c$&?c64FG;f!6jqbIfoOB;?UYC&h~rVju469jblxMO=P)tgk#8pFu2xarx_`RCt%y?FX`G<9>4kh$*=#sdWp(?_VqWN zG*wcd@oA&p!o9}*<+(LxJUl^^d_H$!H3`KXh-(Z`tSF<^VOGUr{_3Rk5$A+4!fANr zrxA;xHnCFOR4Rq)$K%aObaGx9*c$t zUfxSY!y>`|5kY;l;)+_Is?JzSX{#w;j-r~DTWmpqxmEmSb*QRX-qcVcp)g*c8;WWj zsp^$#Oe*I0TkthpT4+{_sWKLYg&L%WqnmGRd~t^BlTfdZtM07}zhhO#4GHwBdTlI5y;M-vMEp^Di{2`hW0#GDf~{A|hk)=Z!Sw|3eKXVp6BR9g zsdssA&3TuK4K1R`!%k$S?_rS>bV*KMDT^~kOIW!ImUqhy>bn}z+5xd@@hQx{hNZf2 zbQ!8k&iA}NJKU}8L{jd=8){0YJY>bCABmFUM&vmXgv_pS>K>S zxYZWKLmFp{v#z}k;;_GYp6e0ke@MA^@F|jP3m%5iEOOtU#x>hRk~oKX?QM2Otj!uDKZZXNE_FSdFE6-SbHBhf4t;dC#F z?Vx|0>#^1mWA{2qDma8&_HSnMNx>!w*{{$ES5SBw7agV2300000NkvXXu0mjf Dna^hM literal 0 HcmV?d00001 diff --git a/index.html b/index.html index b2a0ce2..9a9d1c5 100755 --- a/index.html +++ b/index.html @@ -68,6 +68,12 @@
+
+
+
+
+
+
@@ -92,6 +98,7 @@ + diff --git a/js/canvasDrawing_v01.js b/js/canvasDrawing_v01.js index f6bd21a..4c7f48d 100644 --- a/js/canvasDrawing_v01.js +++ b/js/canvasDrawing_v01.js @@ -147,6 +147,7 @@ function clearDoodle() { clearMainView(); resetPreview(); + resetVerticalShapes(); } function redrawDoodle() { diff --git a/js/gcodeGenerating_v01.js b/js/gcodeGenerating_v01.js index 9e055ca..7f9c45c 100755 --- a/js/gcodeGenerating_v01.js +++ b/js/gcodeGenerating_v01.js @@ -9,7 +9,7 @@ gcodeStart.push("G1 Z15 F9000"); // move the platform down 15mm gcodeStart.push("G92 E0"); // zero the extruded length gcodeStart.push("G1 F200 E10"); // extrude 10mm of feed stock gcodeStart.push("G92 E0"); // zero the extruded length again -gcodeStart.push("G92 X-100 Y-100 E0"); // zero the extruded length again and make center the start position +//gcodeStart.push("G92 X-100 Y-100 E0"); // zero the extruded length again and make center the start position gcodeStart.push("G1 F9000"); gcodeStart.push("G90"); // absolute positioning gcodeStart.push("M117 Printing Doodle... "); // display message (20 characters to clear whole screen) @@ -43,16 +43,22 @@ function generate_gcode(callback) { startGcode = $("#startgcode").val().trim().split("\n"); } else { console.log(" no start-gcode in settings.html, using defaults") - startGcode.concat(gcodeStart); + startGcode = startGcode.concat(gcodeStart); } + console.log("f:generate_gcode() >> startGcode:"); + console.log(startGcode); + console.log(""); + console.log("f:generate_gcode() >> endGcode:"); + console.log(endGcode); + // get gcode end statements if ($("#endgcode").val().trim().length != 0) { console.log(" found contents for end-gcode in settings.html") endGcode = $("#endgcode").val().trim().split("\n"); } else { console.log(" no end-gcode in settings.html, using defaults") - endGcode.concat(gcodeEnd); + endGcode = endGcode.concat(gcodeEnd); } gcode = []; @@ -148,7 +154,8 @@ function generate_gcode(callback) { var progress = layer / layers; // float layerScale = scaleFunction(float(layer)/layers); // scaleFactor van de layer -> lookup naar vfunc[] voor die scaleVals - var layerScale = 1.0; +// var layerScale = 1.0; + var layerScale = scaleFunction(progress); // if begin point this row and end point last row are close enough, isLoop is true var isLoop = lineLength(points[0][0], points[0][1], points[points.length-1][0], points[points.length-1][1]) < 3; @@ -264,8 +271,24 @@ function generate_gcode(callback) { } function scaleFunction(percent) { - var r; + var r = 1.0; + switch (VERTICALSHAPE) { + case verticalShapes.NONE: + r = 1.0; + break; + case verticalShapes.DIVERGING: + r = .5 + (percent * .5); + break; + case verticalShapes.CONVERGING: + r = 1.0 - (percent * .8); + break; + case verticalShapes.SINUS: + r = (Math.cos(percent * Math.PI * 4) * .25) + .75; + break; + } + +// return 1.0 - (percent *.8); return r; } diff --git a/js/main.js b/js/main.js index ce40827..f7c0973 100644 --- a/js/main.js +++ b/js/main.js @@ -8,7 +8,8 @@ var printer = new Printer(); var thermometer = new Thermometer(); var settingsWindow = new SettingsWindow(); -var firstTimesettingsLoaded = true; +var firstTimesettingsLoaded = true; + $(function() { console.log("ready"); @@ -38,6 +39,7 @@ $(function() { initDoodleDrawing(); initPreviewRendering(); initButtonBehavior(); + initVerticalShapes(); thermometer.init($("#thermometerCanvas"), $("#thermometerContainer")); @@ -47,7 +49,7 @@ $(function() { settingsWindow.init(wifiboxURL); $(document).on(SettingsWindow.SETTINGS_LOADED,settingsLoaded); - if(debugMode) { + if(debugMode) { console.log("debug mode is true"); $("body").css("overflow", "auto"); $("#debug_textArea").css("display", "block"); diff --git a/js/previewRendering_v02.js b/js/previewRendering_v02.js index 3cd074a..957e7b1 100644 --- a/js/previewRendering_v02.js +++ b/js/previewRendering_v02.js @@ -103,6 +103,7 @@ function redrawPreview(redrawLess) { for(var i = 0; i < numLayers; i++) { + var verticalScaleFactor = scaleFunction(i / maxNumLayers); if(i == 0 || i == Math.floor(numLayers/2) || i == numLayers-1) { previewCtx.globalAlpha = 1; @@ -120,7 +121,7 @@ function redrawPreview(redrawLess) { previewCtx.translate(layerCX, layerOffsetY + layerCY + y); // previewCtx.setTransform(1, 0, 0, scaleY, layerCX, layerOffsetY+layerCY+y); - previewCtx.scale(viewerScale, scaleY * viewerScale); + previewCtx.scale(viewerScale * verticalScaleFactor, scaleY * viewerScale * verticalScaleFactor); previewCtx.rotate(r); previewCtx.translate((-doodleTransform[0]) * (globalScale * doodleTransform[2]), (-doodleTransform[1]) * (globalScale * doodleTransform[3])); @@ -185,6 +186,8 @@ function renderToImageDataPreview() { for(var i=0;i