Port libvgcode/improved G-code viewer from PrusaSlicer 2.8.0#10735
Conversation
Wow, impressive work! |
761b0b3 to
8d7b046
Compare
This comment was marked as outdated.
This comment was marked as outdated.
Sorry, something went wrong.
There was a problem hiding this comment.
That's odd, the GitHub action is able to produce a working build on Windows: https://github.com/as-com/OrcaSlicer/actions/runs/17893970214
There was a problem hiding this comment.
Perhaps it is something related to my fork. I recently upgraded to CMake 4.1, and I must have something configured incorrectly.
Yep, libvgcode's shading is different compared to the old renderer. Not sure how easy it is to adjust it to more closely match the old renderer |
| } | ||
| m_viewer.set_tool_colors(tools_colors); | ||
|
|
||
| // collect color print colors |
There was a problem hiding this comment.
with this change I fix the crash, is similar to prusa slicer
// collect color print colors
libvgcode::Palette color_print_colors;
const std::vector<std::string>& str_colors = str_color_print_colors.empty() ? str_tool_colors : str_color_print_colors;
color_print_colors.reserve(str_colors.size());
for (const std::string& color : str_colors) {
color_print_colors.emplace_back(libvgcode::convert(color));
}Includes (but is not limited to) the following commits: SPE-2218 - libvgcode - Fixed color of wipe moves for speed range view SPE-2218 - libvgcode - Fixed detection of fan speed range SPE-2218 - libvgcode - Fixed detection of temperature range SPE-2218 - libvgcode - Fixed colors for Actual volumetric flow rate view SPE-2214 - Fixed detection of toolpaths bounding box in GCodeViewer SPE-2206 - Modified LibBGCode.cmake to get latest version of libbgcode which fixed parsing of gcode lines G4 libvgcode - Fixed potential out of bound access in ViewerImpl::update_view_full_range() Tech ENABLE_GL_CORE_PROFILE set as default Tech ENABLE_OPENGL_ES replaced by build option SLIC3R_OPENGL_ES libvgcode - Precompiler definition of ENABLE_OPENGL_ES moved into CMakeLists.txt Added missing include libvgcode - Textures setup modified to work when building using emscripten libvgcode - small optimization libvgcode - fixed OpenGLWrapper::unload_opengl() libvgcode - CMakeLists.txt modified to work with emscripten libvgcode - Replace 'glVertexAttribIPointer()' with 'glVertexAttribPointer()' in SegmentTemplate::init() for OpenGL ES libvgcode - Replace 'xor' with '^' Bitset.hpp libvgcode - Newer glad library for OpenGL 4.6 and OpenGL ES 3.0 libvgcode - Alternate fix in method ViewerImpl::update_heights_widths() for OpenGL ES libvgcode - Fixes in glAssertRecentCallImpl() libvgcode - Fixes in method ViewerImpl::update_heights_widths() for OpenGL ES Fixed ES shaders so they work with OpenGL ES 3.0 libvgcode - Use multiple plain textures in place of texture buffers for OpenGL ES libvgcode - Use plain textures in place of texture buffers for OpenGL ES (partial implementation using one texture per buffer) libvgcode - refactoring of class OpenGLWrapper libvgcode - small refactoring in shaders libvgcode - replacement of glMapBuffer() call for OpenGL ES Fixed warning libvgcode - Changes into CMakeLists.txt Fixed debug export of gcode data to be configuration indipendent Disabled tech ENABLE_NEW_GCODE_VIEWER_DEBUG Removed obsolete tech ENABLE_GCODE_VIEWER_DATA_CHECKING Code cleanup and techs removal - completed Code cleanup and techs removal - step 1 SPE-1872: Implemented G2/G3 lines discretization for gcfMarlinFirmware firmware flavour SPE-1872: Corrections into GCodeProcessor::process_G2_G3() to match firmware code SPE-1872: Actual speed profile - Further enhancements of imgui debug window SPE-1872: Actual speed profile - Rework in its calculation + enhanced imgui debug window SPE-1872: New imgui widget to show actual speed profile SPE-1872: Fixed actual speed for seam moves and at extrusion/travel/wipe start SPE-1872: Fixed rendering of wipe moves when actual speed view is selected SPE-1872: Actual speed profile extended to travel and wipe moves SPE-1872: Fixes in function recalculate_trapezoids() and method GCodeProcessor::TimeMachine::calculate_time() to smooth actual speed profile SPE-1872: Added debug graphic to show move actual speed profile SPE-1872: libvgcode library: replace volumetric flow rate data with mm3_per_mm to reduce memory usage SPE-1872: Added visualization of actual volumetric flow rate SPE-1872: Fixes in calculating actual speed SPE-1872: Added visualization of actual speed in gcode preview SPE-2124: Added command line option 'opengl-aa' to allow the user to turn on the automatic selection of max number of supported samples for OpenGL antialising OrcaSlicer#12117: Reduced moire patterns by using the highest number of samples available for multisampling New gcode visualization integration - Partially enabled imgui debug window New gcode visualization integration - Fixed center of gravity calculation and rendering New gcode visualization library - Interface for estimated times New gcode visualization library - Tool marker rendering New gcode visualization library - Axes aligned bounding boxes calculation Removed obsolete debug code New gcode visualization library - Added statistic of used memory New gcode visualization library - Separation of tool colors and color changes colors to simplify client code Added missing include New gcode visualization library - Added print color changes detection New gcode visualization library - Modified OpenGL ES context detection New gcode visualization library - Another makefile cleanup New gcode visualization library - Makefiles cleanup New gcode visualization library - Added suppression of error 'This function or variable may be unsafe' in VS2022 New gcode visualization library - Compatibility with OpenGL ES New gcode visualization library - Interface cleanup and documentation New gcode visualization library - Extended interface to give access to estimated times New gcode visualization integration - Toggling of top layer only view state New gcode visualization integration - Removed imperial units from tool position data Small refactoring New gcode visualization library - Custom values for travel and wipe moves radius New gcode visualization library - Allow customization of range colors New gcode visualization library - Partial update of interface comments/documentation New gcode visualization integration - Follow-up of 35ee55e29bb231fd01a2eb71ae293832a37ca65d - Better fix for toolpaths visible range when toggling options' visibility New gcode visualization integration - Fixed toolpaths reset New gcode visualization library - Fixed method set_option_color() New gcode visualization library - Fixed method ViewerImpl::set_extrusion_role_color() New gcode visualization library - Added methods to release gpu resources on demand. New gcode visualization library - Travel and wipe moves as options New gcode visualization integration - Fixed toolpaths visible range when toggling options' visibility New gcode visualization integration - Fixed management of gcode preview view type New gcode visualization - Fixed wrong include New gcode visualization - Added missing headers New gcode visualization - Refactoring + added missing headers New gcode visualization - New code set as standalone library + embed glad library to load OpenGL functions New gcode visualization - Fixed errors and warnings when building the new code as a standalone library New gcode visualization integration - Fixed layers ordering in pre-gcode preview New gcode visualization integration - Fixed objects' tool colors in pre-gcode preview Code cleanup New gcode visualization integration - Tool position properties data window New gcode visualization integration - Fixed in export toolpaths to obj New gcode visualization - Inlining in source code Refactoring New gcode visualization integration - Export toolpaths to obj Some refactoring and warning fix New gcode visualization integration - Customizable travel moves colors New gcode visualization integration - Customizable options colors New gcode visualization integration - Customizable extrusion roles colors New gcode visualization integration - Fixed pre-gcode preview layers times New gcode visualization integration - Modify pre-gcode preview to use the new toolpaths renderer, objects WIP New gcode visualization - Modify pre-gcode preview to use the new toolpaths renderer, WIP (brim/skirt/wipe tower) New gcode visualization integration - Do not reset visible range when toggling options/roles visibility New gcode visualization - Fixed color of first vertex of top layer (when top layer only option is enabled) New gcode visualization - Customizable travels and wipes segment radius New gcode visualization integration - Removed tech ENABLE_GCODE_VIEWER_STATISTICS New gcode visualization integration - Added check of OpenGL version New gcode visualization integration - Removed GCodeProcessorResult::spiral_vase_layers Another bunch of warnings fixes Fixed warnings New gcode visualization integration - Removal of old visualization Fixed includes New gcode visualization integration - File structure of new code separated in api + src New gcode visualization integration - View ranges management moved to new visualizer New gcode visualization integration - Fixed top layer only visualization for MMU printers New gcode visualization integration - Removed dependency on imgui from new visualizer Some refactoring New gcode visualization integration - Removed dependency on Slic3r::GCodeProcessorResult from new visualizer New gcode visualization integration - Moves' data conversion moved to client side New gcode visualization: layers times refactoring A bunch of fixes for the new gcode visualization New gcode visualization: render in gray color layers containing pause print or custom gcode options when in Color Print view New gcode visualization integration - Tool colors New gcode visualization integration - Layers times New gcode visualization integration - Travels and Extrusion roles times Fixed detection of start/end of contiguous extrusion paths New gcode visualization integration - Extrusion roles New gcode visualization integration - Colors New gcode visualization integration - Tool position Center of gravity and tool marker may both be rendered with fixed screen size and a scaling factor Fixed rendering of options in new gcode visualization Tool marker NOT rendered by the new visualization code Center of gravity marker NOT rendered by the new visualization code Fixed toolpaths_cog shaders Tool position window for new gcode visualization Top layer only coloring for neww gcode visualization Refactoring in preview's new visualization Hidden imgui debug dialog for new visualization in preview Synchronization of moves between old and new visualization Fixed missing gcode window in new visualization Rendering of debug imgui dialog moved from class libvgcode::Viewer to class libvgcode::Toolpaths + warnings fixing Some functionality moved from class libvgcode::Viewer to class libvgcode::Toolpaths Some refactoring and cleanup Refatoring of PathVertex and Toolpaths::load() SPE-1982: Tech ENABLE_NEW_GCODE_VIEWER - 1st installment of new toolpaths rendering code (WIP)
(cherry picked from commit 5789212)
|
Would it be possible to add the value of the currently displayed feature to the compact view of the current position? It should be in this line sprintf(buf, "X: %.3f, Y: %.3f, Z: %.3f", vertex.position[0], vertex.position[1], vertex.position[2]);where the fourth variable would be the flow if I am currently viewing the flow preview, etc. |
will add |
|
Tested on Windows. |
@SoftFever Yes indeed; however this is not on the actual speed selection, rather the previous "speed" drop down. These should reflect the gcode values, no? I think prusa has a similar bug with this. My "hunch" is it miss-reads some of the gcode lines as where this is happening I see a single extrusion command after the G1 Fx command that sets the new speed. Also it only happens on speed up after an overhang, not on slow down. I think that's more of a parsing/visualisation glitch somewhere in the visualiser -> instead of visualising the first G1 XY command following a speed change with the G1 Fx speed it visualises it with a transition line until the next G1 X Y command is issued. This doesn't happen on slow down -> the slow down is visualised exactly as the gcode. This bug is evident on straight walls following a bridge as the next line is a single G1XY command vs. a set of smaller G1 XY commands that happen after an overhang. Edit: PR raised: #11848 |
@SoftFever Hey, do you mind testing out this bug on your mac? I just downloaded the nightly build and this memory leak is still present on my end. I have submited a pr for the fix to as-com's repo, but a second person verifying this would be great. To reproduce the bug: Just slice something short and big with 100% infill gyroid pattern. In gcode preview, slide the layers up and down. You will see the memory grows and never drops. |
|
Would you mind raising the PR here so we can review and merge? |
|
Thank you all for helping to push this PR across the finish line! (real life™ got in the way over the past few weeks, unfortunately) |
Done #11871 |
Done here: #11881 |
Thank you for the detailed info. |
commit 2eadddf Merge: 69ed783 a5a5cad Author: Ioannis Giannakas <[email protected]> Date: Thu Feb 19 10:41:48 2026 +0000 Merge branch 'main' into main commit 69ed783 Merge: 3f3083a 1745e8b Author: minicx <[email protected]> Date: Tue Feb 17 15:24:30 2026 +0300 Merge branch 'OrcaSlicer:main' into main commit 3f3083a Merge: 2fa80cf e3cce33 Author: minicx <[email protected]> Date: Mon Feb 16 22:49:32 2026 +0300 Merge pull request #1 from loss-and-quick/claude/update-pa-visualization-5JA7M Rebase to upstream commit e3cce33 Author: Claude <[email protected]> Date: Mon Feb 16 19:36:23 2026 +0000 Port Pressure Advance visualization to libvgcode architecture Adapt PA visualization (originally in commit e3a7725) to work with the new libvgcode library introduced by upstream PR OrcaSlicer#10735. Changes across the libvgcode stack: - PathVertex: add pressure_advance field - Types.hpp: add PressureAdvance to EViewType enum - ViewerImpl: add ColorRange, color mapping, range updates for PA - LibVGCodeWrapper: pass pressure_advance from MoveVertex to PathVertex GCodeViewer UI integration: - Add "Pressure Advance" to view type dropdown - Add PA color range in legend (3 decimal places) - Add PA value display in sequential view marker tooltip - Add PA row in position properties table The GCodeProcessor PA parsing (M900, M572, SET_PRESSURE_ADVANCE) is preserved from the original implementation. commit 4424a57 Merge: 2fa80cf a81537f Author: Claude <[email protected]> Date: Mon Feb 16 19:25:06 2026 +0000 Merge upstream/main with libvgcode (PR OrcaSlicer#10735) Merge upstream OrcaSlicer/OrcaSlicer main branch which includes the libvgcode port from PrusaSlicer 2.8.0 (PR OrcaSlicer#10735). Resolve conflicts in GCodeProcessor to preserve PA fields, and take upstream version of GCodeViewer which is rewritten for libvgcode. commit 2fa80cf Merge: e3a7725 22d2fe9 Author: Ioannis Giannakas <[email protected]> Date: Thu Dec 18 12:23:02 2025 +0000 Merge branch 'main' into main commit e3a7725 Author: minicx <[email protected]> Date: Tue Dec 16 22:47:38 2025 +0300 Add Pressure Advance visualization support Signed-off-by: minicx <[email protected]>
commit 2eadddf Merge: 69ed783 a5a5cad Author: Ioannis Giannakas <[email protected]> Date: Thu Feb 19 10:41:48 2026 +0000 Merge branch 'main' into main commit a5a5cad Author: Rodrigo Faselli <[email protected]> Date: Wed Feb 18 18:38:20 2026 -0300 Fix dual seam fuzzy painted rev 2 (OrcaSlicer#11923) * 2 seam fuzzy 2nd attempt * Update FuzzySkin.cpp * Fix debug SVG * solve bump artifact in extrusion junction joint * minor fixes * cleaning Update FuzzySkin.cpp commit 69ed783 Merge: 3f3083a 1745e8b Author: minicx <[email protected]> Date: Tue Feb 17 15:24:30 2026 +0300 Merge branch 'OrcaSlicer:main' into main commit 3f3083a Merge: 2fa80cf e3cce33 Author: minicx <[email protected]> Date: Mon Feb 16 22:49:32 2026 +0300 Merge pull request OrcaSlicer#1 from loss-and-quick/claude/update-pa-visualization-5JA7M Rebase to upstream commit e3cce33 Author: Claude <[email protected]> Date: Mon Feb 16 19:36:23 2026 +0000 Port Pressure Advance visualization to libvgcode architecture Adapt PA visualization (originally in commit e3a7725) to work with the new libvgcode library introduced by upstream PR OrcaSlicer#10735. Changes across the libvgcode stack: - PathVertex: add pressure_advance field - Types.hpp: add PressureAdvance to EViewType enum - ViewerImpl: add ColorRange, color mapping, range updates for PA - LibVGCodeWrapper: pass pressure_advance from MoveVertex to PathVertex GCodeViewer UI integration: - Add "Pressure Advance" to view type dropdown - Add PA color range in legend (3 decimal places) - Add PA value display in sequential view marker tooltip - Add PA row in position properties table The GCodeProcessor PA parsing (M900, M572, SET_PRESSURE_ADVANCE) is preserved from the original implementation. commit 4424a57 Merge: 2fa80cf a81537f Author: Claude <[email protected]> Date: Mon Feb 16 19:25:06 2026 +0000 Merge upstream/main with libvgcode (PR OrcaSlicer#10735) Merge upstream OrcaSlicer/OrcaSlicer main branch which includes the libvgcode port from PrusaSlicer 2.8.0 (PR OrcaSlicer#10735). Resolve conflicts in GCodeProcessor to preserve PA fields, and take upstream version of GCodeViewer which is rewritten for libvgcode. commit 2fa80cf Merge: e3a7725 22d2fe9 Author: Ioannis Giannakas <[email protected]> Date: Thu Dec 18 12:23:02 2025 +0000 Merge branch 'main' into main commit e3a7725 Author: minicx <[email protected]> Date: Tue Dec 16 22:47:38 2025 +0300 Add Pressure Advance visualization support Signed-off-by: minicx <[email protected]>
commit 2eadddf Merge: 69ed783 a5a5cad Author: Ioannis Giannakas <[email protected]> Date: Thu Feb 19 10:41:48 2026 +0000 Merge branch 'main' into main commit a5a5cad Author: Rodrigo Faselli <[email protected]> Date: Wed Feb 18 18:38:20 2026 -0300 Fix dual seam fuzzy painted rev 2 (OrcaSlicer#11923) * 2 seam fuzzy 2nd attempt * Update FuzzySkin.cpp * Fix debug SVG * solve bump artifact in extrusion junction joint * minor fixes * cleaning Update FuzzySkin.cpp commit 69ed783 Merge: 3f3083a 1745e8b Author: minicx <[email protected]> Date: Tue Feb 17 15:24:30 2026 +0300 Merge branch 'OrcaSlicer:main' into main commit 3f3083a Merge: 2fa80cf e3cce33 Author: minicx <[email protected]> Date: Mon Feb 16 22:49:32 2026 +0300 Merge pull request OrcaSlicer#1 from loss-and-quick/claude/update-pa-visualization-5JA7M Rebase to upstream commit e3cce33 Author: Claude <[email protected]> Date: Mon Feb 16 19:36:23 2026 +0000 Port Pressure Advance visualization to libvgcode architecture Adapt PA visualization (originally in commit e3a7725) to work with the new libvgcode library introduced by upstream PR OrcaSlicer#10735. Changes across the libvgcode stack: - PathVertex: add pressure_advance field - Types.hpp: add PressureAdvance to EViewType enum - ViewerImpl: add ColorRange, color mapping, range updates for PA - LibVGCodeWrapper: pass pressure_advance from MoveVertex to PathVertex GCodeViewer UI integration: - Add "Pressure Advance" to view type dropdown - Add PA color range in legend (3 decimal places) - Add PA value display in sequential view marker tooltip - Add PA row in position properties table The GCodeProcessor PA parsing (M900, M572, SET_PRESSURE_ADVANCE) is preserved from the original implementation. commit 4424a57 Merge: 2fa80cf a81537f Author: Claude <[email protected]> Date: Mon Feb 16 19:25:06 2026 +0000 Merge upstream/main with libvgcode (PR OrcaSlicer#10735) Merge upstream OrcaSlicer/OrcaSlicer main branch which includes the libvgcode port from PrusaSlicer 2.8.0 (PR OrcaSlicer#10735). Resolve conflicts in GCodeProcessor to preserve PA fields, and take upstream version of GCodeViewer which is rewritten for libvgcode. commit 2fa80cf Merge: e3a7725 22d2fe9 Author: Ioannis Giannakas <[email protected]> Date: Thu Dec 18 12:23:02 2025 +0000 Merge branch 'main' into main commit e3a7725 Author: minicx <[email protected]> Date: Tue Dec 16 22:47:38 2025 +0300 Add Pressure Advance visualization support Signed-off-by: minicx <[email protected]>
commit 2eadddf Merge: 69ed783 a5a5cad Author: Ioannis Giannakas <[email protected]> Date: Thu Feb 19 10:41:48 2026 +0000 Merge branch 'main' into main commit a5a5cad Author: Rodrigo Faselli <[email protected]> Date: Wed Feb 18 18:38:20 2026 -0300 Fix dual seam fuzzy painted rev 2 (OrcaSlicer#11923) * 2 seam fuzzy 2nd attempt * Update FuzzySkin.cpp * Fix debug SVG * solve bump artifact in extrusion junction joint * minor fixes * cleaning Update FuzzySkin.cpp commit 69ed783 Merge: 3f3083a 1745e8b Author: minicx <[email protected]> Date: Tue Feb 17 15:24:30 2026 +0300 Merge branch 'OrcaSlicer:main' into main commit 3f3083a Merge: 2fa80cf e3cce33 Author: minicx <[email protected]> Date: Mon Feb 16 22:49:32 2026 +0300 Merge pull request OrcaSlicer#1 from loss-and-quick/claude/update-pa-visualization-5JA7M Rebase to upstream commit e3cce33 Author: Claude <[email protected]> Date: Mon Feb 16 19:36:23 2026 +0000 Port Pressure Advance visualization to libvgcode architecture Adapt PA visualization (originally in commit e3a7725) to work with the new libvgcode library introduced by upstream PR OrcaSlicer#10735. Changes across the libvgcode stack: - PathVertex: add pressure_advance field - Types.hpp: add PressureAdvance to EViewType enum - ViewerImpl: add ColorRange, color mapping, range updates for PA - LibVGCodeWrapper: pass pressure_advance from MoveVertex to PathVertex GCodeViewer UI integration: - Add "Pressure Advance" to view type dropdown - Add PA color range in legend (3 decimal places) - Add PA value display in sequential view marker tooltip - Add PA row in position properties table The GCodeProcessor PA parsing (M900, M572, SET_PRESSURE_ADVANCE) is preserved from the original implementation. commit 4424a57 Merge: 2fa80cf a81537f Author: Claude <[email protected]> Date: Mon Feb 16 19:25:06 2026 +0000 Merge upstream/main with libvgcode (PR OrcaSlicer#10735) Merge upstream OrcaSlicer/OrcaSlicer main branch which includes the libvgcode port from PrusaSlicer 2.8.0 (PR OrcaSlicer#10735). Resolve conflicts in GCodeProcessor to preserve PA fields, and take upstream version of GCodeViewer which is rewritten for libvgcode. commit 2fa80cf Merge: e3a7725 22d2fe9 Author: Ioannis Giannakas <[email protected]> Date: Thu Dec 18 12:23:02 2025 +0000 Merge branch 'main' into main commit e3a7725 Author: minicx <[email protected]> Date: Tue Dec 16 22:47:38 2025 +0300 Add Pressure Advance visualization support Signed-off-by: minicx <[email protected]>
* Add Pressure Advance visualization support Signed-off-by: minicx <[email protected]> * Port Pressure Advance visualization to libvgcode architecture Adapt PA visualization (originally in commit e3a7725) to work with the new libvgcode library introduced by upstream PR #10735. Changes across the libvgcode stack: - PathVertex: add pressure_advance field - Types.hpp: add PressureAdvance to EViewType enum - ViewerImpl: add ColorRange, color mapping, range updates for PA - LibVGCodeWrapper: pass pressure_advance from MoveVertex to PathVertex GCodeViewer UI integration: - Add "Pressure Advance" to view type dropdown - Add PA color range in legend (3 decimal places) - Add PA value display in sequential view marker tooltip - Add PA row in position properties table The GCodeProcessor PA parsing (M900, M572, SET_PRESSURE_ADVANCE) is preserved from the original implementation. * Tag Pressure Advance visualization changes with ORCA comments Signed-off-by: minicx <[email protected]> --------- Signed-off-by: minicx <[email protected]> Co-authored-by: Ioannis Giannakas <[email protected]> Co-authored-by: Claude <[email protected]>
You are off topic. |
* Add Pressure Advance visualization support Signed-off-by: minicx <[email protected]> * Port Pressure Advance visualization to libvgcode architecture Adapt PA visualization (originally in commit e3a7725) to work with the new libvgcode library introduced by upstream PR OrcaSlicer#10735. Changes across the libvgcode stack: - PathVertex: add pressure_advance field - Types.hpp: add PressureAdvance to EViewType enum - ViewerImpl: add ColorRange, color mapping, range updates for PA - LibVGCodeWrapper: pass pressure_advance from MoveVertex to PathVertex GCodeViewer UI integration: - Add "Pressure Advance" to view type dropdown - Add PA color range in legend (3 decimal places) - Add PA value display in sequential view marker tooltip - Add PA row in position properties table The GCodeProcessor PA parsing (M900, M572, SET_PRESSURE_ADVANCE) is preserved from the original implementation. * Tag Pressure Advance visualization changes with ORCA comments Signed-off-by: minicx <[email protected]> --------- Signed-off-by: minicx <[email protected]> Co-authored-by: Ioannis Giannakas <[email protected]> Co-authored-by: Claude <[email protected]>
* Add Elegoo filament profiles to OrcaFilamentLibrary Add 7 Elegoo filament profiles based on manufacturer specifications: - Elegoo Rapid PETG (high-speed PETG, 240-270°C, 30-600mm/s) - Elegoo PETG Pro (standard PETG, 230-260°C, 30-270mm/s) - Elegoo PETG-CF (carbon fiber PETG, 240-270°C, 30-220mm/s) - Elegoo PLA (standard PLA, 190-230°C, 30-280mm/s) - Elegoo Rapid PLA+ (high-speed PLA, 190-230°C, 30-600mm/s) - Elegoo ASA (ASA, 250-280°C, 30-270mm/s) - Elegoo TPU 95A (flexible TPU, 220-240°C, 30-60mm/s) All settings sourced from Elegoo's official product specifications. * Fix dual seam fuzzy painted rev 2 (#11923) * 2 seam fuzzy 2nd attempt * Update FuzzySkin.cpp * Fix debug SVG * solve bump artifact in extrusion junction joint * minor fixes * cleaning Update FuzzySkin.cpp * Fix filament override changes not appearing in Unsaved Changes and showing as “Undef category” in preset comparison (#12298) * Fix an issue that on Windows the Bambu legacy plugin is 01.10.01.09 (#12380) * tweak legacy library migration from rename to copy in BBLNetworkPlugin (#12400) * tweak legacy library migration from rename to copy in BBLNetworkPlugin * Add Pressure Advance visualization support (#11673) * Add Pressure Advance visualization support Signed-off-by: minicx <[email protected]> * Port Pressure Advance visualization to libvgcode architecture Adapt PA visualization (originally in commit e3a7725) to work with the new libvgcode library introduced by upstream PR #10735. Changes across the libvgcode stack: - PathVertex: add pressure_advance field - Types.hpp: add PressureAdvance to EViewType enum - ViewerImpl: add ColorRange, color mapping, range updates for PA - LibVGCodeWrapper: pass pressure_advance from MoveVertex to PathVertex GCodeViewer UI integration: - Add "Pressure Advance" to view type dropdown - Add PA color range in legend (3 decimal places) - Add PA value display in sequential view marker tooltip - Add PA row in position properties table The GCodeProcessor PA parsing (M900, M572, SET_PRESSURE_ADVANCE) is preserved from the original implementation. * Tag Pressure Advance visualization changes with ORCA comments Signed-off-by: minicx <[email protected]> --------- Signed-off-by: minicx <[email protected]> Co-authored-by: Ioannis Giannakas <[email protected]> Co-authored-by: Claude <[email protected]> * Fix time estimation using wrong machine limits due to broken extruder_id indexing (#12411) The extruder_id*2 offset in get_axis_max_feedrate/get_axis_max_acceleration was cherry-picked from BambuStudio's per-nozzle limit system, which OrcaSlicer never ported. Without that system the limit arrays only have 2 values ([0]=Normal, [1]=Stealth), so any extruder_id > 0 or the uninitialized value (255) would overshoot the array and fall back to values.back(), always returning stealth-mode limits and producing incorrect time estimates. Revert to indexing by time mode only (matching v2.3.1 behavior) and simplify the M201/M203 handlers to write only the two mode slots they actually use. * Fix machine envelope G-code emitting wrong limits due to broken extruder_id indexing (#12414) print_machine_envelope() used get_extruder_id(extruder_id)*2 to index machine limit arrays that only hold [Normal, Stealth] (2 entries). For multi-extruder setups this went out-of-bounds, causing wrong M201/M203 values in the G-code which then override the estimator's correct limits. Same class of bug as c6d1c11 but on the G-code writer side. Changes: - Remove unused extruder_id param from print_machine_envelope() - Use .values.front() for M201/M203, matching M204/M205 in same function - Change get_option_value() fallback from .back() to .front() so any future out-of-bounds index returns Normal mode instead of Stealth * update error message when plugin upgrade failed * Add and update pt-BR translations (#12409) * Add preference for filament area height to reduce scrolling while using 16+ filaments (#12317) Fixes #12284 Adds a preference for filaments area height since every user has different amount of MM units and external filaments so users can set a value that fits their setups this way we might see 3 or 6 filaments for each unit on future. thats why i set value as int used 10 as default value. its good for 2 multimaterial units ( 8 filaments ) and 1 external filament min value is 8. might be good when no external filaments in use max value is 99. UI works same as 2.3.1 version <img width="562" height="122" alt="Screenshot-20260215194149" src="https://github.com/user-attachments/assets/309cec36-8b83-48f3-875f-d5f22a9631e7" /> **BEFORE** Scrollable area fixed for 10 items. that causes a lot of scrolling whe user has 3 or 4 ams units <img width="411" height="237" alt="Screenshot-20260215194816" src="https://github.com/user-attachments/assets/fc7823c0-d82a-4d1f-bb5b-56e8dd47abd2" /> **AFTER** value 10. - 2 multimaterial units ( 8 filaments ) and 1 external filament <img width="1002" height="250" alt="Screenshot-20260215195243" src="https://github.com/user-attachments/assets/e3238cd1-788e-4ed2-b048-89c63bd323db" /> value 18 - 4 multimaterial units ( 16 filaments ) and 1 external filament <img width="1001" height="355" alt="Screenshot-20260215195127" src="https://github.com/user-attachments/assets/afe0305e-fcb4-4a51-b8dc-e70a063aa391" /> * Fix: Correct range checking for int and float Config Options + QoL changes in tooltips (#11915) * Fix float number not working properly for option min/max (#11211) * ConfigOptionDef: min/max values type are changed from INT to FLOAT. (cherry picked from commit f277bc8) * Fix infinite loop and crash when `fuzzy_skin_point_distance` = 0 (#11069) * Fix Linux build issue * Fix float comparison due to precision loss * Fix: Range check added for coInt options; Ranges and defaults added in tooltips --------- Co-authored-by: Noisyfox <[email protected]> Co-authored-by: SoftFever <[email protected]> * Update machine profile for OpenEYE Peacock V2 (#12333) * OpenEYE Peacock V2 machine profile: Add printer_agent key to enable AMS filament synchronization (Klipper/Moonraker) Signed-off-by: Sezgin AÇIKGÖZ <[email protected]> * Optimize retraction settings in printer profiles to reduce stringing and improve print quality Signed-off-by: Sezgin AÇIKGÖZ <[email protected]> --------- Signed-off-by: Sezgin AÇIKGÖZ <[email protected]> * Fix preheat regression bugs (#12438) Fix preheat regression bugs revert 769fc13 * Fix the issue where `resources/profiles/OrcaFilamentLibrary.json` is not updated accordingly. --------- Signed-off-by: minicx <[email protected]> Signed-off-by: Sezgin AÇIKGÖZ <[email protected]> Co-authored-by: Rodrigo Faselli <[email protected]> Co-authored-by: Kiss Lorand <[email protected]> Co-authored-by: SoftFever <[email protected]> Co-authored-by: minicx <[email protected]> Co-authored-by: Ioannis Giannakas <[email protected]> Co-authored-by: Claude <[email protected]> Co-authored-by: Alexandre Folle de Menezes <[email protected]> Co-authored-by: yw4z <[email protected]> Co-authored-by: Valerii Bokhan <[email protected]> Co-authored-by: Noisyfox <[email protected]> Co-authored-by: Sezgin AÇIKGÖZ <[email protected]>
* Add Pressure Advance visualization support Signed-off-by: minicx <[email protected]> * Port Pressure Advance visualization to libvgcode architecture Adapt PA visualization (originally in commit e3a7725) to work with the new libvgcode library introduced by upstream PR OrcaSlicer#10735. Changes across the libvgcode stack: - PathVertex: add pressure_advance field - Types.hpp: add PressureAdvance to EViewType enum - ViewerImpl: add ColorRange, color mapping, range updates for PA - LibVGCodeWrapper: pass pressure_advance from MoveVertex to PathVertex GCodeViewer UI integration: - Add "Pressure Advance" to view type dropdown - Add PA color range in legend (3 decimal places) - Add PA value display in sequential view marker tooltip - Add PA row in position properties table The GCodeProcessor PA parsing (M900, M572, SET_PRESSURE_ADVANCE) is preserved from the original implementation. * Tag Pressure Advance visualization changes with ORCA comments Signed-off-by: minicx <[email protected]> --------- Signed-off-by: minicx <[email protected]> Co-authored-by: Ioannis Giannakas <[email protected]> Co-authored-by: Claude <[email protected]>
* Add Elegoo filament profiles to OrcaFilamentLibrary Add 7 Elegoo filament profiles based on manufacturer specifications: - Elegoo Rapid PETG (high-speed PETG, 240-270°C, 30-600mm/s) - Elegoo PETG Pro (standard PETG, 230-260°C, 30-270mm/s) - Elegoo PETG-CF (carbon fiber PETG, 240-270°C, 30-220mm/s) - Elegoo PLA (standard PLA, 190-230°C, 30-280mm/s) - Elegoo Rapid PLA+ (high-speed PLA, 190-230°C, 30-600mm/s) - Elegoo ASA (ASA, 250-280°C, 30-270mm/s) - Elegoo TPU 95A (flexible TPU, 220-240°C, 30-60mm/s) All settings sourced from Elegoo's official product specifications. * Fix dual seam fuzzy painted rev 2 (OrcaSlicer#11923) * 2 seam fuzzy 2nd attempt * Update FuzzySkin.cpp * Fix debug SVG * solve bump artifact in extrusion junction joint * minor fixes * cleaning Update FuzzySkin.cpp * Fix filament override changes not appearing in Unsaved Changes and showing as “Undef category” in preset comparison (OrcaSlicer#12298) * Fix an issue that on Windows the Bambu legacy plugin is 01.10.01.09 (OrcaSlicer#12380) * tweak legacy library migration from rename to copy in BBLNetworkPlugin (OrcaSlicer#12400) * tweak legacy library migration from rename to copy in BBLNetworkPlugin * Add Pressure Advance visualization support (OrcaSlicer#11673) * Add Pressure Advance visualization support Signed-off-by: minicx <[email protected]> * Port Pressure Advance visualization to libvgcode architecture Adapt PA visualization (originally in commit e3a7725) to work with the new libvgcode library introduced by upstream PR OrcaSlicer#10735. Changes across the libvgcode stack: - PathVertex: add pressure_advance field - Types.hpp: add PressureAdvance to EViewType enum - ViewerImpl: add ColorRange, color mapping, range updates for PA - LibVGCodeWrapper: pass pressure_advance from MoveVertex to PathVertex GCodeViewer UI integration: - Add "Pressure Advance" to view type dropdown - Add PA color range in legend (3 decimal places) - Add PA value display in sequential view marker tooltip - Add PA row in position properties table The GCodeProcessor PA parsing (M900, M572, SET_PRESSURE_ADVANCE) is preserved from the original implementation. * Tag Pressure Advance visualization changes with ORCA comments Signed-off-by: minicx <[email protected]> --------- Signed-off-by: minicx <[email protected]> Co-authored-by: Ioannis Giannakas <[email protected]> Co-authored-by: Claude <[email protected]> * Fix time estimation using wrong machine limits due to broken extruder_id indexing (OrcaSlicer#12411) The extruder_id*2 offset in get_axis_max_feedrate/get_axis_max_acceleration was cherry-picked from BambuStudio's per-nozzle limit system, which OrcaSlicer never ported. Without that system the limit arrays only have 2 values ([0]=Normal, [1]=Stealth), so any extruder_id > 0 or the uninitialized value (255) would overshoot the array and fall back to values.back(), always returning stealth-mode limits and producing incorrect time estimates. Revert to indexing by time mode only (matching v2.3.1 behavior) and simplify the M201/M203 handlers to write only the two mode slots they actually use. * Fix machine envelope G-code emitting wrong limits due to broken extruder_id indexing (OrcaSlicer#12414) print_machine_envelope() used get_extruder_id(extruder_id)*2 to index machine limit arrays that only hold [Normal, Stealth] (2 entries). For multi-extruder setups this went out-of-bounds, causing wrong M201/M203 values in the G-code which then override the estimator's correct limits. Same class of bug as c6d1c11 but on the G-code writer side. Changes: - Remove unused extruder_id param from print_machine_envelope() - Use .values.front() for M201/M203, matching M204/M205 in same function - Change get_option_value() fallback from .back() to .front() so any future out-of-bounds index returns Normal mode instead of Stealth * update error message when plugin upgrade failed * Add and update pt-BR translations (OrcaSlicer#12409) * Add preference for filament area height to reduce scrolling while using 16+ filaments (OrcaSlicer#12317) Fixes OrcaSlicer#12284 Adds a preference for filaments area height since every user has different amount of MM units and external filaments so users can set a value that fits their setups this way we might see 3 or 6 filaments for each unit on future. thats why i set value as int used 10 as default value. its good for 2 multimaterial units ( 8 filaments ) and 1 external filament min value is 8. might be good when no external filaments in use max value is 99. UI works same as 2.3.1 version <img width="562" height="122" alt="Screenshot-20260215194149" src="https://github.com/user-attachments/assets/309cec36-8b83-48f3-875f-d5f22a9631e7" /> **BEFORE** Scrollable area fixed for 10 items. that causes a lot of scrolling whe user has 3 or 4 ams units <img width="411" height="237" alt="Screenshot-20260215194816" src="https://github.com/user-attachments/assets/fc7823c0-d82a-4d1f-bb5b-56e8dd47abd2" /> **AFTER** value 10. - 2 multimaterial units ( 8 filaments ) and 1 external filament <img width="1002" height="250" alt="Screenshot-20260215195243" src="https://github.com/user-attachments/assets/e3238cd1-788e-4ed2-b048-89c63bd323db" /> value 18 - 4 multimaterial units ( 16 filaments ) and 1 external filament <img width="1001" height="355" alt="Screenshot-20260215195127" src="https://github.com/user-attachments/assets/afe0305e-fcb4-4a51-b8dc-e70a063aa391" /> * Fix: Correct range checking for int and float Config Options + QoL changes in tooltips (OrcaSlicer#11915) * Fix float number not working properly for option min/max (OrcaSlicer#11211) * ConfigOptionDef: min/max values type are changed from INT to FLOAT. (cherry picked from commit f277bc8) * Fix infinite loop and crash when `fuzzy_skin_point_distance` = 0 (OrcaSlicer#11069) * Fix Linux build issue * Fix float comparison due to precision loss * Fix: Range check added for coInt options; Ranges and defaults added in tooltips --------- Co-authored-by: Noisyfox <[email protected]> Co-authored-by: SoftFever <[email protected]> * Update machine profile for OpenEYE Peacock V2 (OrcaSlicer#12333) * OpenEYE Peacock V2 machine profile: Add printer_agent key to enable AMS filament synchronization (Klipper/Moonraker) Signed-off-by: Sezgin AÇIKGÖZ <[email protected]> * Optimize retraction settings in printer profiles to reduce stringing and improve print quality Signed-off-by: Sezgin AÇIKGÖZ <[email protected]> --------- Signed-off-by: Sezgin AÇIKGÖZ <[email protected]> * Fix preheat regression bugs (OrcaSlicer#12438) Fix preheat regression bugs revert 769fc13 * Fix the issue where `resources/profiles/OrcaFilamentLibrary.json` is not updated accordingly. --------- Signed-off-by: minicx <[email protected]> Signed-off-by: Sezgin AÇIKGÖZ <[email protected]> Co-authored-by: Rodrigo Faselli <[email protected]> Co-authored-by: Kiss Lorand <[email protected]> Co-authored-by: SoftFever <[email protected]> Co-authored-by: minicx <[email protected]> Co-authored-by: Ioannis Giannakas <[email protected]> Co-authored-by: Claude <[email protected]> Co-authored-by: Alexandre Folle de Menezes <[email protected]> Co-authored-by: yw4z <[email protected]> Co-authored-by: Valerii Bokhan <[email protected]> Co-authored-by: Noisyfox <[email protected]> Co-authored-by: Sezgin AÇIKGÖZ <[email protected]>
* Add Pressure Advance visualization support Signed-off-by: minicx <[email protected]> * Port Pressure Advance visualization to libvgcode architecture Adapt PA visualization (originally in commit e3a7725) to work with the new libvgcode library introduced by upstream PR #10735. Changes across the libvgcode stack: - PathVertex: add pressure_advance field - Types.hpp: add PressureAdvance to EViewType enum - ViewerImpl: add ColorRange, color mapping, range updates for PA - LibVGCodeWrapper: pass pressure_advance from MoveVertex to PathVertex GCodeViewer UI integration: - Add "Pressure Advance" to view type dropdown - Add PA color range in legend (3 decimal places) - Add PA value display in sequential view marker tooltip - Add PA row in position properties table The GCodeProcessor PA parsing (M900, M572, SET_PRESSURE_ADVANCE) is preserved from the original implementation. * Tag Pressure Advance visualization changes with ORCA comments Signed-off-by: minicx <[email protected]> --------- Signed-off-by: minicx <[email protected]> Co-authored-by: Ioannis Giannakas <[email protected]> Co-authored-by: Claude <[email protected]>
* Add Elegoo filament profiles to OrcaFilamentLibrary Add 7 Elegoo filament profiles based on manufacturer specifications: - Elegoo Rapid PETG (high-speed PETG, 240-270°C, 30-600mm/s) - Elegoo PETG Pro (standard PETG, 230-260°C, 30-270mm/s) - Elegoo PETG-CF (carbon fiber PETG, 240-270°C, 30-220mm/s) - Elegoo PLA (standard PLA, 190-230°C, 30-280mm/s) - Elegoo Rapid PLA+ (high-speed PLA, 190-230°C, 30-600mm/s) - Elegoo ASA (ASA, 250-280°C, 30-270mm/s) - Elegoo TPU 95A (flexible TPU, 220-240°C, 30-60mm/s) All settings sourced from Elegoo's official product specifications. * Fix dual seam fuzzy painted rev 2 (#11923) * 2 seam fuzzy 2nd attempt * Update FuzzySkin.cpp * Fix debug SVG * solve bump artifact in extrusion junction joint * minor fixes * cleaning Update FuzzySkin.cpp * Fix filament override changes not appearing in Unsaved Changes and showing as “Undef category” in preset comparison (#12298) * Fix an issue that on Windows the Bambu legacy plugin is 01.10.01.09 (#12380) * tweak legacy library migration from rename to copy in BBLNetworkPlugin (#12400) * tweak legacy library migration from rename to copy in BBLNetworkPlugin * Add Pressure Advance visualization support (#11673) * Add Pressure Advance visualization support Signed-off-by: minicx <[email protected]> * Port Pressure Advance visualization to libvgcode architecture Adapt PA visualization (originally in commit e3a7725) to work with the new libvgcode library introduced by upstream PR #10735. Changes across the libvgcode stack: - PathVertex: add pressure_advance field - Types.hpp: add PressureAdvance to EViewType enum - ViewerImpl: add ColorRange, color mapping, range updates for PA - LibVGCodeWrapper: pass pressure_advance from MoveVertex to PathVertex GCodeViewer UI integration: - Add "Pressure Advance" to view type dropdown - Add PA color range in legend (3 decimal places) - Add PA value display in sequential view marker tooltip - Add PA row in position properties table The GCodeProcessor PA parsing (M900, M572, SET_PRESSURE_ADVANCE) is preserved from the original implementation. * Tag Pressure Advance visualization changes with ORCA comments Signed-off-by: minicx <[email protected]> --------- Signed-off-by: minicx <[email protected]> Co-authored-by: Ioannis Giannakas <[email protected]> Co-authored-by: Claude <[email protected]> * Fix time estimation using wrong machine limits due to broken extruder_id indexing (#12411) The extruder_id*2 offset in get_axis_max_feedrate/get_axis_max_acceleration was cherry-picked from BambuStudio's per-nozzle limit system, which OrcaSlicer never ported. Without that system the limit arrays only have 2 values ([0]=Normal, [1]=Stealth), so any extruder_id > 0 or the uninitialized value (255) would overshoot the array and fall back to values.back(), always returning stealth-mode limits and producing incorrect time estimates. Revert to indexing by time mode only (matching v2.3.1 behavior) and simplify the M201/M203 handlers to write only the two mode slots they actually use. * Fix machine envelope G-code emitting wrong limits due to broken extruder_id indexing (#12414) print_machine_envelope() used get_extruder_id(extruder_id)*2 to index machine limit arrays that only hold [Normal, Stealth] (2 entries). For multi-extruder setups this went out-of-bounds, causing wrong M201/M203 values in the G-code which then override the estimator's correct limits. Same class of bug as c6d1c11 but on the G-code writer side. Changes: - Remove unused extruder_id param from print_machine_envelope() - Use .values.front() for M201/M203, matching M204/M205 in same function - Change get_option_value() fallback from .back() to .front() so any future out-of-bounds index returns Normal mode instead of Stealth * update error message when plugin upgrade failed * Add and update pt-BR translations (#12409) * Add preference for filament area height to reduce scrolling while using 16+ filaments (#12317) Fixes #12284 Adds a preference for filaments area height since every user has different amount of MM units and external filaments so users can set a value that fits their setups this way we might see 3 or 6 filaments for each unit on future. thats why i set value as int used 10 as default value. its good for 2 multimaterial units ( 8 filaments ) and 1 external filament min value is 8. might be good when no external filaments in use max value is 99. UI works same as 2.3.1 version <img width="562" height="122" alt="Screenshot-20260215194149" src="https://github.com/user-attachments/assets/309cec36-8b83-48f3-875f-d5f22a9631e7" /> **BEFORE** Scrollable area fixed for 10 items. that causes a lot of scrolling whe user has 3 or 4 ams units <img width="411" height="237" alt="Screenshot-20260215194816" src="https://github.com/user-attachments/assets/fc7823c0-d82a-4d1f-bb5b-56e8dd47abd2" /> **AFTER** value 10. - 2 multimaterial units ( 8 filaments ) and 1 external filament <img width="1002" height="250" alt="Screenshot-20260215195243" src="https://github.com/user-attachments/assets/e3238cd1-788e-4ed2-b048-89c63bd323db" /> value 18 - 4 multimaterial units ( 16 filaments ) and 1 external filament <img width="1001" height="355" alt="Screenshot-20260215195127" src="https://github.com/user-attachments/assets/afe0305e-fcb4-4a51-b8dc-e70a063aa391" /> * Fix: Correct range checking for int and float Config Options + QoL changes in tooltips (#11915) * Fix float number not working properly for option min/max (#11211) * ConfigOptionDef: min/max values type are changed from INT to FLOAT. (cherry picked from commit f277bc8) * Fix infinite loop and crash when `fuzzy_skin_point_distance` = 0 (#11069) * Fix Linux build issue * Fix float comparison due to precision loss * Fix: Range check added for coInt options; Ranges and defaults added in tooltips --------- Co-authored-by: Noisyfox <[email protected]> Co-authored-by: SoftFever <[email protected]> * Update machine profile for OpenEYE Peacock V2 (#12333) * OpenEYE Peacock V2 machine profile: Add printer_agent key to enable AMS filament synchronization (Klipper/Moonraker) Signed-off-by: Sezgin AÇIKGÖZ <[email protected]> * Optimize retraction settings in printer profiles to reduce stringing and improve print quality Signed-off-by: Sezgin AÇIKGÖZ <[email protected]> --------- Signed-off-by: Sezgin AÇIKGÖZ <[email protected]> * Fix preheat regression bugs (#12438) Fix preheat regression bugs revert 769fc13 * Fix the issue where `resources/profiles/OrcaFilamentLibrary.json` is not updated accordingly. --------- Signed-off-by: minicx <[email protected]> Signed-off-by: Sezgin AÇIKGÖZ <[email protected]> Co-authored-by: Rodrigo Faselli <[email protected]> Co-authored-by: Kiss Lorand <[email protected]> Co-authored-by: SoftFever <[email protected]> Co-authored-by: minicx <[email protected]> Co-authored-by: Ioannis Giannakas <[email protected]> Co-authored-by: Claude <[email protected]> Co-authored-by: Alexandre Folle de Menezes <[email protected]> Co-authored-by: yw4z <[email protected]> Co-authored-by: Valerii Bokhan <[email protected]> Co-authored-by: Noisyfox <[email protected]> Co-authored-by: Sezgin AÇIKGÖZ <[email protected]>
* Add Pressure Advance visualization support Signed-off-by: minicx <[email protected]> * Port Pressure Advance visualization to libvgcode architecture Adapt PA visualization (originally in commit e3a7725) to work with the new libvgcode library introduced by upstream PR OrcaSlicer#10735. Changes across the libvgcode stack: - PathVertex: add pressure_advance field - Types.hpp: add PressureAdvance to EViewType enum - ViewerImpl: add ColorRange, color mapping, range updates for PA - LibVGCodeWrapper: pass pressure_advance from MoveVertex to PathVertex GCodeViewer UI integration: - Add "Pressure Advance" to view type dropdown - Add PA color range in legend (3 decimal places) - Add PA value display in sequential view marker tooltip - Add PA row in position properties table The GCodeProcessor PA parsing (M900, M572, SET_PRESSURE_ADVANCE) is preserved from the original implementation. * Tag Pressure Advance visualization changes with ORCA comments Signed-off-by: minicx <[email protected]> --------- Signed-off-by: minicx <[email protected]> Co-authored-by: Ioannis Giannakas <[email protected]> Co-authored-by: Claude <[email protected]>
* Add Elegoo filament profiles to OrcaFilamentLibrary Add 7 Elegoo filament profiles based on manufacturer specifications: - Elegoo Rapid PETG (high-speed PETG, 240-270°C, 30-600mm/s) - Elegoo PETG Pro (standard PETG, 230-260°C, 30-270mm/s) - Elegoo PETG-CF (carbon fiber PETG, 240-270°C, 30-220mm/s) - Elegoo PLA (standard PLA, 190-230°C, 30-280mm/s) - Elegoo Rapid PLA+ (high-speed PLA, 190-230°C, 30-600mm/s) - Elegoo ASA (ASA, 250-280°C, 30-270mm/s) - Elegoo TPU 95A (flexible TPU, 220-240°C, 30-60mm/s) All settings sourced from Elegoo's official product specifications. * Fix dual seam fuzzy painted rev 2 (OrcaSlicer#11923) * 2 seam fuzzy 2nd attempt * Update FuzzySkin.cpp * Fix debug SVG * solve bump artifact in extrusion junction joint * minor fixes * cleaning Update FuzzySkin.cpp * Fix filament override changes not appearing in Unsaved Changes and showing as “Undef category” in preset comparison (OrcaSlicer#12298) * Fix an issue that on Windows the Bambu legacy plugin is 01.10.01.09 (OrcaSlicer#12380) * tweak legacy library migration from rename to copy in BBLNetworkPlugin (OrcaSlicer#12400) * tweak legacy library migration from rename to copy in BBLNetworkPlugin * Add Pressure Advance visualization support (OrcaSlicer#11673) * Add Pressure Advance visualization support Signed-off-by: minicx <[email protected]> * Port Pressure Advance visualization to libvgcode architecture Adapt PA visualization (originally in commit e3a7725) to work with the new libvgcode library introduced by upstream PR OrcaSlicer#10735. Changes across the libvgcode stack: - PathVertex: add pressure_advance field - Types.hpp: add PressureAdvance to EViewType enum - ViewerImpl: add ColorRange, color mapping, range updates for PA - LibVGCodeWrapper: pass pressure_advance from MoveVertex to PathVertex GCodeViewer UI integration: - Add "Pressure Advance" to view type dropdown - Add PA color range in legend (3 decimal places) - Add PA value display in sequential view marker tooltip - Add PA row in position properties table The GCodeProcessor PA parsing (M900, M572, SET_PRESSURE_ADVANCE) is preserved from the original implementation. * Tag Pressure Advance visualization changes with ORCA comments Signed-off-by: minicx <[email protected]> --------- Signed-off-by: minicx <[email protected]> Co-authored-by: Ioannis Giannakas <[email protected]> Co-authored-by: Claude <[email protected]> * Fix time estimation using wrong machine limits due to broken extruder_id indexing (OrcaSlicer#12411) The extruder_id*2 offset in get_axis_max_feedrate/get_axis_max_acceleration was cherry-picked from BambuStudio's per-nozzle limit system, which OrcaSlicer never ported. Without that system the limit arrays only have 2 values ([0]=Normal, [1]=Stealth), so any extruder_id > 0 or the uninitialized value (255) would overshoot the array and fall back to values.back(), always returning stealth-mode limits and producing incorrect time estimates. Revert to indexing by time mode only (matching v2.3.1 behavior) and simplify the M201/M203 handlers to write only the two mode slots they actually use. * Fix machine envelope G-code emitting wrong limits due to broken extruder_id indexing (OrcaSlicer#12414) print_machine_envelope() used get_extruder_id(extruder_id)*2 to index machine limit arrays that only hold [Normal, Stealth] (2 entries). For multi-extruder setups this went out-of-bounds, causing wrong M201/M203 values in the G-code which then override the estimator's correct limits. Same class of bug as c6d1c11 but on the G-code writer side. Changes: - Remove unused extruder_id param from print_machine_envelope() - Use .values.front() for M201/M203, matching M204/M205 in same function - Change get_option_value() fallback from .back() to .front() so any future out-of-bounds index returns Normal mode instead of Stealth * update error message when plugin upgrade failed * Add and update pt-BR translations (OrcaSlicer#12409) * Add preference for filament area height to reduce scrolling while using 16+ filaments (OrcaSlicer#12317) Fixes OrcaSlicer#12284 Adds a preference for filaments area height since every user has different amount of MM units and external filaments so users can set a value that fits their setups this way we might see 3 or 6 filaments for each unit on future. thats why i set value as int used 10 as default value. its good for 2 multimaterial units ( 8 filaments ) and 1 external filament min value is 8. might be good when no external filaments in use max value is 99. UI works same as 2.3.1 version <img width="562" height="122" alt="Screenshot-20260215194149" src="https://github.com/user-attachments/assets/309cec36-8b83-48f3-875f-d5f22a9631e7" /> **BEFORE** Scrollable area fixed for 10 items. that causes a lot of scrolling whe user has 3 or 4 ams units <img width="411" height="237" alt="Screenshot-20260215194816" src="https://github.com/user-attachments/assets/fc7823c0-d82a-4d1f-bb5b-56e8dd47abd2" /> **AFTER** value 10. - 2 multimaterial units ( 8 filaments ) and 1 external filament <img width="1002" height="250" alt="Screenshot-20260215195243" src="https://github.com/user-attachments/assets/e3238cd1-788e-4ed2-b048-89c63bd323db" /> value 18 - 4 multimaterial units ( 16 filaments ) and 1 external filament <img width="1001" height="355" alt="Screenshot-20260215195127" src="https://github.com/user-attachments/assets/afe0305e-fcb4-4a51-b8dc-e70a063aa391" /> * Fix: Correct range checking for int and float Config Options + QoL changes in tooltips (OrcaSlicer#11915) * Fix float number not working properly for option min/max (OrcaSlicer#11211) * ConfigOptionDef: min/max values type are changed from INT to FLOAT. (cherry picked from commit f277bc8) * Fix infinite loop and crash when `fuzzy_skin_point_distance` = 0 (OrcaSlicer#11069) * Fix Linux build issue * Fix float comparison due to precision loss * Fix: Range check added for coInt options; Ranges and defaults added in tooltips --------- Co-authored-by: Noisyfox <[email protected]> Co-authored-by: SoftFever <[email protected]> * Update machine profile for OpenEYE Peacock V2 (OrcaSlicer#12333) * OpenEYE Peacock V2 machine profile: Add printer_agent key to enable AMS filament synchronization (Klipper/Moonraker) Signed-off-by: Sezgin AÇIKGÖZ <[email protected]> * Optimize retraction settings in printer profiles to reduce stringing and improve print quality Signed-off-by: Sezgin AÇIKGÖZ <[email protected]> --------- Signed-off-by: Sezgin AÇIKGÖZ <[email protected]> * Fix preheat regression bugs (OrcaSlicer#12438) Fix preheat regression bugs revert 769fc13 * Fix the issue where `resources/profiles/OrcaFilamentLibrary.json` is not updated accordingly. --------- Signed-off-by: minicx <[email protected]> Signed-off-by: Sezgin AÇIKGÖZ <[email protected]> Co-authored-by: Rodrigo Faselli <[email protected]> Co-authored-by: Kiss Lorand <[email protected]> Co-authored-by: SoftFever <[email protected]> Co-authored-by: minicx <[email protected]> Co-authored-by: Ioannis Giannakas <[email protected]> Co-authored-by: Claude <[email protected]> Co-authored-by: Alexandre Folle de Menezes <[email protected]> Co-authored-by: yw4z <[email protected]> Co-authored-by: Valerii Bokhan <[email protected]> Co-authored-by: Noisyfox <[email protected]> Co-authored-by: Sezgin AÇIKGÖZ <[email protected]>
* Add Elegoo filament profiles to OrcaFilamentLibrary Add 7 Elegoo filament profiles based on manufacturer specifications: - Elegoo Rapid PETG (high-speed PETG, 240-270°C, 30-600mm/s) - Elegoo PETG Pro (standard PETG, 230-260°C, 30-270mm/s) - Elegoo PETG-CF (carbon fiber PETG, 240-270°C, 30-220mm/s) - Elegoo PLA (standard PLA, 190-230°C, 30-280mm/s) - Elegoo Rapid PLA+ (high-speed PLA, 190-230°C, 30-600mm/s) - Elegoo ASA (ASA, 250-280°C, 30-270mm/s) - Elegoo TPU 95A (flexible TPU, 220-240°C, 30-60mm/s) All settings sourced from Elegoo's official product specifications. * Fix dual seam fuzzy painted rev 2 (OrcaSlicer#11923) * 2 seam fuzzy 2nd attempt * Update FuzzySkin.cpp * Fix debug SVG * solve bump artifact in extrusion junction joint * minor fixes * cleaning Update FuzzySkin.cpp * Fix filament override changes not appearing in Unsaved Changes and showing as “Undef category” in preset comparison (OrcaSlicer#12298) * Fix an issue that on Windows the Bambu legacy plugin is 01.10.01.09 (OrcaSlicer#12380) * tweak legacy library migration from rename to copy in BBLNetworkPlugin (OrcaSlicer#12400) * tweak legacy library migration from rename to copy in BBLNetworkPlugin * Add Pressure Advance visualization support (OrcaSlicer#11673) * Add Pressure Advance visualization support Signed-off-by: minicx <[email protected]> * Port Pressure Advance visualization to libvgcode architecture Adapt PA visualization (originally in commit e3a7725) to work with the new libvgcode library introduced by upstream PR OrcaSlicer#10735. Changes across the libvgcode stack: - PathVertex: add pressure_advance field - Types.hpp: add PressureAdvance to EViewType enum - ViewerImpl: add ColorRange, color mapping, range updates for PA - LibVGCodeWrapper: pass pressure_advance from MoveVertex to PathVertex GCodeViewer UI integration: - Add "Pressure Advance" to view type dropdown - Add PA color range in legend (3 decimal places) - Add PA value display in sequential view marker tooltip - Add PA row in position properties table The GCodeProcessor PA parsing (M900, M572, SET_PRESSURE_ADVANCE) is preserved from the original implementation. * Tag Pressure Advance visualization changes with ORCA comments Signed-off-by: minicx <[email protected]> --------- Signed-off-by: minicx <[email protected]> Co-authored-by: Ioannis Giannakas <[email protected]> Co-authored-by: Claude <[email protected]> * Fix time estimation using wrong machine limits due to broken extruder_id indexing (OrcaSlicer#12411) The extruder_id*2 offset in get_axis_max_feedrate/get_axis_max_acceleration was cherry-picked from BambuStudio's per-nozzle limit system, which OrcaSlicer never ported. Without that system the limit arrays only have 2 values ([0]=Normal, [1]=Stealth), so any extruder_id > 0 or the uninitialized value (255) would overshoot the array and fall back to values.back(), always returning stealth-mode limits and producing incorrect time estimates. Revert to indexing by time mode only (matching v2.3.1 behavior) and simplify the M201/M203 handlers to write only the two mode slots they actually use. * Fix machine envelope G-code emitting wrong limits due to broken extruder_id indexing (OrcaSlicer#12414) print_machine_envelope() used get_extruder_id(extruder_id)*2 to index machine limit arrays that only hold [Normal, Stealth] (2 entries). For multi-extruder setups this went out-of-bounds, causing wrong M201/M203 values in the G-code which then override the estimator's correct limits. Same class of bug as c6d1c11 but on the G-code writer side. Changes: - Remove unused extruder_id param from print_machine_envelope() - Use .values.front() for M201/M203, matching M204/M205 in same function - Change get_option_value() fallback from .back() to .front() so any future out-of-bounds index returns Normal mode instead of Stealth * update error message when plugin upgrade failed * Add and update pt-BR translations (OrcaSlicer#12409) * Add preference for filament area height to reduce scrolling while using 16+ filaments (OrcaSlicer#12317) Fixes OrcaSlicer#12284 Adds a preference for filaments area height since every user has different amount of MM units and external filaments so users can set a value that fits their setups this way we might see 3 or 6 filaments for each unit on future. thats why i set value as int used 10 as default value. its good for 2 multimaterial units ( 8 filaments ) and 1 external filament min value is 8. might be good when no external filaments in use max value is 99. UI works same as 2.3.1 version <img width="562" height="122" alt="Screenshot-20260215194149" src="https://github.com/user-attachments/assets/309cec36-8b83-48f3-875f-d5f22a9631e7" /> **BEFORE** Scrollable area fixed for 10 items. that causes a lot of scrolling whe user has 3 or 4 ams units <img width="411" height="237" alt="Screenshot-20260215194816" src="https://github.com/user-attachments/assets/fc7823c0-d82a-4d1f-bb5b-56e8dd47abd2" /> **AFTER** value 10. - 2 multimaterial units ( 8 filaments ) and 1 external filament <img width="1002" height="250" alt="Screenshot-20260215195243" src="https://github.com/user-attachments/assets/e3238cd1-788e-4ed2-b048-89c63bd323db" /> value 18 - 4 multimaterial units ( 16 filaments ) and 1 external filament <img width="1001" height="355" alt="Screenshot-20260215195127" src="https://github.com/user-attachments/assets/afe0305e-fcb4-4a51-b8dc-e70a063aa391" /> * Fix: Correct range checking for int and float Config Options + QoL changes in tooltips (OrcaSlicer#11915) * Fix float number not working properly for option min/max (OrcaSlicer#11211) * ConfigOptionDef: min/max values type are changed from INT to FLOAT. (cherry picked from commit f277bc8) * Fix infinite loop and crash when `fuzzy_skin_point_distance` = 0 (OrcaSlicer#11069) * Fix Linux build issue * Fix float comparison due to precision loss * Fix: Range check added for coInt options; Ranges and defaults added in tooltips --------- Co-authored-by: Noisyfox <[email protected]> Co-authored-by: SoftFever <[email protected]> * Update machine profile for OpenEYE Peacock V2 (OrcaSlicer#12333) * OpenEYE Peacock V2 machine profile: Add printer_agent key to enable AMS filament synchronization (Klipper/Moonraker) Signed-off-by: Sezgin AÇIKGÖZ <[email protected]> * Optimize retraction settings in printer profiles to reduce stringing and improve print quality Signed-off-by: Sezgin AÇIKGÖZ <[email protected]> --------- Signed-off-by: Sezgin AÇIKGÖZ <[email protected]> * Fix preheat regression bugs (OrcaSlicer#12438) Fix preheat regression bugs revert 769fc13 * Fix the issue where `resources/profiles/OrcaFilamentLibrary.json` is not updated accordingly. --------- Signed-off-by: minicx <[email protected]> Signed-off-by: Sezgin AÇIKGÖZ <[email protected]> Co-authored-by: Rodrigo Faselli <[email protected]> Co-authored-by: Kiss Lorand <[email protected]> Co-authored-by: SoftFever <[email protected]> Co-authored-by: minicx <[email protected]> Co-authored-by: Ioannis Giannakas <[email protected]> Co-authored-by: Claude <[email protected]> Co-authored-by: Alexandre Folle de Menezes <[email protected]> Co-authored-by: yw4z <[email protected]> Co-authored-by: Valerii Bokhan <[email protected]> Co-authored-by: Noisyfox <[email protected]> Co-authored-by: Sezgin AÇIKGÖZ <[email protected]>


















Description
Fixes #6813
Fixes #7782
Fixes #6367
This is a port of libvgcode, OpenGL Core Profile (libvgcode requires OpenGL 3.2+), and probably other stuff I forgot from PrusaSlicer. libvgcode is also known as "Improved G-code Viewer" which was introduced in PrusaSlicer 2.8.0. It significantly improves performance of the G-code preview and allows displaying the actual speed and volumetric flow rate.
TODO
Removed functionality
Some functionality is not supported by libvgcode:
Screenshots/Recordings/Graphs
OrcaSlicer.libvgcode.10m.2.mp4
Outdated Stuff
Screen.Recording.2025-09-20.at.8.04.06.PM.mp4
Tests