* fixes: wxTimerEvent not supposed to be created by user code [-Wdeprecated-declarations]
* use wxTimerEvent instead of wxCommandEvent.
---------
Co-authored-by: SoftFever <softfeverever@gmail.com>
* ConfigOptionDef: min/max values type are changed from INT to FLOAT.
(cherry picked from commit f277bc80c22e0c9a067481a4301922e2c96aed47)
* Fix infinite loop and crash when `fuzzy_skin_point_distance` = 0 (SoftFever/OrcaSlicer#11069)
* Fix Linux build issue
* Fix float comparison due to precision loss
* Brim can follow EFC outline
* Optimization
* Update Spanish EFC brim description
Adopt reviewer-proposed wording from RF47.
Co-authored-by: RF47 <RF47@users.noreply.github.com>
* Tag Orca specific changes
Tag Orca specific changes vs. Bambu using the comment //ORCA: . This helps when reviewing merge commits from upstream Bambu so we don't end up causing regressions when pulling in commits from upstream
* Tooltip update
---------
Co-authored-by: RF47 <RF47@users.noreply.github.com>
Co-authored-by: Ioannis Giannakas <59056762+igiannakas@users.noreply.github.com>
Fix adaptive fill issues
- Disconnecting from walls at low density
- Not supporting rotation
Co-authored-by: Rodrigo Faselli <162915171+RF47@users.noreply.github.com>
* Grid non-crossing for multiline
cleaning
Replaced negative offset logic with surface contraction to reduce overlap with perimeters.
center the infill
filltriangles
update triangles
preallocate memory
Update FillRectilinear.cpp
Update FillRectilinear.cpp
overlapp adjustment
Fix Crash
Update FillRectilinear.cpp
density tunning
density tunning
fine tunning
reserve polilines
Grid non-crossing for multiline
Co-Authored-By: Ian Bassi <12130714+ianalexis@users.noreply.github.com>
Co-Authored-By: discip <53649486+discip@users.noreply.github.com>
* Improve multiline fill offset and polyline closure
Changed offset type from jtRound to jtMiter in multiline_fill for better geometry. Updated polyline conversion to require at least 3 points and ensured polylines are closed if not already. Updated FillGyroid, FillTpmsD, and FillTpmsFK to pass the 'close' argument to multiline_fill.
cleaning
FillAdaptive Noncross
Only use clipper if worth it
safeguard
fix overlap
Update FillRectilinear.cpp
FilllRectilineal multiline clipper
Update FillRectilinear.cpp
FilllRectilineal multiline clipper
Update FillRectilinear.cpp
Update FillRectilinear.cpp
fix 3d honeycomb
Simplify polylines
Update FillBase.cpp
Update FillBase.cpp
cleaning
Improved Multiline Function
This ensures `multiline_fill()` will correctly generate multiline infill with
closed loop polylines if the input infill line is a closedloop polyline. This
ensures that the multiline infill doesn't have little gaps or overlaps at the
"closed point" of the original infill line.
This changes how the tangent is calculated for the first and last points in a
polyline if the first and last points are the same, making it a closed loop.
Instead of just using the first or last line segment, it uses the line segment
between the points before the last point and after the first point, the same
way that all the other poly-line mid points are handled.
It also uses eigen vector operations to calculate the points instead of
explicitly calculating the x and y values. This is probably faster, and if not
then it is at least more concise.
Hibrid Multiline Function
Update FillRectilinear.cpp
Update FillRectilinear.cpp
Update FillRectilinear.cpp
Update FillRectilinear.cpp
clipperutils multiline hibrido
Update FillBase.cpp
Update FillBase.cpp
Update FillBase.cpp
multiline hibrido
arc tolerance
multiline con union
Update FillBase.cpp
Update FillBase.cpp
Update FillBase.cpp
Co-Authored-By: Ian Bassi <12130714+ianalexis@users.noreply.github.com>
Co-Authored-By: Donovan Baarda <dbaarda@gmail.com>
* Switch multiline offset logic to Clipper2
Replaces Clipper-based multiline offset logic in FillBase.cpp with Clipper2, using InflatePaths and Union for offsetting and merging. Adds new conversion utilities in Clipper2Utils for handling Paths64 to Polygons/Polylines and updates headers accordingly.
* Refactor multiline_fill to always use Clipper2 logic
Removed the 'use_clipper' parameter from multiline_fill and updated all callers to use the new signature. The function now consistently applies Clipper2-based offset logic for multiline infill, simplifying the code and ensuring uniform behavior across fill patterns.
* Change offset join type to Round in multiline_fill
Replaces the Miter join type with Round in the InflatePaths call within multiline_fill. For smotther print travels.
* Increase max infill multiline to 10
Raised the maximum allowed value for the 'Fill Multiline' infill parameter from 5 to 10 to support more lines in infill patterns.
* Refactor multiline_fill to optimize offset logic
Replaces manual conversion of polylines to Clipper2 paths with Slic3rPolylines_to_Paths64 and filters short paths using std::remove_if. Uses ClipperOffset for path inflation and streamlines merging and conversion to polylines, improving performance and code clarity.
* half iteration because is bucle
* Funciona 1
Refactored the multiline_fill function to streamline the insertion of center lines by directly checking for odd line counts and removing redundant logic. This improves code clarity and reduces unnecessary checks.
* Refactor multiline_fill for improved offset logic
Reworked the multiline_fill function to simplify and clarify the logic for generating multiple offset lines. The new implementation computes offsets more explicitly for odd and even cases, creates a fresh ClipperOffset for each band, and improves conversion between Clipper2 paths and polylines. This enhances maintainability and correctness of the multiline fill generation.
* Quartercubic multiline
* fillplanePath
fix bounding box
Co-Authored-By: Ian Bassi <12130714+ianalexis@users.noreply.github.com>
* fillconcentric multiline
Co-Authored-By: Ian Bassi <12130714+ianalexis@users.noreply.github.com>
* Update FillBase.hpp
* cleaning
* Refactor multiline_fill to clean polylines and reuse offsetter
Invalid polylines with less than two points are now removed before processing. The ClipperOffset object is created once and reused for each offset, improving efficiency and code clarity.
trigger build
* Optimize Filltrapezoidal
Refactored the trapezoidal fill pattern generation to precompute base row templates and reuse them with vertical translation, reducing redundant computations and improving code clarity. This change enhances performance and maintainability by avoiding repeated construction of row patterns within loops.
* Replace push_back with emplace_back for Polyline points
Updated Polyline point insertion from push_back to emplace_back for efficiency and clarity. Also refactored row copying logic to avoid in-place modification, improving code readability and safety.
* Update FillRectilinear.cpp
* Reserve space for poliline points
* Union not needed
* Update FillRectilinear.cpp
* unused functions
* compactado
Update FillRectilinear.cpp
* Adjust minimum rows for better performance
* Update FillRectilinear.cpp
---------
Co-authored-by: Ian Bassi <12130714+ianalexis@users.noreply.github.com>
Co-authored-by: discip <53649486+discip@users.noreply.github.com>
Co-authored-by: Donovan Baarda <dbaarda@gmail.com>
Co-authored-by: Ian Bassi <ian.bassi@outlook.com>
Refresh filament setting overrides on preset change
The filament “Setting Overrides” page derives its UI state from multiple configs
(filament, printer, process), but this derived state was not recomputed during
preset reloads.
As a result, override widgets could reflect stale values until the page was
revisited or a user interaction triggered an update.
Recompute the filament setting overrides as part of TabFilament::reload_config(),
keeping the derived UI in sync with the active preset immediately after reload.
* Show printer bed based on BBL vendor not network
* add comment
---------
Co-authored-by: Ioannis Giannakas <59056762+igiannakas@users.noreply.github.com>
Co-authored-by: SoftFever <softfeverever@gmail.com>
Fix object list name refresh after emboss edits
Refresh the object list immediately after embossed text name changes so the displayed name stays in sync.
Fix filament preset undo/dirty tracking to match Bambu behavior
Use deep compare for filament presets so vector options report #idx keys.
Align undo/dirty mapping with indexed fields and Bambu’s filter_diff_option.
Pass explicit indices for filament override fields.
Add missing filament variant keys (retract lift bounds, ironing overrides) to filament_options_with_variant so per‑filament undo works.
* line type by default single extruder
* Defautl to color print if use multicolor
* Update condition for setting view type in GCodeViewer
* Refine default view type selection in GCodeViewer
Improves logic for selecting the default view type based on nozzle and filament preset counts. Now selects 'Summary' for multiple nozzles, 'ColorPrint' for single nozzle with multiple filaments, and 'FeatureType' otherwise.
* Refactor multimaterial detection in GCodeViewer
Introduced a 'multimaterial' boolean to clarify logic for detecting multiple filament presets. This improves readability and maintains consistent behavior when setting the view type based on extruder and filament count.
* Automatically generate extruder id & printer extruder variant mappings for non-BBL multi-extruder printers
* Support different layer height limit for non-bbl multi-extruder printer
* Add auto slice after changes option
Introduces a new 'Auto slice after changes' setting in Preferences, allowing OrcaSlicer to automatically re-slice when slicing-related settings change. Implements logic in Plater to schedule auto-reslicing if the option is enabled and conditions are met, and sets the default to false in AppConfig.
* Improve auto-reslice scheduling after slice cancellation
Adds a flag to track when auto-reslice should be triggered after a slicing process is cancelled. Ensures that auto-reslice is scheduled once the current slicing process completes and is not lost if a slice is cancelled mid-operation.
* Add configurable delay for auto slice after change
Introduces a new 'auto_slice_change_delay_seconds' setting to control the delay before auto slicing starts after a change. Updates AppConfig to set a default value, adds a timer and logic in Plater to handle the delay, and exposes the setting in Preferences. This allows users to group multiple edits before triggering auto slicing.
* Combine auto-reslice checkbox and delay input in preferences
Replaces separate auto-reslice and delay settings with a unified UI element in Preferences. The new function create_item_auto_reslice adds both the checkbox and delay input in a single row, improving usability and code organization.
* Move auto reslice option into Control > Behaviour
* Remove 'loop' icon from AutoSlice
* Default disable and 1 Sec
* Add input validation for acceleration and speed values
Added a check to ensure that acceleration values are greater than speed values in the PA calibration dialog. Displays a warning message and prevents calibration if the inputs are invalid to guard against swapped or incorrect user entries.
* Add input validation for calibration parameters
Added the Cali Cat STL file to handy models and updated the GUI to include 'Cali Cat' as a selectable option in the handy model submenu.
Co-authored-by: davidzhen <3886830+davidzhen@users.noreply.github.com>
* Replace with STL to Replace with 3D file: Support STEP
Enhanced the replace logic to support STEP (.stp, .step) files, including user-configurable mesh settings and dialog, while maintaining backward compatibility with STL and other formats.
Updated the menu label and tooltips to 'Replace 3D file' for clarity.
* Update 'STL' references to '3D file' in UI and logs
Replaces user-facing text and log messages referring to 'STL' with '3D file' for broader file type support and improved clarity in the menu, status messages, and logging.
* Merge branch 'main' into remplace-with-stl
* Initial changes allowing you to change the type of multiple parts at once by selecting them all.
* Removed second occurance of Change type in right click menu
* Ready to go feature change
* Remove accidental file creation
* Removing excessive std::cerr
---------
Co-authored-by: SoftFever <softfeverever@gmail.com>
* Add ability to disable Power Loss Recovery
* Fix typo in PrintConfig.hpp for power loss recovery
* Attempt to resolve Unknown option exception: disable_power_less_recovery
Add disable_power_loss_recovery property to any json which had scan_first_layer
* Revert "Attempt to resolve Unknown option exception: disable_power_less_recovery"
This reverts commit ddaf34b317.
* Fix typo
* Change attribution from BBS to Orca in PrintConfig.cpp
* Mini refactor power loss recovery handling in GCode export
- Moved power loss recovery G-code generation to a new method in GCodeWriter.
- Support Marlin 2
* Update comments and power loss recovery handling
* Implement power loss recovery G-code commands
Added functions to start and end power loss recovery with appropriate G-code commands and comments.
* Add power loss recovery methods to GCodeWriter
* refactor and fix build errors
---------
Co-authored-by: Michael Rook <michael@rook.id.au>
Co-authored-by: Ioannis Giannakas <59056762+igiannakas@users.noreply.github.com>
Co-authored-by: SoftFever <softfeverever@gmail.com>
* Fix tooltip + URL
* Full Material wiki redirection maping
* Machine wiki + append_option_line wiki linking
* Machine wiki 2
* Update README with improved wiki links and clarity
* Bring back Print statistics options
* Move num_extruders config to OtherSlicingStatesConfigDef
The num_extruders configuration option was relocated from OtherPresetsConfigDef to OtherSlicingStatesConfigDef for better organization and relevance. This change ensures that the number of extruders is defined in the context of slicing states rather than presets.
* Unifi adaptative bed mesh
* Replace Simplified Chinese in `OrcaSlicer_zh_TW.po` with Traditional
ones, fix '制', and add missing translatinos
* Fix settings -> system language selector (`Perefences.cpp`): 繁体 -> 繁體
* Two missing translation in `text.js`
Renamed 'param_extruder_clearence.svg' to 'param_extruder_clearance.svg' and updated the corresponding resource reference in Tab.cpp to correct the spelling error.
Co-authored-by: Nanashi <53353250+NanashiTheNameless@users.noreply.github.com>