From b16d3a2f4a0a9692dd2bb4959cc9a904a8e5e967 Mon Sep 17 00:00:00 2001 From: Ian Bassi Date: Fri, 1 Aug 2025 23:59:01 -0300 Subject: [PATCH] Fix Ironing/Support patterns (#10278) NoisyGoat Co-authored-by: Rodrigo <162915171+RF47@users.noreply.github.com> Co-authored-by: Noisyfox --- .../strength/infill_desc_calculator.xlsx | Bin 34771 -> 34512 bytes src/libslic3r/PrintConfig.cpp | 6 ++-- src/libslic3r/PrintConfig.hpp | 3 +- src/slic3r/GUI/Field.cpp | 32 ++++++++++++------ src/slic3r/GUI/GUI.cpp | 4 +++ src/slic3r/GUI/UnsavedChangesDialog.cpp | 15 ++++++-- 6 files changed, 42 insertions(+), 18 deletions(-) diff --git a/doc/print_settings/strength/infill_desc_calculator.xlsx b/doc/print_settings/strength/infill_desc_calculator.xlsx index 655784b1a5eef55329e69163fd094001a5d2413a..98bbbcadab0a5e0deff7f01cfc9933c8ca204ab8 100644 GIT binary patch delta 24364 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 delta 24600 zcmV*DKy1IzjRMn;0E*5WE!-|dBK{; z*!*pgS%GOtMVf+CyrHrALZ$iT?AKpT*IYb3aQyFi4nn?N6V{kpgh(8N!B;Dm(;3gZnl@?+B4|Yv(3d4^<$zY_ z$H3J@Jaw&=^ST9phzC|N_0ofyMx96Jj|~^(p#rxz*fTZ)9v}V~LE{W3!P3D|HOmE; ze5FnR+TM~r@E;=^;}0R&9LC@{B-a-7nduzvSqcA>to%Ke{|1K9PorUwR?&MklJ+yo#1{+H$%4CUSC9!7i~Zc)n}} zYt+4@N^Mp8q|8NgaPm8vkS=B z4S9zAfl7dFU*6}CAUwKnauMPC*EAeCfsdxv1ck2UW)9pGjm9h5{Vd&o|IiF;-?hW~61-(}E#E|>hsNfP zH3eVCriC4F>gD5b-7ns;LY1*O3Vat#wsT)8dn|#mgB?8y#iE(T=4&=irfHf4RxtA& z%k=}_3bP5erpR;9D4aQ27W9nlca-|;7O3^T(ex$qmH$aV(EU^&W780kK0=%qxXUi{JU8PY6EBGf{V{0Rg;r>lfW(9_l-;QO9z;sptW45FCf%yMyvtR(SW z%bR5*kkf3Mdf6LU?f&YMH&$TxyD3o}l&!8)*nS-8HrvhaCs*5vU79|WUNoQSxbJrV zo8b+3U(q9tv)dyLr&pJY%Oh84VtPoR)2Gn=lZ^-%r|iK)erN8wiP# zR(*jc#Q=#IEG^!(l(kRk;U?wJfB0X-s{u%;&fFm8$u=fPFucnCISe4L=lq z8NQ~u{_0Jo%xk69)&$@j9%FvJ{aH8*dEPmHz25&I8xn`Lc$Bt)y%il75=lBQ+MBVF zW@%?;(^bz8aIGUA74i-w>dQatGs?HRtl6NSi)fVU9eGiv`yY|WJ@ilu)E7k(>M-sRkX zRx?XZK7O`{!aeq)rFyN@gLS_Jp9licjjIiW=SDt?qvJ=|lm69&1`?tQyRc3*hPZ0_ z;7jeTxfWNd_$fDL2XR8bZN!!z3iDMxeGu|~XW%MC(ttJJyj%;N1L+V-Kok3(Toqsn zf4x%LmIYGzbF)4jJt+-hnoKhS_j_x9q0LHKPv6TA+NcuW+lD00eqRTX(SwfQ3AuH3?1yNW`NTwC-R#NxlmLZr{V1H2e!;T@CRv_SXXxE3$7sh`8009600001g|Nrcr>2ljh zwxIuaM85+{j_R=85`}$nl|4bNmaWCMHcJXc1w=s-rznD#pk%A=?RT1Im?xW)3qa(_ zBp{LiRnoA!yV^z)xtvU7;(R#E@5xOR4c5Xz_~G|{{6p)%UoaN5q!)G*_|rSfThM+Q zcG!A%`LGrxt*ASAzo0jNOlRT4?=AAhD+KPSl}qLLs_yUzk@kbq7#LmPc;tP4tt0L*afj+M|4-hX!;k zREzHXF1Ku>`%m)s`>0!|LLs`dDJ*6iiK{8BW)GLH=4*Cw>6$Q0Xw5Z+N5SyWVsD~n z0g0q3JPbZ=S$G(HT($TxxM<-u(bItM79R(9_y{kZbjt?2iiEexD!QO|pt6qzWn1|Up!+@*lzkS;bkxV~e5t9U<+(!y z`F_F8$tA$s2pc5Y@%DJNgFX!N>cbyDJ6GMt_wBvC&xc=LZ*{NQozB_WtAm?%qJ4{h zoG+ezKUvy6KVSS74%*%8v)$pJ!rSQl&F{-sWV7Fm`?q0#XK6eBfi@(i_`imHKr0lSJe!9%`gY`=k?jH9$6B2bkGug}kyUk8B)N99|+VK}MO z^hOX^R^U5^>3FW`7#4b{j)fsSddhy))~~Lj)}VbK4QFmA{Hgsa&fempAx@w;dEd#1 z)g!t|&d=X}y86FWqrGi+&(Ha~uze)OlQLNy#DlP-9kgL_oi8_!*1t73*S9wI)1{d! zUgVAMgoCKxhMNwP@H#qQTwsfFAtz>q3$93HH{-rhT2|EAmnyJW9Bf3vut zEi5i9Wh<*sp0Q558-;z;)Vi>>mM)yX zz8MUEdda)x~?k@MEB);pn zqGY*!3y(*#{HT^1$^G^J>W4qx5Bhh}n+3kSemU!f{qXjWzuMPJe}&hTbVsOBY!=Cs z9M5#=3Zg5J9GkUNbgxDaoJuAYayHttZ^P+-J%9ZwH`%bW zW*Ih)g;%d$X`{Q9@Bcsl@y~yZ{w2}I(*BcQE@^MyevJF=zv3?0P4@@=sCzxQ(O!RF zI(hT%?c0Jz;TPHOhgFgakD~sd-4d!hEvf8uL{)21H)#(ZwAHZFy6eE3Mcgg!6~BRh z{9f#oxcL`Xf({D)P%&wJ>9@NBdh8U}G5npnAIs$A(q4aTU*AN1?IIe$*;FE=v|IGn z{4D-*)~4@cOM|$#^vKma$uoHwx6;jly#6hZ-)f`R&21O3QWqD}O;Y=L+j$2Fp%uMf z=)qWD4PyUexbJ-ODyvS$%Tb;3k5?=)N7_C5syL;jTm8WuZE)1C#@{ zPPVQuVz{e&-OyHJSe}s>;A*NuK?XQ%CJ?Ud|!ulVlwChbnUn+&4xvhk>Y2XFYI z%+}q=hYDV2*)K*sE84GGe5Jwg$OFy=b02r^ZXT`1qb>tDetWGDZBYYPhn4Fa`Q+y>vrL2^T#%9g9U?C zRh*kza&I9H^P=$rV*3|L{C zy(r;tOiG1ph4m1#73I}KzK|4bC2gpBwjvB+=4@rOzW;c(f?;==tmMDX?sCn zn4XSSO0ck=Bjj%|qZvX+J8)J9!xMj0lfn z3$B>-C|W2ZKH@=t|1yY=d_q(3!=Kb*{!^1Yo{0Y_Bq3v4Jx*r$9UYVfmA zW}>g)+d`>>2@o5)pEs>R73{KcVgkggoe=@zvKA-i>$rV?n9Q^$T^+*(B$?K*?qU4H zt{O;nKIE6}pb?Gntetu=Z%OmMddFrWyE_@9BVlJR2Kr=C;cbtF#)k8auEY zFpt(P=!7MI8J4b&`|wwTepFLD4f^39Sg}csuxSU_q-aAN`!h7DsobIlDlEo2s)?%; z>&V~Gu_2ABM{|5L$2W6Bn)}g)H2kq5$Y#HN+vZj;X97AF%-0wOX%Qd>l!4D>$LfaSCJq$nCRRc-wFufc!uuI-i z+SIt#F9d!VuJ3_uhUq#MDCVN1j)gJI9Db005l;(0kQ7hKL{$&`0N+L51~(hqvcSg( zN%?d#DOUkMSj&~c56dzL{m>oP^>ssXDk@#36*(1|e&BhI2NcG1Fw||Xj{EdiLqAk= zJPrM5_2VQV?lqWyeZZs%sI%MgA{O(?9sv`MB%$bEJrTeNv}iASMt^?)I@|iglNf4`)Z&8Bk57o65t+D ze;kPMxAXCt4q#;aRmC|tZn#TS_AR`;Kj5201(3zr) zY+o7;Ga!zK1T#DkL~*#KeDn_sDe)_RLLqu%Uw0YIK$kc8<%Ssu{~$eflU1#T8Tm2{ zGxA-+K^Q*e3o*=`H;jhon}Gw?GlB29L4dvBPA8M}cyMF==b#@dWZZ1B z)++)WMqqlve~|7?Hq+WYd-R6u2D)x}t`)%Aw(-(#u8zAKj0-rV5K7H8)g(_tH#%|a zPw?td;Ent)4lo_f031!v8E>$EVOPsHvO0?ahiV4v1RUFRhB@IFPPc?ORQ;MGjyd9( zBaQ;ZF?_fP<7i%nJrd-NgfK}Uh7O4cq6$<3h8x7sCG2X^Ph#f*5krzciFXeC^{yYW z&?-p%A0Y4_j9wa`>Z5m%K`7`Q7gScCZD-3xbEev?FPuz&Wc}O*XKtglc-Bv#e zdB7G3{PF`lfs*1_DD=fb6%b|k+VMzWLOYM5p$zxFigC%X;xb+$9-1$Mmt@Bt1t#o) zP!p4yM*l>_WH@danapCOGesuDeQq=}foRkcGjU5}puk;20}$-=k}tF{Gw~=h!5%Nl ztDCGMH6h8DVM3Dc0P5U-r+gU(BtjVupS>-VS{RTJIf?;K9Bl2u28nE1_IS0`0unid ztg`X1<2F8-sRxryp{WP!9$G91>?#f$eaJ2wj@@vPjE~Z$CNTA|Y~8k8BM2Obw~9lJ z9}8ocxv2*k@sy?>*sS8DOjLE4dicHtJ}$cNSh^3Pd@%w$olMGqRmC}Btyg940iG@p z=LEc`Y{xe6X3$(IU8$8=djJ9PA>Im@)p)w=W9Pr->bM)gWY!)k_Ozy&>#3j!L_EaS z9>SiDo$Hz#;^?27w+nIKuP}Nnsje7;sAjBI2to(=igZi@AF960!N(kY%)v(y_<$$r z@eVF5G6)Mv0ymO>=&%Wd6uKF79<)A0OeJArNjzB|^@9d10c9eJ9vQ_oV-?Rid@H9P zm|9G@H5YiO(CryT2u8={w8aGM9n1fWtd6iJBNd?=F1GM zr+pSmb!1<$EtKNSCp&D^`HzAQ4#J@v<{q!MS}Gxb<^Q5={p+}`KL$(4jeld(DdZBY zf7k^@+3Q1g)qwD;IA610x_ic7H8D|16}E#lN<+NKBIDA>}g$#=@ybKAI&1}1CIM@U2dx#}B_tMU8~zPZH6V0G8}g7mHhugDxNwbQVg;gm|jG3^GB+P00jV!U{4`)0m%#OwiHFWMUSBoGF=D*Ko(Lrrhx`(?N|Fosx)bl}fIse!SC zP>R*59U?{1o5a*HmtZ5s?j*e48M%|NJ|JB4b=*EoW;DTMR0tdgIuv0R^`Z zI#4HBIP4Jj1j%IOI~m@zZ~?99lQQAd0vB|DnSW>^mmiE+w9PeD^V1-N+Ze*>$K7@da|B_F^^iqf6Hbcf%n`Ct z6Yal3pdi#+OcqoVStnW8NhcbTv}E0s7=x-;bH*@d40FbCzx?6%<<^JaTU!79LNk4T zx2-y-B}pXuWEo7eZGozt*@mIeJ;mL>GJX4rbkE_qWd(E=Bb})Nnoa9yEz|%5{qZ9m ztix?I0V%SH-{99FL528^u}Rti#Z|3X3WZp+UVlowz3#w4ZjJ zOXc$vispo}u1eG7&DW!9mM_RUbj=ARTA8w`Y`+q1bBTOx!769EFR@+S!>L=zLGmJ$ z&eRmX4#hLAyIA>DPV7vyPmQ@13{_CN5+prT*}=IYI#)#JiYQV<(Wdw^zI|qY8X4Iw zL~V3iZKqwA7@k@sr2>%E(wPkRY4lQhLKG;c#zfyp4Y)1)NNVFad_t**z7?*D_agOn z9ZHGXi^KG(FK_a?)E3@CAvWdkx3QrLI7@<0xx- z0{d^@wYa%U%ae!kN{0qJ<>t9mMTRqSgSy|2;Cl;v?+C(*%Y~ z+S|8(Ukh=y1N&5)c7d(TL4MmokaSA4{6ZKk`)-lFZ2EbQkhoZG64WAFdBS+$4B^Nm6T_2#Y5`p zIgrDiBHjUPH&p7{$9S6w!W%ODOLOkF64R z`G6%vBECQV@w0Q)ZG7L}+xvX@1 zTqmXCss)aCCUqLOEZ6pI2R}Hc6AHRAIKp90TTSRb z!*U>>f)0?z)dM+?!PwhEm2iYfT-+F^gd*!OXA*Csipp0m*byc(q= zuNIJ`wU!_f)lAlmNQUDjkR<(^j7d~on`4qWCYfWBVoZ`gQ7F{k;3m?}a*BP9P(otH z0m*4VDG6YIlq4FE(0;vsbRTu$k7dY2qi?^LQPRHdYOVP80&D;havLMwG!Fvb-jhYB zHokAuWD3#GR@CW`Ci1N2aj6j=O<-~f3Z5Z`ndWdP1~J(IQHEl~1NOzBm~{LU#_SKm zexd>~H4XmhKuk7l1&W!)U}ueDhT|O-ZqTqMN*oD)w^4Tr@r8AT);44@=tJ@Q&Hh(q0rD#Pq)Qloc>{l3rC1Zh!aVw zWw4jlT)(9Xn^!cluVc4AVN^mcqGJBSx+w7%c3HMl;VYH!7qlLavgRh^FYp0hhl~j( zD5yw(V8`M>W{+P+^MFU=7uhz2Y!&YpMw6W zmfBVPa<=fV@V57x3To~jZJwXg(uGPW$D>+*63NE`XR5!P^}>F5`v)C!g~)~0R{~p9 z^HwKpStaudwkWi3GGI}4XAW5AfMpI?3IGdzrU+WG)--soqKutT>ylR7?}9Cf2B8Lt zCCX*|qr0eGw!sXg4HhWm5`-^oK{AD|2B{UHq@S9dXhVAdl2sC5%}v~I{}p!!kZH1i z*9jr|Jp(6^b{)r;^$?Ti5Ytd?u`=;?UI0nhmR^QO#AEPf;1N1<3P$L1SAmh5hW$if zgbi4ML}oF}nIaK7p#_#HwgQF(r5Pa&mRbS5B(A{aykQCsQ?*LUGa6!|cl~uQu`jg;X07BLAQLXMs2kaSUNaRz&8{gYc^V)R@}%%fYBC}m7CyERBIna{Hc3ebUo{~S z>MbE9s=cvJQqtrTuBFICTmdqFJ5hCT&Q9j+WX?_s*opX*5r}doB1#daq|cys8FiEP z;NczpL)6#0QP|gh06+n25-_6&-<>`oDg>Iez?vlLH?;lm9!yYfAxkA#p>(JP%AkE4 zX+Lh-;QezOg3k~9k9!MI7okP1eHp<|0nlijuzyW>3&|$&ICB){?US>AH5r-JQu^fx ztCW2(7uUi>!y+P{O#SHct_6-y!k}5cik)=Ghe>!Hy?gss%MxvVA>+{wKn%j=^p0gx zqP-?>{vglXLQXxIP?k$^i<|_d7qAzx@$g_4$7!6BhXS5ZWLdunv_G zvlvr~GRm$4vR#Vd9spTE=aEQmYoW#EPw2_zDq!g@3>$hnB)&dYKrt z6b4^OTb{(g#nN3HAdU`sAt62m>cTOf_i_Ehe%02&QyILC@1voc*iQIU`&D!mTU<0! zn#4|EQ83@B1g4E#ipF%3jcJs)>WN(HI*v=yn+6`tB}QeZ6AHRA3m3M8D$Bs>L*7l# zN&k(*o}}Ax?G`S7o~eU-lLt?a2kw?Qn&)b|>CKwu2s;IDd>WSXUw4rEE$WXzIl{&t z$S6nLAD>(B6+ZT=Nlw1n5|E>s%{oEOS2o)j#}Q^<#yG0(%`wg#DePB&6*Co~?oy;8o_sF@spJnX zN>un#9tl)x62cP!6=C=ao-&Kk&XlJJJ5>Qr0o7d&$6}USy||QhAk?v9km^#NVl;Hw z>?My1FezDw+bKaos@Vp=?l&v}&){gWo22>C1SMZ65tMwt45XNR;`K6uV&Xi8pM_$> zM7`e@i?NS?$_|&Az)+;5EnG079=w;)6dtn5~5^DuJLNcDAqX z;Q_xa`vvjk8#J(g!x5j3N$g%MOE)|lj4{Aez;iw9adezjJ)T9z1k_}mym=@xi&A+^ z2TmYhskjVIN+nhYII%#5*KNoy>NyZ582o0$PMuDFDC_aS$p|rn4GdedmD#}P4w#=9 z1{nHyy5q~-Bz;0^wt>-oJ0MO$&fW52%(=;&n-p*p;TfaR zS@=VL_diVkgb0G6b{~Sl3W-Du@ocF@3%37gcdy#uI+TWN8QhQvwh8DjQLBB`Zh=+I z1K7!sP%K~|LX27XqYM#UdSKY{0PaZ*?U+uTFz05YJaF}x`j zJD0RcBez7{HY5wK+t79)P)r}pZy>xm;X15;Lj%%AsCD8WOWc45C{Vudk0U*q`N~L( zn(P-NENOlvqNF2-o`XapDvAWU+u;HkWjd3++OQvp1~jN}QZpK1r>&Uy2z8edAAY7+ z9f|cxbLQrcTo&ntJ#!<8PfbF2BH|+qUqO6kG1{3DA7PIzAU>Xg__*c3hlSXc(i4$? z+J?Xft6{4Kln*Ut5Y||SQp$TIHz#)8Zy>(3$*UXT=ET|>5%(qE5u8otlh92AyHb1> zi!rv^7KdwXo1T=4 ztPa8hAxI$li062Lt2+iZP&m!{RHu8>2q6RDVe?!O;4xg&v|QgdArLwVIEyADB*B`>FOH-vEskL*vjrkv<$%wjs}TfP)&iOiifmB3X#j|#4%bn;4VT@P)LGJUfBp%!de=^O7h(>(C7Y7LML&5>1VMN_jOw= zw$TuGxO@a#81$Q6K3vJ4h%kh6#J^BKfa>w0{svsr8)=+^V%uU>l9!ORTiIfN@gk+FJj-=-t2PPYLg`^~_ zvxJnW=CDpu@-dxbASGEJWm2N*)|`~gNy(g)6p)ha*&?LmBg^uCMgT^db0~!1wlrF9 zmaLgTk<2CqtWKK#CX$VwGLdX)t0LsqH2f!GBEx|z zn8+-KI#V-}Y+?(4m`E^Lq}+gV3Z#^-7^Jo#6Y-@K&QLzg8ze=_WtC!=oeij!LJ>Jq zE~{{r zB6*3b!54KmzNQ1Ll#Yz-#WyanJS4&H3j4gLIBf9&ziy&`hzN(-@2y6FnAB0$-uR(b zeA5Td4)7ZCU2v_juyfh5IFvdqO1L-`F>}eYG^I%i&L(_PDzfTrN{j}iZ1Q}Fn(IK^ z5Af1L$nV86B|=CW&j~Ek25RF% z@LtKBWZcbvsR~Gvjy(@3rZFe6E|*4g5@Fj9ko6j55)uXQ+?<81%Q{F&uGSJ(qMFJ& zSqUUQ$>Wmz%*(_?)www_nG=&aF)1J>`6rA(6PjL``_4cnA(C4;)~+MSGz5-2;9^4q z)rJI+WIGXY&Y`9v;H~q(en5lWk`NGZKOrn}YY<+411J%q;erDac=8Z8BKXZUsS)f1 zwWu54!T&+4Y2;i;^9&JmTLX=zJtC2JNw(;Ae3vknnx~4Id)WQ63rUwoIrI$Q?o_5I zLmo4c6-s_5tk{t!Uv;S;k9eHE4DOOU4k>xD)(Y86O(J+A_L3jGg1*dRursAE`TcJ+ zfFbdJS>&iKE(EdpY1m=w-Q@$=+mU$S?-z7P&jQ+8OY6U1Xu^F2iXhE)g;tjmm;k;f zi|^^HqrbFmBqjXZzf+44AXZl-NPZQn(1a-dkkFHv~@^c4)`&D z@H~mkjJ-cp6Us$7)ziQkvjEPdW29#y*uEh;MGmm%Y{X*L0%vly7Q-3kRMrV+OcBoH zXI_Fc%FfN<%pA_l;YK-xJoi;UtM(} zQVMYhx{o?>j|XZYK0_>03PC&>zyYFv(*6@{Ux44hEn75bZluM)X|yxw%r@B3v|AAv zuEE3JVSjl85l^m29_oZ75$Z*Kh&vJU-nP3m*v(kDsN9taW1bO#VKf>U28Kg&Y;(SLA9wCej>U1z9_B#kFnM1jHkm-IOobYEo50zHHMs?ErFTgH;*Y3!1BAZw3{y9bt2*z&mO9 z(vRJf#O>Ud$&R=wKR2@*^O7q&6}l&7b(T;a)g;zTb(Crzn(~jzon%gQ=0s;sbc%@% zf4T_IffqUwXNBg37V}YmU&k>-)a^t++ZXK)e^ zK-OhqVUzydgueqbiNPW1w*41_CLA}A0KE_K9YpEn@p~a6FMyGTwoW{pmbTy?lJnL1d_0K?KDp)ojrG@)ndbV4~#L|0T^O}zc8 zvLF$DWOc>g41c^3UHxgtK4-!nf$l>*z&1dMy>A)+bEW=7mFbg{=kp#~c{uSQ#ep78uUHCqI zeol)Q;CuLg=pVLk!|UvqZx;A|cD739S^G%l8E((bx@e?K%%t6Z>v=o4r-19}# z9{~;Ngw&kmZ1bTXw=dzTyQY75qp_qz#8{=>jo?SzrUudrkzg+a;>`3T3L!u)F+Krn z705Z%1=|#2VAG2G;2K5Z;;x5Do7t-*9k7w1m6F(hFzrjYdY6z&&JMop>@TfB%Y)u+ zvUCZiGhkOEb%$^oHn&;YBZ_$PIEajC382r%xZnPZxJPxg{S+j<{=Rhb<{faLoVz~z z^~khF(l2Lc#WIE?RNn3dMdi(HpcPxP21f{rzK3DYEQt_6W1n@+> zB{y_`1#p?gSZ8X*lG`#1h>N8nE>2lGqji%gCHEh&*1VBj$6ia~+wUg)u7JPf3nl)- z3K?OM@JqfBlFW#$e&(%mI)gjEEf(824-qLw_yzo0#3pvR0C05OwCdWU>#E!TI(GYy z0WT`z!emrTT=?3-xrlhzahQw4bWJ&s5MA-=xOpt7vorBmtX|&e=XvpHD$Kxa$(=5a5ngPUk1p}lY zfW$nGjqGYpCzSK_F=KecRnZkAfRt9A0W1ju+S+)S;FnaoQmdgWt`6ykEQrnH14DFw zaHck}Ug2Bhqj#bT>58y9RA9lv-n%8RA{+ufPQpaasOJn;$e=;pxfu+4$-Cv{YcR{d zyJ$d^;pP4KYOq1_sV?vJTj4&@Tl&ivo%mvz#9mm2=ne3>xD_SK6k;UH)GYrGT3-oH zQB7Q(Rx4PulB`u!9hyUwIYgO5lmdu~j zRS2}>^?vK-N7(;MTWg26arg2~L;Lt}(QkvD2zSsaAfA+NNE`&{3j{)kc7UAp+t=+& zFoU7LOm5>CU=3tr1iC`v?h;p}Bp&qR9`uYD!+=dq40l2BUPw``UAFsCi~o*)eqOqc zVsI|%KM;Erl1M3!ZD?9*hGZ5g!%3J26TP0(kp9lGe%brslu>62U<*4%E9NY$(o)1C z9>p&MvCspR(v<@^s@GItrKVv&5m;dZRxp)W40EPTh3%jPIK@`r6v#?i5?E&4v{fmH zHuz<*UqO~Fn^01~Px6HlKVgM`jDetUz@K=vBh6Rx_kvr3_*%9t-i<%;?~r0_zJkWJ z%SSBX6W(zB_=HUaYX56GvP%7bRQQC6s2HEHF3JWg>^ct0dYCRE+h}-RQK*-+?FkH4 zY|pa-2=@YR8@}V<{Kv<9=AVqE5XnsE59DI8o@8U1DN8XeBQPPeGfAC)Bcl{y^*nm5 zR%frm+OLeL0GhKP{w>6Lfe=L&_QP2zodF;h=jY4KqxEmi&GoH~{S?@d>x&%TrOwvc zVM0FaFD|ebr3LtIPc4=7hUb8}3fKqPK6qm3Huil4qB8F0R3TAO&GsUl1TPLi7l zau1ORxR8xGBNz#1Dv);h9;gR^j0i&Ml3*^}Q%J!z)_=C5P6q-|YQ%bk@sCCBKm?I> zY1Cd8iWi_R+<(>XfU(Q9c6kRbLJ(pF%vz{T3s|gl0hU0Nm@FoLOhcp4B+a388$M`# z=ny~^@E?MIfuj+vgPXlXtq{^E5w{`2Ub2`iiPnW2)KG6eoG?wT)Vk~6L)xXSE9RU; zeUh}BFd_J-2OdxmeVE}I0)zy6novt1HcSWb4fk+L`$&V>sI6^A+uc1+q9a-EJTe#z zF=i!;@Ru_tyQM*Y+*_LbTr2Qa;%8e)1}F4J@G`&-8#*OB?6Fs&9r0D@x%(*bAuHI< zEXFxgw!@~hfbD=AlH{D^mHQ@<@WEgyBff5J(5S+28C~Cm>jhw^pm2-d$=Hn)%$MDn zf*qtweHQLDu$9HOSZpC^vqOpj?Bt{Q;>^Cg{5MP(sQJBrwEk-Gjv|;ZYaW>(d>y;_ z$9pA-v;K`sp_uQmPD%k@_&P$uKTH>rQ9)OJ4N+Yn;PqQ@m~&DM7_4qw z!-Ckd9;Bf0T-QTAI~E5udv_!vm?@*Z1W2kU*_dWWcXUXL1vVs>8(2EH#^{zMMSDr7 zFt2QvnJV9lc(@rrS8zHvFqSD@td&H1F$^z&-OdYq$Q%~9 zI2rcp*c-!yWJlrrwWfTkrgBA!A&O%cl7O@%ydxeCvL_NR=a2St3-~!cAf{%Q)CFn!g%AOW*j~6AzDgpQs@Q* z&;#PEkbt)r5rj`+h9fi_3&}!FI7qvHdq+}0i>4odJ|H?vqS4IE6o3%Zmh}V>3fS3b zVXsHP2=NgLSzujak3t$|ebAz-t9Gjm)VuQlY~)LyWE+BTxzId|ZTmnH8l_eXEm-ef6sKc6m*`k2V8VE^1C|Z*Gc*!QwsgUrerdv z1KPJ?*^n_ga4ZP1D^A(5IFi|0v=AXpY0-j%*`8!$nx#dH??HZK$M}pda~ZqoH_v?LMU%0}?}*aUMco zuw6{ft_7aZd@x=BMl1vj;W!csYG|vB8j(tYrqDFh% zn9axylmZ&@=zbZ1MmlsUrO7>f?4(nnnwrG%M5sm~MsU%%0hhQBTKg91n@|q*PpW*x~3N2-pV;74V7i17C{QJDHp- zaYABER~26d(hos;ZC{66M4khYW)L`7DPOFWSmFStalyWS48q*Fo(mzValG2qbensM zh`p-Go(9*%twDI*4{w(esy0ZhM%eHJwDy42h#TW`V>RjM+2AV#HDbjjltwkDbyAu= zKIhs#opV4mXcfqOM%BeRpPBQSIiD%uGw3-ZaAs&x!ty#ZdcwH~%TrCD%S{`&$Iz1H z|06ddRoE1Nv^!NyIZ*ATh(kQ_UIyY2k1NVI(#6Zp2o>C@Nf1v2H;@PvWMdZNohjKs z`%?kd2oTozY1m=w-Q~ktln~#@_X|1%sQ`VerS;!0teXMD8IoTSyB;8|Y7>4xG(bUx zABze<^FnSzVoLd$Nxw-Plx5zvJ$^$(b;I&V4c||HmUhq27r)UYb!WT7KauQ|X*`Zs zyUR`Sz4_~y%{+z{$gO-Mt-$ciYe`)X4m%KNUbY4JP8ZR1`n#mP zr-PcI#Raynm`twYDeEId+HCUW!J>e(XF!!Q=^6shsIKSX29L)2YHjOiS^q`S)bqnE zXs7~zeO=vy)$BbBQ}w&8mh-E5{%(qZ>nZt)!qRBpCgru9A_mAex4 zxR4{#7jQhjD3k2RE{!q2=g z)lhJxM%r&dL*X~nt)YzB%!C>WA6`yF$*xSRp=1?3nTA3aOSKwGsdTFUzKB-y>4b8v zNJHVR*RP=n!+a7AMbU$DAW@NqqMYQ)G?aADdv@UoXP}`dB|mEoMcIkDhBDVs<{Aor z(ooP=_Ix#zx&|^64P_>suUkVg#?w#?s-a+Gz730A$H8$n;d+6FQc(Dr-^n!;+~5u= z7QdnJ8*0~3Sf?M`%%mC$8(v;RNv}+;p`;Z(orXddOT`*WnRI5Lp-d*%sx%bV`V2Ib z{4k$JLy>zhI}JrO$<=8nY;T!=L%EAS@aGG9lF+ZpLI%MaqlBrxq3}~jOi()4Q05xS zTtmScinx_MV-2OIfy_ojnMLR8(omL@nB=Mq&sfkH1S6E)Ut112)>!i}t3yWB#4v7xIs*0<)LPx^uHHNI9VZm@sk?znL(uAmd4y$CX~kI3&!M)qScM6P6(0mo z5&@#OB6=q-(-z?40Q2y+wQY1N(JgFWq`e z=;0=Q(dbMX5h}Y*J7Dp_?t85n4{94tjvc-M0qGq*_$oNG5E`x?oq+?Vlv^@ds+xCu zV5&J5Xbf-uTdDg3_odt7V^xpNDT9of*4qKubvWbSl8WiRb(;z+m}qdKLhBGLI5;C% zzcwReQ7VApywZ@wqnR0>r1WF}ew%LLi;GIMR8MkqTLt|GBBm<7=CD?)X2v$h&?I+O zjSR76PlX8bi8#m3H@_d$a4e`#KYnT`HB#=(&QuOA-4PA z-0%(PJJTCBQm7^i{=8^#LoZ_LM`6~PhTv6JE10{~y}|CFPmSrn%b(%S#A{No|S*yV%K|Nc}YCd6}Hm1YTtyG9I!Vv86k+zcX(8u$9VNQc21XWV5 zQpbY*kJGieyM9VvkH@IR_3h+UO~{54|M>YsT&*?j7F$xxb;)RO;mgtpa#nn7BBZG{ zTH9Y}^`%K|#`@S**zFT}`w23X18nkz{P6A%3|32svpwC_cjwQfOzWSlnz4n6X&^w< zv(#3$i0;^m7nFq{?zvU(=tB(c>A>&%xoXM@;|# zu@(Bz>vj)Rl)NXE_mo%2BQRgBp1}?A+{EVwvjN6)T3i=ECk@nH)Stryxg7}G2es-r z-XB26ky0y5=jME5T&#=9efsr~??Adtu$4VEnFLx7#q>5DI=)E=n4RE^%9;8oeZW>K zDoVpahQXj*+JgHz?rBTZo2jmU!d04t^(?yC-aX=AW8=xyvp=X?!J;c|p)_^;W`AgN%3o z0C%vf6*`cpn!r+*Uvuf}FIN(k#0b2(M+{74rP+`Qd7x{RE4}u>ZlDwTD5vTVOH?nX z)_7t@8Z62le5C+(>F&?SkeB1CZd+52zyhA*s2P|*MLhOpH#5s&65`u*U$qOm8&=|T z0n)Ow7ysq*h-(~$3YP+F_Bfw-l#4mTALGErkz^T$kWr0IkhEk|DjW(vbx&VQd(p3o z-_)9@sCLfkraD<<@nt~*B=~|>wC?)*BI4=33_%7H{UJ6?q`cLI5c;~BPe>f+8F`rg zD_ueAb@pg^CS~$5O=ILaT>Qxs?vG~qL$OA?qRvmKDq6(wDyt)o5JbM@YK@r|9Ha(Y zOSAW9xur(P8c7K6Bggfn+-SV9Uy!;?JOuI2YjIytOXsZXHA4ejFeqo}#E~5h?3Vlx ztf#1m#n2@VYIv_N=jf=F7*9v|r?#xbt7a-7)4G_+HBhS6Ypvo&&%BMLrH z-dX{4nNI1qliE8+Wu>feI)DD4D38o((f(@m8#B>f>R8HOQHl3>TlwS(0q&8FMj?q+ z5dq#OY|t$E7sSghb##b>_gWIA3`3^H5v6pSHNF(eoSPn?;^dBxdZYa6Jz}20ja&;f zJSFel3G3x?X-%4c8Qa zW@Duq$ZpQL)7TK%^GG#Pf)f6_qp+8=rE@{c^XH)erGy5ETzWcopRzcdWTb5xeUO={ zXNygtfUxC`fXU%(L2(?cpGI)Ax0CeN44N=mjCT%=e?SA#;y|=wy-=)nGc;gSh9pEj zt5G5`hm>uCGEQs)sQA=eTTpNgOxf@aWY|MyT~ZV$DL{1h4~jmMx{T*#Yae1_m$+*{ zmTZ)12(vR;9`?I!|kA6CkKn5nV| zUg{?2CatpornlNN(pTin-QX z%ZyGax5#z(wizA(%YDd`^7{w7St=9q@%7gWy8Uprmy{DG#poxYWBF zXA|pp{~(Okm=S`pSFQ?*h~(CAFOg^7wTRoz9BBu>xqyZ$IifcP=pwuUv_>X#7P?^7 z^3TEfh%$u8xD-bEbwknp!pugRs7n*el!V5!H5$8aa{D{@%1A)fMe@8$k2dDnahY*< zr5>r)MwVa8GU+UjF`Lqs#JyXjZIJA`;NahNUkdMR*TaU5F)Y@)`;)LG*Oce-o7Z^U zsP}DR2jDzBoKef9YfyU_^HO}KttAmJ?RhVrFmCU zt2;vvUCK}2b1*+0bGL;nSL|2%VnkV5{HKLV|D(8rC{LHA!J8Rq?b9t$Q@3dW(aY9M zKvi(F&&I=;zkTfoe8O2i+g1wrnt>^J_=n~sZ6BZDY8t@#;-8u4w-HjF?3)J_HGUuw zx6TWH^@RorWx$x+H2ts97dazN0yaNq!~%MQQS!e^V@)N%!|nX55H(5BZZ3InDBMx1 z2N{*p3ybg#^GSI^do(Zpqxfp#VxI%A<}cip1|vb(TT?1sIXh&rQa}NJKDHEmUJa!( z`0WWgxlb7S2tAPEm&Y9FXgxnO5aYWtI3EqVUzip)d$A^L;Anm&1Gd(qkrK;{C_e#Y zR)_}Tz)`o!?Jfj&&I;tY@^}}*l1*v&Z=bR-)X!!*pRA#U*KkBdKDrcoiVHg)pIb$p zz7`zKKBZTxvB|z)bjxft>w7L$;x&vjsyp;Pg`JrKg~sc$?1TLN_%5>oC)T)Y>X>Xe^vfqP6zMOl>^- z7dPJCY0US1G0v?b$HEsJq>P4ZF;f|f4%2E0BB-8qXC7Vux8rL|oX z{pQ!ge0D)ZDw?|Z2h&tXF<*AeEV4D+`pBJR^d4ZV;8FFvpAw8U+0V1A1d0Jly)}_Y z1@pxd$SeJS&e#02&-zCT!Z80^&F`MEn%n|FX%m{Bi3Ga8fO7;lW~adz37;g zb&{H;b8=RZp1z+^zf0z@^^246c$Bve%BjT`nAnZzZ|(iNd%CwoUSG3yd~ogJv$Koy zcgsc0ctMGAHdrbIkq&Q^Dj=VFI)8F?1I>v4Ts=;9ad2fNq|t7p;B#28Yb2r(j>sQ^ zdRbR6utwqIE!e4}heJ}Vbva;FrDKKSS`Q=y1ne6=f= zN+GOow+gd|Y#?Cx`k{?2@B1er*ON&b& zid}k5XKLqHpMQK@!moth)V9uP=a+p{oz<;q8}gxqMHbT_qF|oXnU?hj=4T?$qv}bR z+CtdPifPF7GCnF9o*C{H=CL*+DX-&J0%wZNGFbW$ye6~Z4&@(rm)c0}M3vgbKwh~a zl=`WIk0fCd5mAw=(FEC{n2fseOuF8x9?BqU)fyF-15=ku2I_XBp*J*j_wotmWvPt` zI%JAgYVLjfmdtjgrnWOfC*-8|d(sbMdP3w~T=y1jgc}F}ZZ(KNx;HNXCHnJ`=|~2F zFw^Bj#T~vLioI%e*$hoTi)8dYUSgm@Fd8;LPI4ZN?wRNb&Jbh;9^pO9&Z}JqHJ}eQ zh%Oejb}{HF?3+)n9pJs!tgA<}t4CHX1$A&=!vi|UyMWYh?9y&@N%h*eU1()67sT1< za$VyrNd(@7KIiDjfEDe>T!|(Of z3LBHH?YTTjRsU%O+H%Q2;x0hgeUoDy5QaI5ibPy1bO|`twDc__EA{cgir*?xDNekWr<~u7To%jlt5gV}}>k!AS z1a@c;RyjVzR=d1Mhz^4DNw zOJ-Z+!6)U~<40B3-d?{5f-ju-7tsKaxO0?siv5+(aHsQ1_-`1Fyocpcy@48ZtP3Da z&}?-$QbPTaj~B9rc7gML`#TbnX;CrjU%XaNjf9O3`KFh3_dg#R$|Kv_Jbly!Yl$8N zFCldF4YbflhFo98VSbH~`+3H1&Q%J}AqGyWKVxC{vX$Mo#(U@+RIYw#&L6PDaDwlu zI<3Tqww#V=rb};v37D-n;SHG1dCxxw^x8dCI9~bo$z05r3Uc%8Q|DIBIZ)tG zj!{PH?+AhV!E(T|ce_uBBA;nk+v!y+0%UZRth#syz6Y6uzFs!)L0zH-zUh!F2$dwB z#pI}mta9lpPri8WV^RHA1VJyMF+HQflZ2vA86diF`e>ScSL8-CZ$25R=;#k4IP|x^ z%kh@NCA><$WR&86nH%j`Qp74N{OD}0R_4LIZ~N$L_SE_P%xTby~$Bej$ECR(uM7AunO`gBvhdoV(s_Iz@coy@bBQKgIb zp%&fIhCkLgWRNk8u}XDpVkRGwkqYTxRaj%e3A^(!99;V{jYUUjN%x%q1utbv(|I!( zAckxY&#wb-wE#wp3`|^><%=~IJJd>zDaxNrbXTTse!IOeo*yWPEX9Bm%1Gfh6dD>h zh5IhUPMM44L|CPmQt&7WOJ?P1FY}Lq@Yknx#`n1P{9xfPVL~_6)xkDf{NEw(_lu+8 zS2>io?Es-3PFm61JD5ezKQ_5X)kvfy)4nA?kbCdD#Lo+;V|RWo?6};ycgBMVmPC5F zY^-%g9rMd)2X$kpQIFB$@>uf+i~*9yA2%yQ_OtBCd!w2G7-%zn#9p}xOQG$j$eyV! zt-W{aH@{dm4c7Xxs7mcs`^+E~fVA)3@qh&pQcZOtDS6j;-p?E`3V4*cG}|?aPX=A) zJ_LArm2U{V9IsLaiYh6hv-*do#$L({U)i1V#}ttI`joF=^5>2+vz9Gx%`G~O71Ugh{SX~q8B}#KT>7V zpHGm2KR%W3LG;leZE5!J`7VD!V4Dg=u&5B+x^x$5L^MT`sTXBrI5=L|fja|4Mls`A z;#)vLJbepFpt#a|F9LENUXxL%1>s3k6;P`@Tx^0~d_c&Z+Y!bX)w^#6Qc&tj(x-p5SrxsNbj#pw)R{Yzu4BK>slIPIgO&tAS;!1h9)AQk zD6!s;Umx}lS9#4SVE(pno~U%5aQO9O<%DcibfV;2m!mYk?5^wTIYWUf9mOEeBwpMO zG7|+~z*w`TZvRerf3)((&}hV9f+u;zpmU!vZrlzK?#(|#4cs_d7?N=8-!IZ*^8L}$ z(Trxoz1N_a*N$@!5<#lg?@2R2z>yVx@t<3`I}xNf|Bdio(SKA392DUf;{QD0A0*e$ zPc;C~5gYC-9!+aTj<*y3526{s`xoK<7n1%T70SO8r6JJ>W`GG9U3?a=Miy0s6^rh4 z(hz*`TuNuqCfPYXUJ9a87OP79Sk(Wp_!U&8K>EoPUip$He6X5CuLrI#!VtcxLiO&_ zPeg^^Og$g%4~0-WbN4*$uu6G$>vGX>*CcP=&JkxxZE)4kMt!Gl2=(RV?t%6j=!QN+ zrl;J47l9g|hpu41(rbRP{sX6{c+397tfXLQ^}=%=S_Yojev_!w(ciHLw2^7G*c)j` zbD?iRFJB~s#V0l#t8!vg*RkR0sX@Bc+|u;Kp^ZR*zSne&6^>2yT4=*CZGAp8cE5#^1f z^kH>{H@o2iV@2~Mbq7w3^;zE(!j=$?M|LrR_nb&v-_9-U6uG80qo&=`sKZIqR^Pl5 zOfEYE<4~tYDt$Y#&^L$S0qBCRaCaKNEZrg9sU~S&2*#FnmW11{x`oYAQcGf*P;4){ z+xVhByVg#=hNk`J%+hi3(<=^Wte(jy+b)s2mNfAnEbJV)AFZHaXsp5*EXvj=dYdMa zqmuvxf&waxze@4pEY)lcyQ6-m^dLpzwA37Ky-mYFfCcmm+DH=81U*QbnDjMg6r#6j z5ZG%0wMQFCwNmP%RA-G+?)$~^Yd09ELa0Yi;lQJP^F}1MxKy-|@m&QzzesL&sc0$V z?{a)y5oeMDM18eYJSOM@frp$T)op)fB7T~P^Fjflt=g&t6Lf_j_~Xs6i1SSW;)E(# zfeBhqpz~4Dai8xuFno9ij^MVuCgk=$I;+oJuEX0lth{K-_N5{68)-6WMu` zRj)GX)@YgbX;dGS^rq+6BWRvDlA|vxOB7->8^<>W=8;sl)qj$;5t4y-S6azIZ#A(g zo>_)8ket^B%of^DHgsiy0(2$Vm{>nyP=Tk)6@~ccpA(C6TnU{@Uylf}AzK`!?~bhr zNmjilMsLIdGyFS~h>p{R)M-zYcv4$s_2E8Ovc}YJ&#qDcZDvZAYNEN9J`3wdS5wW# zE7P_s@F#p-=wI6EZF_DZfIf0?!o~z!Wo>kGCG1?i!I`^cNTuf%n?>72(|q zq;o|ltp7=eMI@}Br$0@~x51Ae&dRS)jvp?{|6v@L7(fkD{!#p~yJTBO2hnI6^<9bf z3a7SP`to*hqOLZTwu}rjDHysp;_x}d!9ZdF9e05^fJnJqTwX>_s>HsjlBKkRJO4AZ z-VT`Jx11P|k~v&ks!OvP=$>+2o2f=s!rEdf0U1p(&vhj37}8i`A37WQ@lFwo;b0Mb+Ldx!u`)((TO%Qf$x|Iqwz!w zox$-(B421t?YscZhiJf5JF$kN>$OH@FB#!$B&5m5@6>WA)z%-tM&|9g?Y!sazmcP1 zCJ1UjQ!W|ggbsj_HG4wpW3ubH9nGaNW)qa-#C*|^YSvA<*aKZC#-~7mP$84WXlXZT z7#V~Df*o__7A<6fAsU|V(NYCeTsw(Gc*ohp#MceBk3=a7 zqOa4o^yEC@)#W&v_g^AIGxJIVPRghqV_@pyLgS>v0E~M)9c^qnCGy+m!~<9HV@jO) z&XO~`ug2|#r}x|J>Vt?c_*H#$?-dlQ9Bh;^82SlvhR&CoK%M_LoO|Kb3i|&9;?oAH zBDSH!!NFG0fv~tBTyoIAx!nLb(%0nR|Gi!?VQ;a3Fydfb*j^A2aHR-?4;I7P(}08X zv}1F1^RlyWg-r($lK*><3xb0q{NL%XqZS>QU$8j9)&kZQtOiK2gyDt=kpEk?q4@vh z<2Eph5ODy+6;}M(g@1wNx)H-(LU76d{f2m50r$UFnDKxyhtm9KJHS4K5(8BHVK$*6 RfUy8rNhl36Ea)Hc{{d+|nGgT~ diff --git a/src/libslic3r/PrintConfig.cpp b/src/libslic3r/PrintConfig.cpp index 6cbe0dea41..0a980f7bdc 100644 --- a/src/libslic3r/PrintConfig.cpp +++ b/src/libslic3r/PrintConfig.cpp @@ -232,8 +232,8 @@ CONFIG_OPTION_ENUM_DEFINE_STATIC_MAPS(SlicingMode) static t_config_enum_values s_keys_map_SupportMaterialPattern { { "rectilinear", smpRectilinear }, { "rectilinear-grid", smpRectilinearGrid }, - { "lightning", smpLightning }, { "honeycomb", smpHoneycomb }, + { "lightning", smpLightning }, { "default", smpDefault}, { "hollow", smpNone}, }; @@ -5091,14 +5091,14 @@ void PrintConfigDef::init_fff_params() def->enum_values.push_back("default"); def->enum_values.push_back("rectilinear"); def->enum_values.push_back("rectilinear-grid"); - def->enum_values.push_back("lightning"); def->enum_values.push_back("honeycomb"); + def->enum_values.push_back("lightning"); def->enum_values.push_back("hollow"); def->enum_labels.push_back(L("Default")); def->enum_labels.push_back(L("Rectilinear")); def->enum_labels.push_back(L("Rectilinear grid")); - def->enum_labels.push_back(L("Lightning")); def->enum_labels.push_back(L("Honeycomb")); + def->enum_labels.push_back(L("Lightning")); def->enum_labels.push_back(L("Hollow")); def->mode = comAdvanced; def->set_default_value(new ConfigOptionEnum(smpDefault)); diff --git a/src/libslic3r/PrintConfig.hpp b/src/libslic3r/PrintConfig.hpp index 1093d4071a..bcd71cefea 100644 --- a/src/libslic3r/PrintConfig.hpp +++ b/src/libslic3r/PrintConfig.hpp @@ -65,8 +65,9 @@ enum AuthorizationType { }; enum InfillPattern : int { + ipMonotonic, ipMonotonicLine, ipRectilinear, ipAlignedRectilinear, ipZigZag, ipCrossZag, ipLockedZag, - ipLine, ipGrid, ipMonotonic, ipMonotonicLine, + ipLine, ipGrid, ipTriangles, ipStars, ipCubic, ipAdaptiveCubic, ipQuarterCubic, ipSupportCubic, ipLightning, ipHoneycomb, ip3DHoneycomb, ip2DHoneycomb, ip2DLattice, diff --git a/src/slic3r/GUI/Field.cpp b/src/slic3r/GUI/Field.cpp index 094d3e7be6..517352d0a9 100644 --- a/src/slic3r/GUI/Field.cpp +++ b/src/slic3r/GUI/Field.cpp @@ -1549,7 +1549,11 @@ void Choice::set_value(const boost::any& value, bool change_event) if (m_opt_id.compare("host_type") == 0 && val != 0 && m_opt.enum_values.size() > field->GetCount()) // for case, when PrusaLink isn't used as a HostType val--; - if (m_opt_id == "top_surface_pattern" || m_opt_id == "bottom_surface_pattern" || m_opt_id == "internal_solid_infill_pattern" || m_opt_id == "sparse_infill_pattern" || m_opt_id == "support_style" || m_opt_id == "curr_bed_type") + if (m_opt_id == "top_surface_pattern" || m_opt_id == "bottom_surface_pattern" || + m_opt_id == "internal_solid_infill_pattern" || m_opt_id == "sparse_infill_pattern" || + m_opt_id == "support_base_pattern" || m_opt_id == "support_interface_pattern" || + m_opt_id == "ironing_pattern" || m_opt_id == "support_ironing_pattern" || + m_opt_id == "support_style" || m_opt_id == "curr_bed_type") { std::string key; const t_config_enum_values& map_names = *m_opt.enum_keys_map; @@ -1633,21 +1637,27 @@ boost::any& Choice::get_value() // BBS if (m_opt.type == coEnum || m_opt.type == coEnums) - { + { if (m_opt.nullable && field->GetSelection() == -1) m_value = ConfigOptionEnumsGenericNullable::nil_value(); - else if (m_opt_id == "top_surface_pattern" || m_opt_id == "bottom_surface_pattern" || m_opt_id == "internal_solid_infill_pattern" || m_opt_id == "sparse_infill_pattern" || - m_opt_id == "support_style" || m_opt_id == "curr_bed_type") { - const std::string& key = m_opt.enum_values[field->GetSelection()]; - m_value = int(m_opt.enum_keys_map->at(key)); - } + else if ( m_opt_id == "top_surface_pattern" || m_opt_id == "bottom_surface_pattern" || + m_opt_id == "internal_solid_infill_pattern" || m_opt_id == "sparse_infill_pattern" || + m_opt_id == "support_base_pattern" || m_opt_id == "support_interface_pattern" || + m_opt_id == "ironing_pattern" || m_opt_id == "support_ironing_pattern" || + m_opt_id == "support_style" || m_opt_id == "curr_bed_type") + { + const std::string &key = m_opt.enum_values[field->GetSelection()]; + m_value = int(m_opt.enum_keys_map->at(key)); + } // Support ThirdPartyPrinter - else if (m_opt_id.compare("host_type") == 0 && m_opt.enum_values.size() > field->GetCount()) { + else if (m_opt_id.compare("host_type") == 0 && m_opt.enum_values.size() > field->GetCount()) + { // for case, when PrusaLink isn't used as a HostType m_value = field->GetSelection() + 1; - } else - m_value = field->GetSelection(); - } + } + else + m_value = field->GetSelection(); + } else if (m_opt.gui_type == ConfigOptionDef::GUIType::f_enum_open || m_opt.gui_type == ConfigOptionDef::GUIType::i_enum_open) { const int ret_enum = field->GetSelection(); if (m_list) { diff --git a/src/slic3r/GUI/GUI.cpp b/src/slic3r/GUI/GUI.cpp index 841c5fcd21..715512ced4 100644 --- a/src/slic3r/GUI/GUI.cpp +++ b/src/slic3r/GUI/GUI.cpp @@ -290,6 +290,10 @@ static void add_config_substitutions(const ConfigSubstitutions& conf_substitutio bool is_infill = def->opt_key == "top_surface_pattern" || def->opt_key == "bottom_surface_pattern" || def->opt_key == "internal_solid_infill_pattern" || + def->opt_key == "support_base_pattern" || + def->opt_key == "support_interface_pattern" || + def->opt_key == "ironing_pattern" || + def->opt_key == "support_ironing_pattern" || def->opt_key == "sparse_infill_pattern"; // Each infill doesn't use all list of infill declared in PrintConfig.hpp. diff --git a/src/slic3r/GUI/UnsavedChangesDialog.cpp b/src/slic3r/GUI/UnsavedChangesDialog.cpp index 983336558c..86efbdb439 100644 --- a/src/slic3r/GUI/UnsavedChangesDialog.cpp +++ b/src/slic3r/GUI/UnsavedChangesDialog.cpp @@ -1321,15 +1321,24 @@ static wxString get_string_value(std::string opt_key, const DynamicPrintConfig& opt_key == "top_surface_pattern" || opt_key == "bottom_surface_pattern" || opt_key == "internal_solid_infill_pattern" || - opt_key == "sparse_infill_pattern"); + opt_key == "sparse_infill_pattern" || + opt_key == "ironing_pattern" || + opt_key == "support_ironing_pattern" || + opt_key == "support_pattern" || + opt_key == "support_interface_pattern") + ; } case coEnums: { return get_string_from_enum(opt_key, config, opt_key == "top_surface_pattern" || opt_key == "bottom_surface_pattern" || opt_key == "internal_solid_infill_pattern" || - opt_key == "sparse_infill_pattern", - opt_idx); + opt_key == "sparse_infill_pattern" || + opt_key == "ironing_pattern" || + opt_key == "support_ironing_pattern" || + opt_key == "support_pattern" || + opt_key == "support_interface_pattern" + , opt_idx); } case coPoint: { Vec2d val = config.opt(opt_key)->value;