From 09066f2744cd11852131b6678b2e141713c72deb Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Wed, 2 Sep 2020 14:19:38 +0200 Subject: [PATCH 01/31] Don't mark children nodes in a group below the buildplate Fixes #8268 --- cura/BuildVolume.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cura/BuildVolume.py b/cura/BuildVolume.py index 373f708389..81a1eed6ad 100755 --- a/cura/BuildVolume.py +++ b/cura/BuildVolume.py @@ -272,7 +272,7 @@ class BuildVolume(SceneNode): continue # If the entire node is below the build plate, still mark it as outside. node_bounding_box = node.getBoundingBox() - if node_bounding_box and node_bounding_box.top < 0: + if node_bounding_box and node_bounding_box.top < 0 and not node.getParent().callDecoration("isGroup"): node.setOutsideBuildArea(True) continue # Mark the node as outside build volume if the set extruder is disabled From bf36aae0c07eaeab8f2bd79dd667795c5a076b4c Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 16 Oct 2020 13:09:41 +0200 Subject: [PATCH 02/31] Add ConsoleLogger as pre-loaded plug-in This way it gets loaded only once on start-up, which prevents errors that the plug-in was already loaded. Contributes to issue CURA-7501. --- cura/CuraApplication.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index 08cc644025..f03518e224 100755 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -756,7 +756,7 @@ class CuraApplication(QtApplication): self._plugin_registry.addPluginLocation(os.path.join(QtApplication.getInstallPrefix(), "lib" + suffix, "cura")) if not hasattr(sys, "frozen"): self._plugin_registry.addPluginLocation(os.path.join(os.path.abspath(os.path.dirname(__file__)), "..", "plugins")) - self._plugin_registry.loadPlugin("ConsoleLogger") + self._plugin_registry.preloaded_plugins.append("ConsoleLogger") self._plugin_registry.loadPlugins() From 2c058ee441732d10d943aa1152efdc494ff11484 Mon Sep 17 00:00:00 2001 From: Firedrops <31351436+Firedrops@users.noreply.github.com> Date: Tue, 3 Nov 2020 19:25:56 +1000 Subject: [PATCH 03/31] Added ideagen3D Sapphire Plus --- .../ideagen3D_sapphire_plus.def.json | 35 ++++++++++++++++++ .../ideagen3D_sapphire_plus_0.def.json | 16 ++++++++ resources/images/ideagen3d.png | Bin 0 -> 11333 bytes resources/meshes/ideagen3D_sapphire_plus.3mf | Bin 0 -> 9151 bytes 4 files changed, 51 insertions(+) create mode 100644 resources/definitions/ideagen3D_sapphire_plus.def.json create mode 100644 resources/extruders/ideagen3D_sapphire_plus_0.def.json create mode 100644 resources/images/ideagen3d.png create mode 100644 resources/meshes/ideagen3D_sapphire_plus.3mf diff --git a/resources/definitions/ideagen3D_sapphire_plus.def.json b/resources/definitions/ideagen3D_sapphire_plus.def.json new file mode 100644 index 0000000000..155b062851 --- /dev/null +++ b/resources/definitions/ideagen3D_sapphire_plus.def.json @@ -0,0 +1,35 @@ +{ + "version": 2, + "name": "ideagen3D Sapphire Plus", + "inherits": "fdmprinter", + "metadata": + { + "visible": true, + "author": "ideagen3D", + "manufacturer": "ideagen3D", + "file_formats": "text/x-gcode", + "platform": "ideagen3D_sapphire_plus.3mf", + "platform_texture": "ideagen3D.png", + "has_materials": true, + "has_machine_quality": true, + "machine_extruder_trains": { "0": "ideagen3D_sapphire_plus_0" } + }, + "overrides": + { + "machine_name": { "default_value": "ideagen3D Sapphire Plus" }, + "machine_heated_bed": { "default_value": true }, + "machine_width": { "default_value": 300 }, + "machine_depth": { "default_value": 300 }, + "machine_height": { "default_value": 350 }, + "machine_head_with_fans_polygon": { "default_value": [ + [-20, -10], + [-20, 10], + [10, -10], + [10, 10] + ] + }, + "machine_start_gcode": { "default_value": ";Start GCode by ideagen3D\n\nG1 Z15.0 F6000 ;Move the platform down 15mm\n\n;Initialize Temperature\nM140 S{material_bed_temperature_layer_0} ;heat bed and continue\nM104 S{material_print_temperature_layer_0} ;heat nozzle and continue\nM190 S{material_bed_temperature_layer_0} ;wait for bed temperature to reach inital layer temperature\nM109 S{material_print_temperature_layer_0} ;wait for hot end temperature to reach inital layer temperature\n\nG28 ;Home\n\n;Prime the extruder\nG92 E0\nG1 X1 Y280 Z0.2 ;Prepare to Purge\nG1 Y20 Z0.2 F1500.0 E15 ;Purge line\nG92 E0" }, + "machine_end_gcode": { "default_value": ";End GCode by ideagen3D\n\nM104 S0 ;Set nozzle temperature to 0\nM140 S0 ;Set Bed temperature to 0\n\nG92 E1 ;Prepare to retract filament\nG1 E-1 F300 ;Retract filament\nG28 X0 Y0 ;Home X and Y\nM84 ;Disable Steppers" }, + "gantry_height": { "value": 350 } + } +} \ No newline at end of file diff --git a/resources/extruders/ideagen3D_sapphire_plus_0.def.json b/resources/extruders/ideagen3D_sapphire_plus_0.def.json new file mode 100644 index 0000000000..93d836c224 --- /dev/null +++ b/resources/extruders/ideagen3D_sapphire_plus_0.def.json @@ -0,0 +1,16 @@ +{ + "version": 2, + "name": "Extruder 1", + "inherits": "fdmextruder", + "metadata": { + "machine": "ideagen3D_sapphire_plus", + "position": "0" + }, + + "overrides": { + "extruder_nr": { + "default_value": 0 }, + "machine_nozzle_size": { "default_value": 0.4 }, + "material_diameter": { "default_value": 1.75 } + } +} \ No newline at end of file diff --git a/resources/images/ideagen3d.png b/resources/images/ideagen3d.png new file mode 100644 index 0000000000000000000000000000000000000000..c02c18b047893ce54621d129cac35037b81d171f GIT binary patch literal 11333 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 KV1IiUnEwKci82`g literal 0 HcmV?d00001 From 02c676763e1e1a08820a6f041fac124bc0bfc970 Mon Sep 17 00:00:00 2001 From: Firedrops <31351436+Firedrops@users.noreply.github.com> Date: Tue, 3 Nov 2020 19:39:31 +1000 Subject: [PATCH 04/31] Fix indentation --- resources/extruders/ideagen3D_sapphire_plus_0.def.json | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/resources/extruders/ideagen3D_sapphire_plus_0.def.json b/resources/extruders/ideagen3D_sapphire_plus_0.def.json index 93d836c224..1bdbc9219b 100644 --- a/resources/extruders/ideagen3D_sapphire_plus_0.def.json +++ b/resources/extruders/ideagen3D_sapphire_plus_0.def.json @@ -8,8 +8,7 @@ }, "overrides": { - "extruder_nr": { - "default_value": 0 }, + "extruder_nr": { "default_value": 0 }, "machine_nozzle_size": { "default_value": 0.4 }, "material_diameter": { "default_value": 1.75 } } From fb1b703e317f86801dbc13eed82adc35f645f257 Mon Sep 17 00:00:00 2001 From: Firedrops <31351436+Firedrops@users.noreply.github.com> Date: Tue, 3 Nov 2020 20:01:18 +1000 Subject: [PATCH 05/31] Change tabs to spaces, remove misnamed .png Uppercasing doesn't show up in git gutters https://github.com/microsoft/vscode/issues/29861 So I remove it now and add it back next commit with correct name. --- .../ideagen3D_sapphire_plus.def.json | 40 +++++++++--------- .../ideagen3D_sapphire_plus_0.def.json | 2 +- resources/images/ideagen3d.png | Bin 11333 -> 0 bytes 3 files changed, 21 insertions(+), 21 deletions(-) delete mode 100644 resources/images/ideagen3d.png diff --git a/resources/definitions/ideagen3D_sapphire_plus.def.json b/resources/definitions/ideagen3D_sapphire_plus.def.json index 155b062851..80c719cafd 100644 --- a/resources/definitions/ideagen3D_sapphire_plus.def.json +++ b/resources/definitions/ideagen3D_sapphire_plus.def.json @@ -3,33 +3,33 @@ "name": "ideagen3D Sapphire Plus", "inherits": "fdmprinter", "metadata": - { + { "visible": true, "author": "ideagen3D", "manufacturer": "ideagen3D", "file_formats": "text/x-gcode", - "platform": "ideagen3D_sapphire_plus.3mf", - "platform_texture": "ideagen3D.png", + "platform": "ideagen3D_sapphire_plus.3mf", + "platform_texture": "ideagen3D.png", "has_materials": true, "has_machine_quality": true, "machine_extruder_trains": { "0": "ideagen3D_sapphire_plus_0" } }, - "overrides": - { - "machine_name": { "default_value": "ideagen3D Sapphire Plus" }, + "overrides": + { + "machine_name": { "default_value": "ideagen3D Sapphire Plus" }, "machine_heated_bed": { "default_value": true }, - "machine_width": { "default_value": 300 }, - "machine_depth": { "default_value": 300 }, - "machine_height": { "default_value": 350 }, - "machine_head_with_fans_polygon": { "default_value": [ - [-20, -10], - [-20, 10], - [10, -10], - [10, 10] - ] - }, - "machine_start_gcode": { "default_value": ";Start GCode by ideagen3D\n\nG1 Z15.0 F6000 ;Move the platform down 15mm\n\n;Initialize Temperature\nM140 S{material_bed_temperature_layer_0} ;heat bed and continue\nM104 S{material_print_temperature_layer_0} ;heat nozzle and continue\nM190 S{material_bed_temperature_layer_0} ;wait for bed temperature to reach inital layer temperature\nM109 S{material_print_temperature_layer_0} ;wait for hot end temperature to reach inital layer temperature\n\nG28 ;Home\n\n;Prime the extruder\nG92 E0\nG1 X1 Y280 Z0.2 ;Prepare to Purge\nG1 Y20 Z0.2 F1500.0 E15 ;Purge line\nG92 E0" }, - "machine_end_gcode": { "default_value": ";End GCode by ideagen3D\n\nM104 S0 ;Set nozzle temperature to 0\nM140 S0 ;Set Bed temperature to 0\n\nG92 E1 ;Prepare to retract filament\nG1 E-1 F300 ;Retract filament\nG28 X0 Y0 ;Home X and Y\nM84 ;Disable Steppers" }, - "gantry_height": { "value": 350 } - } + "machine_width": { "default_value": 300 }, + "machine_depth": { "default_value": 300 }, + "machine_height": { "default_value": 350 }, + "machine_head_with_fans_polygon": { "default_value": [ + [-20, -10], + [-20, 10], + [10, -10], + [10, 10] + ] + }, + "machine_start_gcode": { "default_value": ";Start GCode by ideagen3D\n\nG1 Z15.0 F6000 ;Move the platform down 15mm\n\n;Initialize Temperature\nM140 S{material_bed_temperature_layer_0} ;heat bed and continue\nM104 S{material_print_temperature_layer_0} ;heat nozzle and continue\nM190 S{material_bed_temperature_layer_0} ;wait for bed temperature to reach inital layer temperature\nM109 S{material_print_temperature_layer_0} ;wait for hot end temperature to reach inital layer temperature\n\nG28 ;Home\n\n;Prime the extruder\nG92 E0\nG1 X1 Y280 Z0.2 ;Prepare to Purge\nG1 Y20 Z0.2 F1500.0 E15 ;Purge line\nG92 E0" }, + "machine_end_gcode": { "default_value": ";End GCode by ideagen3D\n\nM104 S0 ;Set nozzle temperature to 0\nM140 S0 ;Set Bed temperature to 0\n\nG92 E1 ;Prepare to retract filament\nG1 E-1 F300 ;Retract filament\nG28 X0 Y0 ;Home X and Y\nM84 ;Disable Steppers" }, + "gantry_height": { "value": 350 } + } } \ No newline at end of file diff --git a/resources/extruders/ideagen3D_sapphire_plus_0.def.json b/resources/extruders/ideagen3D_sapphire_plus_0.def.json index 1bdbc9219b..ab14b131b6 100644 --- a/resources/extruders/ideagen3D_sapphire_plus_0.def.json +++ b/resources/extruders/ideagen3D_sapphire_plus_0.def.json @@ -9,7 +9,7 @@ "overrides": { "extruder_nr": { "default_value": 0 }, - "machine_nozzle_size": { "default_value": 0.4 }, + "machine_nozzle_size": { "default_value": 0.4 }, "material_diameter": { "default_value": 1.75 } } } \ No newline at end of file diff --git a/resources/images/ideagen3d.png b/resources/images/ideagen3d.png deleted file mode 100644 index c02c18b047893ce54621d129cac35037b81d171f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11333 zcmd6NcT`i`)-N74qQ(Y_MnO7)(vlD`ROukSNpB{h_mBY6#Gr!oA|(<)DFRYO0YShh zy@M3#NC_fMKtcMq1L`^Vj{DyC-uK5FFJnM<_MU6b->hq{wO6pFy5fmr7mv}<(40_K zlGCQ4IYAnh%E`QiMVSkwkFqnX+rHcTRUy!QO9w8d_ zht37(=CCImjS|2(U>q?{?pS~p`iIuV#@XE&YvcUCVEyOuzX$+KtETox#(%`(==etj z)?FSCsPW4n|B)K2>*azG(8ge$ac(G#JRX3_PSwUmRMrh+>F(^N>+J0C+fkaoA+x{$ zty#GBZJp509$21#48X`)x??2RV1h6~J}8t=5T*+i7KI6l3W;2U3W^E}?vtuHqiwCc z{v#>u-${XxL0h_8{4d^4%So^S#^JZMMT=V9 zzK%g+M9_Rt1YC#@b6W_;cO8m>@>wB;Z$pKIgkVS!^zZR<&L|u;1b&Z4|6h*RaI*zc z(9+?5%!ito)YuVKvc&>k_4<`MIvCeqR}Qu;d*LE#iK3=~1RIL#e+;0({%za;u?6RFaMM( z;K!e0hj9WboEuQevL7-Yq@m&JQI?a|^&FTd9eKqeU-{5}dW5s=kk(6D-e>Q0jz*t7 z9JSWbQ_p&dhMA2e$mQhC<z^5Uvj=6y?oE-Qmmj(uIpXH7od3u&q;^4ZlE7h2U;KJf1Ic zt8*?Jse`ScXy8qGX5;jq&J!09tytnip;DVn`>Lmj#Eud9;4ukesRZNGuRpwuR#GVu z#95*0F2?MB!{X#~bv6%lr7J4DFyDq(&nKLJr&?E*+&HFPBD>LRhehvcYZ_WX`DB27 zLopAqS5vB28qg!!o*{GFwc6q9byFL~yilMea#ySvHvp!IT?DK1|u>LyL>&VOYAhX>8 z@-Zb+`W~1La74Ou;I~uZv}^&xkKaS57sWmi(Qm$=hRpd?er+=vIk&EpgsAYCkCaBA zhHwCJpj5yX(wlaMoV+OhCO$Mj%JoDLcvWFCBW$r~*4LR;4iqK5uTf=CuD~rldJiy@ z;vw&=fiFM0`=U<-gIC+9s{D_gkpbAr?b|b?LFPwbP!P+#%E!kIi#3`HPs)M3uiei- z&Hq`anhpJ}pzRd1+KrNJ=i76#dn06Wg~VSFJq~|#dIpVqNeT3<(_7{&Ti%_daKyVC zfYRbcwbO#d-aZ(S5K*VCOuAM8zBu8-(_!Y{UiNTb<*umLwV79UC>Q4CB1x$}p|!8< zD{x~W#0+-(MmCJgWt^Hr%ynq)kz=2=N-oRFH>cK!_l<`ThY{v|bHuyr2cRnh65 zSR7>a;O1x^R!Zb&D@PRf4bYVRpic5S)UmWg;`5SN&)XMI@Y&8o!kne%#(gf|^D zY~G}O>dmuI;_4U*W&^?*$TXQdd<01`!gSFdxd`l2e3Xi>zD}4}rGfy&@d`n^84`8z z@6gw77|XKrdn+el1q}f+6my}i3wQ5-)5-Z^1yh!>+1b%(eWdlz_-uNNZ-wf=_NOiN zQUA)=%h|w^C=fWRmlq$BX?nF>{}t&U$d`?$c3Bow&VbO7EfHR~rU~kouFRhdSJ==z z0fceXULbrIHO{U(Si08ZQ*nY~Z*?ARgf^9pB^nu>Shq8x;5iEps9w5$`Uwp4GE=##I^wH7& zPX@^V$yvCoo}S=i!YSpfStWdXcL%P|^#?w!G$@L^V=^j`ZY%!D=lzEv zulmkiUDwts&13H54f-p|v-JQK$KL%VfivMkDU4 zTi{o}L=yjj|$~Tw^a?wK98av?4se zc>hiD@OsWtV!V3ugYHHX?H`v~XJ1u|SUKXdC93ou){EZ*M;EU8MNph8qsc!=(zk^I z${*k5JkEGy@-9@2yHC;YGql;}@C9rT!?r@JzbMm6Eq_z0@dQC{r3Cl*Ys~9pC)2iW z-l2d1w+3XIyW`~bRLMq!+h)fLVu6QE00+XTC0W(g`HULh`;E>brsxx;BZ_*S{8yhT zT)AGqrTNefjbByF(#jXzKE0p5np|BcVt0q_NBA{CQx=9AE78OEvUDO0i5bTkdF|W6m&}tSg&4d}b#wZO z$5f5;UyTs(1mM7M{(%=U`7vSwL(jPQ7xT_tKl3DMkYWw%<&3~hM6H$=k6nC&6D6*5 zuO)Hp`exfzxsw3rvA{kdAh8EArU=)@&q^)rs59NX^e+jso1eSHVcetG(BivH&m|LQ zxpAAt?1AzoRrU-fr^M<(_o95E*HB~1hfjS+SdV8atTVjqics}d=eId?ZPZ`k5;^r` ze_gpZB80(b`KN_-<$E7pRZ`oRcj{u&z+Ca=hl;@T9BsIZmB5!4Pl+k-<)&2k$-E>& zbgkA-ZEl59lbFFxwf117@{O?NAMlm6#dCt$jcb<`!$i9x{7lD!8%>j9%tCRsJzwhn zVz{ZD)_R+A-A=c~v!3lTwX%_u8^*xxB>tdkaOOubLd-mWoVSB!+Bk!<;`9ZfDQ`*o zC>#g7KQmUt$3gR5+lDCAH}2xptl|Qj^)%zQ66INKPtDXCz&{M<7QJ@&9z&47OCagu zIrvE9(oX375&5}sy1kN7$xvi`T`K0V!xF*gG9>omd|k~TwEr~EmPK6^M?rP?MO?Z< zSF*_Th1v9W5`exuXuG1xkLOt^?ntf4QyJs)BE5-XXn`li3g&XXVz;g!7uKv;BdC?k zLIkZ@HLbv)l<`GUSLm-7ov~k=GGIwW)F0=$qL&b{ z+^$%RHOZ4H7dYhsK(UZ&N@Zje%kC8`;oNSy3e7ZfMluha^g?Tzl@`@Q$^HEfj`Z6O zqjv%jbdV%4AxA0?mS1^>6%DIyDoV3cs@Wiyggf~+{=yl`pH0~J(Jp!vi>n(J zuE;NECv*jP=*`5dHSYTNubcAcT<-!Ec&WaFDLIo|Bde}vFu$p9CFHnH*M?j(O9^ol z8yYX7=kRTqQ&Mfb-b=bD*ehW*Iw=3GEx|wRW)(+A9trY1(<+v{En&y8yNhf++-<#M zV4bYB7N;17b}Uk^TetCk?3ev|%OAdK_TEP*<#=~Z##iN)sHDOH5&%1h@Ogv=B7Ojf z=VmU#6))8)H<}dVsDtF8H(1VVmTNVyWP?rv1$WcCA(c^}^kalE?3zVno9OyTvNrpg z^_+?_@ny1NwVShFk<3`al>#vVi(Ij&mqN8eF6ff_wwNv7?NHRP)&T@j+R%vd{famP zKkTGae33%Mkru^bZk2J9C}CzM-FvlLk*4$~Wa(wqO(j#;ro6c{AUS)T*UKrm% z-vv9x6e&pR=QOkn>i6@S1mI*FlHB9#efaBlcX%l(DcNnA(p_7NtCbx%5YVQ?-30m5 zU-$aHNfw;jTI(W;>CW=Ce+(?7g>0#(f|o54MiB~d#pZ<~3pcj%Ojf+y8nxN8FgS6ql&>cxZ#zCTpskXc8Sy|RHlwhQ~ zUpi71d+06pebcM^ZxR#NJsXUpB;(zKOWs<2cvtlhNa~DOa?XjbF(fHx9m~@0h5O)W zw`L0n*H2h52xhRO>^eo)%)(O&=2x=a&<0JFmC3k%U`}~*V#9A?_@`9b!5GbrodR)6Ne-Q_u2L83)-z`5 zhGlWoUfEJP{l>xFbZYmmE4uI^?B|VlhBb@u8+#RkI@*_oAUVOsQE*`RjUx$+J-)}1 z^W1yX^md&8neAsR3V+xASv0^4Cvl~{x1DU<1xGO zb=<@w5;>>YqIZIJukqXi5k)4;ZH%W8Ibm(Pd$8jKyNcSh{Z1(=3o^6iP^eG2yLL21i@Ua%4l{mquuY2l7Ru~HpEXdkv&P5w+#kURi~ z+Moe~lp@J?izhFWijw!G`UL3e58VJkIDXr1Y^-stf3>ouXz}>P(CqK^H|6^7QV#sM zhA~jwGm*jgK@6m|`M{B5fQ0>dfU2uG`Wszso7u>bwhDvP!NU0^@|`X^hLyXeUDh%m~5<nfaEU{$+Z(F^II7ZsWN$hTb=vzCv=S*OAoemyR zkaB8d_U0xa0@;>S;Q-PHO{qTfuySpc%cmmAj(}$(&(dMFDV7mcS8x*4>P58;J&apw zLQ9P1uC{s4T&|a>MdV23JMzc8Vx;}<(bnEo3B3%Em|do=a2M}rCP`QUfJ6g{MOns4 zR9%>j9cTj-XDZiovF9V8Upott2b_-oJc{euG+sFH; zy-WOwOQ>$fwt1)cGi2+{B|7y>fL^HuU|284`I0`Uw84O#$}DeUa`=}yE91!JE0PMS z!FS&EFRNisCL^XVAoE+JraqD&EchHhX#{nIcEhi>T ze=)&)f&@BPcbaw@K)S3?j86mU!&x|Brs_Vp}gccN8>I5W1oI1 zT7Xn^9Gy`F7%2VDByzx624q!1v#U?VC_CHrQkms=dAfS`33Y9%7A$8)dbhbgEQJ9; z{=`0GR;`uCBGQ3^?>F5^wpsPTm~ULxwwM ze`JV~*Je7y3kJ*)c)PB=7=C&1U$K;bOy&(we)YP=+hJF-%ltGotblo`aFZW3e2~Zk z*>}q?12l}?;0>J&Po`9-bmhjP-o+aEbsoT z`x5bn*S#PC-$s``b-2k{F)asi5hsUK5u-M`+uTXjHh3PJT-m=%fx&Gc$ljaKeP1=xh~1|+s1@ks)&5_pmObBk)JU!&QjB8uR90U+5zAZX(@GaiWq|X zLBp8exqPw_(O7q-74H*BbwV1V{1I#33l!5{)hN8VGUAQU*zd5$NWco>XgNL?7#FbW z{oq>H&PzdD#3t(Y-bh(IsK6>|_NxJPZaM_X9eBG|UjO#Wd?f;46{ieRUZZCt=p~O0 zk0M1^yMZ(oB!HtAR!sptIU2@T6e)TBIx}k`E{jK&AnSg>-8~0)6znDpgS^Fh^U@Qk5wYh}@}p4P=<-mAY~OU`^(1+`i5sqs0D40;sV~s zzqX{A7G_`s8DgZeBUkOuAnTO3C-i1d-1gbZdazGRRfNCP6&=|u*KC+3tGBVhx5s8G zl6+2gLOqDGywEdPNc3%Wiv^Nz1@5pb-jCvUv%eFxx&1q3EIwWMZu{7e9)d0`MUmS7 zV%QVu)-cAox@oQ-RzXw0RPNgtBZ#4)d1~DN99C>b^0R@% z5==oN+B5Me7DA=*mLi5kBHM-I8Z34j#$I3D?$5)W!+Kqk23=$9KPRr2A$72yblkl2 zZC~EGJ;*&^>UgPOaNM1w3Qji%c0!LN@-8^e98{o9A3qXND$U<46<>4`!m&6csL+qQ zGt_3TEm07jue?{cc+K;|J54f?=2+=VEk(W=cH(HE<{GL=31^YAAW%`DnBK= zj`N-^YWN&J?@U)jBzY%_{NkWroflOR+NzjrVmzCDc)F={_OxUt9+(V(8N}!PlBZ0C zeE+qHv0y4cu6xFHEyxB7ujw@Tr2C<#%#SfX1Q^9grvT`9Gf$0#fmf$4q8rYT>-9FK zo_4-&nkz#b-S^Av+}dDCqJ6~Fb;_r{xkmuIbC0FhJcsJCYs(%|A-11wMcIunzr&-3 zO*V;+uwGio95dwmI>dy_sKq4imOi>re0J?=!%`KAGIilh?v)noayfQbSZmeGJ%&O`j?;|>yO#0;S=i?N!p#?b&%*vaNA>fm_V6*Hl=ELk#yIh+R$2;O-?UtGI$;)57hvUek zYgN6GNT&wdgCfkmTcVkxoWT~~ivwr%wLtACM(3sq6>b8YM@7Zzu_~xqR+%`y;?n2T zJf?gu_ro->*ii3eA`6|F%LF#7tU7Q;_rSM|K^bw+d8)0`6Qx@9pv)P(Z`|%GrZix2 znppr5K3#~CsuTd%!p1APl7%Cv}wK4m4cy?W}Lyk!rW`43n{wU^K z{Awki*xh+2r+~^w5^1&rJA$neQNmeA9$5(BL5t|5ClQ8Yj5%EbGxDG##vsh|ubXYp zUN00md3G(Z<)QjcsdPT4gU%PTS|z0E-#+Ug7p@U&Iq+Fm6fN`(PVnvjj2Nm0pdp}aQ%!?1M+;r6HJoN+K&XE z;WfedftD+dk>To9hEi}(`Ex+*EyZGo%j1T)f|R#fTm5RV7uZz{d4Z5ij)h=)q$MTl2I# zP2*o)f+t9!II+y`tfuX(pjugAtEA8Iy-)XJp!3<|BLJX^mo80?zqUI#`7uRwaB(Om z(tA3~_DdVf>qe3G+TbyBp^)dT&f6RWx|PCODW2UU$7MggR|1V6hnx9v*Vk<~Eoy5u zn597ijvK7KPWg5k-(a3ba#Kxj7PD@y&(>1(@aSvqh({N#9723Ga70Vrx%I#=5WM;j z++_b;{;Qn%SJUbkqg_+PLdBVKtM-?0+S*oYwtE`(x0YvOwz&w)%|7tu<8YTrsi0@^ zARoyzaMSEsh$^M~c|!O?GT-R+iN9{S#ZM<1G;rOE$oi%tmo_mA`JUF*1WZhdT4~|k zwc8G#h{&%5aGWt{_{SLTdxmx{G(Fk8(NF_j=soKJfoCix;LSTr{kF^C+;5mzdADvv z6M+3KJM@C&`t_Guo?(-oQhX0-o8EmhoZ3aoe=~pAG%6L3@-W>P(G_!gAg)TP4c)bN zUTH|}ZZN6($)^9}teI?LM0nfvURJ_3J3-qRn-*OfI|}bkg>S3(UU)uj0L&7@rsvBi zGRP)wl}bwHbBaLCir182GGu`twU$aik0Ct5jU=YSV;Fs&y!dH-w{vwJG-FH}n4DL9 z-tq95#I-B+>wZYN!r{lK)4r#5KhX@!?yWe1UxsOAcgE{(t)ygWRTV8P|Fv-nX5a^L zueLruwX5mKjo*o0trAw4izF`}O*MwUiKrQY`r5HzI<^n%y9c@eQ+8k!`GfO;smrRy z=L&;x)w^OjKTale*YCbGoiWx<8zj}<yL`O|3VF zJkdL%&5)0F$Z0-wVL}A7rWNPpO;prL$|W+R&IwsD@DXf1YIy+7AVMvKi`ELD4Cpz3 zv0FA(rfW8nErY^`f#Q1s$pS0XVXoegJ6}e5gN-?UHjD_j7(M;*VcCaxbLNX!(B$y3 zi=*Sqs0}TZ(ICk#@{mc3c+!xM%}yA9W9k$3Y^{Yi4T2I@Nmp-zCT@VX(S@d)=Qs%q zYsB^%DM(_x!i>iK(;|LV`TfOr{o*+YuY6a%_!kUI{68|jFhn#vS#-k6{3hqr7-1b% zdZ}Oq|C#Nc8qyj?p1(hUVic-4Fk@y771I4C$A(L0fP9*kA361^pj{`&6=HOT;4a1* zdwdhy^ zCL3B+ukV`}dFEK%&#k!01N#|dx07%%Ff3SWCwKkv@LNNnE^Am{9|(o@KI`f10gjiA{Oxk_w>{o6v=C6+7BPKdb@VOw`Qk}(up|V5AT0b_o}D+ za$~A-+V*^Yll}L2x#Z$2I`~_y@$b&#eso+uusEgFQ?_pS9KW^+T|4}0lzcdxuuyH8 zPqP_kCoaBuv}X(AK|8^B?QDGi686o>7V~_tr1BH%oKE=aWGu4N>zPFM>o~aNIko`# zhEz9(pO-#03LPyb{DeN`a4Ae2Tns1Ef(j3O7Vt7SYms;3(!p^XKu5K15vL1}NfrKk;R{75*+bKjLpA&EVve z+H_k}AgXjkYatPPr;kHMmMx3^Aruc{5wPeJ+Z}!Dlo1p}J>9aek7;}4_KMQAYwTCo zi|BAuyR?sTqBuGyRu}#Ic=rxp>|1{ZH;HxjM#2(G;5Ic@XDM*XD>c*F#bZsJCGi8R z6gsUx3?;(mz&qY@W}go5;!8ErF3*)J{+1@uN=H23UDL)4Gf1Lsnm)RlV;CtLM)f4s z^h$x3k_q!C8YjyfMKXx8G)y@uR=`BUoU{!0zcDzDFK@GwV9|A zu0P>$lQZy&u~#B})Wvi`)k9&L%_Ku-mw`mFpg%FhqbH}$Wxt?FpMtxjmnZUA8ayFz zBu|l}!==bkN55<@cBqbs)Rsq2nG%cHyV#@Q&pc!0&f1>Wj~?x1yzsFE5cdmh_Wh2@ zyb@Y4RCD{3uPzUVmyg z_m}!d-i23}JWg=_a{5d&m Date: Tue, 3 Nov 2020 20:01:40 +1000 Subject: [PATCH 06/31] Add back png --- resources/images/ideagen3D.png | Bin 0 -> 11333 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 resources/images/ideagen3D.png diff --git a/resources/images/ideagen3D.png b/resources/images/ideagen3D.png new file mode 100644 index 0000000000000000000000000000000000000000..c02c18b047893ce54621d129cac35037b81d171f GIT binary patch literal 11333 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 Date: Sat, 7 Nov 2020 12:14:44 +1000 Subject: [PATCH 07/31] Fix machine_quality and mesh orientation has_machine_quality true -> false bed mesh was flipped 90 deg, to lay flat --- .../ideagen3D_sapphire_plus.def.json | 2 +- resources/meshes/ideagen3D_sapphire_plus.3mf | Bin 9151 -> 9423 bytes 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/definitions/ideagen3D_sapphire_plus.def.json b/resources/definitions/ideagen3D_sapphire_plus.def.json index 80c719cafd..e854d1d556 100644 --- a/resources/definitions/ideagen3D_sapphire_plus.def.json +++ b/resources/definitions/ideagen3D_sapphire_plus.def.json @@ -11,7 +11,7 @@ "platform": "ideagen3D_sapphire_plus.3mf", "platform_texture": "ideagen3D.png", "has_materials": true, - "has_machine_quality": true, + "has_machine_quality": false, "machine_extruder_trains": { "0": "ideagen3D_sapphire_plus_0" } }, "overrides": diff --git a/resources/meshes/ideagen3D_sapphire_plus.3mf b/resources/meshes/ideagen3D_sapphire_plus.3mf index 7c53578fca9c9f616adfa679833ccae68ab3410a..400b7df9012ef977a8148e4d7fe31dd04cbdf5b6 100644 GIT binary patch delta 8090 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 B&D#I~ delta 7817 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 BCRzXh From 644c3443b14ee88b1bc0393ca501cae7ab0956c5 Mon Sep 17 00:00:00 2001 From: Kostas Karmas Date: Tue, 10 Nov 2020 16:47:16 +0100 Subject: [PATCH 08/31] Add tests for correctPrintSequence CURA-7833 --- tests/TestMachineManager.py | 130 ++++++++++++++++++++++++++++++++++++ 1 file changed, 130 insertions(+) diff --git a/tests/TestMachineManager.py b/tests/TestMachineManager.py index 788b8eee41..f63944c153 100644 --- a/tests/TestMachineManager.py +++ b/tests/TestMachineManager.py @@ -1,3 +1,4 @@ +import functools from unittest.mock import MagicMock, patch, PropertyMock import pytest @@ -10,6 +11,23 @@ def createMockedStack(stack_id: str, name: str): return stack +def getPropertyMocked(setting_key, setting_property, settings_dict): + """ + Mocks the getProperty function of containers so that it returns the setting values needed for a test. + + Use this function as follows: + container.getProperty = functools.partial(getPropertyMocked, settings_dict = {"print_sequence": "one_at_a_time"}) + + :param setting_key: The key of the setting to be returned (e.g. "print_sequence", "infill_sparse_density" etc) + :param setting_property: The setting property (usually "value") + :param settings_dict: All the settings and their values expected to be returned by this mocked function + :return: The mocked setting value specified by the settings_dict + """ + if setting_property == "value": + return settings_dict.get(setting_key) + return None + + @pytest.fixture() def global_stack(): return createMockedStack("GlobalStack", "Global Stack") @@ -255,3 +273,115 @@ def test_isActiveQualityNotSupported(machine_manager): def test_isActiveQualityNotSupported_noQualityGroup(machine_manager): machine_manager.activeQualityGroup = MagicMock(return_value=None) assert not machine_manager.isActiveQualitySupported + + +def test_correctPrintSequence_globalStackHasAllAtOnce(machine_manager, application): + + # Global container stack already has all_at_once + mocked_stack = application.getGlobalContainerStack() + mocked_global_settings = {"print_sequence": "all_at_once"} + mocked_stack.getProperty = functools.partial(getPropertyMocked, settings_dict=mocked_global_settings) + + mocked_user_changes_container = MagicMock(name="UserChangesContainer") + mocked_stack.userChanges = mocked_user_changes_container + + machine_manager.correctPrintSequence() + + # After the function is called, the user changes container should not have tried to change any properties + assert not mocked_user_changes_container.setProperty.called, "The Print Sequence should not be attempted to be changed when it is already 'all-at-once'" + + +def test_correctPrintSequence_OneEnabledExtruder(machine_manager, application): + # Global container stack reports print sequence as one_at_a_time + mocked_stack = application.getGlobalContainerStack() + mocked_global_settings = {"print_sequence": "one_at_a_time"} + mocked_stack.getProperty = functools.partial(getPropertyMocked, settings_dict=mocked_global_settings) + + # The definition changes container reports 1 enabled extruders, so the correctPrintSequence should not attempt to + # change the print sequence + mocked_definition_changes_container = MagicMock(name = "DefinitionChangesContainer") + mocked_definition_changes_settings = {"extruders_enabled_count": 1} + mocked_definition_changes_container.getProperty = functools.partial(getPropertyMocked, settings_dict=mocked_definition_changes_settings) + mocked_stack.definitionChanges = mocked_definition_changes_container + + mocked_user_changes_container = MagicMock(name = "UserChangesContainer") + mocked_stack.userChanges = mocked_user_changes_container + + machine_manager.correctPrintSequence() + + # After the function is called, the user changes container should not have tried to change any properties + assert not mocked_user_changes_container.setProperty.called, "The Print Sequence should not be attempted to be changed when there is only one enabled extruder." + + +def test_correctPrintSequence_TwoExtrudersEnabled_printSequenceIsOneAtATimeInUserSettings(machine_manager, application): + # Global container stack reports print sequence as one_at_a_time + mocked_stack = application.getGlobalContainerStack() + mocked_global_settings = {"print_sequence": "one_at_a_time"} + mocked_stack.getProperty = functools.partial(getPropertyMocked, settings_dict=mocked_global_settings) + + # The definition changes container reports 2 enabled extruders. Also the print sequence change is not saved in the + # quality changes container. + mocked_definition_changes_container = MagicMock(name = "DefinitionChangesContainer") + mocked_definition_changes_settings = {"extruders_enabled_count": 2, "print_sequence": None} + mocked_definition_changes_container.getProperty = functools.partial(getPropertyMocked, settings_dict=mocked_definition_changes_settings) + mocked_stack.definitionChanges = mocked_definition_changes_container + + # The user changes container reports print sequence as "one-at-a-time" + mocked_user_changes_container = MagicMock(name = "UserChangesContainer") + mocked_user_changes_settings = {"print_sequence": "one_at_a_time"} + mocked_user_changes_container.getProperty = functools.partial(getPropertyMocked, settings_dict=mocked_user_changes_settings) + mocked_stack.userChanges = mocked_user_changes_container + + machine_manager.correctPrintSequence() + + # After the function is called, the user changes container should have tried to remove the print sequence from the + # user changes container + mocked_user_changes_container.removeInstance.assert_called_once() + + +def test_correctPrintSequence_TwoExtrudersEnabled_printSequenceIsOneAtATimeInDefinitionChangesSettings(machine_manager, application): + # Global container stack reports print sequence as one_at_a_time + mocked_stack = application.getGlobalContainerStack() + mocked_global_settings = {"print_sequence": "one_at_a_time"} + mocked_stack.getProperty = functools.partial(getPropertyMocked, settings_dict=mocked_global_settings) + + # The definition changes container reports 2 enabled extruders and contains the print_sequence change to "one-at-a-time" + mocked_definition_changes_container = MagicMock(name = "DefinitionChangesContainer") + mocked_definition_changes_settings = {"extruders_enabled_count": 2, "print_sequence": "one_at_a_time"} + mocked_definition_changes_container.getProperty = functools.partial(getPropertyMocked, settings_dict=mocked_definition_changes_settings) + mocked_stack.definitionChanges = mocked_definition_changes_container + + # The user changes container doesn't contain print_sequence + mocked_user_changes_container = MagicMock(name = "UserChangesContainer") + mocked_user_changes_settings = {"print_sequence": None} + mocked_user_changes_container.getProperty = functools.partial(getPropertyMocked, settings_dict=mocked_user_changes_settings) + mocked_stack.userChanges = mocked_user_changes_container + + machine_manager.correctPrintSequence() + + # After the function is called, the print sequence should be set to "all-at-once" in the user changes container + mocked_user_changes_container.setProperty.assert_called_once_with("print_sequence", "value", "all_at_once") + + +def test_correctPrintSequence_TwoExtrudersEnabled_printSequenceInUserAndDefinitionChangesSettingsIsNone(machine_manager, application): + # Global container stack reports print sequence as one_at_a_time + mocked_stack = application.getGlobalContainerStack() + mocked_global_settings = {"print_sequence": "one_at_a_time"} + mocked_stack.getProperty = functools.partial(getPropertyMocked, settings_dict=mocked_global_settings) + + # The definition changes container reports 2 enabled extruders but doesn't contain the print_sequence changes + mocked_definition_changes_container = MagicMock(name = "DefinitionChangesContainer") + mocked_definition_changes_settings = {"extruders_enabled_count": 2, "print_sequence": None} + mocked_definition_changes_container.getProperty = functools.partial(getPropertyMocked, settings_dict=mocked_definition_changes_settings) + mocked_stack.definitionChanges = mocked_definition_changes_container + + # The user changes container doesn't contain the print_sequence changes + mocked_user_changes_container = MagicMock(name = "UserChangesContainer") + mocked_user_changes_settings = {"print_sequence": None} + mocked_user_changes_container.getProperty = functools.partial(getPropertyMocked, settings_dict=mocked_user_changes_settings) + mocked_stack.userChanges = mocked_user_changes_container + + machine_manager.correctPrintSequence() + + # After the function is called, the print sequence should be set to "all-at-once" in the user changes container + mocked_user_changes_container.setProperty.assert_called_once_with("print_sequence", "value", "all_at_once") From 67c6d6da084e99d0cc636a286836b7dc4adf4c87 Mon Sep 17 00:00:00 2001 From: Kostas Karmas Date: Tue, 10 Nov 2020 16:54:53 +0100 Subject: [PATCH 09/31] Fix assertion CURA-7833 --- tests/TestMachineManager.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/TestMachineManager.py b/tests/TestMachineManager.py index f63944c153..973a2d3d96 100644 --- a/tests/TestMachineManager.py +++ b/tests/TestMachineManager.py @@ -336,7 +336,7 @@ def test_correctPrintSequence_TwoExtrudersEnabled_printSequenceIsOneAtATimeInUse # After the function is called, the user changes container should have tried to remove the print sequence from the # user changes container - mocked_user_changes_container.removeInstance.assert_called_once() + mocked_user_changes_container.removeInstance.assert_called_once_with("print_sequence") def test_correctPrintSequence_TwoExtrudersEnabled_printSequenceIsOneAtATimeInDefinitionChangesSettings(machine_manager, application): From c84fe224617937baf1efb3c651c7ee74a4c533db Mon Sep 17 00:00:00 2001 From: Firedrops <31351436+Firedrops@users.noreply.github.com> Date: Sun, 15 Nov 2020 23:13:36 +1000 Subject: [PATCH 10/31] Fix bed orientation & logo Fixed bed orientation Debossed the logo into the mesh --- resources/meshes/ideagen3D_sapphire_plus.3mf | Bin 9423 -> 67190 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/resources/meshes/ideagen3D_sapphire_plus.3mf b/resources/meshes/ideagen3D_sapphire_plus.3mf index 400b7df9012ef977a8148e4d7fe31dd04cbdf5b6..4ae4569d0a9c6ea68746a5f05262f500c6701d15 100644 GIT binary patch literal 67190 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 literal 9423 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 FzW}4w*)aeB From 2923204c2b0037aa70b3c7e9076b11a60d929b5f Mon Sep 17 00:00:00 2001 From: Firedrops <31351436+Firedrops@users.noreply.github.com> Date: Mon, 16 Nov 2020 12:43:20 +1000 Subject: [PATCH 11/31] Fixed Bed Position Bed Mesh was poking above actual bed plane in Cura, bed shifted down to align properly. --- resources/meshes/ideagen3D_sapphire_plus.3mf | Bin 67190 -> 75215 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/resources/meshes/ideagen3D_sapphire_plus.3mf b/resources/meshes/ideagen3D_sapphire_plus.3mf index 4ae4569d0a9c6ea68746a5f05262f500c6701d15..3b5c41a3f30833f3b324f0fc53d02893311fb0f5 100644 GIT binary patch delta 74540 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 literal 67190 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 From 16f457ba080f975e22d3817d464cd447286658d9 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Tue, 17 Nov 2020 10:23:15 +0100 Subject: [PATCH 12/31] Expand description of what it means when skin angle is 'horizontal' or 'vertical' Just something I encountered during work on CURA-7681. --- resources/definitions/fdmprinter.def.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 4ccdfd34ee..3dea7a7c9a 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -2065,7 +2065,7 @@ "max_skin_angle_for_expansion": { "label": "Maximum Skin Angle for Expansion", - "description": "Top and/or bottom surfaces of your object with an angle larger than this setting, won't have their top/bottom skin expanded. This avoids expanding the narrow skin areas that are created when the model surface has a near vertical slope. An angle of 0° is horizontal, while an angle of 90° is vertical.", + "description": "Top and/or bottom surfaces of your object with an angle larger than this setting, won't have their top/bottom skin expanded. This avoids expanding the narrow skin areas that are created when the model surface has a near vertical slope. An angle of 0° is horizontal and will cause no skin to be expanded, while an angle of 90° is vertical and will cause all skin to be expanded.", "unit": "°", "type": "float", "minimum_value": "0", From 5e383d4f424580c3e38bf7212e20d86f4ab1c34d Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Tue, 17 Nov 2020 10:51:30 +0100 Subject: [PATCH 13/31] Fix documentation This is a checkbox, not a combobox. --- resources/qml/Widgets/CheckBox.qml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/qml/Widgets/CheckBox.qml b/resources/qml/Widgets/CheckBox.qml index 1de0e4addd..f79dc1620e 100644 --- a/resources/qml/Widgets/CheckBox.qml +++ b/resources/qml/Widgets/CheckBox.qml @@ -1,4 +1,4 @@ -// Copyright (c) 2019 Ultimaker B.V. +// Copyright (c) 2020 Ultimaker B.V. // Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.10 @@ -9,7 +9,7 @@ import Cura 1.1 as Cura // -// ComboBox with Cura styling. +// Checkbox with Cura styling. // CheckBox { From 29258aa5e2754b72852f9769de62502e5892b110 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Tue, 17 Nov 2020 10:52:25 +0100 Subject: [PATCH 14/31] Always display tooltip on combobox items if text gets elided So if the text is too long to display, there is still a way to display it. --- resources/qml/Widgets/ComboBox.qml | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/resources/qml/Widgets/ComboBox.qml b/resources/qml/Widgets/ComboBox.qml index 5a1ff16b95..47c80a9ce6 100644 --- a/resources/qml/Widgets/ComboBox.qml +++ b/resources/qml/Widgets/ComboBox.qml @@ -124,6 +124,7 @@ ComboBox contentItem: Label { + id: delegateLabel // FIXME: Somehow the top/bottom anchoring is not correct on Linux and it results in invisible texts. anchors.fill: parent anchors.leftMargin: UM.Theme.getSize("setting_unit_margin").width @@ -138,10 +139,15 @@ ComboBox verticalAlignment: Text.AlignVCenter } - background: Rectangle + background: UM.TooltipArea { - color: parent.highlighted ? UM.Theme.getColor("setting_control_highlight") : "transparent" - border.color: parent.highlighted ? UM.Theme.getColor("setting_control_border_highlight") : "transparent" + Rectangle + { + color: parent.highlighted ? UM.Theme.getColor("setting_control_highlight") : "transparent" + border.color: parent.highlighted ? UM.Theme.getColor("setting_control_border_highlight") : "transparent" + anchors.fill: parent + } + text: delegateLabel.truncated ? delegateItem.text : "" } } } From 558a789289f97be684cbb4be76524db508f57bd9 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Tue, 17 Nov 2020 10:56:12 +0100 Subject: [PATCH 15/31] Use Cura's own ComboBox element for combo boxes This one displays a tooltip if the text is too long and gets elided, so that you can still read the printer or profile name. Fixes #8773. --- plugins/3MFReader/WorkspaceDialog.qml | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/plugins/3MFReader/WorkspaceDialog.qml b/plugins/3MFReader/WorkspaceDialog.qml index 685d15308b..1fd20a3534 100644 --- a/plugins/3MFReader/WorkspaceDialog.qml +++ b/plugins/3MFReader/WorkspaceDialog.qml @@ -1,4 +1,4 @@ -// Copyright (c) 2016 Ultimaker B.V. +// Copyright (c) 2020 Ultimaker B.V. // Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.10 @@ -7,6 +7,7 @@ import QtQuick.Layouts 1.3 import QtQuick.Window 2.2 import UM 1.1 as UM +import Cura 1.1 as Cura UM.Dialog { @@ -110,13 +111,14 @@ UM.Dialog height: visible ? comboboxHeight : 0 visible: base.visible && machineResolveComboBox.model.count > 1 text: catalog.i18nc("@info:tooltip", "How should the conflict in the machine be resolved?") - ComboBox + Cura.ComboBox { id: machineResolveComboBox model: manager.updatableMachinesModel visible: machineResolveStrategyTooltip.visible textRole: "displayName" width: parent.width + height: UM.Theme.getSize("button").height onCurrentIndexChanged: { if (model.getItem(currentIndex).id == "new" @@ -217,12 +219,13 @@ UM.Dialog height: visible ? comboboxHeight : 0 visible: manager.qualityChangesConflict text: catalog.i18nc("@info:tooltip", "How should the conflict in the profile be resolved?") - ComboBox + Cura.ComboBox { model: resolveStrategiesModel textRole: "label" id: qualityChangesResolveComboBox width: parent.width + height: UM.Theme.getSize("button").height onActivated: { manager.setResolveStrategy("quality_changes", resolveStrategiesModel.get(index).key) @@ -323,12 +326,13 @@ UM.Dialog height: visible ? comboboxHeight : 0 visible: manager.materialConflict text: catalog.i18nc("@info:tooltip", "How should the conflict in the material be resolved?") - ComboBox + Cura.ComboBox { model: resolveStrategiesModel textRole: "label" id: materialResolveComboBox width: parent.width + height: UM.Theme.getSize("button").height onActivated: { manager.setResolveStrategy("material", resolveStrategiesModel.get(index).key) From 371885d826dc8f1dbc68a449a1b270111d6df786 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Tue, 17 Nov 2020 11:14:48 +0100 Subject: [PATCH 16/31] Remove ideagen3D platform texture This platform mesh is 3MF (whose texture coordinates we cannot read) and doesn't contain actual texture coordinates either. Contributes to issue CURA-7852. --- .../ideagen3D_sapphire_plus.def.json | 1 - resources/images/ideagen3D.png | Bin 11333 -> 0 bytes 2 files changed, 1 deletion(-) delete mode 100644 resources/images/ideagen3D.png diff --git a/resources/definitions/ideagen3D_sapphire_plus.def.json b/resources/definitions/ideagen3D_sapphire_plus.def.json index e854d1d556..6a7e7d6bb0 100644 --- a/resources/definitions/ideagen3D_sapphire_plus.def.json +++ b/resources/definitions/ideagen3D_sapphire_plus.def.json @@ -9,7 +9,6 @@ "manufacturer": "ideagen3D", "file_formats": "text/x-gcode", "platform": "ideagen3D_sapphire_plus.3mf", - "platform_texture": "ideagen3D.png", "has_materials": true, "has_machine_quality": false, "machine_extruder_trains": { "0": "ideagen3D_sapphire_plus_0" } diff --git a/resources/images/ideagen3D.png b/resources/images/ideagen3D.png deleted file mode 100644 index c02c18b047893ce54621d129cac35037b81d171f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11333 zcmd6NcT`i`)-N74qQ(Y_MnO7)(vlD`ROukSNpB{h_mBY6#Gr!oA|(<)DFRYO0YShh zy@M3#NC_fMKtcMq1L`^Vj{DyC-uK5FFJnM<_MU6b->hq{wO6pFy5fmr7mv}<(40_K zlGCQ4IYAnh%E`QiMVSkwkFqnX+rHcTRUy!QO9w8d_ zht37(=CCImjS|2(U>q?{?pS~p`iIuV#@XE&YvcUCVEyOuzX$+KtETox#(%`(==etj z)?FSCsPW4n|B)K2>*azG(8ge$ac(G#JRX3_PSwUmRMrh+>F(^N>+J0C+fkaoA+x{$ zty#GBZJp509$21#48X`)x??2RV1h6~J}8t=5T*+i7KI6l3W;2U3W^E}?vtuHqiwCc z{v#>u-${XxL0h_8{4d^4%So^S#^JZMMT=V9 zzK%g+M9_Rt1YC#@b6W_;cO8m>@>wB;Z$pKIgkVS!^zZR<&L|u;1b&Z4|6h*RaI*zc z(9+?5%!ito)YuVKvc&>k_4<`MIvCeqR}Qu;d*LE#iK3=~1RIL#e+;0({%za;u?6RFaMM( z;K!e0hj9WboEuQevL7-Yq@m&JQI?a|^&FTd9eKqeU-{5}dW5s=kk(6D-e>Q0jz*t7 z9JSWbQ_p&dhMA2e$mQhC<z^5Uvj=6y?oE-Qmmj(uIpXH7od3u&q;^4ZlE7h2U;KJf1Ic zt8*?Jse`ScXy8qGX5;jq&J!09tytnip;DVn`>Lmj#Eud9;4ukesRZNGuRpwuR#GVu z#95*0F2?MB!{X#~bv6%lr7J4DFyDq(&nKLJr&?E*+&HFPBD>LRhehvcYZ_WX`DB27 zLopAqS5vB28qg!!o*{GFwc6q9byFL~yilMea#ySvHvp!IT?DK1|u>LyL>&VOYAhX>8 z@-Zb+`W~1La74Ou;I~uZv}^&xkKaS57sWmi(Qm$=hRpd?er+=vIk&EpgsAYCkCaBA zhHwCJpj5yX(wlaMoV+OhCO$Mj%JoDLcvWFCBW$r~*4LR;4iqK5uTf=CuD~rldJiy@ z;vw&=fiFM0`=U<-gIC+9s{D_gkpbAr?b|b?LFPwbP!P+#%E!kIi#3`HPs)M3uiei- z&Hq`anhpJ}pzRd1+KrNJ=i76#dn06Wg~VSFJq~|#dIpVqNeT3<(_7{&Ti%_daKyVC zfYRbcwbO#d-aZ(S5K*VCOuAM8zBu8-(_!Y{UiNTb<*umLwV79UC>Q4CB1x$}p|!8< zD{x~W#0+-(MmCJgWt^Hr%ynq)kz=2=N-oRFH>cK!_l<`ThY{v|bHuyr2cRnh65 zSR7>a;O1x^R!Zb&D@PRf4bYVRpic5S)UmWg;`5SN&)XMI@Y&8o!kne%#(gf|^D zY~G}O>dmuI;_4U*W&^?*$TXQdd<01`!gSFdxd`l2e3Xi>zD}4}rGfy&@d`n^84`8z z@6gw77|XKrdn+el1q}f+6my}i3wQ5-)5-Z^1yh!>+1b%(eWdlz_-uNNZ-wf=_NOiN zQUA)=%h|w^C=fWRmlq$BX?nF>{}t&U$d`?$c3Bow&VbO7EfHR~rU~kouFRhdSJ==z z0fceXULbrIHO{U(Si08ZQ*nY~Z*?ARgf^9pB^nu>Shq8x;5iEps9w5$`Uwp4GE=##I^wH7& zPX@^V$yvCoo}S=i!YSpfStWdXcL%P|^#?w!G$@L^V=^j`ZY%!D=lzEv zulmkiUDwts&13H54f-p|v-JQK$KL%VfivMkDU4 zTi{o}L=yjj|$~Tw^a?wK98av?4se zc>hiD@OsWtV!V3ugYHHX?H`v~XJ1u|SUKXdC93ou){EZ*M;EU8MNph8qsc!=(zk^I z${*k5JkEGy@-9@2yHC;YGql;}@C9rT!?r@JzbMm6Eq_z0@dQC{r3Cl*Ys~9pC)2iW z-l2d1w+3XIyW`~bRLMq!+h)fLVu6QE00+XTC0W(g`HULh`;E>brsxx;BZ_*S{8yhT zT)AGqrTNefjbByF(#jXzKE0p5np|BcVt0q_NBA{CQx=9AE78OEvUDO0i5bTkdF|W6m&}tSg&4d}b#wZO z$5f5;UyTs(1mM7M{(%=U`7vSwL(jPQ7xT_tKl3DMkYWw%<&3~hM6H$=k6nC&6D6*5 zuO)Hp`exfzxsw3rvA{kdAh8EArU=)@&q^)rs59NX^e+jso1eSHVcetG(BivH&m|LQ zxpAAt?1AzoRrU-fr^M<(_o95E*HB~1hfjS+SdV8atTVjqics}d=eId?ZPZ`k5;^r` ze_gpZB80(b`KN_-<$E7pRZ`oRcj{u&z+Ca=hl;@T9BsIZmB5!4Pl+k-<)&2k$-E>& zbgkA-ZEl59lbFFxwf117@{O?NAMlm6#dCt$jcb<`!$i9x{7lD!8%>j9%tCRsJzwhn zVz{ZD)_R+A-A=c~v!3lTwX%_u8^*xxB>tdkaOOubLd-mWoVSB!+Bk!<;`9ZfDQ`*o zC>#g7KQmUt$3gR5+lDCAH}2xptl|Qj^)%zQ66INKPtDXCz&{M<7QJ@&9z&47OCagu zIrvE9(oX375&5}sy1kN7$xvi`T`K0V!xF*gG9>omd|k~TwEr~EmPK6^M?rP?MO?Z< zSF*_Th1v9W5`exuXuG1xkLOt^?ntf4QyJs)BE5-XXn`li3g&XXVz;g!7uKv;BdC?k zLIkZ@HLbv)l<`GUSLm-7ov~k=GGIwW)F0=$qL&b{ z+^$%RHOZ4H7dYhsK(UZ&N@Zje%kC8`;oNSy3e7ZfMluha^g?Tzl@`@Q$^HEfj`Z6O zqjv%jbdV%4AxA0?mS1^>6%DIyDoV3cs@Wiyggf~+{=yl`pH0~J(Jp!vi>n(J zuE;NECv*jP=*`5dHSYTNubcAcT<-!Ec&WaFDLIo|Bde}vFu$p9CFHnH*M?j(O9^ol z8yYX7=kRTqQ&Mfb-b=bD*ehW*Iw=3GEx|wRW)(+A9trY1(<+v{En&y8yNhf++-<#M zV4bYB7N;17b}Uk^TetCk?3ev|%OAdK_TEP*<#=~Z##iN)sHDOH5&%1h@Ogv=B7Ojf z=VmU#6))8)H<}dVsDtF8H(1VVmTNVyWP?rv1$WcCA(c^}^kalE?3zVno9OyTvNrpg z^_+?_@ny1NwVShFk<3`al>#vVi(Ij&mqN8eF6ff_wwNv7?NHRP)&T@j+R%vd{famP zKkTGae33%Mkru^bZk2J9C}CzM-FvlLk*4$~Wa(wqO(j#;ro6c{AUS)T*UKrm% z-vv9x6e&pR=QOkn>i6@S1mI*FlHB9#efaBlcX%l(DcNnA(p_7NtCbx%5YVQ?-30m5 zU-$aHNfw;jTI(W;>CW=Ce+(?7g>0#(f|o54MiB~d#pZ<~3pcj%Ojf+y8nxN8FgS6ql&>cxZ#zCTpskXc8Sy|RHlwhQ~ zUpi71d+06pebcM^ZxR#NJsXUpB;(zKOWs<2cvtlhNa~DOa?XjbF(fHx9m~@0h5O)W zw`L0n*H2h52xhRO>^eo)%)(O&=2x=a&<0JFmC3k%U`}~*V#9A?_@`9b!5GbrodR)6Ne-Q_u2L83)-z`5 zhGlWoUfEJP{l>xFbZYmmE4uI^?B|VlhBb@u8+#RkI@*_oAUVOsQE*`RjUx$+J-)}1 z^W1yX^md&8neAsR3V+xASv0^4Cvl~{x1DU<1xGO zb=<@w5;>>YqIZIJukqXi5k)4;ZH%W8Ibm(Pd$8jKyNcSh{Z1(=3o^6iP^eG2yLL21i@Ua%4l{mquuY2l7Ru~HpEXdkv&P5w+#kURi~ z+Moe~lp@J?izhFWijw!G`UL3e58VJkIDXr1Y^-stf3>ouXz}>P(CqK^H|6^7QV#sM zhA~jwGm*jgK@6m|`M{B5fQ0>dfU2uG`Wszso7u>bwhDvP!NU0^@|`X^hLyXeUDh%m~5<nfaEU{$+Z(F^II7ZsWN$hTb=vzCv=S*OAoemyR zkaB8d_U0xa0@;>S;Q-PHO{qTfuySpc%cmmAj(}$(&(dMFDV7mcS8x*4>P58;J&apw zLQ9P1uC{s4T&|a>MdV23JMzc8Vx;}<(bnEo3B3%Em|do=a2M}rCP`QUfJ6g{MOns4 zR9%>j9cTj-XDZiovF9V8Upott2b_-oJc{euG+sFH; zy-WOwOQ>$fwt1)cGi2+{B|7y>fL^HuU|284`I0`Uw84O#$}DeUa`=}yE91!JE0PMS z!FS&EFRNisCL^XVAoE+JraqD&EchHhX#{nIcEhi>T ze=)&)f&@BPcbaw@K)S3?j86mU!&x|Brs_Vp}gccN8>I5W1oI1 zT7Xn^9Gy`F7%2VDByzx624q!1v#U?VC_CHrQkms=dAfS`33Y9%7A$8)dbhbgEQJ9; z{=`0GR;`uCBGQ3^?>F5^wpsPTm~ULxwwM ze`JV~*Je7y3kJ*)c)PB=7=C&1U$K;bOy&(we)YP=+hJF-%ltGotblo`aFZW3e2~Zk z*>}q?12l}?;0>J&Po`9-bmhjP-o+aEbsoT z`x5bn*S#PC-$s``b-2k{F)asi5hsUK5u-M`+uTXjHh3PJT-m=%fx&Gc$ljaKeP1=xh~1|+s1@ks)&5_pmObBk)JU!&QjB8uR90U+5zAZX(@GaiWq|X zLBp8exqPw_(O7q-74H*BbwV1V{1I#33l!5{)hN8VGUAQU*zd5$NWco>XgNL?7#FbW z{oq>H&PzdD#3t(Y-bh(IsK6>|_NxJPZaM_X9eBG|UjO#Wd?f;46{ieRUZZCt=p~O0 zk0M1^yMZ(oB!HtAR!sptIU2@T6e)TBIx}k`E{jK&AnSg>-8~0)6znDpgS^Fh^U@Qk5wYh}@}p4P=<-mAY~OU`^(1+`i5sqs0D40;sV~s zzqX{A7G_`s8DgZeBUkOuAnTO3C-i1d-1gbZdazGRRfNCP6&=|u*KC+3tGBVhx5s8G zl6+2gLOqDGywEdPNc3%Wiv^Nz1@5pb-jCvUv%eFxx&1q3EIwWMZu{7e9)d0`MUmS7 zV%QVu)-cAox@oQ-RzXw0RPNgtBZ#4)d1~DN99C>b^0R@% z5==oN+B5Me7DA=*mLi5kBHM-I8Z34j#$I3D?$5)W!+Kqk23=$9KPRr2A$72yblkl2 zZC~EGJ;*&^>UgPOaNM1w3Qji%c0!LN@-8^e98{o9A3qXND$U<46<>4`!m&6csL+qQ zGt_3TEm07jue?{cc+K;|J54f?=2+=VEk(W=cH(HE<{GL=31^YAAW%`DnBK= zj`N-^YWN&J?@U)jBzY%_{NkWroflOR+NzjrVmzCDc)F={_OxUt9+(V(8N}!PlBZ0C zeE+qHv0y4cu6xFHEyxB7ujw@Tr2C<#%#SfX1Q^9grvT`9Gf$0#fmf$4q8rYT>-9FK zo_4-&nkz#b-S^Av+}dDCqJ6~Fb;_r{xkmuIbC0FhJcsJCYs(%|A-11wMcIunzr&-3 zO*V;+uwGio95dwmI>dy_sKq4imOi>re0J?=!%`KAGIilh?v)noayfQbSZmeGJ%&O`j?;|>yO#0;S=i?N!p#?b&%*vaNA>fm_V6*Hl=ELk#yIh+R$2;O-?UtGI$;)57hvUek zYgN6GNT&wdgCfkmTcVkxoWT~~ivwr%wLtACM(3sq6>b8YM@7Zzu_~xqR+%`y;?n2T zJf?gu_ro->*ii3eA`6|F%LF#7tU7Q;_rSM|K^bw+d8)0`6Qx@9pv)P(Z`|%GrZix2 znppr5K3#~CsuTd%!p1APl7%Cv}wK4m4cy?W}Lyk!rW`43n{wU^K z{Awki*xh+2r+~^w5^1&rJA$neQNmeA9$5(BL5t|5ClQ8Yj5%EbGxDG##vsh|ubXYp zUN00md3G(Z<)QjcsdPT4gU%PTS|z0E-#+Ug7p@U&Iq+Fm6fN`(PVnvjj2Nm0pdp}aQ%!?1M+;r6HJoN+K&XE z;WfedftD+dk>To9hEi}(`Ex+*EyZGo%j1T)f|R#fTm5RV7uZz{d4Z5ij)h=)q$MTl2I# zP2*o)f+t9!II+y`tfuX(pjugAtEA8Iy-)XJp!3<|BLJX^mo80?zqUI#`7uRwaB(Om z(tA3~_DdVf>qe3G+TbyBp^)dT&f6RWx|PCODW2UU$7MggR|1V6hnx9v*Vk<~Eoy5u zn597ijvK7KPWg5k-(a3ba#Kxj7PD@y&(>1(@aSvqh({N#9723Ga70Vrx%I#=5WM;j z++_b;{;Qn%SJUbkqg_+PLdBVKtM-?0+S*oYwtE`(x0YvOwz&w)%|7tu<8YTrsi0@^ zARoyzaMSEsh$^M~c|!O?GT-R+iN9{S#ZM<1G;rOE$oi%tmo_mA`JUF*1WZhdT4~|k zwc8G#h{&%5aGWt{_{SLTdxmx{G(Fk8(NF_j=soKJfoCix;LSTr{kF^C+;5mzdADvv z6M+3KJM@C&`t_Guo?(-oQhX0-o8EmhoZ3aoe=~pAG%6L3@-W>P(G_!gAg)TP4c)bN zUTH|}ZZN6($)^9}teI?LM0nfvURJ_3J3-qRn-*OfI|}bkg>S3(UU)uj0L&7@rsvBi zGRP)wl}bwHbBaLCir182GGu`twU$aik0Ct5jU=YSV;Fs&y!dH-w{vwJG-FH}n4DL9 z-tq95#I-B+>wZYN!r{lK)4r#5KhX@!?yWe1UxsOAcgE{(t)ygWRTV8P|Fv-nX5a^L zueLruwX5mKjo*o0trAw4izF`}O*MwUiKrQY`r5HzI<^n%y9c@eQ+8k!`GfO;smrRy z=L&;x)w^OjKTale*YCbGoiWx<8zj}<yL`O|3VF zJkdL%&5)0F$Z0-wVL}A7rWNPpO;prL$|W+R&IwsD@DXf1YIy+7AVMvKi`ELD4Cpz3 zv0FA(rfW8nErY^`f#Q1s$pS0XVXoegJ6}e5gN-?UHjD_j7(M;*VcCaxbLNX!(B$y3 zi=*Sqs0}TZ(ICk#@{mc3c+!xM%}yA9W9k$3Y^{Yi4T2I@Nmp-zCT@VX(S@d)=Qs%q zYsB^%DM(_x!i>iK(;|LV`TfOr{o*+YuY6a%_!kUI{68|jFhn#vS#-k6{3hqr7-1b% zdZ}Oq|C#Nc8qyj?p1(hUVic-4Fk@y771I4C$A(L0fP9*kA361^pj{`&6=HOT;4a1* zdwdhy^ zCL3B+ukV`}dFEK%&#k!01N#|dx07%%Ff3SWCwKkv@LNNnE^Am{9|(o@KI`f10gjiA{Oxk_w>{o6v=C6+7BPKdb@VOw`Qk}(up|V5AT0b_o}D+ za$~A-+V*^Yll}L2x#Z$2I`~_y@$b&#eso+uusEgFQ?_pS9KW^+T|4}0lzcdxuuyH8 zPqP_kCoaBuv}X(AK|8^B?QDGi686o>7V~_tr1BH%oKE=aWGu4N>zPFM>o~aNIko`# zhEz9(pO-#03LPyb{DeN`a4Ae2Tns1Ef(j3O7Vt7SYms;3(!p^XKu5K15vL1}NfrKk;R{75*+bKjLpA&EVve z+H_k}AgXjkYatPPr;kHMmMx3^Aruc{5wPeJ+Z}!Dlo1p}J>9aek7;}4_KMQAYwTCo zi|BAuyR?sTqBuGyRu}#Ic=rxp>|1{ZH;HxjM#2(G;5Ic@XDM*XD>c*F#bZsJCGi8R z6gsUx3?;(mz&qY@W}go5;!8ErF3*)J{+1@uN=H23UDL)4Gf1Lsnm)RlV;CtLM)f4s z^h$x3k_q!C8YjyfMKXx8G)y@uR=`BUoU{!0zcDzDFK@GwV9|A zu0P>$lQZy&u~#B})Wvi`)k9&L%_Ku-mw`mFpg%FhqbH}$Wxt?FpMtxjmnZUA8ayFz zBu|l}!==bkN55<@cBqbs)Rsq2nG%cHyV#@Q&pc!0&f1>Wj~?x1yzsFE5cdmh_Wh2@ zyb@Y4RCD{3uPzUVmyg z_m}!d-i23}JWg=_a{5d&m Date: Tue, 17 Nov 2020 19:41:22 +0100 Subject: [PATCH 17/31] Fix highlighting of item under tooltip area The parent was no longer the original parent. --- resources/qml/Widgets/ComboBox.qml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/qml/Widgets/ComboBox.qml b/resources/qml/Widgets/ComboBox.qml index 47c80a9ce6..d4c526e265 100644 --- a/resources/qml/Widgets/ComboBox.qml +++ b/resources/qml/Widgets/ComboBox.qml @@ -143,8 +143,8 @@ ComboBox { Rectangle { - color: parent.highlighted ? UM.Theme.getColor("setting_control_highlight") : "transparent" - border.color: parent.highlighted ? UM.Theme.getColor("setting_control_border_highlight") : "transparent" + color: delegateItem.highlighted ? UM.Theme.getColor("setting_control_highlight") : "transparent" + border.color: delegateItem.highlighted ? UM.Theme.getColor("setting_control_border_highlight") : "transparent" anchors.fill: parent } text: delegateLabel.truncated ? delegateItem.text : "" From 394fa8f2f294c292633f828a6ec8c97148a75ac2 Mon Sep 17 00:00:00 2001 From: Lucas Teske Date: Tue, 17 Nov 2020 17:05:15 -0300 Subject: [PATCH 18/31] Add Z-Hop and filament retraction to Timelapse So less string occurs --- .../PostProcessingPlugin/scripts/TimeLapse.py | 42 ++++++++++++++++++- 1 file changed, 40 insertions(+), 2 deletions(-) diff --git a/plugins/PostProcessingPlugin/scripts/TimeLapse.py b/plugins/PostProcessingPlugin/scripts/TimeLapse.py index 41fd4a5805..778ec0f7b2 100644 --- a/plugins/PostProcessingPlugin/scripts/TimeLapse.py +++ b/plugins/PostProcessingPlugin/scripts/TimeLapse.py @@ -66,6 +66,22 @@ class TimeLapse(Script): "type": "float", "default_value": 9000, "enabled": "park_print_head" + }, + "retract": + { + "label": "Retraction Distance", + "description": "Filament retraction distance for camera trigger.", + "unit": "mm", + "type": "int", + "default_value": 1 + }, + "zhop": + { + "label": "Z-Hop when parking", + "description": "Z-hop length before parking", + "unit": "mm", + "type": "float", + "default_value": 0.8 } } }""" @@ -77,9 +93,12 @@ class TimeLapse(Script): y_park = self.getSettingValueByKey("head_park_y") trigger_command = self.getSettingValueByKey("trigger_command") pause_length = self.getSettingValueByKey("pause_length") + retract = int(self.getSettingValueByKey("retract")) + zhop = self.getSettingValueByKey("zhop") gcode_to_append = ";TimeLapse Begin\n" last_x = 0 last_y = 0 + last_z = 0 if park_print_head: gcode_to_append += self.putValue(G=1, F=feed_rate, @@ -90,16 +109,35 @@ class TimeLapse(Script): for idx, layer in enumerate(data): for line in layer.split("\n"): - if self.getValue(line, "G") in {0, 1}: # Track X,Y location. + if self.getValue(line, "G") in {0, 1}: # Track X,Y,Z location. last_x = self.getValue(line, "X", last_x) last_y = self.getValue(line, "Y", last_y) + last_z = self.getValue(line, "Z", last_z) # Check that a layer is being printed lines = layer.split("\n") for line in lines: if ";LAYER:" in line: + if retract != 0: # Retract the filament so no stringing happens + layer += self.putValue(M=83) + " ;Extrude Relative\n" + layer += self.putValue(G=1, E=-retract, F=3000) + " ;Retract filament\n" + layer += self.putValue(M=82) + " ;Extrude Absolute\n" + layer += self.putValue(M=400) + " ;Wait for moves to finish\n" # Wait to fully retract before hopping + + if zhop != 0: + layer += self.putValue(G=1, Z=last_z+zhop, F=3000) + " ;Z-Hop\n" + layer += gcode_to_append - layer += "G0 X%s Y%s\n" % (last_x, last_y) + if zhop != 0: + layer += self.putValue(G=0, X=last_x, Y=last_y, Z=last_z) + "; Restore position \n" + else: + layer += self.putValue(G=0, X=last_x, Y=last_y) + "; Restore position \n" + + if retract != 0: + layer += self.putValue(M=400) + " ;Wait for moves to finish\n" + layer += self.putValue(M=83) + " ;Extrude Relative\n" + layer += self.putValue(G=1, E=retract, F=3000) + " ;Retract filament\n" + layer += self.putValue(M=82) + " ;Extrude Absolute\n" data[idx] = layer break From eeecd545dbde7df5d6ac58a245dd91897560457d Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Wed, 18 Nov 2020 01:57:49 +0100 Subject: [PATCH 19/31] Catch errors for corrupted zip files when reading project files Fixes Sentry issue CURA-1DG. --- plugins/3MFReader/ThreeMFWorkspaceReader.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/plugins/3MFReader/ThreeMFWorkspaceReader.py b/plugins/3MFReader/ThreeMFWorkspaceReader.py index 8db043f6a6..1c0088dd98 100755 --- a/plugins/3MFReader/ThreeMFWorkspaceReader.py +++ b/plugins/3MFReader/ThreeMFWorkspaceReader.py @@ -636,6 +636,13 @@ class ThreeMFWorkspaceReader(WorkspaceReader): message.show() self.setWorkspaceName("") return [], {} + except zipfile.BadZipFile as e: + message = Message(i18n_catalog.i18nc("@info:error Don't translate the XML tags or !", + "Project file {0} is corrupt: {1}.", file_name, str(e)), + title = i18n_catalog.i18nc("@info:title", "Can't Open Project File")) + message.show() + self.setWorkspaceName("") + return [], {} cura_file_names = [name for name in archive.namelist() if name.startswith("Cura/")] From 39acad87d916b32c98e852b9e14b6b76b0070852 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Wed, 18 Nov 2020 14:54:59 +0100 Subject: [PATCH 20/31] Hard-limit the PPA positions to negative or 0 values The ProBundle rejects materials which have these values a positive number. Users should not be allowed to set it to a positive number. Fixes CURA-7856. --- resources/definitions/fdmprinter.def.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 3dea7a7c9a..b4d6f4a44a 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -2353,7 +2353,7 @@ "default_value": -4, "enabled": false, "minimum_value_warning": "-switch_extruder_retraction_amount", - "maximum_value_warning": "0", + "maximum_value": "0", "settable_per_mesh": false, "settable_per_extruder": true }, @@ -2379,7 +2379,7 @@ "default_value": -16, "enabled": false, "minimum_value_warning": "-retraction_amount * 4", - "maximum_value_warning": "0", + "maximum_value": "0", "settable_per_mesh": false, "settable_per_extruder": true }, @@ -2420,7 +2420,7 @@ "default_value": -50, "enabled": false, "minimum_value_warning": "-100", - "maximum_value_warning": "0", + "maximum_value": "0", "settable_per_mesh": false, "settable_per_extruder": true }, From 67b27a53d30767aec38a18a59d1b2837f884b104 Mon Sep 17 00:00:00 2001 From: Michael Graf Date: Fri, 20 Nov 2020 18:53:20 +0100 Subject: [PATCH 21/31] ai3m use material temperatures Makes Anycubic i3 Mega use bed and print temperature from material. --- .../quality/anycubic_i3_mega/anycubic_i3_mega_draft.inst.cfg | 3 --- .../quality/anycubic_i3_mega/anycubic_i3_mega_high.inst.cfg | 3 --- .../quality/anycubic_i3_mega/anycubic_i3_mega_normal.inst.cfg | 3 --- 3 files changed, 9 deletions(-) diff --git a/resources/quality/anycubic_i3_mega/anycubic_i3_mega_draft.inst.cfg b/resources/quality/anycubic_i3_mega/anycubic_i3_mega_draft.inst.cfg index 27bf2ce7dd..e91ffacd62 100644 --- a/resources/quality/anycubic_i3_mega/anycubic_i3_mega_draft.inst.cfg +++ b/resources/quality/anycubic_i3_mega/anycubic_i3_mega_draft.inst.cfg @@ -28,10 +28,7 @@ jerk_print = 8 jerk_travel = 10 layer_height = 0.3 layer_height_0 = 0.3 -material_bed_temperature = 60 material_diameter = 1.75 -material_print_temperature = 200 -material_print_temperature_layer_0 = 0 retract_at_layer_change = False retraction_amount = 6 retraction_hop = 0.075 diff --git a/resources/quality/anycubic_i3_mega/anycubic_i3_mega_high.inst.cfg b/resources/quality/anycubic_i3_mega/anycubic_i3_mega_high.inst.cfg index 6005152107..adafd850ef 100644 --- a/resources/quality/anycubic_i3_mega/anycubic_i3_mega_high.inst.cfg +++ b/resources/quality/anycubic_i3_mega/anycubic_i3_mega_high.inst.cfg @@ -28,10 +28,7 @@ jerk_print = 8 jerk_travel = 10 layer_height = 0.1 layer_height_0 = 0.1 -material_bed_temperature = 60 material_diameter = 1.75 -material_print_temperature = 200 -material_print_temperature_layer_0 = 0 retract_at_layer_change = False retraction_amount = 6 retraction_hop = 0.075 diff --git a/resources/quality/anycubic_i3_mega/anycubic_i3_mega_normal.inst.cfg b/resources/quality/anycubic_i3_mega/anycubic_i3_mega_normal.inst.cfg index b2c0309dc9..5ea655190c 100644 --- a/resources/quality/anycubic_i3_mega/anycubic_i3_mega_normal.inst.cfg +++ b/resources/quality/anycubic_i3_mega/anycubic_i3_mega_normal.inst.cfg @@ -28,10 +28,7 @@ jerk_print = 8 jerk_travel = 10 layer_height = 0.2 layer_height_0 = 0.2 -material_bed_temperature = 60 material_diameter = 1.75 -material_print_temperature = 200 -material_print_temperature_layer_0 = 0 retract_at_layer_change = False retraction_amount = 6 retraction_hop = 0.075 From 69dc54b76334dfe2d08c8f68bcc321a46a3e8800 Mon Sep 17 00:00:00 2001 From: Michael Graf Date: Fri, 20 Nov 2020 19:10:30 +0100 Subject: [PATCH 22/31] Makes Anycubic i3 Mega use fan speed from material. Sets max speed to 100% for small layers as the stock fan is not very strong. --- .../quality/anycubic_i3_mega/anycubic_i3_mega_draft.inst.cfg | 3 +-- .../quality/anycubic_i3_mega/anycubic_i3_mega_high.inst.cfg | 3 +-- .../quality/anycubic_i3_mega/anycubic_i3_mega_normal.inst.cfg | 3 +-- 3 files changed, 3 insertions(+), 6 deletions(-) diff --git a/resources/quality/anycubic_i3_mega/anycubic_i3_mega_draft.inst.cfg b/resources/quality/anycubic_i3_mega/anycubic_i3_mega_draft.inst.cfg index e91ffacd62..60c4210209 100644 --- a/resources/quality/anycubic_i3_mega/anycubic_i3_mega_draft.inst.cfg +++ b/resources/quality/anycubic_i3_mega/anycubic_i3_mega_draft.inst.cfg @@ -17,8 +17,7 @@ acceleration_travel = 3000 adhesion_type = skirt brim_width = 4.0 cool_fan_full_at_height = 0.5 -cool_fan_speed = 100 -cool_fan_speed_0 = 100 +cool_fan_speed_max = 100 infill_overlap = 15 infill_pattern = zigzag infill_sparse_density = 25 diff --git a/resources/quality/anycubic_i3_mega/anycubic_i3_mega_high.inst.cfg b/resources/quality/anycubic_i3_mega/anycubic_i3_mega_high.inst.cfg index adafd850ef..209e2008d1 100644 --- a/resources/quality/anycubic_i3_mega/anycubic_i3_mega_high.inst.cfg +++ b/resources/quality/anycubic_i3_mega/anycubic_i3_mega_high.inst.cfg @@ -17,8 +17,7 @@ acceleration_travel = 3000 adhesion_type = skirt brim_width = 4.0 cool_fan_full_at_height = 0.5 -cool_fan_speed = 100 -cool_fan_speed_0 = 100 +cool_fan_speed_max = 100 infill_overlap = 15 infill_pattern = zigzag infill_sparse_density = 25 diff --git a/resources/quality/anycubic_i3_mega/anycubic_i3_mega_normal.inst.cfg b/resources/quality/anycubic_i3_mega/anycubic_i3_mega_normal.inst.cfg index 5ea655190c..e0e4d0743b 100644 --- a/resources/quality/anycubic_i3_mega/anycubic_i3_mega_normal.inst.cfg +++ b/resources/quality/anycubic_i3_mega/anycubic_i3_mega_normal.inst.cfg @@ -17,8 +17,7 @@ acceleration_travel = 3000 adhesion_type = skirt brim_width = 4.0 cool_fan_full_at_height = 0.5 -cool_fan_speed = 100 -cool_fan_speed_0 = 100 +cool_fan_speed_max = 100 infill_overlap = 15 infill_pattern = zigzag infill_sparse_density = 25 From 0a21cff2340c59e0a98721b53797936d1a4ae4d4 Mon Sep 17 00:00:00 2001 From: Lucas Teske Date: Wed, 25 Nov 2020 19:33:24 -0300 Subject: [PATCH 23/31] Update plugins/PostProcessingPlugin/scripts/TimeLapse.py Co-authored-by: Jaime van Kessel --- plugins/PostProcessingPlugin/scripts/TimeLapse.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/PostProcessingPlugin/scripts/TimeLapse.py b/plugins/PostProcessingPlugin/scripts/TimeLapse.py index 778ec0f7b2..7f320b51d7 100644 --- a/plugins/PostProcessingPlugin/scripts/TimeLapse.py +++ b/plugins/PostProcessingPlugin/scripts/TimeLapse.py @@ -77,7 +77,7 @@ class TimeLapse(Script): }, "zhop": { - "label": "Z-Hop when parking", + "label": "Z-Hop Height When Parking", "description": "Z-hop length before parking", "unit": "mm", "type": "float", From 62e4baa746854230748fe27d027897cf9a4fcfa7 Mon Sep 17 00:00:00 2001 From: Lucas Teske Date: Wed, 25 Nov 2020 19:33:30 -0300 Subject: [PATCH 24/31] Update plugins/PostProcessingPlugin/scripts/TimeLapse.py Co-authored-by: Jaime van Kessel --- plugins/PostProcessingPlugin/scripts/TimeLapse.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/PostProcessingPlugin/scripts/TimeLapse.py b/plugins/PostProcessingPlugin/scripts/TimeLapse.py index 7f320b51d7..8a555fdbeb 100644 --- a/plugins/PostProcessingPlugin/scripts/TimeLapse.py +++ b/plugins/PostProcessingPlugin/scripts/TimeLapse.py @@ -73,7 +73,7 @@ class TimeLapse(Script): "description": "Filament retraction distance for camera trigger.", "unit": "mm", "type": "int", - "default_value": 1 + "default_value": 0 }, "zhop": { From c4d9edca69713a71189c2213470a19244f4f8b05 Mon Sep 17 00:00:00 2001 From: Lucas Teske Date: Wed, 25 Nov 2020 19:33:37 -0300 Subject: [PATCH 25/31] Update plugins/PostProcessingPlugin/scripts/TimeLapse.py Co-authored-by: Jaime van Kessel --- plugins/PostProcessingPlugin/scripts/TimeLapse.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/PostProcessingPlugin/scripts/TimeLapse.py b/plugins/PostProcessingPlugin/scripts/TimeLapse.py index 8a555fdbeb..210199e087 100644 --- a/plugins/PostProcessingPlugin/scripts/TimeLapse.py +++ b/plugins/PostProcessingPlugin/scripts/TimeLapse.py @@ -81,7 +81,7 @@ class TimeLapse(Script): "description": "Z-hop length before parking", "unit": "mm", "type": "float", - "default_value": 0.8 + "default_value": 0 } } }""" From a4fd701f4b51612e34acf45eb362003a848d09bd Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Thu, 26 Nov 2020 17:29:50 +0100 Subject: [PATCH 26/31] Correct description of Mesh Processing Rank to indicate correct order Two problems with this description: - It claims that meshes with lower rank override meshes with higher rank. It's the other way around. - It mentions 'rank' in one sentence and then 'order' in the next. I've corrected this to use the term 'rank' in both sentences for clarity. This is also the term used for the setting label, to be consistent. Found in issue #8821. --- resources/definitions/fdmprinter.def.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index b4d6f4a44a..d34ce63224 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -6161,7 +6161,7 @@ "infill_mesh_order": { "label": "Mesh Processing Rank", - "description": "Determines the priority of this mesh when considering multiple overlapping infill meshes. Areas where multiple infill meshes overlap will take on the settings of the mesh with the lowest rank. An infill mesh with a higher order will modify the infill of infill meshes with lower order and normal meshes.", + "description": "Determines the priority of this mesh when considering multiple overlapping infill meshes. Areas where multiple infill meshes overlap will take on the settings of the mesh with the highest rank. An infill mesh with a higher rank will modify the infill of infill meshes with lower rank and normal meshes.", "default_value": 0, "value": "1 if infill_mesh else 0", "minimum_value_warning": "1", From 00bc1bfcdc960d4bad62adc4b1615ca4cc6b3cee Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Fri, 27 Nov 2020 10:46:33 +0100 Subject: [PATCH 27/31] Add extra cast to author model Contributes to #8817 --- plugins/Toolbox/src/AuthorsModel.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/Toolbox/src/AuthorsModel.py b/plugins/Toolbox/src/AuthorsModel.py index 9a8e7f5dfe..04c8ed3a40 100644 --- a/plugins/Toolbox/src/AuthorsModel.py +++ b/plugins/Toolbox/src/AuthorsModel.py @@ -2,7 +2,7 @@ # Cura is released under the terms of the LGPLv3 or higher. import re -from typing import Dict, List, Optional, Union +from typing import Dict, List, Optional, Union, cast from PyQt5.QtCore import Qt, pyqtProperty @@ -68,7 +68,7 @@ class AuthorsModel(ListModel): # Execute all filters. filtered_items = list(items) - filtered_items.sort(key = lambda k: k["name"]) + filtered_items.sort(key = lambda k: cast(str, k["name"])) self.setItems(filtered_items) def setFilter(self, filter_dict: Dict[str, str]) -> None: From 4df5fbc2153ac7c95aab80345b4011968f3bf71e Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 27 Nov 2020 12:10:47 +0100 Subject: [PATCH 28/31] Make skirt/brim line width and flow visible for draft/ooze shields The draft and ooze shield use the skirt/brim settings to print. So these settings should be adjustable if the draft or ooze shield is enabled. It's a bit weird UX-wise, but it's correct. The UX problem will be tackled later. Apparently this was already done for the speed/acceleration/jerk settings so no change necessary there. Contributes to issue #8808. --- resources/definitions/fdmprinter.def.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index d34ce63224..c17e0da9d8 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -873,7 +873,7 @@ "default_value": 0.4, "type": "float", "value": "line_width", - "enabled": "resolveOrValue('adhesion_type') == 'skirt' or resolveOrValue('adhesion_type') == 'brim' or resolveOrValue('prime_tower_brim_enable')", + "enabled": "resolveOrValue('adhesion_type') == 'skirt' or resolveOrValue('adhesion_type') == 'brim' or resolveOrValue('prime_tower_brim_enable') or resolveOrValue('draft_shield_enabled') or resolveOrValue('ooze_shield_enabled')", "settable_per_mesh": false, "settable_per_extruder": true }, @@ -2614,7 +2614,7 @@ "minimum_value": "5", "minimum_value_warning": "50", "maximum_value_warning": "150", - "enabled": "resolveOrValue('adhesion_type') == 'skirt' or resolveOrValue('adhesion_type') == 'brim'", + "enabled": "resolveOrValue('adhesion_type') == 'skirt' or resolveOrValue('adhesion_type') == 'brim' or resolveOrValue('draft_shield_enabled') or resolveOrValue('ooze_shield_enabled')", "settable_per_mesh": false, "settable_per_extruder": true }, From 590e46cef3367f70a73735b6555b4dc8e3c2208d Mon Sep 17 00:00:00 2001 From: Or Bin Date: Sat, 28 Nov 2020 22:45:58 +0200 Subject: [PATCH 29/31] Fixed typo: positionning -> positioning --- resources/definitions/SV01.def.json | 4 ++-- resources/definitions/anycubic_mega_zero.def.json | 2 +- resources/definitions/biqu_base.def.json | 2 +- resources/definitions/creality_base.def.json | 2 +- resources/definitions/creality_ender5.def.json | 4 ++-- resources/definitions/flyingbear_base.def.json | 4 ++-- resources/definitions/lotmaxx_sc60.def.json | 2 +- resources/definitions/twotrees_bluer.def.json | 2 +- 8 files changed, 11 insertions(+), 11 deletions(-) diff --git a/resources/definitions/SV01.def.json b/resources/definitions/SV01.def.json index 02347a8e3b..439ced7d38 100644 --- a/resources/definitions/SV01.def.json +++ b/resources/definitions/SV01.def.json @@ -65,6 +65,6 @@ "retraction_speed": { "default_value": 50}, "adhesion_type": { "value": "'skirt'" }, "machine_start_gcode": { "default_value": "M201 X500.00 Y500.00 Z100.00 E5000.00 ;Setup machine max acceleration\nM203 X500.00 Y500.00 Z10.00 E50.00 ;Setup machine max feedrate\nM204 P500.00 R1000.00 T500.00 ;Setup Print/Retract/Travel acceleration\nM205 X8.00 Y8.00 Z0.40 E5.00 ;Setup Jerk\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\n\nG28 ;Home\n\nG92 E0 ;Reset Extruder\nG1 Z2.0 F3000 ;Move Z Axis up\nG1 X10.1 Y20 Z0.28 F5000.0 ;Move to start position\nG1 X10.1 Y200.0 Z0.28 F1500.0 E15 ;Draw the first line\nG1 X10.4 Y200.0 Z0.28 F5000.0 ;Move to side a little\nG1 X10.4 Y20 Z0.28 F1500.0 E30 ;Draw the second line\nG92 E0 ;Reset Extruder\nG1 Z2.0 F3000 ;Move Z Axis up\n" }, - "machine_end_gcode": { "default_value": "G91 ;Relative positioning\nG1 E-2 F2700 ;Retract a bit\nG1 E-2 Z0.2 F2400 ;Retract and raise Z\nG1 X0 Y240 F3000 ;Wipe out\nG1 Z10 ;Raise Z more\nG90 ;Absolute positionning\n\nG1 X0 Y{machine_depth} ;Present print\nM106 S0 ;Turn-off fan\nM104 S0 ;Turn-off hotend\nM140 S0 ;Turn-off bed\n\nM84 X Y E ;Disable all steppers but Z\n" } + "machine_end_gcode": { "default_value": "G91 ;Relative positioning\nG1 E-2 F2700 ;Retract a bit\nG1 E-2 Z0.2 F2400 ;Retract and raise Z\nG1 X0 Y240 F3000 ;Wipe out\nG1 Z10 ;Raise Z more\nG90 ;Absolute positioning\n\nG1 X0 Y{machine_depth} ;Present print\nM106 S0 ;Turn-off fan\nM104 S0 ;Turn-off hotend\nM140 S0 ;Turn-off bed\n\nM84 X Y E ;Disable all steppers but Z\n" } } -} \ No newline at end of file +} diff --git a/resources/definitions/anycubic_mega_zero.def.json b/resources/definitions/anycubic_mega_zero.def.json index a17fddc4b4..b0c3132858 100644 --- a/resources/definitions/anycubic_mega_zero.def.json +++ b/resources/definitions/anycubic_mega_zero.def.json @@ -59,7 +59,7 @@ }, "machine_end_gcode": { - "default_value": "M117 Cooling down...\nM104 S0 ; turn off extruder\nM84 ; disable motors\nM107 ; Fan off\nG91 ;relative positioning\nG1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure\nG1 Z+0.5 E-5 ;X-20 Y-20 F{speed_travel} ;move Z up a bit and retract filament even more\nG28 X0 ;move X to min endstops, so the head is out of the way\nG90 ;Absolute positionning\nG1 Y200 F3000 ;Present print\nM84 ;steppers off\nM300 P300 S4000\nM117 Finished.\n" + "default_value": "M117 Cooling down...\nM104 S0 ; turn off extruder\nM84 ; disable motors\nM107 ; Fan off\nG91 ;relative positioning\nG1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure\nG1 Z+0.5 E-5 ;X-20 Y-20 F{speed_travel} ;move Z up a bit and retract filament even more\nG28 X0 ;move X to min endstops, so the head is out of the way\nG90 ;Absolute positioning\nG1 Y200 F3000 ;Present print\nM84 ;steppers off\nM300 P300 S4000\nM117 Finished.\n" }, "machine_max_feedrate_x": { "value": 500 }, "machine_max_feedrate_y": { "value": 500 }, diff --git a/resources/definitions/biqu_base.def.json b/resources/definitions/biqu_base.def.json index 1077b864b8..6beaa3b7a8 100755 --- a/resources/definitions/biqu_base.def.json +++ b/resources/definitions/biqu_base.def.json @@ -25,7 +25,7 @@ "overrides": { "machine_name": { "default_value": "BIQU Base Printer" }, "machine_start_gcode": { "default_value": "M201 X500.00 Y500.00 Z100.00 E5000.00 ;Setup machine max acceleration\nM203 X500.00 Y500.00 Z10.00 E50.00 ;Setup machine max feedrate\nM204 P500.00 R1000.00 T500.00 ;Setup Print/Retract/Travel acceleration\nM205 X8.00 Y8.00 Z0.40 E5.00 ;Setup Jerk\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\n\nG28 ;Home\n\nG92 E0 ;Reset Extruder\nG1 Z2.0 F3000 ;Move Z Axis up\nG1 X10.1 Y20 Z0.28 F5000.0 ;Move to start position\nG1 X10.1 Y200.0 Z0.28 F1500.0 E15 ;Draw the first line\nG1 X10.4 Y200.0 Z0.28 F5000.0 ;Move to side a little\nG1 X10.4 Y20 Z0.28 F1500.0 E30 ;Draw the second line\nG92 E0 ;Reset Extruder\nG1 Z2.0 F3000 ;Move Z Axis up\n" }, - "machine_end_gcode": { "default_value": " ;BIQU Default End Gcode\nG91 ;Relative positioning\nG1 E-2 F2700 ;Retract a bit\nG1 E-2 Z0.2 F2400 ;Retract a bit more and raise Z\nG1 X5 Y5 F3000 ;Wipe out\nG1 Z10 ;Raise Z by 10mm\nG90 ;Return to absolute positionning\n\nG1 X0 Y{machine_depth} ;TaDaaaa\nM106 S0 ;Turn-off fan\nM104 S0 ;Turn-off hotend\nM140 S0 ;Turn-off bed\n\nM84 X Y E ;Disable all steppers but Z\n" }, + "machine_end_gcode": { "default_value": " ;BIQU Default End Gcode\nG91 ;Relative positioning\nG1 E-2 F2700 ;Retract a bit\nG1 E-2 Z0.2 F2400 ;Retract a bit more and raise Z\nG1 X5 Y5 F3000 ;Wipe out\nG1 Z10 ;Raise Z by 10mm\nG90 ;Return to absolute positioning\n\nG1 X0 Y{machine_depth} ;TaDaaaa\nM106 S0 ;Turn-off fan\nM104 S0 ;Turn-off hotend\nM140 S0 ;Turn-off bed\n\nM84 X Y E ;Disable all steppers but Z\n" }, "machine_max_feedrate_x": { "value": 500 }, "machine_max_feedrate_y": { "value": 500 }, diff --git a/resources/definitions/creality_base.def.json b/resources/definitions/creality_base.def.json index b56d2b7c06..892a0f9276 100644 --- a/resources/definitions/creality_base.def.json +++ b/resources/definitions/creality_base.def.json @@ -125,7 +125,7 @@ "overrides": { "machine_name": { "default_value": "Creawsome Base Printer" }, "machine_start_gcode": { "default_value": "M201 X500.00 Y500.00 Z100.00 E5000.00 ;Setup machine max acceleration\nM203 X500.00 Y500.00 Z10.00 E50.00 ;Setup machine max feedrate\nM204 P500.00 R1000.00 T500.00 ;Setup Print/Retract/Travel acceleration\nM205 X8.00 Y8.00 Z0.40 E5.00 ;Setup Jerk\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\n\nG28 ;Home\n\nG92 E0 ;Reset Extruder\nG1 Z2.0 F3000 ;Move Z Axis up\nG1 X10.1 Y20 Z0.28 F5000.0 ;Move to start position\nG1 X10.1 Y200.0 Z0.28 F1500.0 E15 ;Draw the first line\nG1 X10.4 Y200.0 Z0.28 F5000.0 ;Move to side a little\nG1 X10.4 Y20 Z0.28 F1500.0 E30 ;Draw the second line\nG92 E0 ;Reset Extruder\nG1 Z2.0 F3000 ;Move Z Axis up\n" }, - "machine_end_gcode": { "default_value": "G91 ;Relative positioning\nG1 E-2 F2700 ;Retract a bit\nG1 E-2 Z0.2 F2400 ;Retract and raise Z\nG1 X5 Y5 F3000 ;Wipe out\nG1 Z10 ;Raise Z more\nG90 ;Absolute positionning\n\nG1 X0 Y{machine_depth} ;Present print\nM106 S0 ;Turn-off fan\nM104 S0 ;Turn-off hotend\nM140 S0 ;Turn-off bed\n\nM84 X Y E ;Disable all steppers but Z\n" }, + "machine_end_gcode": { "default_value": "G91 ;Relative positioning\nG1 E-2 F2700 ;Retract a bit\nG1 E-2 Z0.2 F2400 ;Retract and raise Z\nG1 X5 Y5 F3000 ;Wipe out\nG1 Z10 ;Raise Z more\nG90 ;Absolute positioning\n\nG1 X0 Y{machine_depth} ;Present print\nM106 S0 ;Turn-off fan\nM104 S0 ;Turn-off hotend\nM140 S0 ;Turn-off bed\n\nM84 X Y E ;Disable all steppers but Z\n" }, "machine_max_feedrate_x": { "value": 500 }, "machine_max_feedrate_y": { "value": 500 }, diff --git a/resources/definitions/creality_ender5.def.json b/resources/definitions/creality_ender5.def.json index 1b4be4d71f..896f532c81 100644 --- a/resources/definitions/creality_ender5.def.json +++ b/resources/definitions/creality_ender5.def.json @@ -4,7 +4,7 @@ "inherits": "creality_base", "overrides": { "machine_name": { "default_value": "Creality Ender-5" }, - "machine_end_gcode": { "default_value": "G91 ;Relative positioning\nG1 E-2 F2700 ;Retract a bit\nG1 E-2 Z0.2 F2400 ;Retract and raise Z\nG1 X5 Y5 F3000 ;Wipe out\nG1 Z10 ;Raise Z more\nG90 ;Absolute positionning\n\nG1 X0 Y0 ;Present print\nM106 S0 ;Turn-off fan\nM104 S0 ;Turn-off hotend\nM140 S0 ;Turn-off bed\n\nM84 X Y E ;Disable all steppers but Z\n" }, + "machine_end_gcode": { "default_value": "G91 ;Relative positioning\nG1 E-2 F2700 ;Retract a bit\nG1 E-2 Z0.2 F2400 ;Retract and raise Z\nG1 X5 Y5 F3000 ;Wipe out\nG1 Z10 ;Raise Z more\nG90 ;Absolute positioning\n\nG1 X0 Y0 ;Present print\nM106 S0 ;Turn-off fan\nM104 S0 ;Turn-off hotend\nM140 S0 ;Turn-off bed\n\nM84 X Y E ;Disable all steppers but Z\n" }, "machine_width": { "default_value": 220 }, "machine_depth": { "default_value": 220 }, "machine_height": { "default_value": 300 }, @@ -25,4 +25,4 @@ "quality_definition": "creality_base", "visible": true } -} \ No newline at end of file +} diff --git a/resources/definitions/flyingbear_base.def.json b/resources/definitions/flyingbear_base.def.json index 79a0b6ea89..7205e25be4 100644 --- a/resources/definitions/flyingbear_base.def.json +++ b/resources/definitions/flyingbear_base.def.json @@ -152,7 +152,7 @@ "machine_start_gcode": { "default_value": "M220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\n\nG28 ;Home\n\n;Code for nozzle cleaning and flow normalization\nG92 E0 ;Reset Extruder\nG1 Z2.0 F3000 ;Move Z Axis up\nG1 X10.4 Y20 Z0.28 F5000.0\nG1 X10.4 Y170.0 Z0.28 F1500.0 E15\nG1 X10.1 Y170.0 Z0.28 F5000.0\nG1 X10.1 Y40 Z0.28 F1500.0 E30\n\nG92 E0 ;Reset Extruder\nG1 Z2.0 F3000 ;Move Z Axis up" }, - "machine_end_gcode": { "default_value": "G91 ;Relative positioning\nG1 E-2 F2700 ;Retract the filament\nG1 E-2 Z0.2 F2400 ;Retract and raise Z\nG1 X5 Y5 F3000 ;Wipe out\nG1 Z10 ;Raise Z more\nG90 ;Absolute positionning\n\nG28 X0 Y0 ;Home X and Y\n\nM106 S0 ;Turn-off fan\nM104 S0 ;Turn-off hotend\nM140 S0 ;Turn-off bed\n\nM84 X Y E ;Disable all steppers but Z" }, + "machine_end_gcode": { "default_value": "G91 ;Relative positioning\nG1 E-2 F2700 ;Retract the filament\nG1 E-2 Z0.2 F2400 ;Retract and raise Z\nG1 X5 Y5 F3000 ;Wipe out\nG1 Z10 ;Raise Z more\nG90 ;Absolute positioning\n\nG28 X0 Y0 ;Home X and Y\n\nM106 S0 ;Turn-off fan\nM104 S0 ;Turn-off hotend\nM140 S0 ;Turn-off bed\n\nM84 X Y E ;Disable all steppers but Z" }, "machine_heated_bed": { "default_value": true }, "machine_shape": { "default_value": "rectangular" }, @@ -256,4 +256,4 @@ "adaptive_layer_height_variation": { "value": 0.04 }, "adaptive_layer_height_variation_step": { "value": 0.04 } } -} \ No newline at end of file +} diff --git a/resources/definitions/lotmaxx_sc60.def.json b/resources/definitions/lotmaxx_sc60.def.json index abbf68d75a..a18e197757 100644 --- a/resources/definitions/lotmaxx_sc60.def.json +++ b/resources/definitions/lotmaxx_sc60.def.json @@ -20,7 +20,7 @@ "default_value":"G28 ;Home\nG92 E0 ;Reset Extruder\nG1 Z4.0 F3000 ;Move Z Axis up\nG1 X10.1 Y20 Z0.28 F5000.0 ;Move to start position\nG1 X10.1 Y200.0 Z0.28 F1500.0 E15 ;Draw the first line\nG1 X10.4 Y200.0 Z0.28 F5000.0 ;Move to side a little\nG1 X10.4 Y20 Z0.28 F1500.0 E30 ;Draw the second line\nG92 E0 ;Reset Extruder\nG1 Z2.0 F3000 ;Move Z Axis up\n" }, "machine_end_gcode":{ - "default_value":"G91 ;Relative positionning\nG1 E-2 F2700 ;Retract a bit\nG1 E-2 Z0.2 F2400 ;Retract and raise Z\nG1 X5 Y5 F3000 ;Wipe out\nG1 Z10 ;Raise Z more\nG90 ;Absolute positionning\n\nG1 X0 Y{machine_depth} ;Present print\nM106 S0 ;Turn-off fan\nM104 S0 ;Turn-off hotend\nM140 S0 ;Turn-off bed\n\nM84 X Y E ;Disable all steppers but Z\n" + "default_value":"G91 ;Relative positioning\nG1 E-2 F2700 ;Retract a bit\nG1 E-2 Z0.2 F2400 ;Retract and raise Z\nG1 X5 Y5 F3000 ;Wipe out\nG1 Z10 ;Raise Z more\nG90 ;Absolute positioning\n\nG1 X0 Y{machine_depth} ;Present print\nM106 S0 ;Turn-off fan\nM104 S0 ;Turn-off hotend\nM140 S0 ;Turn-off bed\n\nM84 X Y E ;Disable all steppers but Z\n" }, "acceleration_print":{"value":1000}, "acceleration_travel":{"value":1000}, diff --git a/resources/definitions/twotrees_bluer.def.json b/resources/definitions/twotrees_bluer.def.json index a272527e6e..8cf7d804cf 100644 --- a/resources/definitions/twotrees_bluer.def.json +++ b/resources/definitions/twotrees_bluer.def.json @@ -30,7 +30,7 @@ ] }, "machine_start_gcode": { "default_value": "; Two Trees Bluer Custom Start G-code\nG28 ;Home\nG92 E0 ;Reset Extruder\nG1 Z4.0 F3000 ;Move Z Axis up\nG1 E10 F1500 ;Purge a bit\nG1 X10.1 Y20 Z0.2 F5000.0 ;Move to start position\nG1 X10.1 Y200.0 Z0.2 F1500.0 E15 ;Draw the first line\nG1 X10.4 Y200.0 Z0.2 F5000.0 ;Move to side a little\nG1 X10.4 Y20 Z0.2 F1500.0 E20 ;Draw the second line\nG92 E0 ;Reset Extruder\nG1 Z3.0 X20 Y20 F3000 ;Move Z Axis up\nG1 E3 F2700 ;Purge a bit" }, - "machine_end_gcode": { "default_value": "; Two Trees Bluer Custom End G-code\nG91 ;Relative positioning\nG1 E-2 F2700 ;Retract a bit\nG1 E-2 Z0.2 F2400 ;Retract and raise Z\nG1 X5 Y5 F3000 ;Wipe out\nG1 Z10 ;Raise Z more\nG90 ;Absolute positionning\nG1 X0 Y{machine_depth} ;Present print\nM106 S0 ;Turn-off fan\nM104 S0 ;Turn-off hotend\nM140 S0 ;Turn-off bed\nM84 X Y E ;Disable all steppers but Z" }, + "machine_end_gcode": { "default_value": "; Two Trees Bluer Custom End G-code\nG91 ;Relative positioning\nG1 E-2 F2700 ;Retract a bit\nG1 E-2 Z0.2 F2400 ;Retract and raise Z\nG1 X5 Y5 F3000 ;Wipe out\nG1 Z10 ;Raise Z more\nG90 ;Absolute positioning\nG1 X0 Y{machine_depth} ;Present print\nM106 S0 ;Turn-off fan\nM104 S0 ;Turn-off hotend\nM140 S0 ;Turn-off bed\nM84 X Y E ;Disable all steppers but Z" }, "gantry_height": { "value": 25 } } } From f18c274825c69aac2de62dcee647e7f75f9e076f Mon Sep 17 00:00:00 2001 From: Kostas Karmas Date: Wed, 2 Dec 2020 16:30:16 +0100 Subject: [PATCH 30/31] Remove duplicate settings from quality profiles After https://github.com/Ultimaker/Cura/pull/8684 raft_airgap and speed_layer_0 existed twice in some of the quality profiles. This commit fixes that by removing the old (calculated) values. --- .../ultimaker_s3/um_s3_aa0.25_Nylon_Normal_Quality.inst.cfg | 3 +-- .../ultimaker_s3/um_s3_aa0.4_ABS_Draft_Print.inst.cfg | 3 +-- .../ultimaker_s3/um_s3_aa0.4_ABS_Fast_Print.inst.cfg | 3 +-- .../ultimaker_s3/um_s3_aa0.4_ABS_High_Quality.inst.cfg | 3 +-- .../ultimaker_s3/um_s3_aa0.4_ABS_Normal_Quality.inst.cfg | 3 +-- .../ultimaker_s3/um_s3_aa0.4_Nylon_Draft_Print.inst.cfg | 6 ++---- .../ultimaker_s3/um_s3_aa0.4_Nylon_Fast_Print.inst.cfg | 6 ++---- .../ultimaker_s3/um_s3_aa0.4_Nylon_High_Quality.inst.cfg | 6 ++---- .../ultimaker_s3/um_s3_aa0.4_Nylon_Normal_Quality.inst.cfg | 6 ++---- .../ultimaker_s3/um_s3_aa0.4_PLA_Draft_Print.inst.cfg | 3 +-- .../ultimaker_s3/um_s3_aa0.4_PLA_Fast_Print.inst.cfg | 3 +-- .../ultimaker_s3/um_s3_aa0.4_PLA_High_Quality.inst.cfg | 3 +-- .../ultimaker_s3/um_s3_aa0.4_PLA_Normal_Quality.inst.cfg | 3 +-- .../ultimaker_s5/um_s5_aa0.4_ABS_Draft_Print.inst.cfg | 3 +-- .../ultimaker_s5/um_s5_aa0.4_ABS_Fast_Print.inst.cfg | 3 +-- .../ultimaker_s5/um_s5_aa0.4_ABS_High_Quality.inst.cfg | 3 +-- .../ultimaker_s5/um_s5_aa0.4_ABS_Normal_Quality.inst.cfg | 3 +-- .../ultimaker_s5/um_s5_aa0.4_Nylon_Draft_Print.inst.cfg | 6 ++---- .../ultimaker_s5/um_s5_aa0.4_Nylon_Fast_Print.inst.cfg | 6 ++---- .../ultimaker_s5/um_s5_aa0.4_Nylon_High_Quality.inst.cfg | 6 ++---- .../ultimaker_s5/um_s5_aa0.4_Nylon_Normal_Quality.inst.cfg | 6 ++---- .../ultimaker_s5/um_s5_aa0.4_PLA_Draft_Print.inst.cfg | 3 +-- .../ultimaker_s5/um_s5_aa0.4_PLA_Fast_Print.inst.cfg | 3 +-- .../ultimaker_s5/um_s5_aa0.4_PLA_High_Quality.inst.cfg | 3 +-- .../ultimaker_s5/um_s5_aa0.4_PLA_Normal_Quality.inst.cfg | 3 +-- 25 files changed, 33 insertions(+), 66 deletions(-) diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.25_Nylon_Normal_Quality.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.25_Nylon_Normal_Quality.inst.cfg index 08a27aa3b4..0cef0f11da 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.25_Nylon_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.25_Nylon_Normal_Quality.inst.cfg @@ -19,7 +19,7 @@ machine_nozzle_cool_down_speed = 0.9 machine_nozzle_heat_up_speed = 1.4 ooze_shield_angle = 40 raft_acceleration = =acceleration_layer_0 -raft_airgap = =round(layer_height_0 * 0.85, 2) +raft_airgap = 0.4 raft_interface_thickness = =round(machine_nozzle_size * 0.3 / 0.4, 3) raft_jerk = =jerk_layer_0 raft_margin = 10 @@ -33,6 +33,5 @@ switch_extruder_prime_speed = 30 switch_extruder_retraction_amount = 30 switch_extruder_retraction_speeds = 40 wall_line_width_x = =wall_line_width -raft_airgap = 0.4 raft_surface_speed = 45 speed_layer_0 = 10 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_ABS_Draft_Print.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_ABS_Draft_Print.inst.cfg index 9a8ed386c0..3ed16d3420 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_ABS_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_ABS_Draft_Print.inst.cfg @@ -20,7 +20,7 @@ material_final_print_temperature = =material_print_temperature - 20 prime_tower_enable = False skin_overlap = 20 speed_print = 60 -speed_layer_0 = =math.ceil(speed_print * 20 / 60) +speed_layer_0 = 10 speed_topbottom = =math.ceil(speed_print * 35 / 60) speed_wall = =math.ceil(speed_print * 45 / 60) speed_wall_0 = =math.ceil(speed_wall * 35 / 45) @@ -30,4 +30,3 @@ infill_line_width = =round(line_width * 0.4 / 0.35, 2) speed_infill = =math.ceil(speed_print * 50 / 60) raft_airgap = 0.15 -speed_layer_0 = 10 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_ABS_Fast_Print.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_ABS_Fast_Print.inst.cfg index 615e8cc487..75619973a8 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_ABS_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_ABS_Fast_Print.inst.cfg @@ -20,7 +20,7 @@ material_initial_print_temperature = =material_print_temperature - 15 material_final_print_temperature = =material_print_temperature - 20 prime_tower_enable = False speed_print = 60 -speed_layer_0 = =math.ceil(speed_print * 20 / 60) +speed_layer_0 = 10 speed_topbottom = =math.ceil(speed_print * 30 / 60) speed_wall = =math.ceil(speed_print * 40 / 60) speed_wall_0 = =math.ceil(speed_wall * 30 / 40) @@ -29,4 +29,3 @@ infill_line_width = =round(line_width * 0.4 / 0.35, 2) speed_infill = =math.ceil(speed_print * 45 / 60) raft_airgap = 0.15 -speed_layer_0 = 10 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_ABS_High_Quality.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_ABS_High_Quality.inst.cfg index 10149781cb..5edfda7541 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_ABS_High_Quality.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_ABS_High_Quality.inst.cfg @@ -20,7 +20,7 @@ material_initial_print_temperature = =material_print_temperature - 15 material_final_print_temperature = =material_print_temperature - 20 prime_tower_enable = False speed_print = 50 -speed_layer_0 = =math.ceil(speed_print * 20 / 50) +speed_layer_0 = 10 speed_topbottom = =math.ceil(speed_print * 30 / 50) speed_wall = =math.ceil(speed_print * 30 / 50) @@ -28,4 +28,3 @@ infill_line_width = =round(line_width * 0.4 / 0.35, 2) speed_infill = =math.ceil(speed_print * 40 / 50) raft_airgap = 0.15 -speed_layer_0 = 10 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_ABS_Normal_Quality.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_ABS_Normal_Quality.inst.cfg index 137a316f14..6aba500231 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_ABS_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_ABS_Normal_Quality.inst.cfg @@ -19,7 +19,7 @@ material_initial_print_temperature = =material_print_temperature - 15 material_final_print_temperature = =material_print_temperature - 20 prime_tower_enable = False speed_print = 55 -speed_layer_0 = =math.ceil(speed_print * 20 / 55) +speed_layer_0 = 10 speed_topbottom = =math.ceil(speed_print * 30 / 55) speed_wall = =math.ceil(speed_print * 30 / 55) @@ -27,4 +27,3 @@ infill_line_width = =round(line_width * 0.4 / 0.35, 2) speed_infill = =math.ceil(speed_print * 40 / 55) raft_airgap = 0.15 -speed_layer_0 = 10 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_Nylon_Draft_Print.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_Nylon_Draft_Print.inst.cfg index f98d5c5d70..4949817547 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_Nylon_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_Nylon_Draft_Print.inst.cfg @@ -23,13 +23,13 @@ material_final_print_temperature = =material_print_temperature - 10 material_standby_temperature = 100 ooze_shield_angle = 40 raft_acceleration = =acceleration_layer_0 -raft_airgap = =round(layer_height_0 * 0.85, 2) +raft_airgap = 0.4 raft_interface_thickness = =round(machine_nozzle_size * 0.3 / 0.4, 2) raft_jerk = =jerk_layer_0 raft_margin = 10 raft_surface_thickness = =round(machine_nozzle_size * 0.2 / 0.4, 2) skin_overlap = 50 -speed_layer_0 = =math.ceil(speed_print * 20 / 70) +speed_layer_0 = 10 switch_extruder_prime_speed = 30 switch_extruder_retraction_amount = 30 switch_extruder_retraction_speeds = 40 @@ -37,6 +37,4 @@ wall_line_width_x = =wall_line_width jerk_travel = 50 -raft_airgap = 0.4 raft_surface_speed = 45 -speed_layer_0 = 10 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_Nylon_Fast_Print.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_Nylon_Fast_Print.inst.cfg index 9e4d40bcf3..026783cf17 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_Nylon_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_Nylon_Fast_Print.inst.cfg @@ -23,13 +23,13 @@ material_final_print_temperature = =material_print_temperature - 10 material_standby_temperature = 100 ooze_shield_angle = 40 raft_acceleration = =acceleration_layer_0 -raft_airgap = =round(layer_height_0 * 0.85, 2) +raft_airgap = 0.4 raft_interface_thickness = =round(machine_nozzle_size * 0.3 / 0.4, 2) raft_jerk = =jerk_layer_0 raft_margin = 10 raft_surface_thickness = =round(machine_nozzle_size * 0.2 / 0.4, 2) skin_overlap = 50 -speed_layer_0 = =math.ceil(speed_print * 20 / 70) +speed_layer_0 = 10 switch_extruder_prime_speed = 30 switch_extruder_retraction_amount = 30 switch_extruder_retraction_speeds = 40 @@ -37,6 +37,4 @@ wall_line_width_x = =wall_line_width jerk_travel = 50 -raft_airgap = 0.4 raft_surface_speed = 45 -speed_layer_0 = 10 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_Nylon_High_Quality.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_Nylon_High_Quality.inst.cfg index 755127b66f..f23ad38956 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_Nylon_High_Quality.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_Nylon_High_Quality.inst.cfg @@ -22,13 +22,13 @@ material_final_print_temperature = =material_print_temperature - 10 material_standby_temperature = 100 ooze_shield_angle = 40 raft_acceleration = =acceleration_layer_0 -raft_airgap = =round(layer_height_0 * 0.85, 2) +raft_airgap = 0.4 raft_interface_thickness = =round(machine_nozzle_size * 0.3 / 0.4, 2) raft_jerk = =jerk_layer_0 raft_margin = 10 raft_surface_thickness = =round(machine_nozzle_size * 0.2 / 0.4, 2) skin_overlap = 50 -speed_layer_0 = =math.ceil(speed_print * 20 / 70) +speed_layer_0 = 10 switch_extruder_prime_speed = 30 switch_extruder_retraction_amount = 30 switch_extruder_retraction_speeds = 40 @@ -36,6 +36,4 @@ wall_line_width_x = =wall_line_width jerk_travel = 50 -raft_airgap = 0.4 raft_surface_speed = 45 -speed_layer_0 = 10 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_Nylon_Normal_Quality.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_Nylon_Normal_Quality.inst.cfg index 26f0b52f91..b97c0b9ffe 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_Nylon_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_Nylon_Normal_Quality.inst.cfg @@ -22,13 +22,13 @@ material_final_print_temperature = =material_print_temperature - 10 material_standby_temperature = 100 ooze_shield_angle = 40 raft_acceleration = =acceleration_layer_0 -raft_airgap = =round(layer_height_0 * 0.85, 2) +raft_airgap = 0.4 raft_interface_thickness = =round(machine_nozzle_size * 0.3 / 0.4, 2) raft_jerk = =jerk_layer_0 raft_margin = 10 raft_surface_thickness = =round(machine_nozzle_size * 0.2 / 0.4, 2) skin_overlap = 50 -speed_layer_0 = =math.ceil(speed_print * 20 / 70) +speed_layer_0 = 10 switch_extruder_prime_speed = 30 switch_extruder_retraction_amount = 30 switch_extruder_retraction_speeds = 40 @@ -36,6 +36,4 @@ wall_line_width_x = =wall_line_width jerk_travel = 50 -raft_airgap = 0.4 raft_surface_speed = 45 -speed_layer_0 = 10 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_PLA_Draft_Print.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_PLA_Draft_Print.inst.cfg index c5613e0f49..81be2ebb6d 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_PLA_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_PLA_Draft_Print.inst.cfg @@ -20,7 +20,7 @@ material_print_temperature = =default_material_print_temperature + 5 material_standby_temperature = 100 prime_tower_enable = False skin_overlap = 20 -speed_layer_0 = =math.ceil(speed_print * 20 / 70) +speed_layer_0 = 10 speed_topbottom = =math.ceil(speed_print * 40 / 70) speed_wall = =math.ceil(speed_print * 55 / 70) speed_wall_0 = =math.ceil(speed_wall * 45 / 50) @@ -35,4 +35,3 @@ acceleration_wall = 2000 acceleration_wall_0 = 2000 raft_airgap = 0.25 -speed_layer_0 = 10 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_PLA_Fast_Print.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_PLA_Fast_Print.inst.cfg index 17967f923c..e57fc51db1 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_PLA_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_PLA_Fast_Print.inst.cfg @@ -19,7 +19,7 @@ machine_nozzle_heat_up_speed = 1.6 material_standby_temperature = 100 prime_tower_enable = False speed_print = 70 -speed_layer_0 = =math.ceil(speed_print * 20 / 70) +speed_layer_0 = 10 speed_topbottom = =math.ceil(speed_print * 35 / 70) speed_wall = =math.ceil(speed_print * 45 / 70) speed_wall_0 = =math.ceil(speed_wall * 35 / 70) @@ -31,4 +31,3 @@ infill_line_width = =round(line_width * 0.42 / 0.35, 2) layer_height_0 = 0.2 raft_airgap = 0.25 -speed_layer_0 = 10 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_PLA_High_Quality.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_PLA_High_Quality.inst.cfg index 1c271f6af1..5abeff6589 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_PLA_High_Quality.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_PLA_High_Quality.inst.cfg @@ -22,7 +22,7 @@ material_standby_temperature = 100 prime_tower_enable = False skin_overlap = 10 speed_print = 50 -speed_layer_0 = =math.ceil(speed_print * 20 / 50) +speed_layer_0 = 10 speed_topbottom = =math.ceil(speed_print * 35 / 50) speed_wall = =math.ceil(speed_print * 35 / 50) top_bottom_thickness = 1 @@ -33,4 +33,3 @@ infill_line_width = =round(line_width * 0.42 / 0.35, 2) layer_height_0 = 0.2 raft_airgap = 0.25 -speed_layer_0 = 10 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_PLA_Normal_Quality.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_PLA_Normal_Quality.inst.cfg index 0aae33c115..56ab049b3b 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_PLA_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_PLA_Normal_Quality.inst.cfg @@ -20,7 +20,7 @@ machine_nozzle_heat_up_speed = 1.6 material_standby_temperature = 100 prime_tower_enable = False skin_overlap = 10 -speed_layer_0 = =math.ceil(speed_print * 20 / 70) +speed_layer_0 = 10 top_bottom_thickness = 1 wall_thickness = 1 @@ -29,4 +29,3 @@ infill_line_width = =round(line_width * 0.42 / 0.35, 2) layer_height_0 = 0.2 raft_airgap = 0.25 -speed_layer_0 = 10 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_ABS_Draft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_ABS_Draft_Print.inst.cfg index 193e6de18b..5689aaff8b 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_ABS_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_ABS_Draft_Print.inst.cfg @@ -20,7 +20,7 @@ material_final_print_temperature = =material_print_temperature - 20 prime_tower_enable = False skin_overlap = 20 speed_print = 60 -speed_layer_0 = =math.ceil(speed_print * 20 / 60) +speed_layer_0 = 10 speed_topbottom = =math.ceil(speed_print * 35 / 60) speed_wall = =math.ceil(speed_print * 45 / 60) speed_wall_0 = =math.ceil(speed_wall * 35 / 45) @@ -30,4 +30,3 @@ infill_line_width = =round(line_width * 0.4 / 0.35, 2) speed_infill = =math.ceil(speed_print * 50 / 60) raft_airgap = 0.15 -speed_layer_0 = 10 \ No newline at end of file diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_ABS_Fast_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_ABS_Fast_Print.inst.cfg index 1aae14fe6b..854858ee5b 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_ABS_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_ABS_Fast_Print.inst.cfg @@ -20,7 +20,7 @@ material_initial_print_temperature = =material_print_temperature - 15 material_final_print_temperature = =material_print_temperature - 20 prime_tower_enable = False speed_print = 60 -speed_layer_0 = =math.ceil(speed_print * 20 / 60) +speed_layer_0 = 10 speed_topbottom = =math.ceil(speed_print * 30 / 60) speed_wall = =math.ceil(speed_print * 40 / 60) speed_wall_0 = =math.ceil(speed_wall * 30 / 40) @@ -29,4 +29,3 @@ infill_line_width = =round(line_width * 0.4 / 0.35, 2) speed_infill = =math.ceil(speed_print * 45 / 60) raft_airgap = 0.15 -speed_layer_0 = 10 \ No newline at end of file diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_ABS_High_Quality.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_ABS_High_Quality.inst.cfg index 1c57587309..bb75703f87 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_ABS_High_Quality.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_ABS_High_Quality.inst.cfg @@ -20,7 +20,7 @@ material_initial_print_temperature = =material_print_temperature - 15 material_final_print_temperature = =material_print_temperature - 20 prime_tower_enable = False speed_print = 50 -speed_layer_0 = =math.ceil(speed_print * 20 / 50) +speed_layer_0 = 10 speed_topbottom = =math.ceil(speed_print * 30 / 50) speed_wall = =math.ceil(speed_print * 30 / 50) @@ -28,4 +28,3 @@ infill_line_width = =round(line_width * 0.4 / 0.35, 2) speed_infill = =math.ceil(speed_print * 40 / 50) raft_airgap = 0.15 -speed_layer_0 = 10 \ No newline at end of file diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_ABS_Normal_Quality.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_ABS_Normal_Quality.inst.cfg index ec2819cf93..4c850c4904 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_ABS_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_ABS_Normal_Quality.inst.cfg @@ -19,11 +19,10 @@ material_initial_print_temperature = =material_print_temperature - 15 material_final_print_temperature = =material_print_temperature - 20 prime_tower_enable = False speed_print = 55 -speed_layer_0 = =math.ceil(speed_print * 20 / 55) +speed_layer_0 = 10 speed_topbottom = =math.ceil(speed_print * 30 / 55) speed_wall = =math.ceil(speed_print * 30 / 55) infill_line_width = =round(line_width * 0.4 / 0.35, 2) speed_infill = =math.ceil(speed_print * 40 / 55) raft_airgap = 0.15 -speed_layer_0 = 10 \ No newline at end of file diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_Nylon_Draft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_Nylon_Draft_Print.inst.cfg index 0f1f2c872b..bd42d349c5 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_Nylon_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_Nylon_Draft_Print.inst.cfg @@ -23,19 +23,17 @@ material_final_print_temperature = =material_print_temperature - 10 material_standby_temperature = 100 ooze_shield_angle = 40 raft_acceleration = =acceleration_layer_0 -raft_airgap = =round(layer_height_0 * 0.85, 2) +raft_airgap = 0.4 raft_interface_thickness = =round(machine_nozzle_size * 0.3 / 0.4, 2) raft_jerk = =jerk_layer_0 raft_margin = 10 raft_surface_thickness = =round(machine_nozzle_size * 0.2 / 0.4, 2) skin_overlap = 50 -speed_layer_0 = =math.ceil(speed_print * 20 / 70) +speed_layer_0 = 10 switch_extruder_prime_speed = 30 switch_extruder_retraction_amount = 30 switch_extruder_retraction_speeds = 40 wall_line_width_x = =wall_line_width jerk_travel = 50 -raft_airgap = 0.4 raft_surface_speed = 45 -speed_layer_0 = 10 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_Nylon_Fast_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_Nylon_Fast_Print.inst.cfg index d3e3e43830..9fe2328c88 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_Nylon_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_Nylon_Fast_Print.inst.cfg @@ -23,19 +23,17 @@ material_final_print_temperature = =material_print_temperature - 10 material_standby_temperature = 100 ooze_shield_angle = 40 raft_acceleration = =acceleration_layer_0 -raft_airgap = =round(layer_height_0 * 0.85, 2) +raft_airgap = 0.4 raft_interface_thickness = =round(machine_nozzle_size * 0.3 / 0.4, 2) raft_jerk = =jerk_layer_0 raft_margin = 10 raft_surface_thickness = =round(machine_nozzle_size * 0.2 / 0.4, 2) skin_overlap = 50 -speed_layer_0 = =math.ceil(speed_print * 20 / 70) +speed_layer_0 = 10 switch_extruder_prime_speed = 30 switch_extruder_retraction_amount = 30 switch_extruder_retraction_speeds = 40 wall_line_width_x = =wall_line_width jerk_travel = 50 -raft_airgap = 0.4 raft_surface_speed = 45 -speed_layer_0 = 10 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_Nylon_High_Quality.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_Nylon_High_Quality.inst.cfg index 4a838d3b02..6bfd398d12 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_Nylon_High_Quality.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_Nylon_High_Quality.inst.cfg @@ -22,19 +22,17 @@ material_final_print_temperature = =material_print_temperature - 10 material_standby_temperature = 100 ooze_shield_angle = 40 raft_acceleration = =acceleration_layer_0 -raft_airgap = =round(layer_height_0 * 0.85, 2) +raft_airgap = 0.4 raft_interface_thickness = =round(machine_nozzle_size * 0.3 / 0.4, 2) raft_jerk = =jerk_layer_0 raft_margin = 10 raft_surface_thickness = =round(machine_nozzle_size * 0.2 / 0.4, 2) skin_overlap = 50 -speed_layer_0 = =math.ceil(speed_print * 20 / 70) +speed_layer_0 = 10 switch_extruder_prime_speed = 30 switch_extruder_retraction_amount = 30 switch_extruder_retraction_speeds = 40 wall_line_width_x = =wall_line_width jerk_travel = 50 -raft_airgap = 0.4 raft_surface_speed = 45 -speed_layer_0 = 10 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_Nylon_Normal_Quality.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_Nylon_Normal_Quality.inst.cfg index 8c86a63b0b..7832217f95 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_Nylon_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_Nylon_Normal_Quality.inst.cfg @@ -22,19 +22,17 @@ material_final_print_temperature = =material_print_temperature - 10 material_standby_temperature = 100 ooze_shield_angle = 40 raft_acceleration = =acceleration_layer_0 -raft_airgap = =round(layer_height_0 * 0.85, 2) +raft_airgap = 0.4 raft_interface_thickness = =round(machine_nozzle_size * 0.3 / 0.4, 2) raft_jerk = =jerk_layer_0 raft_margin = 10 raft_surface_thickness = =round(machine_nozzle_size * 0.2 / 0.4, 2) skin_overlap = 50 -speed_layer_0 = =math.ceil(speed_print * 20 / 70) +speed_layer_0 = 10 switch_extruder_prime_speed = 30 switch_extruder_retraction_amount = 30 switch_extruder_retraction_speeds = 40 wall_line_width_x = =wall_line_width jerk_travel = 50 -raft_airgap = 0.4 raft_surface_speed = 45 -speed_layer_0 = 10 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_PLA_Draft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_PLA_Draft_Print.inst.cfg index 25235ba336..dd674e9a6b 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_PLA_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_PLA_Draft_Print.inst.cfg @@ -21,7 +21,7 @@ material_standby_temperature = 100 prime_tower_enable = False skin_edge_support_thickness = =0.8 if infill_sparse_density < 30 else 0 skin_overlap = 20 -speed_layer_0 = =math.ceil(speed_print * 20 / 70) +speed_layer_0 = 10 speed_topbottom = =math.ceil(speed_print * 40 / 70) speed_wall = =math.ceil(speed_print * 55 / 70) speed_wall_0 = =math.ceil(speed_wall * 45 / 50) @@ -35,4 +35,3 @@ layer_height_0 = 0.2 acceleration_wall = 2000 acceleration_wall_0 = 2000 raft_airgap = 0.25 -speed_layer_0 = 10 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_PLA_Fast_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_PLA_Fast_Print.inst.cfg index f9ed0bc62a..d743e3fc31 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_PLA_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_PLA_Fast_Print.inst.cfg @@ -19,7 +19,7 @@ machine_nozzle_heat_up_speed = 1.6 material_standby_temperature = 100 prime_tower_enable = False speed_print = 70 -speed_layer_0 = =math.ceil(speed_print * 20 / 70) +speed_layer_0 = 10 speed_topbottom = =math.ceil(speed_print * 35 / 70) speed_wall = =math.ceil(speed_print * 45 / 70) speed_wall_0 = =math.ceil(speed_wall * 35 / 70) @@ -30,4 +30,3 @@ jerk_travel = 50 infill_line_width = =round(line_width * 0.42 / 0.35, 2) layer_height_0 = 0.2 raft_airgap = 0.25 -speed_layer_0 = 10 \ No newline at end of file diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_PLA_High_Quality.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_PLA_High_Quality.inst.cfg index 23042d0f23..4c69195362 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_PLA_High_Quality.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_PLA_High_Quality.inst.cfg @@ -22,7 +22,7 @@ material_standby_temperature = 100 prime_tower_enable = False skin_overlap = 10 speed_print = 50 -speed_layer_0 = =math.ceil(speed_print * 20 / 50) +speed_layer_0 = 10 speed_topbottom = =math.ceil(speed_print * 35 / 50) speed_wall = =math.ceil(speed_print * 35 / 50) top_bottom_thickness = 1 @@ -32,4 +32,3 @@ jerk_travel = 50 infill_line_width = =round(line_width * 0.42 / 0.35, 2) layer_height_0 = 0.2 raft_airgap = 0.25 -speed_layer_0 = 10 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_PLA_Normal_Quality.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_PLA_Normal_Quality.inst.cfg index c0414898af..462e2b37bd 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_PLA_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_PLA_Normal_Quality.inst.cfg @@ -20,7 +20,7 @@ machine_nozzle_heat_up_speed = 1.6 material_standby_temperature = 100 prime_tower_enable = False skin_overlap = 10 -speed_layer_0 = =math.ceil(speed_print * 20 / 70) +speed_layer_0 = 10 top_bottom_thickness = 1 wall_thickness = 1 @@ -28,4 +28,3 @@ jerk_travel = 50 infill_line_width = =round(line_width * 0.42 / 0.35, 2) layer_height_0 = 0.2 raft_airgap = 0.25 -speed_layer_0 = 10 From 7096f64ca2628c1d5b3c260c8d791fb5de21e682 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Mon, 7 Dec 2020 16:45:28 +0100 Subject: [PATCH 31/31] Fix crash when extruder could not be found Fixes #8891 --- cura/BuildVolume.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/cura/BuildVolume.py b/cura/BuildVolume.py index 325c924cc4..6bda2d94e3 100755 --- a/cura/BuildVolume.py +++ b/cura/BuildVolume.py @@ -344,7 +344,12 @@ class BuildVolume(SceneNode): # Mark the node as outside build volume if the set extruder is disabled extruder_position = node.callDecoration("getActiveExtruderPosition") - if not self._global_container_stack.extruderList[int(extruder_position)].isEnabled: + try: + if not self._global_container_stack.extruderList[int(extruder_position)].isEnabled: + node.setOutsideBuildArea(True) + return + except IndexError: + # If the extruder doesn't exist, also mark it as unprintable. node.setOutsideBuildArea(True) return