Commit Graph

527 Commits

Author SHA1 Message Date
SoftFever
779f4a890d QoL: improve gcode marker (#11881)
QoL: Improve gcode marker
2026-01-09 11:52:30 +08:00
Ioannis Giannakas
4af168bac7 Fix erroneous interpolation on speed, flow rate in speed and flow views (#11848)
# Description

Reverts to default orca behaviour of showing the gcode speeds and flow values instead of an interpolation to the next segment.

The existing behaviour incorrectly shows the next G1 XY command following a bridge or overhang as interpolated when using the speed and flow views. This is inconsistent with both actual speed (as its limited to a single segment) and gcode view (as it shows a speed gradient where there is none in the gcode).

Before / after
![image](https://github.com/user-attachments/assets/f3dc1130-40cf-48e6-8da4-ef4b7df15721)
![image](https://github.com/user-attachments/assets/a14c88f7-07dd-4076-be82-dbc13b05ad00)

![image](https://github.com/user-attachments/assets/7876e297-2f59-4adf-bd13-c1da75117d33)


Actual speed and flow views are unaffected

![image](https://github.com/user-attachments/assets/c71d6361-9190-4bb4-8b44-40131b1c4b8f)
![image](https://github.com/user-attachments/assets/e97bf6cc-e2ab-4aed-8130-b41f3e4a7ed2)
2026-01-08 23:14:46 +08:00
SoftFever
1b355be432 Merge branch 'main' into libvgcode 2026-01-06 11:09:09 +08:00
Rodrigo Faselli
ef876fe577 Wipe Tower Auto Brim bug-fix (Non BBL printers) (#11831)
# Description

Fix application freeze when Prime Tower brim is set to Auto

This PR fixes an issue where enabling Auto brim width for the Prime Tower caused the application to freeze and consume unbounded amounts of memory.

Root cause
0c5f6c9865/src/libslic3r/GCode/WipeTower2.cpp (L2036-L2039)
When Auto brim is selected, the brim width was not being computed and the raw configuration value (-1) was used directly.
This resulted in an effectively infinite loop during Prime Tower brim generation, leading to runaway memory allocation instead of a controlled failure or a crash.

Solution

The Auto brim width is now properly computed based on the Prime Tower height, matching the intended behavior and existing logic used in other slicer implementations.
2026-01-05 20:15:23 +08:00
SoftFever
32cf44fc0a Don't emit the preheat command if ooze_prevention is disabled. (#11791) 2025-12-31 23:36:32 +08:00
Ian Bassi
81dd153798 Small area flow compensator improvements (#11716)
* Replace spline with PchipInterpolatorHelper in flow compensator

Swapped out the tk::spline implementation for PchipInterpolatorHelper in SmallAreaInfillFlowCompensator. Updated member types and method calls to use the new interpolator for improved flow compensation modeling.

* Enforce strictly increasing flow compensation factors

Added a check to ensure that flow compensation factors in SmallAreaInfillFlowCompensator strictly increase with extrusion length, throwing an exception if this condition is not met. This improves input validation and prevents invalid compensation models.

* Add context to Small Area Flow Compensation errors

Prefixed error messages in SmallAreaInfillFlowCompensator with 'Small Area Flow Compensation' for improved clarity and debugging. Also rethrows exceptions after logging to ensure proper error propagation.

* Remove spline library from dependencies

Eliminated the spline header-only library from the project by deleting its CMake configuration and header file, and updating documentation and build scripts to remove references to spline. This streamlines the dependencies and build process.
2025-12-30 13:34:14 +00:00
Ioannis Giannakas
0f397492e7 Fix non bambu wipe tower issues (skirt overlapping with tower, extreme travel moves outside plate boundary) (#11748)
* Fix prime/purge tower extreme travel for non BBL printers
* Fix wipe tower skirt not generating correctly for non bambu printers
2025-12-30 09:28:09 +00:00
Andrew Sun
e4d354b673 Merge remote-tracking branch 'upstream/main' into libvgcode
# Conflicts:
#	src/libslic3r/GCode/GCodeProcessor.cpp
2025-11-18 20:22:57 -05:00
Andrew Sun
6e9fbc90e7 Fix incorrect display of flow rate changes 2025-11-15 11:11:25 -05:00
Lukáš Hejl
bdbeb34158 Accumulate the total estimated print in doubles instead of floats.
Because total print time is typically a big floating point number and the time of trapezoid is typically a small number, summing those numbers leads to a loss in precision. Switching to doubles reduces the loss of precision.

(cherry picked from commit c5982f40196c178bd824c556ac11e8c6f67d5e7a)
2025-11-15 11:11:25 -05:00
Lukáš Hejl
bec883e667 SPE-2441: Fix discontinuity between the processed blocks' exit speed and the new first block's entry speed.
This discontinuity affected both time estimation and actual speed visualization.

(cherry picked from commit 90073dce70fb05bda80421158175b851855f0a8f)
2025-11-15 11:11:25 -05:00
enricoturri1966
acd3c94955 SPE-2397: Fixed order of traversing time blocks in GCodeProcessor::TimeMachine::calculate_time() to match what is done in firmware
(cherry picked from commit 9b7961ddcb824c5b18cb414ed5b975d999a24641)
2025-11-15 11:11:25 -05:00
Andrew Sun
7814605906 Merge remote-tracking branch 'upstream/main' into libvgcode
# Conflicts:
#	src/libslic3r/GCode/GCodeProcessor.cpp
#	src/libslic3r/GCode/GCodeProcessor.hpp
#	src/slic3r/CMakeLists.txt
#	src/slic3r/GUI/GCodeViewer.cpp
#	src/slic3r/GUI/GCodeViewer.hpp
#	src/slic3r/GUI/GLCanvas3D.cpp
#	src/slic3r/GUI/GLCanvas3D.hpp
#	src/slic3r/GUI/GUI_Preview.cpp
2025-11-15 11:11:20 -05:00
Noisyfox
5197358183 Merge branch 'main' into dev/p2s-pr 2025-11-09 20:47:51 +08:00
Noisyfox
8f5a5a9b16 Fix extrusion rate smoothing unnecessarily slowing down the entire line (#11249)
* Fix typo & code style

* Fix calculation of the min acc time

* Avoid slowing down the entire line if both end of a single line has been slowed down
2025-11-09 12:47:50 +08:00
Noisyfox
763bdb5dee Fix gcode viewer wrong layer count when selected printer model is BBL while gcode is not 2025-11-03 23:53:12 +08:00
weizhen.xie
c93d345d2a Fix: Modify the method of obtaining the first_layer_time.
Jira: None

Change-Id: I0ef83d8f47f9d7b235b88caaa8b895367729f3e9
(cherry picked from commit 1de8d5c0d3bb6742219963bd7297286a937e0ed5)
2025-10-28 15:30:05 +08:00
weizhen.xie
9f7ff97be6 ENH: add initial layer time to plate_x.json and slice_info.config
Jira: STUDIO-14504
Change-Id: I32460f1c19cce7c729806e35370e8b4b57aa069e
(cherry picked from commit 04a487d210134c28245c1f0f7d0986266a1c66f2)
2025-10-28 15:30:05 +08:00
xin.zhang
934f32bd8c FIX: remove some warnings
jira: [none]
Change-Id: I0e74b7316d0efe38c65e1f695b2a09eb09103552
(cherry picked from commit 766c6e004145325bcc7a6addfce27842ee9504de)
2025-10-28 15:29:56 +08:00
jiangkai.zhao
b9cd05dc86 FIX:When a smaller negative number is entered for the primer_tower_extra_rib_length, the program crashes.
jira: STUDIO-14677
Change-Id: I67477535ce2e88a2bded23959195ba9b95abf75a
(cherry picked from commit 21e01c87b678bc4f639293363591142fc9884f2d)
2025-10-28 15:29:55 +08:00
jiangkai.zhao
6923230495 Fix:path conflictcheck
Coincident lines are considered as intersecting
jira:STUDIO-14085

Change-Id: I1487e6e2479e2488a3fd55651b8b4fb1bc1f4ced
(cherry picked from commit 2348328a96a8d805c35cae8f03ebaa0869b1313e)
2025-10-28 15:29:55 +08:00
songwei.li
eafe57d8c6 ENH: TimelapsePosPicker, make timelapsePos far away from the camera
By using Manhattan distance, a penalty function is constructed by weighting the distance from the safe position to the camera and the distance from the current position, incentivizing safe positions to move away from the camera. The isometric line of the integrated Manhattan distance changes from a circle to a trapezoidal shape, with the Euclidean distance toward the camera being half that away from the camera. This ensures that when selecting a safe position, points with the same Euclidean distance from the current position receive a smaller penalty if they are farther away from the camera.

jira: none
Change-Id: I3c256cfc0c33cecade86c254613063adeac59f91
(cherry picked from commit f86ca36b471dd99d4c1bd21c4e6db3ee10eb5a6d)
2025-10-28 15:29:51 +08:00
qing.zhang
3bd9fe995b ENH: get max additional fan
Jira: none

Signed-off-by: qing.zhang <qing.zhang@bambulab.com>
Change-Id: Idffeb2000936e0b72d2d4cfd2c397eea03cd0319
(cherry picked from commit 772780bcca58300a02546605db414e41731c45f6)
(cherry picked from commit 0aa3a4a215c11d3ed20d968f65e1c51938fee7d2)
(cherry picked from commit 7f6eae184eb296deea96f700af03e5902cf59992)
(cherry picked from commit f86b6a19585199b24848a49b50ca6ccd46f3381d)
2025-10-28 15:29:48 +08:00
Noisyfox
9e889afb53 Fix issues with non-bbl multi-head printers 2025-10-19 22:54:48 +08:00
Noisyfox
3a5a49b23d Merge branch 'main' into dev/h2d-2
# Conflicts:
#	src/slic3r/GUI/PartPlate.hpp
2025-10-14 19:43:33 +08:00
Rodrigo Faselli
ac75c69ddf BUG-FIX avoid crossing perimeters ingonore holes <=2mm (#10942)
Fix avoid crossing perimeters 2
2025-10-13 19:41:07 +08:00
Azi
6feb99bd2d bugfix for Invalid speed "G1 F-2147483648" (#10944)
added non zero safety check for feedrate calculation
2025-10-12 22:03:38 +08:00
Noisyfox
da2934d02a Revert "ENH:instead of prime_volume by filament_prime_volume"
This reverts commit e7e6405ad3.
2025-10-05 19:16:05 +08:00
zhimin.zeng
811060aabb FIX: the wipe tower should not show for printer which is not support clumping
jira: none
Change-Id: Ife535adb406224252fe8b0b3e7807a3e84752cc2
(cherry picked from commit 2f2bc935bfeb325de548e4cf867eb2d3a5d67879)
2025-10-03 23:08:56 +08:00
songwei.li
1a34765856 ENH: Improved safe position calculation for delayed photography
In the safe position calculation for time-lapse photography in traditional mode of piece-by-piece printing, for parts not currently being printed, the maximum expansion radius is used for parts higher than the current layer, and half of the expansion radius is used for parts lower than the current layer height; half of the expansion radius is used for the parts themselves. This reduces unnecessary avoidance.

jira: STUDIO-13194
Change-Id: Id6ce03af29c9ebba974ea57ec41cca757067027a
(cherry picked from commit 68c7f41900049e64d37d792503653ce5302759d8)
2025-10-03 22:19:23 +08:00
Noisyfox
a932821168 Rename wipe tower ribs related options 2025-10-02 22:56:54 +08:00
songwei.li
4e1ec6d354 FIX: Increased the tolerance of printable area detection to 2mm
In gcode processor, the result check, increased the tolerance of printable area detection to 2mm, to adaption to the requirement of command line slicing.

jira: none
Change-Id: I5be4d6396989c35ae394339376c1133c8862c075
(cherry picked from commit 2f09c98caa9d2afc3e33a0bf17c6a6bb39992e0c)
2025-10-02 18:26:40 +08:00
zhimin.zeng
6d463ed8b4 FIX: do not check wrapping area
jira: none
Change-Id: I57e5f0049825c263d4822ce5a0b6b942dc9ff0bc
(cherry picked from commit 58ef9e2f04b5952d8e25c5d734ee5d050fec9bcd)
2025-10-02 17:59:38 +08:00
songwei.li
885a078747 FIX: 0-sized path cause wrong detection of gcode_check_result
0-sized  extrusion path are now excluded from the heated bed range check to avoid false positive detection.

jira: none
Change-Id: Ia4bfff77880d107ce6b9542ef770050201ff0d90
(cherry picked from commit 00d9aedabed7e6b25767ddfe9871488f629c0dde)
2025-10-02 17:59:37 +08:00
songwei.li
120c9b41e2 FIX: erCustom check results in gcode_check_result
erCustom extrusions are now excluded from the heated bed range check to avoid initial routing issues.

jira: STUDIO-13885
Change-Id: I706a85113fe7b6f5e1a3b67f5bc16d674ad85577
(cherry picked from commit c8b4f3c778a3c1a023693b9b4961da261507ae8f)
2025-10-02 17:59:37 +08:00
shan.chang
bd066e7f96 ENH: add new arrangement features for wrapping detection area
Jira: STUDIO-13735

Change-Id: I198d19f5e6ef70f0adfa6370269290c81d21a557
(cherry picked from commit dc83637652526111611d0833d5f5798aaa3e7be7)
2025-10-02 17:41:41 +08:00
songwei.li
aa9fb1fd34 FIX: Printable area check results in gcode_check_result
Added a check for Gcode traces outside the printable area after the backend slicer, allowing command-line slicers to detect abnormal results. The GCodeProcessor's m_result.gcode_check_result.error_code now includes not only dual-head print range checks, but also checks for the machine's plate print range, wrapping detection area, and height violations.

jira: none
Change-Id: I44072ece3b4b525c77328cec2f76e205eb559cc4
(cherry picked from commit 054f936243968687f536170374a233ec912e8e42)
2025-10-02 17:07:21 +08:00
zhimin.zeng
1ccdf7b43b ENH: add wrapping detection
jira: STUDIO-13192
Change-Id: I0fb5692b18cdb3b7af624a831dcfb0f635b165f0
(cherry picked from commit 89a8b6ea5e34340cba3750416ce3100dcc39f5c2)
(cherry picked from commit 50bc8c10a7b4ddc0b2dfe9cbab438b9d307b7fc0)
2025-09-30 15:32:44 +08:00
weizhen.xie
04f0b96029 FIX:Fix the crash that occurred when importing G-code file
Jira:STUDIO-13408

(cherry picked from commit 3810f4edfe086b9500860e59baf35e5568b56977)
2025-09-30 11:02:32 +08:00
zhimin.zeng
4a3fa5141c FIX: error wipe tower gcode
jira: STUDIO-13101
Change-Id: Ic1e2aa294c290e208074a6a65d6f80c705ab7dc6
(cherry picked from commit d4deb67dda0a6a92622f0126706110518b90a8bd)
2025-09-29 23:44:50 +08:00
jiaxi.chen
9982eaa036 FIX: supports use filaments that aren't designated for this layer
jira: STUDIO-13216
Change-Id: I17272f45475eb281dfb0aa731b55363e0dde7427
(cherry picked from commit 209878dbc9d257675c8c638d141cebfc9858ed71)
2025-09-29 20:43:07 +08:00
xun.zhang
a092c48642 FIX: find the first layer with enough space to extrude
1. Sometimes the first layer is too small and does not have enough space to extrude.That will make first layer extruders empty

jira: STUDIO-13030

Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: I69b99ab74101c772f4c91e955060e403988bb91c
(cherry picked from commit 9699397858c6d52d027e79e91041a9dac7280bba)
2025-09-28 17:11:05 +08:00
jiaxi.chen
68d7bd9e17 FIX: Interface_not_for_body is ignored for detached support layers
jira: STUDIO-12826
Change-Id: I3ab585aa899dee5cf006effb3cea15b5e64332eb
(cherry picked from commit 56e239e38103a0f1631f0174c9153e239ab5c802)
2025-09-25 17:12:35 +08:00
xun.zhang
b351fa3b50 FIX: only meature m29 once in machine start GCode
jira: NONE

Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: I3661159dd09f6d179eae3a0b1f2bbc14277be312
(cherry picked from commit 60492b7b0b57dc243cc8ac17f2cad638724aaca2)
(cherry picked from commit 8555af21cacaa10e74715e771aa0866052a31bd6)
2025-09-25 16:49:01 +08:00
jiangkai.zhao
fd17dd6382 FIX:Crash caused by wipe_tower depth = 0
and remove useless assert

jira: STUDIO-12514,STUDIO-12474,github#7064
Change-Id: I8faf498251c8f7ca2c1eead463f38e8a3d836299
(cherry picked from commit 723e2d7ced6b466f2166085b8ca007762aaf17aa)
2025-09-25 14:45:44 +08:00
Andrew Sun
f8a7589354 Clean up TODOs and commented out code 2025-09-24 22:49:14 -04:00
Andrew Sun
72711231fd Fix incorrect feedrate for G2/G3 arcs 2025-09-24 22:49:14 -04:00
Andrew Sun
1394a3ccf2 Import PrusaSlicer G2/G3 arc discretization code 2025-09-24 22:49:14 -04:00
enricoturri1966
20f132e09a SPE-1739: Fixed calculation of gcode preview sequential slider endpoints
(cherry picked from commit 578921257d14e2c07611dfbb89cda5f9dc776e0c)
2025-09-24 22:49:14 -04:00
Andrew Sun
9359aa8607 Fix nozzle marker position 2025-09-24 22:49:14 -04:00