pkgsrc-WIP-changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

prusaslicer: update to 2.9.6



Module Name:	pkgsrc-wip
Committed By:	Paul Ripke <stix%stix.id.au@localhost>
Pushed By:	stix
Date:		Thu Jul 9 08:55:06 2026 +1000
Changeset:	306fc5d0665d7814613951e7987225da1a099bfd

Modified Files:
	prusaslicer/Makefile
	prusaslicer/PLIST
	prusaslicer/distinfo
	prusaslicer/patches/patch-src_slic3r_GUI_ExtraRenderers.cpp
	prusaslicer/patches/patch-src_slic3r_GUI_wxExtensions.cpp

Log Message:
prusaslicer: update to 2.9.6

PrusaSlicer 2.9.6

Changes with respect to 2.9.6-rc1:

* Toolpath moves between FLUSH_START and FLUSH_END tags are now not shown in
  the G-code preview.
* Fan speed was incorrectly being restored to the value belonging to wrong
  filament when toolchange command was prepended by whitespace.

PrusaSlicer 2.9.6-rc1

Improvements with respect to 2.9.6-beta1

* Use area-dominant extruder instead of the default one when applying "Maximum
  width of a segmented region".
* Incorporate filament_load_time and filament_unload_time into cooling
  slowdown logic.
* Fan speed is restored to the speed used before a custom toolchange g-code.
* There are new custom G-Code tags ;EXCLUDE_E_START and ;EXCLUDE_E_END allowing
  to define sections that aren't incorporated into filament consumption.
* There are new custom G-Code tags ;FLUSH_START and ;FLUSH_END allowing to
  define a section for nozzle cleaning. Filament consumption inside this
  section is shown in the right panel as flush.
* Track flush and wipe tower filament consumption per extruder and display
  per-extruder weight in the right sidebar.

Bug fixes with respect to 2.9.6-beta1

* Fix missing total toolchanges in binary G-code metadata.
* Fix early line wrapping in the ColorMix dialog.
* Fix rendering artifacts in the ColorMix dialog.
* Fix insufficient bridge anchoring in some cases.
* Fix excessive cooling slowdown in multi-tool prints.
* Fix toolchange time added to wrong layer in the layer time visualization in
  some cases.
* Fix ignoring custom G-Code tags if there is white space before semicolon.

Translations

* Updated POT.
* Update CS, DE, ES, FR, IT, PL dictionaries.
* Updated SLO dictionary (PR#15364, thanks to @jernejp21).

PrusaSlicer 2.9.6-beta1

Summary

This is the first beta release of PrusaSlicer 2.9.6. This release introduces
ColorMix - our variation of FullSpectrum, which is a community feature that
"mixes" different filaments colors by alternating materials between layers.

To let you enjoy the beta without worries, the beta builds save their profiles
into PrusaSlicer-beta directory, so you may use the beta side by side with the
current release without ruining your production configuration.

Note that Linux builds are distributed through Flatpak only (flathub-beta),
and that their release is couple of hours delayed compared to the github
release.

ColorMix

The complete story is beyond the scope of this change log and it is described
in a separate blog post and there is also a dedicated video.

The idea of creating illusion of color by alternating different-colored
filaments was prototyped by community in the recent months, most notably in
ratdoux's fork of OrcaSlicer. Other PrusaSlicer forks like BambuStudio and
OrcaSlicer have also taken up the idea. We now bring our own implementation
into PrusaSlicer.

When using a multicolor printer, there is now a new button in the right
panel, just below Filament dropdowns. This button opens a dialog where you
can add virtual extruders, each corresponding to a mix of existing extruders
in specified ratios. Once virtual extruders exist, you can use them like
normal extruder - assign them to volumes and use them in multimaterial
painting. The slicing backend takes care of the rest. Most of the
implementation is completely new, except for several fragments of the UI code
which were taken from BambuStudio.

We spent quite a lot of time and effort on the color-mixing model, because we
were not happy with present implementation. The result is available as a
separate MIT-licenced module prusa-fdm-mixer, so anyone can keep building on
top of it, just like we did.

To see a diff of this commit:
https://wip.pkgsrc.org/cgi-bin/gitweb.cgi?p=pkgsrc-wip.git;a=commitdiff;h=306fc5d0665d7814613951e7987225da1a099bfd

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

diffstat:
 prusaslicer/Makefile                                        |  2 +-
 prusaslicer/PLIST                                           |  7 +++++++
 prusaslicer/distinfo                                        | 10 +++++-----
 prusaslicer/patches/patch-src_slic3r_GUI_ExtraRenderers.cpp |  6 +++---
 prusaslicer/patches/patch-src_slic3r_GUI_wxExtensions.cpp   | 12 ++++++------
 5 files changed, 22 insertions(+), 15 deletions(-)

diffs:
diff --git a/prusaslicer/Makefile b/prusaslicer/Makefile
index 1da02587ef..e1cce31bd7 100644
--- a/prusaslicer/Makefile
+++ b/prusaslicer/Makefile
@@ -1,6 +1,6 @@
 # $NetBSD$
 
-PKGVERSION=	2.9.5
+PKGVERSION=	2.9.6
 PKGNAME=	prusaslicer-${PKGVERSION}
 DISTNAME=	PrusaSlicer-${PKGVERSION:C/(alpha|beta|rc)/-\1/}
 CATEGORIES=	cad
diff --git a/prusaslicer/PLIST b/prusaslicer/PLIST
index 80d56b7737..011ed23d82 100644
--- a/prusaslicer/PLIST
+++ b/prusaslicer/PLIST
@@ -8,6 +8,7 @@ share/PrusaSlicer/data/hints.ini
 share/PrusaSlicer/data/printer_gantries/geometries.json
 share/PrusaSlicer/data/printer_gantries/prusa3d_coreoneL_gantry.stl
 share/PrusaSlicer/data/printer_gantries/prusa3d_coreone_gantry.stl
+share/PrusaSlicer/data/printer_gantries/prusa3d_coreone_indx_gantry.stl
 share/PrusaSlicer/data/printer_gantries/prusa3d_ht90_actuator.stl
 share/PrusaSlicer/data/printer_gantries/prusa3d_mini_gantry.stl
 share/PrusaSlicer/data/printer_gantries/prusa3d_mk3s_gantry.stl
@@ -251,6 +252,7 @@ share/PrusaSlicer/icons/printer_placeholder.png
 share/PrusaSlicer/icons/printer_white.svg
 share/PrusaSlicer/icons/question.svg
 share/PrusaSlicer/icons/re_slice.svg
+share/PrusaSlicer/icons/recipe_add.svg
 share/PrusaSlicer/icons/redo.svg
 share/PrusaSlicer/icons/redo_menu.svg
 share/PrusaSlicer/icons/redo_toolbar.svg
@@ -326,6 +328,7 @@ share/PrusaSlicer/icons/toggle_on.svg
 share/PrusaSlicer/icons/toolbar_arrow.svg
 share/PrusaSlicer/icons/toolbar_arrow_2.svg
 share/PrusaSlicer/icons/toolbar_background.png
+share/PrusaSlicer/icons/trash.svg
 share/PrusaSlicer/icons/undo.svg
 share/PrusaSlicer/icons/undo_f.svg
 share/PrusaSlicer/icons/undo_menu.svg
@@ -738,6 +741,8 @@ share/PrusaSlicer/profiles/Print4Taste/MC2.0_texture.svg
 share/PrusaSlicer/profiles/Print4Taste/MC2.0_thumbnail.png
 share/PrusaSlicer/profiles/PrusaResearch.idx
 share/PrusaSlicer/profiles/PrusaResearch.ini
+share/PrusaSlicer/profiles/PrusaResearch/C1INDX_4T_thumbnail.png
+share/PrusaSlicer/profiles/PrusaResearch/C1INDX_8T_thumbnail.png
 share/PrusaSlicer/profiles/PrusaResearch/COREONELMMU3_thumbnail.png
 share/PrusaSlicer/profiles/PrusaResearch/COREONEL_thumbnail.png
 share/PrusaSlicer/profiles/PrusaResearch/COREONEMMU3_thumbnail.png
@@ -784,6 +789,8 @@ share/PrusaSlicer/profiles/PrusaResearch/XLIS_thumbnail.png
 share/PrusaSlicer/profiles/PrusaResearch/XL_thumbnail.png
 share/PrusaSlicer/profiles/PrusaResearch/coreone.svg
 share/PrusaSlicer/profiles/PrusaResearch/coreone_bed.stl
+share/PrusaSlicer/profiles/PrusaResearch/coreone_indx.stl
+share/PrusaSlicer/profiles/PrusaResearch/coreone_indx.svg
 share/PrusaSlicer/profiles/PrusaResearch/coreonel.svg
 share/PrusaSlicer/profiles/PrusaResearch/coreonel_bed.stl
 share/PrusaSlicer/profiles/PrusaResearch/coreoneoak.svg
diff --git a/prusaslicer/distinfo b/prusaslicer/distinfo
index 3aae90e88d..9e13afd34c 100644
--- a/prusaslicer/distinfo
+++ b/prusaslicer/distinfo
@@ -1,8 +1,8 @@
 $NetBSD$
 
-BLAKE2s (PrusaSlicer-2.9.5.tar.gz) = 4bc0386e0fa2d47710fa38df9d3b7ebf08bd986fc6c16d02bd839400a9291bc5
-SHA512 (PrusaSlicer-2.9.5.tar.gz) = 6a183f180ff3127df2b679132ba77e910a30aaf1f384bc7c9d8ae7969f24964e147e478d2dcf69af6df10011784b8bb60073a81ad03a6a79662233fe523128ca
-Size (PrusaSlicer-2.9.5.tar.gz) = 80570562 bytes
+BLAKE2s (PrusaSlicer-2.9.6.tar.gz) = 9d0b0808fd8bb060a6aff9c867815d46ff4353acbffbf546edcb528979aba983
+SHA512 (PrusaSlicer-2.9.6.tar.gz) = ac65ebceed1f1d87cb5955166ee70472181c18566d6e74a45930ad4578764305f627f4a3513e11bd308af1482b5a7dccf51324433ba583aaa29302576ff00404
+Size (PrusaSlicer-2.9.6.tar.gz) = 82103739 bytes
 SHA1 (patch-CMakeLists.txt) = 12f45e04b2cf7a5fb7a2ff9b37e51025c066a180
 SHA1 (patch-bundled__deps_CMakeLists.txt) = 9fad4b02132498a6bf06e0e53ed7626fa8b60b67
 SHA1 (patch-bundled__deps_avrdude_avrdude_arduino.c) = c03d11e4648054fc8e5028da3838400d61c27a95
@@ -31,7 +31,7 @@ SHA1 (patch-src_slic3r_GUI_ConfigWizard.cpp) = a8bd1d621f73ae6464b1ba4a5cb1db965
 SHA1 (patch-src_slic3r_GUI_DesktopIntegrationDialog.cpp) = 35ccd8882313eb3270e88c47d496d62db96f4d36
 SHA1 (patch-src_slic3r_GUI_DesktopIntegrationDialog.hpp) = c8760f69fac22d1a4cf8c7843fb96b12fdb69def
 SHA1 (patch-src_slic3r_GUI_EditGCodeDialog.cpp) = 4a66003e5eb8f78961560cdf5f4805e7f6b10e0f
-SHA1 (patch-src_slic3r_GUI_ExtraRenderers.cpp) = ac803510123ff016b8fa6f22d491c898166e0929
+SHA1 (patch-src_slic3r_GUI_ExtraRenderers.cpp) = e0ff9be6ad7c7df57c56ba266497fdcff9c45496
 SHA1 (patch-src_slic3r_GUI_Field.cpp) = a0901064c68aa5e6c2396ccec36018e45f92fbcb
 SHA1 (patch-src_slic3r_GUI_FirmwareDialog.cpp) = bf86d0f4e4aed49c4ffd0ecd49ec57fbe4884afa
 SHA1 (patch-src_slic3r_GUI_GLCanvas3D.cpp) = 11e42a87d7124ac92027af9e385533f0455d788b
@@ -63,7 +63,7 @@ SHA1 (patch-src_slic3r_GUI_UnsavedChangesDialog.hpp) = 0bd01147f0b654d1905349597
 SHA1 (patch-src_slic3r_GUI_UpdateDialogs.cpp) = 7fdcc609e66c619c110db2da18b24ddfd0ffe2a2
 SHA1 (patch-src_slic3r_GUI_UserAccountCommunication.cpp) = 1467c25ad13aae19bf6e1cdeb3c60c12d0d17071
 SHA1 (patch-src_slic3r_GUI_WipeTowerDialog.cpp) = fc6fd1bfee7001c268bf50209bcfd1cb96f6a9ad
-SHA1 (patch-src_slic3r_GUI_wxExtensions.cpp) = d6e807f3dd1f18fa9c703798067fa1e808112891
+SHA1 (patch-src_slic3r_GUI_wxExtensions.cpp) = 33829948cf1429934d4f0742b068d06294180532
 SHA1 (patch-src_slic3r_GUI_wxExtensions.hpp) = 356da6dbd7ca7f60fa8a73c51533a1c1ad1530c1
 SHA1 (patch-src_slic3r_Utils_Bonjour.cpp) = 88971521ac0b197ba7e7defd590b9b9fb9d5df28
 SHA1 (patch-src_slic3r_Utils_Bonjour.hpp) = 698bfb239d07da387846c64f42e671d1df71e36f
diff --git a/prusaslicer/patches/patch-src_slic3r_GUI_ExtraRenderers.cpp b/prusaslicer/patches/patch-src_slic3r_GUI_ExtraRenderers.cpp
index 3515758ca9..028616787f 100644
--- a/prusaslicer/patches/patch-src_slic3r_GUI_ExtraRenderers.cpp
+++ b/prusaslicer/patches/patch-src_slic3r_GUI_ExtraRenderers.cpp
@@ -2,10 +2,10 @@ $NetBSD$
 
 Treat NetBSD like Linux.
 
---- src/slic3r/GUI/ExtraRenderers.cpp.orig	2021-12-17 14:00:02.000000000 +0000
+--- src/slic3r/GUI/ExtraRenderers.cpp.orig	2026-06-25 15:30:20.000000000 +0000
 +++ src/slic3r/GUI/ExtraRenderers.cpp
-@@ -320,7 +320,7 @@ wxWindow* BitmapChoiceRenderer::CreateEd
-     c_editor->SetSelection(atoi(data.GetText().c_str()));
+@@ -370,7 +370,7 @@ wxWindow* BitmapChoiceRenderer::CreateEd
+     }
  
      
 -#ifdef __linux__
diff --git a/prusaslicer/patches/patch-src_slic3r_GUI_wxExtensions.cpp b/prusaslicer/patches/patch-src_slic3r_GUI_wxExtensions.cpp
index 01980cf590..b92195b828 100644
--- a/prusaslicer/patches/patch-src_slic3r_GUI_wxExtensions.cpp
+++ b/prusaslicer/patches/patch-src_slic3r_GUI_wxExtensions.cpp
@@ -2,18 +2,18 @@ $NetBSD$
 
 Treat NetBSD like Linux.
 
---- src/slic3r/GUI/wxExtensions.cpp.orig	2024-06-14 21:54:48.000000000 +0000
+--- src/slic3r/GUI/wxExtensions.cpp.orig	2026-06-25 15:30:20.000000000 +0000
 +++ src/slic3r/GUI/wxExtensions.cpp
-@@ -28,7 +28,7 @@
- 
+@@ -30,7 +30,7 @@
  #include "libslic3r/Color.hpp"
+ #include "libslic3r/Model.hpp"
  
 -#ifndef __linux__
 +#if !defined(__linux__) && !defined(__NetBSD__)
  // msw_menuitem_bitmaps is used for MSW and OSX
  static std::map<int, std::string> msw_menuitem_bitmaps;
  void sys_color_changed_menu(wxMenu* menu)
-@@ -137,7 +137,7 @@ wxMenuItem* append_menu_item(wxMenu* men
+@@ -143,7 +143,7 @@ wxMenuItem* append_menu_item(wxMenu* men
  
      wxBitmapBundle* bmp = icon.empty() ? nullptr : get_bmp_bundle(icon);
  
@@ -22,7 +22,7 @@ Treat NetBSD like Linux.
      if (bmp && bmp->IsOk())
          msw_menuitem_bitmaps[id] = icon;
  #endif /* no __linux__ */
-@@ -155,7 +155,7 @@ wxMenuItem* append_submenu(wxMenu* menu,
+@@ -161,7 +161,7 @@ wxMenuItem* append_submenu(wxMenu* menu,
      if (!icon.empty()) {
          item->SetBitmap(*get_bmp_bundle(icon));
  
@@ -31,7 +31,7 @@ Treat NetBSD like Linux.
          msw_menuitem_bitmaps[id] = icon;
  #endif // no __linux__
      }
-@@ -218,7 +218,7 @@ wxMenuItem* append_menu_check_item(wxMen
+@@ -224,7 +224,7 @@ wxMenuItem* append_menu_check_item(wxMen
  void set_menu_item_bitmap(wxMenuItem* item, const std::string& icon_name)
  {
      item->SetBitmap(*get_bmp_bundle(icon_name));


Home | Main Index | Thread Index | Old Index