From 0fdcd208eeec9ab36a4e90e49c5ac5b589579afe Mon Sep 17 00:00:00 2001 From: Remco Burema Date: Sun, 20 Dec 2020 21:55:13 +0100 Subject: [PATCH] Possible alternate non-numbered versions. CURA-7932 --- cura/ApplicationMetadata.py | 1 + cura/CuraApplication.py | 6 +- cura/UI/CuraSplashScreen.py | 6 +- cura/UI/TextManager.py | 8 ++- cura_app.py | 2 + resources/images/cura-icon-32_wip.png | Bin 0 -> 10175 bytes resources/images/cura-icon_wip.png | Bin 0 -> 16757 bytes resources/images/cura_wip.png | Bin 0 -> 34915 bytes resources/texts/change_log.txt | 81 +++++++++++++++++++++++++- 9 files changed, 96 insertions(+), 8 deletions(-) create mode 100644 resources/images/cura-icon-32_wip.png create mode 100644 resources/images/cura-icon_wip.png create mode 100644 resources/images/cura_wip.png diff --git a/cura/ApplicationMetadata.py b/cura/ApplicationMetadata.py index 2e15d60a93..6399e7a757 100644 --- a/cura/ApplicationMetadata.py +++ b/cura/ApplicationMetadata.py @@ -46,6 +46,7 @@ except ImportError: # Various convenience flags indicating what kind of Cura build it is. __ENTERPRISE_VERSION_TYPE = "enterprise" IsEnterpriseVersion = CuraBuildType.lower() == __ENTERPRISE_VERSION_TYPE +IsAlternateVersion = CuraBuildType.lower() not in [DEFAULT_CURA_BUILD_TYPE, __ENTERPRISE_VERSION_TYPE] try: from cura.CuraVersion import CuraAppDisplayName # type: ignore diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index 76a54d1de6..8540f5986d 100755 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -150,11 +150,11 @@ class CuraApplication(QtApplication): def __init__(self, *args, **kwargs): super().__init__(name = ApplicationMetadata.CuraAppName, app_display_name = ApplicationMetadata.CuraAppDisplayName, - version = ApplicationMetadata.CuraVersion, + version = ApplicationMetadata.CuraVersion if not ApplicationMetadata.IsAlternateVersion else ApplicationMetadata.CuraBuildType, api_version = ApplicationMetadata.CuraSDKVersion, build_type = ApplicationMetadata.CuraBuildType, is_debug_mode = ApplicationMetadata.CuraDebugMode, - tray_icon_name = "cura-icon-32.png", + tray_icon_name = "cura-icon-32.png" if not ApplicationMetadata.IsAlternateVersion else "cura-icon-32_wip.png", **kwargs) self.default_theme = "cura-light" @@ -475,7 +475,7 @@ class CuraApplication(QtApplication): if not self.getIsHeadLess(): try: - self.setWindowIcon(QIcon(Resources.getPath(Resources.Images, "cura-icon.png"))) + self.setWindowIcon(QIcon(Resources.getPath(Resources.Images, "cura-icon.png" if not ApplicationMetadata.IsAlternateVersion else "cura-icon_wip.png"))) except FileNotFoundError: Logger.log("w", "Unable to find the window icon.") diff --git a/cura/UI/CuraSplashScreen.py b/cura/UI/CuraSplashScreen.py index d9caa207f4..4fa798247d 100644 --- a/cura/UI/CuraSplashScreen.py +++ b/cura/UI/CuraSplashScreen.py @@ -17,7 +17,9 @@ class CuraSplashScreen(QSplashScreen): self._scale = 0.7 self._version_y_offset = 0 # when extra visual elements are in the background image, move version text down - if ApplicationMetadata.IsEnterpriseVersion: + if ApplicationMetadata.IsAlternateVersion: + splash_image = QPixmap(Resources.getPath(Resources.Images, "cura_wip.png")) + elif ApplicationMetadata.IsEnterpriseVersion: splash_image = QPixmap(Resources.getPath(Resources.Images, "cura_enterprise.png")) self._version_y_offset = 26 else: @@ -70,7 +72,7 @@ class CuraSplashScreen(QSplashScreen): font = QFont() # Using system-default font here font.setPixelSize(18) painter.setFont(font) - painter.drawText(60, 70 + self._version_y_offset, round(330 * self._scale), round(230 * self._scale), Qt.AlignLeft | Qt.AlignTop, version[0]) + painter.drawText(60, 70 + self._version_y_offset, round(330 * self._scale), round(230 * self._scale), Qt.AlignLeft | Qt.AlignTop, version[0] if not ApplicationMetadata.IsAlternateVersion else ApplicationMetadata.CuraBuildType) if len(version) > 1: font.setPixelSize(16) painter.setFont(font) diff --git a/cura/UI/TextManager.py b/cura/UI/TextManager.py index dbe7940f26..99c1a55d46 100644 --- a/cura/UI/TextManager.py +++ b/cura/UI/TextManager.py @@ -43,7 +43,9 @@ class TextManager(QObject): line = line.replace("[", "") line = line.replace("]", "") open_version = Version(line) - if open_version > Version([14, 99, 99]): # Bit of a hack: We released the 15.x.x versions before 2.x + if open_version < Version([0, 0, 1]): # Something went wrong with parsing, assume non-numerical alternate version that should be on top. + open_version = Version([99, 99, 99]) + if Version([14, 99, 99]) < open_version < Version([16, 0, 0]): # Bit of a hack: We released the 15.x.x versions before 2.x open_version = Version([0, open_version.getMinor(), open_version.getRevision(), open_version.getPostfixVersion()]) open_header = "" change_logs_dict[open_version] = collections.OrderedDict() @@ -61,7 +63,9 @@ class TextManager(QObject): text_version = version if version < Version([1, 0, 0]): # Bit of a hack: We released the 15.x.x versions before 2.x text_version = Version([15, version.getMinor(), version.getRevision(), version.getPostfixVersion()]) - content += "

" + str(text_version) + "


" + if version > Version([99, 0, 0]): # Leave it out altogether if it was originally a non-numbered version. + text_version = "" + content += ("

" + str(text_version) + "


") if text_version else "" content += "" for change in change_logs_dict[version]: if str(change) != "": diff --git a/cura_app.py b/cura_app.py index cc8a1d575c..a55cc21b67 100755 --- a/cura_app.py +++ b/cura_app.py @@ -56,6 +56,8 @@ if with_sentry_sdk: sentry_env = "development" # Master is always a development version. elif "beta" in ApplicationMetadata.CuraVersion or "BETA" in ApplicationMetadata.CuraVersion: sentry_env = "beta" + elif "alpha" in ApplicationMetadata.CuraVersion or "ALPHA" in ApplicationMetadata.CuraVersion: + sentry_env = "alpha" try: if ApplicationMetadata.CuraVersion.split(".")[2] == "99": sentry_env = "nightly" diff --git a/resources/images/cura-icon-32_wip.png b/resources/images/cura-icon-32_wip.png new file mode 100644 index 0000000000000000000000000000000000000000..4c8791d2e18e3bed7fc93c4d3bec828f785f8d3b GIT binary patch literal 10175 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 literal 0 HcmV?d00001 diff --git a/resources/images/cura_wip.png b/resources/images/cura_wip.png new file mode 100644 index 0000000000000000000000000000000000000000..e62768f11eca6d9bc8836fa693f9ab359bbb5b4d GIT binary patch literal 34915 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%0D-9} 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%0A8;p;CU*NDd^L2UxmmOe?7;k1G`|0+d=g9 zmf;uos#>$5)M3EqZuP&oBWhQ_#)K6Wc^(6YPAriA0@yQZ|8|F!_AHb)UbV;w2zjZD zdgg(O7%-Q2JGlqnv-znrcZ9*{#Oo&vIt@DOC-LXlzw-X-MEIP~wQM~IU1)VP7BntR zLR+GoTiulGf3n=ho9SomWne%oD<teJgZYL9(*4Y7!C>?KF`u2OBNN$;BlkU^Y%pl*xisWMmNZwGKUVsLwT= zdn0kJ;o;#ym+^HsCt&F`3Tg0-3VmKSy>F4C1@v`o5ApCgk{VIIqO!h zzK((%!qAAY0s{kg!FaK)?qbu6o}bqGQfT$&groy>j%)~8L?;n?ZT!5&@8>;M+t1am zAh9z}PWdh7*xWm(gBeEk8e;-DtA=^CpwiicgrFd3gJx&5gocWmj$iX1U3Qe(JwYp; z8!_aQ*Nl3NuW)Q;tMvo#c&BO%JEq**Y-XAK&enTJqe;XNXmOAj;)v z@)1bdn9nryI^*K;J#o+gC+@G?WJVB6*h>d30pU)L5V(h!79EXpe!A9;CHxpiBAgoO zaXN86Yu&&D1nT+uc>y62QEhfMQ6E8JXQxQTt+%mNSl1iUi|rBh%$lfb-G;%_A?6MO z#*`IbiAW4F#Y~QTAXn;x#qzOtZ5A*8f)G9zpm)>tmJaI(MY zgka*}NM=HAiX;Sf$z%j_a?f>h*3f@Tp5FiLML)0^6=gC)W-(%bPtyxJfVLK7fgJTw zK(_*gXc<&t=Vj$c7?#OpHy9ioJm%-;_hWn<)22c90|1P7YB8L`tfuXU{mCIDtLpbF zTa^KiW_Md|)!J9`cR;u}rH;`8Nv*lLnUa|q-OJm1{Zl8aaAe%F1|4n=zelz6?dcky zytd}F^_4v1D^XEMTDyI{1cE_jUlwo$}}}CP5Rft zIdb6X;3<%mi0xu?NfCC#Nc>p96&E+j&*2Pq>1VjOy+Y!Ls&aCX8g1TgNMym_b)yjR zCDZ@hHMhwUZqf*;9S%{bMMyLtq*ONNYfGOb>cNlv82_VjEwYTB) zG&JFf7ZZD~yUT4p6aJivQ9xxVsVZT&&}i22>)vKEBw2fIjfjZoEUIK2sIXh!K3v=S z`nIwF;H__U!;;!~5#O*LHs;cfT~wj$10){3qQWbn4jMLkMQBxWqJI> zX*U6dmxet(kYmSEXFxzPOTD?X^Zx6^2OW0vzUXIicU%}QWx$>gx&QcR6uC}xr*l38 zRMOiwZvYI6O3mG=ioPWamOFH#S%J3rwPe&C>eNfpRpncmk?4%o&9WMVHbFVn5Tls;CIzVtT-lsEU)kFN5}ms+B2Q=Bud2Mk`lS)<>h37mU|#ua6a6e z?BF87qM@J^aXBp8G6)UcH@%QQyQ=11@tvHy0~ZyS=jUw8EpGD8E-u{(2?+{-pBP$- zF9F5J-U}{UnIVcepce~J1+Z4ZmlPK#puXTDfJY(dB)hys+6KIB8Xlc^Q#n_N5jc2Y z0#(@I!GS!d?T>ggM8tf5APaBYUF`H~<8}k5A~~RrW{)Od6{|J0?NhnR{;&CeY<#i6g7yToUo8Nb$A|Vw3 z8ARc6xz+^UFa!7xO$2>{fz8FdTaPO&q#zdbc1=k5NQz(y6!oF#!XTA1fx8zmQXEEK zVV0DIe-+2@_Y}Im&0?{BiTA)%W z5pq9F2PYOGR#sJC&@C&bBqs2=jS=7=uWJkhTYx1E1GN&W$H_9MU}mG=Pj4WEiRMOy z9u&$|XikChLh(h#43Opbrz`Pqw%opz)5%{SOgZZ8;XZucd=e=jc;OIWT4RJ#*u zwx2$I8c3#9zXTsKTilNZwJNn@ymLSfi=WBfJ{&dO1H~Tw$SgE)MAMH?Ns*+K6$2JF zeRVJ!_plm-{`nIV(&qMdBK}(Up4ihP0q&kmi3l#Mw{7I{nGJA8NEFb~(Yd#ha&ryIb0>s6 z?k}yPa@pbU0Awq=g(XilQ~lz8lnyAM3wRMwHaPEmC)xuXz5ui-(&l|-c~|glyigkU zPWtP&Z-`-`p_w`8?Jhg98uKOScJuW{!z&}sK%FDoZlx1TH1w&=X`{~-DA$e-52LLz z`=kmJib_fni;5`EzJ?$hpY>k@rM1-1LKtFT0B~5QYCYuI1Y$P?D5QV=`jxC()mK1+ zb?2T74A=u!XlxaST`_GncualkAzKv+b_#BjEK+>7B}ep7AOVPNmA z3ET1GN7DSnsdyP71fnPn&uuScFtxxc5wWIM(HlmykG-#6L5+b9G<0s~*o45;)~(J? zebc}pm|G+D2UBr%2v1y=1;E!qKAmj?NL=wcM}Y(n^>@QxL|!)RY2D1LWW>K48idLp z*;WHcIJ5w^?xALabn_(yz!Cy8t!m?*(R;wWGT;M#LjydaCT<5CK-WQ#>@ol(--b3F zm>PrzOLPY@fVnlHF&zkDz0TiU;!^`IDDp|#Q^VI$81S?rU`30CqW;y;Q!{{bYexJ> ziOR!UBM=fm|K-&J)TNR#;Vd11yF>#C z=0j01qAEiFP^-z1#zucwO@Qnq#hbw!O}kgZcp^qc7%JHOUOw@uG|)X?|M12O{ApfM|&q2J41=n*#Af;sO%%x@r&r*8xb{fLA}T{HOr)JlXAIpJ%Fv z%3lrSev&1fPyQ~-V2jwX@Qj*m0;5+?Yl8>n301-VnZFZ#fAX*SpBny}e--}9 z3OxVEg7<|`fRE1E6=o;C%oiQ4W9(fNz>@A^zz~ zxACM3m}M8Jde)%^Mh<|eU$+9^Jz#(@286>)|3vANfEm0bd_V9e0|GFVZMuJ>1^BmK zG~!ia>3jeQ;7O3Tni=UTySM;a{C=8A7nlV0MHp~DsC6qvFwN|{9E0`y#VG(LDPXVz zTutOJHSz!-3@`n|`vdVB;5iTV6d%7E{%p(dhTrb_TQ)K)E#zOK>@YjX)!%fY|JCca zLjq3_pbwB>L-bz2fxz-QM|Dr>v4L&=-Ns1u&z`7H8=?Xi4!ddr_Rv!^rRMxP2*Ae! z49)tUqU33jfTh7v0#@U+t~VWsk>9Va6%6K6Z^7VNrrcR$-B6nbLkd7Y`abq)r8U?R z9|oil|7xaN|Fa=ih>m|>2C3vir2TyZau4(Q?+h|U-D&n4t^gnsf@A{9^e6NdeGBz^ z=6TXnA^>I$7<#%23jGds3$*w(;v|6s)fLY&eQX?jp902;s2uoJcvNgYzMi5_|I*=K z7gE4#|8)y<5A&}qHbwmxWIpL2{0|-c8eb8EFQWj}g!LHFVSy|Z1Rh!^zzhNG(eK#+ z7X&V%>cJOLEp!({==NC6DSfO2G1e?=)vexbO+AFvvGdiZ06KM$}^Nb%P?ch+@-NnHEgWN%(h(tuj#)`K;55Q>#@N?>(qKZ{Oms6eZh)=$b zkyP>5)f}K##9zr29z5=^_yEiQdpp3r{y64oP%Ij2?O(T1;07S-6M~?CiT+mN$8%^a z;8rR-JKM?ZgADkT0#MtmtiX{AC`Zb)y_g=|7=ZIWn18AMK%`$eovJJR==Pd6Qmnnb zJ-Mlg8}_zMh7W-ifJvaJqGfn{J&-^l2HZdFjg6^z52v%X3|?0*)))$Z2iRiZFr;q? zIw2+|o&w+LSS`1D82~pCW#EGX_@1LHQ_2sUN43N7r( z*`a#(5a~!rHzua0_r&dgp5jmCV>F$C_Wu0*`SaGs#%v3yk?l}kQA{}9B%U9Q=EC~$ zhzKQ3EiEs!&JR63FZ8=big-Vl*l$@Mzd=b+9D-Y0R3RR`6-L9z22$F8?`+N#8M zLgwdzq_u)le+zoUbKKtS2Cx5)VW){mSy<0-O~^cnQgBd%b%_ zRWxX~zyrED-tn1%|0Mj#6v!>QR1`D}3|y6~ERg&0>5<9YTi{tmr)VYbNN*mkAPP#3 zd9C+=CB?>#nl&{wdMVmHP*WSAKnAZYO{*6x1|3idI-oj4G(V_jlT-fg5b4k7+Zq=Z z6{Qr|k1L_n@9`^3?oQQ7rEh{67uqXoi|TzChLAIU_YFHM-@G>Z3bf*uY%}Emn`hcQ zZSYwR2nal?tg7OGI7)?Qy5ECJlbe?NKuhgMwf|Uv1NUbkC=$0L(2eQaXl9Ap_m-CK zU0iCEHe%h~-72t^-q`eef5XQfz@w6-?Edymj}7Ix9A(_ivDPDJG7UovUS3f=gGZb1 zFrAcZKW?bC{O0xRE~1o`mTrKdt4v%jNJXTcXJ=>E)1a*{c3GV7>$|8Jt$Xvww*b;? zqgUn72=32%_j`8K$5+p)>3Qh`50BGlUtW=+WP6H*M3dY9dctjamZ1nz@hlplQuG^H z^A_1!$!clI$y_zC5QufNPs*7a>NC`da4d{LW^)i4->nrD6@f)Xl0O?$c3BB9o_cky z{Tp##iQzk%Cl9WWUX(zUYZ7Nd}&rVFdC58bJy|wL@l=iOG zrCZ{$Aw~pD+bfQaVwIX2r&pR@mTWu3xZfBG+R)v&^KC|a*#`)CY_5zW}=x8-|4vz3z>D6;=?!*DM zgJBnrQ+*2Cs2bj0laOk{NK>j-r`u{#{)-on&;SNq`W#WuX!@hOTVo*NJU;Fj`GKXS zrDnQ8-ZOZY#kbO0AWSJEe3~*5i3u}%J#za$NGu;35ZwV`ThWV3_Tj^auZhQd?b_k@ zj0yNxhGX5`cUE_MS+6cdRw6R6xX#D*AT0G$$(DcqyggGtM`0J%4AxQ*Vg$}UEfbRx z|GC$v(;J2OIg==S@>m64sUi@J5E{>MAd5PS(%;8$5hb8@7%%W(bnER31ur7WCJ%&^^UDu zO>?rdIUy2^6pR;Z9o^N~vS>y13k4#m3%Nc_ONDl2XRn+WI}>k}yIck#jPO=9pj{4m!gVgm&=}o~9Mq zp(hYz0vbeJe&;e`)m9;YI1{rOYG<+C=+|m*I$mFR-DWk>lDtZR9^{gx@$x=1Q0aDI z`7a2>zH{HiTLbx)+n!(vsj>KvoCh4I3M4+IB|snBVeEv49&lOc599HmYK8vhPbCX; zTpOZ!E;O>}!3E8#Ly9yJ5)RpFftCnQPUOy+5IO)a%`azpy!l{JLPHLu_1n#CC!f!KS;PF`Q*`a?%7slP8rd ziChTOX?E7u@37BAk!yw#DqIm3TZ&!8SK%RB^^G%b+t>)b_`tDax^RU=9z#X4fl!T{ zCAIkDXw(x|WR%AcJ?e*thu6tc0wj^_>5+U`LGKb@IFMbf1 znrh`$_G4f`VGJ3mv)H9zcyZf@Sh!u*T1hJP60zB zd9oK@KLkp8&i8z~R8(tz^wf?MU3WOu*KggrRnfp8!t!G{h!Kn5!*A<5J7eBN_UbxI3GfBGbLXDSH>gYR_Kpck5ffWIxtgTE!8Hx`USpvj;R(Yz^Y5qmH>q?dX{J3y#Ofrlt@Refo-_O3TPjnG3Fv z%O6NPOg-)D?LC1Ye(DIIgZ?u{E{Xhy4&S_aQ!kT$VQ|A%`XS`8bQnA0zu=|shTBwC z@aByMoCAW@2(rk(ywZ{_%fMIr+f<-y62a+*tH z*3<+?t2a=f@}M6CcZ!&-3lL68Rz+lRY&3R>35r0 zXbqUw>ONfpBW58K!M>V&n)?L;Lm+3|c=2M*1bLh|nx78=1UY(ZqU-L=%#7w)FH~o^ zE!{)FP6TcYsO)3&c(~_ye28_wXvV41aw?ef8RrY;5e+RRBqdXDj*p@iX~2&G6s0IB zDFu>nMY1(mhMXk5y#^8t3H7I{O}SY%y59lvQpU*4%=@@>pJkpw15*;JjMCa#+3zy? z`ud!_yvjhRay0hooE3w^c@4Bqj`PA4&6&yGo*oZ`fGtGby}z9~X#!86FW`wmy28DC z>ZxZ^v`rkYzAT(`9q*7lC?XOjr=XC{SJi{C;tfTchA6T^uwqa?`aCpd%)Rh#-7KmM zUr7JWur+d>eqAf*sgk}lDTf2r0|DJm$FkMu$claEX3db7AJsr8w70cAgC5Pp&+p#{ zf9Ia8#?v0N*Mxj1Ui?|mmSy_smc#iBq{BAA7mC2dI2CEU{rwq;El_DTgi41Ql#zDd zIZ}+iy!t&fMEq*xv8#`JvK}=T)9l(+O5FeT>(&_#?R)Y1wP+ly6JO^NWB4yA=nTFf zX5WQTuZsegi|aueOz=lg@E7LiPeaWvx4Kc<&~Q1A)ZQE?A5uc8_w=OH;={+vgUBLy z6vxcWzPGslR_DeDAb$^8qz$cCmK@lSugkSQqQoTf{8Pu-5pDUOe!P`!*{G8-xGOHe__)z_$u@#&mm?6JKv!&^@aZ^oBZ^t z-ckrbj)d)ho--q))vXCuqrz)#ZEXO8hOk}Vlhy^e84rq1NaW{#d`aBOdtwiusY;Gl zJ$6?F7$4y)A1kp4!adC4*oiw#ajH|wz~nF?7l!YFAbqMq=qBL8PyQ?nz6u-!@Jc_; z{kOhLA_zPrPv&Feyig*&_xK*_;ZlEKj&L1`gUy3Yf{>h@lT&ef?Rq8O=V~zSaxXV2 zIUv=qW%Gb##-eBMCB%6b74{|^QKy9U%q^K+K{YH zPJM%f!;}Z<^rn6r1N70)wFp=NB%z)7^eI)SS%9-}voozI%)9=^6fM;RUjiVZP1HSr z?gfbx*;;34lNr*jbAp235TFkWK|w)J7=aJHy(^8fOzs&EREJk$Pqe_&p+V2HRI<9P z?zS{<-HmVkRUHe}l73c1H|}&Sm?`DZp5H$U#%+*h&A&7>c;RzuDk|6rsuP|$iek6w zp_%?UJ-t&8(J-h)9!ozRz5Q|XXVg)R@!aw6-^=#=_@VL{4*IX!@-x!rHG6ab-K5rA z{EcdzICBY!V#Ur2*%ktf&VCUPCXldDnE_Ux<@r;hm!g z2DL4|Og8KOR-UM0cuuvewujBz7~8!Z)XZ`sRv`KR*Hf1yU8RorFjivs(mz5OQw zitzHLo-%}5qYVippn0ZxC!jiX0aHlN@w%y5hM8PbLT&J%3i9)Nu+Pv3QnH=8eU`n@DJe8_pVajgJdUurK3Owwt`7p`&COvvE1Y+P?PgHyXe73uQq`b+ zuA9!(51LDuNj2PQ$2!+cdTEd9Xefaz1vkRs(N5uv-(5HwR~z9*>`#%7Tkg9-qGe>4 zHMFQc0IH7#WX%0IN>Ei_{yjH#mbG(}<-^s${mPAVb92~j@r0NrH5{VH z%p;% zJziI{yyA?K;6_*ceFzN?-D<&b$QDNqVQ@ zOXs}fPm^^c(oB1MR6h8ogUjg2BP-*YE>9BN&x7i@QHj*p$cPe9DoshpnJ%E|Bi~=~ zGtkh;0+;|HqNJ+2zx3pB03cULjsa5(oWeL;$RHvj0%u)GLPFwia^C}=Bab4!;*_!bbAQjX`V@h8ouz1T9Ygj(5Q;^X zMhJdTI9bL_uGWG;>?J4$J|Gzakv!3srZ}#WC(y6TG}4@@PDn>rlA!2oYWJDq_wpCK*6+VvZ`QQE#A930$5*kG^+5M%Ob0hjz)U|Ahk)~Bsn7SpgH3c`yTH_)hm#L>qZ?@Y zPpmC_*O{qXtIOZL;cR41y%-4Sglb2(W5_5+}zYMn@LGC7kRx{ zBV0Xa5#)S7$cdq$A$BL09lHhPx)EcxZ(L8>VML2S`Jv&YCowK_;j$eur&F6uoSYT~ zo73p|^kTieyo_(y*qkEz8K|Vx5T*TdzkVfGi#QATbFopVMoZ|YX!B(GqMPXr!HHg6 zT+~96sK4dlV2p_eQrqqkvY>iU*KjD+dtA90s;gQ@Zzdvo8_t?GT19ij%YjI(*ANN) zrC0RWVm^6Na|Gl2=v3C40*+pMQc@zFsF^ZBm>~$VDt{!0;1Ur+q@l)W629ChAjx}( zh3Mu06m&?F=(sJEmmgzZ&YA+3uOlQOO{OdqRUW{&IfRuGV_I6!EdQ@w!rSPZfhy`pKjS+2C_P05iX9 z;E*0hKhDW$+6Tzi*f${2-l1@=)ynqozXg^7{?OCX(+5I;i35CPA$Ide`4UlRmVeJ$ zf+gY`H{)U<)qs|kmLkCg2?<2h8Y*7QxRTUJc@Azko0i zwC?#xGa64gEY$z#Aw<&9ElEsm-@e_9hK9z25a2}BKxZL{2I`JKyWMU&OvKSi-&L-^d3)wdUM!_%ax#Yjadkg!o| z$NcUx$il*C2Lug^o%MmwnL#f$z0&lY?gl)EIC&rXYKRLPrVnMTDKY=BGtOoW24>3q z)=DdHs>&WBOed4@WjR2lKZb`D$2v=5+&XR?i76w+nnN%nNcW~R{h$?`HX%yM_5+F? zzcS{nLDVRAuq(N$h4qS_gY~h+)EC1U@y9-Wfvi2)*Z1gEr)#7Y%IUGLuG^&h!4ykm zrS)Wwyhd4OAqP~te5YR-oYMZvlrqr!=-01bpE6}K35kDqf$i{nGT}4+EsG=PdZ(0O zASZd8dqw|#Ybyn!nud*H0mq8YYZk2Zp=+_HG0Z?(AVl&bAll}ElFA}b5ivv|xgnsi zP{I~>d+@-4`$Z7zEw`?sMzjGDm4biJ2*LFbyT_x%^KNKGldI8pLci$e{Zh7W-MVLZ zV&O?yVAvlan4P+Cfi(oJ#C-_UkOPBLQ+WwP+nt(OtO*JcBR}ET@uOH`;szRB3}Za| zx@)rg0SgaVU1Dart**GF2w2U_wM#9+af(3&BPO6}HAqQGHDboa z7wX#=5`xGq19q&6xD!K3(NK)v`bxf9Vn|?4XAbVzfVclGWuK@*3f7ne%@jGuqJ6{y zz!B;-cy;ab6A1^+*DyLbz1fH1B`7xt0V2<*oR<`LP0U!k&b2>TE8ReNr0va(9+FV+ z$=>O=KL^&dR1{@kVzKmzKu+xroeK*EI7qUX*0-!jgN-#63uIHC|GZhr{@z8r@?5l!JP1_lPc>mo+r3|qm9 zoyj#MGEXsyDIgc^0G@T@?9r4lo|Kb&0a%W@kNP6)DwW}{;9s|3(%~?a^8;c;gCnC0 z7&Br$gVb)r%Ll5>0#gSZtMhoc_X9XLpGS5?LlXLNS^^7nl($5J2a@R!$_x9sANqHw z?!xdos64)R?UK@`+8#=(iBvr?Wc^;mq~~c!bf`P(ENwd^?p z=eq=uL6hnz@iQTTf$T27hm*}ZUfEA{$;5%$Ttb~8y!xZ|zf~~c|LH>nun1Qz9oXXBgcVMy;D1y zU>efBfB&A*LCFo?Rvg0clR|oC=nFF=P0H4NO;1N5roI7HPTfN zP`#2747A!@kXM$D3LhOy9vmI@VUcn^#aC2t!tg`B{dn|K5d5r^9)k|pb=yABwlu3p zw>m(xMbAN+Egz?~l}MXEV=aE_lwj2*h zIq+mJZq+kh?_%xSFC#jCCiqkr`}AAS(6D)sc?4L9YKn?%18zAvIUmrz%FhWjUd~H$ z+1@Y7-S4uAZp*zCL;X;BTKVvo-6w~Jn=Da&IwRgyIA>P$IGxp`HLE;(I2DDUYdF90 ztBp%@3yQ{oNc`9CAHzv71r7X~7Kpy>DkoiEVn27!ZC6&(A2Ql9^cld*m&tw;hago_#-)7tmt zJO4o&@@}yA9sd^>nn)cX97}HSzCTp(KsnXPEo-TaddT>s-6o?zf61g>T#7l(!BO2rP2-2Xv3^)6C8pr??q;ONfe$;SwafV%j!9z{ z=p*cYZ4JXsxxuTTshhw`TzW3cfdf^{gOYfezeYY$vzz#@d_`~fnEDd)rqpS?D0$72 zp~Uw4#&sllU~e%_@S1PA!pl*DQ{AwB-oMQby~~?zZPsvXQhO&QaV%f9ZARL-Me=})rSpTnNTxfhew!@DlQvUuTa;o z8CD9mq~}8S!yFEilS-fl1d+%NiS}X_rvYU1K!^3l`t+nDNkQiv5)^a-N;G>p|128( zXDBVxh(d)q4e!A}>;_awQcIIL0M?SBvxnWo!shNxxUE@3ElJ)BzyM*6e-5oAX--KU zi0Nf7)Bwb6#3m#nFUZ?#j`ex?J+Wl*Ln)g+Pb$<;=V267L&E|r0hTu(;_M7c=|m#7 z0yP)5sJjiN%!CY|!I^F$o?cx8gVig@ywR6AJiP$P+jkEt<702t1bC7p#1T7pb|oG8K2 zn~IM@QLt)!CbL({`I{|qjpI;?4P&vDAe7!+@cE=#(m{KVNZ|7bK*WN8SWU5zI804V zU5(16w7Od5E|o0uY%t~m37+lZ;zA~Qftyqi5dHBd{S1~6rF$44XGAt7=y(+J5*5W- z$W7g(H;2^j;X%<29ECxP^6W`(Oe0&41hGMul29m^-6c>x1`#*`9}o)`j-!@7F^qcfa58?!yOnpgaL`4MIwI&i%LG^^WFZ@DqA} zJc0rUEVJNOf-5|$n79li@Y9*h=*9#(e1?AiH(V?_UfVDKU=jG@$e5Ag$C ze-Cr1!cqs9WnKtp!Vcwy-kTFE7@8hI&s&Ca+zn=NC0Y({NeKx7SxR&pK9LBrn(4Z| zxW#LjlfDe?gM3Dwfgi#3!@|N+ipg*a0{xMUjEq~zmz7BV)>8%p=-Qh|S43P@w3n({ zi-;Qnq(4?Wr`_a@ub^ZJu*xFui-}`Y(!vf?7n?}$2Wjjzn$tE?)5qMA%+w67DHb zktCsR^b=+QTf%4LY_S#F+k&?}lwAFOOnkwK=x!$6@9+I4To5H29^wI293T{f`*yt` zuTJQ2UA+2}oD~TkvWtl7_@0=iCn@7_imf4WR1$-Lc(!P9F*YZr7+!yRm$jT1k zzP@0e@PLxp4-AAjm_$NAs~yCjDT&?Y{^t(*G(sH~Ni|B|WPr8V>ZN~uxU)nWuN9DT zMI{QmS_w7*Rx$;X-WR0MoS=|JN*E??61-p!l4Co`oFi5t1)f?Xuo0nwF=D}&fiIJR zO@bk7%fZi)$(``m{f{WPtt=#;Cte>ZaOw2VVC}EmfmMrEwiL2JwiY*S`Gxt_N0@9s zJp|_+IZlAsFUSq(rsO(q^===)cYRM*3_2zb^1*LgAYEI0p0B`;6rZQ#)qO_Z9zevu zpWk2kGnB?(J%mH+I{jIs1yR))!AEIdJDD0KZ|uO13J7>)t%1uT%o2sP`5#aRK_d%? zBI8u@666GxhAFsUo8fT0Mt;#IUjSW!&y@BAQeI%&TNh_%Zk%2#bm@J^c zyEWuIs010e;XNn;AQ!!-cILuPffpk?wul}n=_M;(^1SDPpMq(4m?+^L?D1v@$y*b# zb*O0OAlDVLQXX>$_J4IPm<=LO&vd<8e~_L1?l2n0MXV@&#AS#d|`1Ol-fzVc&>d zIQ-ddwm(lsIZI&m$pV`Z1bCK0U&o>Wwbj!VXxd@vm>y2DLW|v(S;G!4HJhG1t=Ae}fUs<*09^~-96(ivw3th@$_j}YV^>kNR z$UOmKV|3WAc7F!{!~~~ZB~Src1R**lMx1oUgfRI{e8Wp-4jJN`U|7^6(K`3BFf&)V zO;vDtW9O4$x6N!G2DujR^zv0JS|@k~*X0T?tt@PyCDV%MaxQH*S}MS`0@ac^$O{^P zjV3@=WA|qwI06vQ7$b~q4xpBc2O??*wQX0dk;`nz3Id8Q>X8WC4IAFygCLo(#fQUb zW=NyE*I!zfFrIkjfR8n5k1~)p&j>JCQBxC23N`g8F&&V1L^=Tl!Lxz{If9}<5qVf| zBcL@QSi9{ITXhf&%{IvV1r1CaX>cofRRdJDc__xb<0zd~@i|5v{;~~8s^La%%R1!M zFBPaXjPh+2Nq1Acjzc66P(yw}fvLk7(OekOsNfwpiFXsl2-!7J!4<>J!NDQ#a5Wv$ z1L!+g+$yUC70)y*;=zdslCm2KX3e~gFcHLZ#Ka>TG)6Aqf&E4@>E&5SFMsGiv?Rhr zOC$|B0^A_}ajO8z1ZV}RjZo>IA=U>M>i*{WK1^PufohhQ)XetwzXYo^bsfoYCXwt( zI>Snv7eZNkjh((iTn&^MjjaBc37_yAlH)cEou}4EOrD@*Q=w!xOKgW)E@Ab)7A1>v zpal@Lh2_@$UW;N^S#BFQ$8Uy!_vP^x}`jocEohC#CLZcDroj zqTdv8+iNYS>|IA+%U`>1DRbU-+&QU`f9B+l>dMYc*Qz3A#SqOvl>;z0I0Gx53NiUj zbaxy7NYpbjYDO|0!GJYv6zas_;3~7Iii_Imy3B3nzBQ@m4v*T3r8{@-L?h%jHZ~@y zV4|AbpqZjg!_E#N-ngVwMCqWH)b<^B|H2*{@$e`#yG)@#1k^2wSrtSUt})vWA%^SQ&xU%!5}EoeXX>eZ_gs~5K1yKA7YU+<^D z@#EK`poj=p`?cnag5d$vd+pQkf0yelm5J*zE@x;e!P?6k%^w*V;qiQ#m7=Yb-I8`W z&p@GXjIHn9y$$VGj&1t2Te7wRugo`|xslVdE#d0;)KvCQTQOtXof)UOpBZMF$D7ZG zhK6dVXfr**xBD`7^Yfw=L;rO2m_x_uIc8?&R=e{$sZDpAo6k&2sK-P_nZfyAEHbR+ zPQ2*kByR2EvKJaygnnq}clN;;BbIFWz7Ihdw_Lb3{_E(TPXX!a=^sl=S8^guDhtAcxl+Vr?_Cgq{f^n`l|sV;DGND8%M|A;t!49EUMgAToEu&VDyrc-Meq! zj_6HzU;}-9eIipQT-`pT>ZaDLthnYIWE1Ba)WsadBI zhA!Taq~UTJ9eov^n1EyNW^a!e8VUkB7NxE>??d z{d0BWq!^wO^)t5{s=b%E#li&|)I&QT{QCi_Px?hPZvXr53zo|MyNzSz*X92GahAO6 ziT^IAI>k)+=QDAm(U$T5-B7~P{g-e5`H(C{SEc2|e|~W(!fwGOe;xjhz^Tb97$=FA zkDpk}{?B)-nTq88tM6oe1x5YG^RA{FJjuPWGBNjwu>bdCc~@%t{}!W~R%Bs2#Xo-( z@w#H1_kqH{D=@{}x{iZ4S0Lm(H)b+n--3bg(S; YtVvYjquGdeF0N6OSCh+-y>Rz`05raAIsgCw literal 0 HcmV?d00001 diff --git a/resources/texts/change_log.txt b/resources/texts/change_log.txt index 19d539cbde..22812436c8 100644 --- a/resources/texts/change_log.txt +++ b/resources/texts/change_log.txt @@ -1,3 +1,82 @@ +[Arachne engine alpha] + +

Arachne engine alpha

+ +Cura Team, as part of and with help from Ultimaker R&D in a more general sense, have been working on a large project that changes the core of how our slicing engine works. +The goal is to have variable line widths (instead of static) for each extrusion, and better path-planning, in order to better fit the eventual printed part to the specifications. + +If after you've used this alpha you want to give some feedback (please do, it's the main reason we're doing this), please see the discussion here. + +This effort is still ongoing, but we're at the point where we would very much like to have the feedback and input of the wider community. + +In order to get this done, we've decided to release an 'Alpha' build, or an early preview. + +Not everything has been implemented, and there are even an amount of known bugs (see below), as well as very probably a comparable amount of unknown issues. +On top of that, we added some parameters (and removed a few others). These have hardly been tuned, even for our own printers, let alone 3rd party ones. +In other words, don't expect perfection. In fact, the default settings as they are now are likely to be worse as what's there in a lot of cases. + +Note: This is _not_ otherwise build on a specific version (like '4.8.0' or similar), so there may be issues that have been solved or introduced since then that have little or nothing to do with the Variable Line Width feature-set! + +* New Settings + +Variable Line Strategy: How the walls are spread over the available space. +- Central Deviation: Will print all walls at the nominal line width except the central one(s), causing big variations in the center but very consistent outsides. +- Distributed: Distributes the width variations equally over all walls. +- Inward Distributed: Is a balance between the other two, distributing the changes in width over all walls but keeping the walls on the outside slightly more consistent. +Minimum Variable Line Width: The smallest line width, as a factor of the normal line width, beyond which it will choose to use fewer, but wider lines to fill the available space. Reduce this threshold to use more, thinner lines. Increase to use fewer, wider lines. +Wall Transition Length: When transitioning between different numbers of walls as the part becomes thinner, a certain amount of space is allotted to split or join the wall lines. +Wall Transition Angle: When transitioning between different numbers of walls as the part becomes thinner, two adjacent walls will join together at this angle. This can make the walls come together faster than what the Wall Transition Length indicates, filling the space better. +Wall Transition Filter Distance: If it would be transitioning back and forth between different numbers of walls in quick succession, don't transition at all. Remove transitions if they are closer together than this distance. + +* Removed/Renamed/Altered Settings + +Print Thin Walls: Behaviour altered. + +* To Implement + +Not all initially planned sub-features are in yet, any subsequent non-patch releases will probably contain more. + +* Known Issues + +SkeletalTrapezoidation not robust to unsimplified input. For very intricate and or small models, crashes may occur. Please attach any crashing model to the discussion/feedback link above. + +Different extruders for inner and outer walls. The used extruder alternate each layer but the inner and outer wall are printed with the same extruder (used at that layer) + +Spiralise bugs: +- Bottom layers issue in spiralize mode. +- Stringing when in spiralized mode. +- Last bottom layer missing for some models. + +Support not being correctly generated. It might start mid-air or not providing enough support for some parts of the model. + +Gradual infill support not being correctly generated. Support walls don't seem to be printed well when gradual infill support is enabled. Ultimaker printers enable this by default for PVA. + +Combing in the wrong part when printing dual extrusion Visible, for example, when printing with dual extrusion with two different colors. E.g.: 'Bleeding' of red into white parts. + +Printed travel moves. + +Gaps between inner wall and skin. + +Z-Seam Sharpest Corner broken. The seam is not placed in the sharpest corner + +Small line width and overlap. When using the Center Deviation setting on a thin model some wall lines may overlap or leave a gap. + +Wall positioning is imprecise. On some models, the walls are not centered properly within the outline nor have the correct width. + +Connected and gradual infill results in overextrusion. When gradual infill and connect infill lines is enabled, it'll connect different pieces of infill on top of each other, causing overextrusion. + +Connect Top/Bottom polygon not working currently. The issue occurs when concentric is the infill pattern. + +Small travel line segments in infill/support. This is causing unnecessary traveling and stringing. + +Wrong Infill Layer Thickness. In combination with a higher Extra Infill Line Count, some parts are not generating infill lines. + +Inward/Distributed overextrusion. Seen on models with multiplied infill walls. + +Overlapping skin and alternating wall. The extra wall at each alternating step will overlap with the skin + +Assertion failure in SkeletalTrapezoidation. Can cause the engine to crash on certain models. + [4.8.0] For an overview of the new features in Cura 4.8, please see this video: Change log overview. @@ -1990,7 +2069,7 @@ Prints the outer walls with a jittering motion to give your object a diffuse fin The object is printed with a mid-air / net-like structure, following the mesh surface. The build plate will move up and down during diagonal segments. Though not visible in layer view, you can view the result in other software, such as Repetier Host or http://chilipeppr.com/tinyg. -[15.06 Beta] +[15.06.0] Cura 15.06 is a new release built from the ground up on a completely new framework called Uranium. This framework has been designed to make it easier to