* Base IS Machine
* Toggle line
* Rebase
* Intento 1
* Wiki IS
* Flavorized
* Tooltips
* Calibration using the same list
* max
* Reorder JD validation
* Refactor set input shaping
* Calibrations IS
* Default values
* Axis
* Orca comments
* Rename input_shaping_enable to input_shaping_emit
Refactor all references of the input shaping configuration option from 'input_shaping_enable' to 'input_shaping_emit' across the codebase. This improves clarity by better reflecting the option's purpose of controlling whether input shaping commands are emitted in the generated G-code.
Restore DONT EMIT FOR KLIPPER
* Refactor input shaping option toggling logic
Simplifies and consolidates the logic for toggling input shaping related options in TabPrinter::toggle_options(). Uses a loop to handle enabling/disabling lines based on GCode flavor compatibility, and refines the conditions for toggling individual options.
* Improve input shaping option toggling logic in TabPrinter
* GrayOut Emit to gcode limits for klipper
* Typo
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
* Typo
* Skip Y input-shaper when type is Disable
If marlin2 and disabled it will be already disabled at X.
* IS expert
Co-Authored-By: SoftFever <softfeverever@gmail.com>
---------
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: SoftFever <softfeverever@gmail.com>
Hovering a group item (e.g. "Generic" in the filament list) now opens
its submenu correctly. The dropdown stays usable while moving the
cursor between the parent list and the submenu, and dismisses normally
when the user clicks outside.
* K2 Plus: add print area bounding box for adaptive bed mesh
The K2 firmware reads MINX/MINY/MAXX/MAXY gcode comments to
determine the adaptive bed mesh area. Without these, it falls
back to full bed mesh even when calibration is enabled.
K2 Pro also reads these comments (its profiles already had them).
Signed-off-by: Igor Mammedov <niallain@gmail.com>
* K2: add print area bounding box for adaptive bed mesh
Same change as K2 Plus — prepend MINX/MINY/MAXX/MAXY gcode comments
so firmware can determine the adaptive bed mesh area.
K2 Pro already had these.
Signed-off-by: Igor Mammedov <niallain@gmail.com>
* Creality: bump profile version to 02.03.02.72
Signed-off-by: Igor Mammedov <niallain@gmail.com>
---------
Signed-off-by: Igor Mammedov <niallain@gmail.com>
Co-authored-by: SoftFever <softfeverever@gmail.com>
* Add Cubicon xCeler-Mini printer model and material profiles
- Add xCeler-Mini machine configuration and 0.4mm nozzle profile
- Add filament profiles for all Cubicon materials (PLA, PLA+, PLAi21, ABS, ABSk, ABS-A100, PETG, PC, PA-CF) for xCeler-Mini
- Add default process profile for xCeler-Mini 0.4mm nozzle
- Add xCeler-Mini cover image
- Update Cubicon.json to register xCeler-Mini machine, filaments, process, and machine list
- Update PA-CF and PLA base filament profiles (filament_max_volumetric_speed adjustment)
- Fix missed per-machine filament and process profiles for xCeler-I and xCeler-Plus
* fix format
---------
Co-authored-by: SoftFever <softfeverever@gmail.com>
* Fixed PrintConfig.hpp order so Repetier outputs, updated ConfigWizard to use gcode_flavor value rather than static
Add Repetier to enum values and labels
Update to add Repetier base profile to the setup wizard
Re-order gcode_flavors in PrintConfig.hpp and PrintConfig.cpp to match
Revise ConfigWizard.cpp to use gcode_flavor rather than list order
Add Repetier profiles and include in custom.json (profile disables m73 and stop emit machine limits which Repetier doesn't use)
* Fix JSON formatting in Custom.json
* Add support for pressure advance in Repetier flavor
* Add Repetier flavor show motion ability tab is visible
* Refactor jerk handling for Repetier flavor
* Update resources/profiles/Custom/machine/MyRepetier 0.4 nozzle.json
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Update resources/profiles/Custom/machine/fdm_repetier_common.json
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Update src/libslic3r/PrintConfig.cpp
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* add back localisation flag for Klipper
* tidy up indentation and braces
* Space indentation for Repetier profiles changed to tab
* Fix space indentation in Custom.json file for Repetier profiles
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Ian Bassi <ian.bassi@outlook.com>
Co-authored-by: SoftFever <softfeverever@gmail.com>
Warn for first and other layers big temperature delta
Warn user if temperature differences (first layer vs other layers) for nozzle and plates are above a certain delta.
Co-authored-by: SoftFever <softfeverever@gmail.com>
* Fix support interface semantics and gap handling
Fix zero-gap interface detection and gap initialization for supports and raft.
Ensures correct top/bottom contact semantics and avoids relying on default zero gaps.
* Additional fixes and robustness improvements
Fix incorrect coupling between top and bottom support interface spacing and density, ensuring bottom interfaces use their own parameters for smoothing and toolpath generation.
Restore correct bottom interface generation for organic (tree) supports when a non-zero bottom Z gap is used, and preserve contacts even when base polygons are empty.
Improve robustness of organic support slicing by fixing layer index drift and guarding against degenerate polygon boolean operations.
* Typo and semantics fix
differnt_support_interface_filament -> different_support_interface_filament
soluble -> zero_top_z_gap
* Fix non organic tree bottom support interface generation
Slim tree bottom interface layer numbers were capped by the object's layer number beneath it.
Fixed by refactoring the generation algorithm.
* Fix non organic tree interlaced support generation
Deterministic local interlaced support layers generation for non-organic tree support
* Enable support interface multimaterial for non organic tree
Enables mixed-material support interface behavior for non organic tree support type.
* Fix tree support interface layer counts and contact handling
- Correct non‑organic tree top interface layer budgeting so gaps don’t consume a layer (N stays N).
- Remove the extra roof interface pass that was duplicating the 2nd layer.
- Organic tree: use only the lowest contact footprint and avoid extra bottom‑contact extrusion so interface count matches the user setting.
* Bugfixes (a lot)
Many, many bugs fixed, majority edge-case but still not playing by the rule.
Some of them:
- on multilevel base, on very small level variations the support was capped to the topmost level height
- non-organic tree had gaps for supports in a multilevel base situiation
- independent support layer height had issues with support interfaces (base support beneath bottom interface, top contact layer sometimes missing)
- organic tree had issues with small variation multi-level base
- organic tree support with zero top Z distance could overlap support-material and interface-material paths when separate materials were used
- many, many others (I lost track of them)
Fix "Jump to" links opening wrong preset type
Fixes an issue where notification "Jump to" links always assumed the target setting belongs to the Print preset.
Resolve the correct preset type for each option before jumping to it, and only switch to object settings when the target is a Print preset.
Result: links now correctly open the intended setting across all preset types.
* Make filament compatibility temperature-aware
Extend filament compatibility checks to consider actual nozzle temperatures and temperature ranges.
Print::check_multi_filaments_compatibility now accepts nozzle temperatures and range lows/highs; it resolves missing ranges from material defaults, computes per-filament effective temperatures, and checks pairwise compatibility (including high/low/mid mixed cases).
Updated callers in Print::check_multi_filament_valid and CalibrationWizardPresetPage to pass nozzle settings, consolidated user-facing warning strings, and fixed extruder index handling and minor logic/path improvements.
Clarify incompatible nozzle temperature warnings
* Update Print.cpp
* Remove json usage
* Reduce messages
* Clean up code
* Filament mapping select ext slot automatically when no AMS filament inserted (OrcaSlicer/OrcaSlicer#13103)
* Show warning if external filament type does not match the one in sliced file
* Disable arc fitting by default on BBL P2S
* Update BBL P2S printer profile
* bump the version so that it automatically update the cache
---------
Co-authored-by: SoftFever <softfeverever@gmail.com>
* Add safety checks and add logic to avoid creating degenerate polygons in contour_extrusion_path
* fix comment
* fix(zaa): cast from slice_z upward only, guard normal on miss
* remove old code
---------
Co-authored-by: Aleksandr Dobkin <alex@dobk.in>
Co-authored-by: Rodrigo Faselli <162915171+RF47@users.noreply.github.com>
* fix: manual filament change not emitting MANUAL_TOOL_CHANGE for BBL printers
BBL-specific M1020 S handling in toolchange() bypassed toolchange_prefix(),so manual_filament_change had no effect — M1020 was always emitted regardless of the setting. Move the BBL logic into toolchange_prefix() so all callers respect the option consistently.
Fixes#11795
* add comment
Fix Ender-3 V3 KE nozzle switching by adding printer_variant
The four Creality Ender-3 V3 KE 0.X nozzle profiles were missing the
printer_variant key, so OrcaSlicer could not map a UI nozzle selection
to a specific profile and reverted every choice to 0.2mm. Add the
matching printer_variant to each, following the CR-10 SE / K1C pattern.
Introduce an 'indentation_check' job step to .github/workflows/check_profiles.yml that validates profile JSON files under resources/profiles use tab-only indentation (1 tab per level). The step runs an inline Python check, emits a log (indentation_check.log) with errors and a fix tip, and exits non‑zero on violations. Workflow conditionals for preparing the PR comment artifact, uploading the artifact, and failing the job were updated to include the new step so indentation failures are reported alongside other profile validation failures.
Fix extrusion of some support layers at wrong Z height
Fixes the issue that PR #12736 (github.com/OrcaSlicer/OrcaSlicer/pull/12736) reverted the changes of PR #13327 (github.com/OrcaSlicer/OrcaSlicer/pull/13327)
# Description
With this change, builds on ARM64 hosts will successfully kick off!
Unfortunately there are still missing/outdated dependencies, so the
build doesn't yet succeed. This makes it much easier to check what we're
failing on though.
I've also added the processor/arch to "Unknown X" error messages for
easier debugging.
Follow-up to #10183
Affects #5783
# Screenshots/Recordings/Graphs
N/A
## Tests
Kicked off `build_release_vs.bat` on my Windows ARM machine. Observed
progress in the build process!
<!--
> A guide for users on how to download the artifacts from this PR.
-->
[How to Download Pull Requests Artifacts for
Testing](https://www.orcaslicer.com/wiki/how_to_download_pr_artifacts)
This PR supersedes #12225, which originally proposed this feature but
appears inactive.
The feature originated from work I developed earlier in
[BambuStudio-ZAA](https://github.com/adob/BambuStudio-ZAA), a private
fork of Bambu Studio
Compared to #12225, I updated the implementation for current upstream
and fixed the following issues:
- fixed broken tests
- removed references to nonplanar directory
Reviewers may want to compare against #12225 for earlier
discussion/context.
## Summary
Port of **Z Anti-Aliasing (ZAA)** from
[BambuStudio-ZAA](https://github.com/adob/BambuStudio-ZAA) to
OrcaSlicer.
ZAA eliminates visible stair-stepping on curved and sloped top surfaces
by raycasting each extrusion point against the original 3D mesh and
micro-adjusting its Z height to follow the actual surface geometry. The
result is visibly smoother domes, chamfers, and shallow slopes — without
post-processing.
## How It Works
1. The slicer runs normally, then a **posContouring** step processes
each layer
2. `ContourZ.cpp` raycasts every extrusion point vertically against the
source mesh
3. Each point's Z is adjusted to the mesh intersection, converting flat
`Polyline` paths into `Polyline3` paths with per-point Z coordinates
4. The G-code writer emits the adjusted Z values, so the printer follows
the true surface
## Configuration
Five new settings under **Print Settings > Quality**:
| Setting | Type | Default | Description |
|---------|------|---------|-------------|
| `zaa_enabled` | bool | off | Master enable/disable switch |
| `zaa_min_z` | float | 0.06 mm | Minimum Z layer height; controls
slicing plane offset |
| `zaa_minimize_perimeter_height` | float | 35° | Reduce perimeter
heights on slopes below this angle (0 = disabled) |
| `zaa_dont_alternate_fill_direction` | bool | off | Keep fill direction
consistent instead of alternating |
| `zaa_region_disable` | bool | off | Disable ZAA for a specific print
region/material |
## Key Changes
- **Core algorithm**: New `src/libslic3r/ContourZ.cpp` (~330 lines) —
raycasting engine
- **3D geometry**: `Point3`, `Line3`, `Polyline3`, `MultiPoint3` extend
existing 2D types
- **Arc fitting**: Templated to work with both 2D and 3D geometry
- **Pipeline**: `ExtrusionPath::polyline` changed from `Polyline` to
`Polyline3`; new `posContouring` step in `PrintObject.cpp`
- **G-code**: `GCode.cpp` writes per-point Z when `path.z_contoured` is
set
- **UI**: ZAA settings exposed in Print Settings > Quality panel
- **Documentation**: `docs/ZAA.md` with usage and implementation details
57 files changed, ~1800 insertions, ~200 deletions.
## Test Plan
- [ ] Load a model with curved top surfaces (sphere, dome, chamfered
box)
- [ ] Enable **Z contouring** in Print Settings > Quality
- [ ] Slice and verify G-code has varying Z values within contoured
layers
- [ ] Build on macOS (verified), test on Linux and Windows
* Add OrcaCloud sync platform and preset bundle sharing system
Introduce OrcaCloud, a cloud sync platform for user presets, alongside
a preset bundle system that enables sharing printer/filament/process
profiles as local exportable bundles or subscribed cloud bundles.
OrcaCloud platform:
- Auth to Orca Cloud
- Encrypted token storage (file-based or system keychain)
- User preset sync with
- Profile migration from default/bambu folders on first login
- Homepage integration with entrance to cloud.orcaslicer.com
Preset bundles:
- Local bundle import/export with bundle_structure.json metadata
- Subscribed cloud bundles with version-based update checking
- Thread-safe concurrent bundle access with read-write mutex
- Canonical bundle preset naming (_local/<id>/... and _subscribed/<id>/...)
- Bundle presets are read-only; grouped under subheaders in combo boxes
- PresetBundleDialog with auto-sync toggle, refresh, update notifications
- Hyperlinked bundle names to cloud bundle pages
Co-authored-by: Sabriel Koh <sabrielkcr@gmail.com>
Co-authored-by: Derrick <derrick992110@gmail.com>
Co-authored-by: Mykola Nahirnyi <mnahirnyi@amcbridge.com>
Co-authored-by: Ian Chua <iancrb00@gmail.com>
Co-authored-by: Draginraptor <draginraptor@gmail.com>
Co-authored-by: ExPikaPaka <112851715+ExPikaPaka@users.noreply.github.com>
Co-authored-by: Ian Bassi <ian.bassi@outlook.com>
Co-authored-by: Ocraftyone <Ocraftyone@users.noreply.github.com>
Co-authored-by: yw4z <ywsyildiz@gmail.com>
Co-authored-by: peterm-m <101202951+peterm-m@users.noreply.github.com>
* Fixed an issue on Windows it failed to login Orca Cloud with Google account
With this change, builds on ARM64 hosts will successfully kick off!
Unfortunately there are still missing/outdated dependencies, so the build doesn't yet succeed. This makes it much easier to check what we're failing on though.
Fix fan speed staying high
When fan speed-up time is enabled, layers can inherit a higher fan speed than intended.
If a layer ended with a role-driven fan change, the last applied fan speed
was not properly tracked. As a result, the next layer could start with an
incorrect fan state and keep the higher speed until another fan command
overrode it.
Ensure the emitted fan speed is always tracked correctly, including when
flushing buffered commands at the end of a layer.
The X1C's RTSPS server emits unreliable decode timestamps (wildly
non-monotonic jumps, sometimes none at all). The previous AVC1 path in
gstbambusrc forwarded sample.decode_time straight into the pipeline as
DTS, which made GStreamer's basesink wait for the pipeline clock to
catch up with timestamps that were thousands of seconds in the future,
freezing playback after a few seconds of streaming.
Replace the trust-the-printer approach with synthesized monotonic
timestamps, the same trick mpv uses when it reports "No video PTS!
Making something up.":
* stamp PTS = sttime + frame_count * period
* adapt period to the real inter-arrival rate via EWMA (the announced
frame_rate is also unreliable -- X1C reports 30 fps but delivers
~28 fps), keeping the synthesized timeline aligned with arrival
* apply a 100 ms lead so the sink has a small jitter buffer to
absorb the bursty 2-3-frames-then-gap delivery pattern of the
Bambu tunnel
* re-anchor only on large divergence (printer pause, stream resume,
fps change) instead of every few seconds
The MJPEG path was already wall-clock-stamping arrivals; this unifies
both formats on the same scheme.
Confirmed on an X1C in LAN-only mode (RTSPS) on Fedora 43; not tested
on P1/A1 hardware. Other Bambu printers share the same Linux source
and could see the same fix where their decode timestamps or announced
framerate are similarly unreliable, but that has not been verified.
No effect on Windows/macOS -- gstbambusrc.c is Linux-only. Trade-off
is +100 ms of camera-view latency, which is invisible for a print-
monitor use case.
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-authored-by: SoftFever <softfeverever@gmail.com>
* Fix: Enable instance collision detection in GCode and Print clearance
Squashed commit containing:
- Fix gcode path conflict detection in ConflictChecker.cpp by iterating all instances.
- Improve clearance validation in Print.cpp by calculating convex hulls per instance (fixes scaling/mirroring issues).
- Added // Orca: comments to mark changes.
* Fix Wipe Tower G-code conflict detection for WipeTower2
* Fix: Improve object/instance selection for collision and validation warnings
- Updated validation logic in Print.cpp to report specific ModelInstance instead of ModelObject for collision/clearance warnings.
- Updated NotificationManager and Plater to handle ModelInstance selection in 'Jump to' links.
- Added fallback to object selection if specific instance cannot be selected.
- Included fixes for G-code conflict detection (ConflictChecker, GLCanvas3D) to also report instances.
- Improved GUI_ObjectList to update canvas selection when items are selected via API.
* Fix: Prevent crash when loading .3mf projects
Moved update_selections_on_canvas() out of ObjectList::select_items() to avoid premature UI updates during loading. Canvas updates are now explicitly called in NotificationManager and Plater callbacks where needed.
* Fix: Address code review comments
- Fix memory allocation for extrusion layers deep copy
- Remove unused variable in GLCanvas3D
- Fix string formatting crash risk in NotificationManager
- Remove dead code in Plater
---------
Co-authored-by: SoftFever <softfeverever@gmail.com>
* Elefant foot compensation for solid layers
Elefant foot compensation for solid layers above bottommost by infill density manipulation.
* Update Fill.cpp
* change the option to expert cat
* use is_approx for float
---------
Co-authored-by: SoftFever <softfeverever@gmail.com>
changes "Pen size" to "Brush size",
moves "On overhangs only" underneath "Brush Size" and rephrases as "On highlighted overhangs only" in all translations
Co-authored-by: Hanno Witzleb <hannowitzleb@gmail.com>
* feat: Add flow rate calibration pattern selector dialog
* feat: Integrate PR #11881 and improve Flow Rate Calibration Wizard
- Integrated PR #11881: Display layer duration in G-code viewer position window.
- Enhanced Flow Rate Calibration:
- Implemented a Wizard dialog (FlowRateCalibrationDialog) using DPIDialog for Dark Mode support.
- Restricted pattern selection to 'Archimedean Chords' and 'Monotonic'.
- Integrated logic to pass the selected pattern to the calibration generation.
* fix(UI): Refactor FlowRateCalibrationDialog to calib_dlg for macOS build fix and UI consistency
Moved FlowRateCalibrationDialog from MainFrame.cpp to calib_dlg.hpp/.cpp to resolve build errors on macOS. Updated UI to match Pressure Advance calibration dialog style (Dark Mode support, RadioGroups). Logic moved to dialog class.
* Update Wiki link for flow rate calibration
* ui: replace RadioGroup with BitmapComboBox for Flow Rate pattern selection
* fix(ui): use custom ComboBox widget for Flow Rate Calibration
Replaces wxBitmapComboBox with OrcaSlicer's custom ComboBox widget to fix rendering issues on Windows (empty selection) and compilation errors on Linux.
* Refactor: Cleanup unused includes and members in FlowRate calibration dialog
* Fix: Complete rename of Flow Rate to Flow ratio in calibration menus after merge
* Fix: Update Flow Rate to Flow Ratio in Calibration Dialog and Wiki Link
---------
Co-authored-by: yw4z <ywsyildiz@gmail.com>
Co-authored-by: SoftFever <softfeverever@gmail.com>
The OnText handler in ObjectTableDialog catches WXK_ESCAPE but swallows it. Invert the logic to call Close() on Esc, and pass anything else to evt.Skip().
While at it, fix a typo in the dialog's title.
* restructures text tool ui,
moves style selector over font,
moves reset buttons after settings,
matches style popup styling to font popup
* makes operation setting single-line
* makes "Advanced" button bigger, matching BambuStudio
---------
Co-authored-by: Hanno Witzleb <hannowitzleb@gmail.com>
refactors tooltipbutton,
one common implementation,
one common shortcut data structure,
add tooltip button to text gizmo,
consistent shortcut wording
Co-authored-by: Hanno Witzleb <hannowitzleb@gmail.com>
* reduces number of clicks to change filament in objectlist
* dont set minimum width in dropdown if use_content_width == true
---------
Co-authored-by: Hanno Witzleb <hannowitzleb@gmail.com>
Co-authored-by: yw4z <ywsyildiz@gmail.com>
restructure painting tools
place "On Overhangs only" checkbox under Overhand slider,
place "Vertical"/"Horizontal" checkboxes under pen size,
move some separators,
fix changing window width in MMUSegmentation,
show "Section View" slider for gap fill too
Co-authored-by: Hanno Witzleb <hannowitzleb@gmail.com>
* Add extrusion role change G-code options
Introduces new G-code options for handling extrusion role changes at the process and filament levels. Updates configuration, GUI, and GCode logic to support 'process_change_extrusion_role_gcode' and 'filament_change_extrusion_role_gcode', allowing custom G-code insertion when the extrusion role changes.
Co-Authored-By: Rodrigo Faselli <162915171+RF47@users.noreply.github.com>
* Optimize extrusion role-change gcode handling
Cache gcode template strings and current filament id, and guard creation of DynamicConfig/placeholder processing behind a check that at least one role-change gcode is non-empty. This avoids redundant config lookups and DynamicConfig/placeholder parsing when no custom role-change gcode is defined, improving clarity and performance without changing behavior.
---------
Co-authored-by: Rodrigo Faselli <162915171+RF47@users.noreply.github.com>
* Add nightly build reproducibility checkbox
Add a required checkbox to the bug report template prompting reporters to verify the issue is reproducible in the latest nightly build (links to the nightly builds release). This helps catch issues already fixed in nightly releases and reduces duplicate reports.
* Add PR artifact download guide to template
Update the pull request template to include a commented section and a link to the OrcaSlicer wiki explaining how to download artifacts from a PR. This helps contributors and reviewers locate and retrieve build/test artifacts for verification and testing.
* Using bbs versioning for bbs atributes
* Orca tags
* Bump SLIC3R version to match current BBS
* New import logic
* to_string_sf
* 2.3.2 No tagged
* Update comment
wxWidgets defines _UNICODE globally, which causes Catch2's
catch_main.cpp to provide wmain() instead of main(). This leads to
LNK2001 "unresolved external symbol main" for all test executables
when building with BUILD_TESTS=ON on MSVC.
Add DO_NOT_USE_WMAIN compile definition to Catch2WithMain target
so that Catch2 provides the standard main() entry point.
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* WIP: benchmarking caching vs multi-thread parsing json
* stick to just caching, other functions does not seem to have any duplicate traversals
* Remove benchmarking code
* cleanup leftover code and clear cache when loading is done
---------
Co-authored-by: SoftFever <softfeverever@gmail.com>
Fix missing dirty marker for edited system printer presets
System printer presets did not display the modified (“*”) marker in the sidebar when edited. Unlike other preset types, printer presets use `printer_model` as their display label, bypassing the normal dirty-state formatting.
This patch prepends the modified suffix to the displayed name when the selected system printer preset is dirty, restoring consistent UI behavior across all preset types.
In some rare support edge cases, Orca could start extruding a new layer before moving to the correct Z height.
This happened when two support layers were generated back-to-back and the next layer started exactly where the previous one ended. In that situation, there was no movement that naturally updated the Z position first.
The code was clearing the “pending layer change” flag too early, so it lost track of the fact that a Z move was still required.
This change ensures that if a layer change is still pending, Orca will always move to the correct Z height before the first extrusion of that layer.
This guarantees that every layer starts at the correct height and fixes the missing / incorrect support layers seen in those edge cases.
Fix support preview artifacts caused by incorrect gap subdivision
Support generation could sometimes split a gap into too many steps,
even when it should fit exactly into a single layer.
This was most noticeable when max_suport_layer_height was equal to
the print layer height (e.g. 0.2 mm).
This resulted in incorrect support layering and visible artifacts
in preview.
The issue was caused by floating-point precision, where values that
should be equal to the configured limit were treated as slightly larger.
Fix by biasing the subdivision calculation with EPSILON so near-equal
values are not split into extra steps.
Applied consistently to:
- SupportMaterial (normal supports)
- TreeSupportCommon (tree stepping)
- TreeSupport (layer creation)
* Restore SVG/text→Support crash guard (#5070), disable change_part_type()
The crash fix from #5070 prevented converting SVG/text modifiers to Support
Blocker / Support Enforcer by hiding those entries in the old SingleChoiceDialog
opened from ObjectList::change_part_type(). When the "Change type" UI was
reworked into a submenu that calls ObjectList::set_volume_type() directly, the
guard was left behind in the unused change_part_type() path -- the submenu path
had no protection, silently reintroducing the #5070 crash on the submenu route
(ModelVolume::set_type() does not clear text_configuration / emboss_shape, so
the stale emboss state stays attached to a support volume).
- Guard set_volume_type(): reject SUPPORT_BLOCKER / SUPPORT_ENFORCER when any
selected volume is SVG or text, showing the same error as before.
- Wrap ObjectList::change_part_type() in #if 0 instead of deleting it: the
function is unused since the submenu rework, but keeping it in commented-out
form preserves traceability with upstream Bambu Studio (avoids merge
conflicts on each BBL sync). Suggested by RF47, confirmed by ianalexis.
* Log instead of showing user error; action guard is defense-in-depth only
Per review feedback from RF47: with the UI-side guard in #13120, the
set_volume_type() action-time check is a pure safety net -- a healthy UI
should never let the user reach it. Showing a modal error dialog would
therefore either confuse a user who did nothing wrong (if the UI guard
is bypassed by a future refactor/plugin/shortcut) or be dead code at
runtime. Log the event for developers instead, keep the early return so
the crash is still prevented.
Adjust initial- and slowdown-layer speed logic to correctly account for raft layers. Replace the previous layer checks with object_layer_over_raft(), simplify initial-layer speed selection, and split the slow_down_layers interpolation into separate branches for configurations with and without rafts so the lerp uses the correct layer offset. Also avoid applying overhang speed adjustments to object layers that are over rafts.
# Description
This commit adds the enhancement of https://github.com/OrcaSlicer/OrcaSlicer/issues/13116
- Adds checkboxes to enable or disable the fan speed override during print or after printing is completed. This allows users to, for example, only override the fan speed during printing whilst leaving the fan speed as is set in the machine gcode at the end.
- Two new flags are added for this: `activate_air_filtration_during_print[extruder]` and `activate_air_filtration_on_completion[extruder]`. These can be used to more finely control machine gcode
- Current filament settings remain as they are: `activate_air_filtration[extruder]` settings are unaffected and by default both new flags are set to true, ensuring the same set behavior as before.
# Screenshots/Recordings/Graphs
<img width="856" height="208" alt="Screenshot From 2026-04-09 18-57-14" src="https://github.com/user-attachments/assets/e71e7de3-2def-4046-b5dc-55bf3b516ce5" />
As you can see there are now checkboxes left of the fan speeds. They have their own tooltip too, which also helps identify the correct flags for users who want to adjust their machine gcode.
## Tests
I have thoroughly tested this on my own computer (CachyOS) and on my printer. I have also carefully checked the gcode in every possible state this is in and ensured that the unsaved changes dialog properly displays the labels for these settings. Flags are set properly, sliced files properly use the flags if you check for them in machine gcode and default behavior is unaffected for those who have already changed settings for air filtration. From what I can see, this does exactly what it should be doing without any issues.
* make initial layer travel move acceleration and jerk configurable
* Update spelling to match UI pattern
* Update min integer and re-order to match patterns
---------
Co-authored-by: Thomas Scheiblauer <tom@sharkbay.at>
Co-authored-by: Ioannis Giannakas <59056762+igiannakas@users.noreply.github.com>
* deps: Use CMAKE_BUILD_PARALLEL_LEVEL for dependency builds.
If set when initial CMake is run, don't hard-code the number of CPUs for all the
recursive child builds.
* build_linux: Pass -j1 for dependency build.
This is recommended by the comment at the top of deps/CMakeLists.txt, and makes
sense as the recursive build steps will pick up
CMAKE_BUILD_PARALLEL_LEVEL (otherwise the number of parallel jobs is squared).
# Description
- Changing the filament name from Z-Bolt PLA (ABS, ABS HT, PETG, PA) to Generic PLA @Z-Bolt (etc);
- Increased size of g-code thumbnails for S800 Dual and S1000/S1000 Dual;
- The profile structure has been optimized to reduce the variety of profiles for each printer model;
- Extruder temperatures for all filaments have been increased for hardened steel nozzles;
- New process profiles have been added for the 0.6mm nozzle (0.16mm High Quality and 0.20mm High Quality);
- Disabling multicolor printing for single-head printers;
- The "_BEFORE_LAYER_CHANGE" and "_AFTER_LAYER_CHANGE" macros have been added to printer profiles.
<!--
> Please provide a summary of the changes made in this PR. Include details such as:
> * What issue does this PR address or fix?
> * What new features or enhancements does this PR introduce?
> * Are there any breaking changes or dependencies that need to be considered?
-->
# Screenshots/Recordings/Graphs
<img width="762" height="257" alt="изображение" src="https://github.com/user-attachments/assets/b5c2ef09-343f-47e8-adb5-fcf682866882" />
<img width="731" height="361" alt="изображение" src="https://github.com/user-attachments/assets/b3259fed-7698-4ab2-89d7-b6b00d974b02" />
<img width="736" height="889" alt="изображение" src="https://github.com/user-attachments/assets/be79822a-da82-4715-a5c0-c393f0cb98b7" />
<!--
> Please attach relevant screenshots to showcase the UI changes.
> Please attach images that can help explain the changes.
-->
## Tests
OrcaSlicer_profile_validator.py
<img width="1053" height="84" alt="изображение" src="https://github.com/user-attachments/assets/a3427a51-e77f-40f3-a7b4-efbd62992290" />
check_profiles.yml
<img width="2203" height="681" alt="изображение" src="https://github.com/user-attachments/assets/994d0423-660a-4e0e-be4f-4b1c72b653f3" />
orca_extra_profile_check.py
<img width="1024" height="142" alt="изображение" src="https://github.com/user-attachments/assets/ddd8e3bf-b845-48fc-b736-ca80c138ce64" />
<!--
> Please describe the tests that you have conducted to verify the changes made in this PR.
-->
Fix segfault in CLI mode when extruder/filament options absent
When slicing via CLI (--slice) with a BBL printer profile such as the
P1S, update_values_to_printer_extruders and
update_values_to_printer_extruders_for_multiple_filaments dereference
option pointers without checking for nullptr first, causing a SIGSEGV.
Root cause: printer profiles that have different_extruder=true (e.g.
P1S variants) trigger these code paths even in single-extruder CLI
invocations where filament_map, extruder_type, and nozzle_volume_type
options may not be present in the resolved config.
Fix: add null guards before dereferencing option<> / dynamic_cast<>
results, consistent with the pattern used in PR #12719. Log a warning
and return early rather than crashing.
Fixes CLI --slice segfault (exit 139) with P1S profiles.
Related: #12426, #12719
# Description
<!--
> Please provide a summary of the changes made in this PR. Include details such as:
> * What issue does this PR address or fix?
> * What new features or enhancements does this PR introduce?
> * Are there any breaking changes or dependencies that need to be considered?
-->
# Screenshots/Recordings/Graphs
<!--
> Please attach relevant screenshots to showcase the UI changes.
> Please attach images that can help explain the changes.
-->
## Tests
<!--
> Please describe the tests that you have conducted to verify the changes made in this PR.
-->
Reduce the size of current and new JSONs by standardising them with 1 tab indentation instead of 4 spaces.
This effectively reduces the size by almost 20 MB.
| Current | New |
|---|---|
| 85.2 Mib | 67 Mib |
Used [JQ](https://jqlang.org/) `--tab` to automatically format every current JSON.
> [!NOTE]
> Some profiles had the arrays on the same line, but those created by Orca were in the standard format (each object below the previous one). In some cases, this increases the number of tabs due to the new lines, but the increase is negligible, and this way both the base profiles and those created by Orca maintain the same style.
* identified code for snapping to buidlplate
* rename internal name to ensure_on_bed to be consistent, saves option in 2mf, finish Move UI, use in both ensure_on_bed() functions
* makes auto_drop a per-object setting, removes global setting
* remove adUndef, add auto_drop to constructor/serialize
* fixes drop() button
* add "auto_drop" checkmark to "load as single object" dialog,
nothing changes if auto_drop == yes || "load as single object",
if auto_drop == false and "load as single object" == false the objects now retain their relative position to each other
* retains auto_drop (and printable) state when assembling or splitting objects,
adds ObjectList::printable_state_changed() overload to be able to only provide ModelObject* vector
* adds dialog when splitting to ask if auto_drop should be disabled,
only shows when auto_drop enabled and atleast one volume floating
* adds arrow indicator on bounding box if auto_drop == false
* removes unneeded code, keeps "auto_drop" naming consistent
* makes for loop simpler in set_printable, set_auto_drop and get_auto_drop,
makes get_auto_drop const,
fixes wording in Snapshot text
---------
Co-authored-by: Hanno Witzleb <hannowitzleb@gmail.com>
Co-authored-by: SoftFever <softfeverever@gmail.com>
Co-authored-by: Ian Bassi <ian.bassi@outlook.com>
* Add runtime display backend detection for Wayland support
Add LinuxDisplayBackend utility to detect X11 vs Wayland at runtime
using GDK_IS_X11_DISPLAY / GDK_IS_WAYLAND_DISPLAY macros. This is
the foundation for removing the forced GDK_BACKEND=x11 and enabling
native Wayland support.
- New files: LinuxDisplayBackend.hpp/.cpp with get_linux_display_backend(),
is_running_on_wayland(), and is_running_on_x11()
- Propagate wxHAVE_GDK_X11 / wxHAVE_GDK_WAYLAND from FindGTK3.cmake
as compile definitions to libslic3r_gui
- No-op on non-Linux platforms (returns Unknown / false)
* Fix Phase 1 code quality: pragma once, source ordering, static cache
* Make X11 initialization conditional for Wayland support
Remove the unconditional GDK_BACKEND=x11 force that blocked native
Wayland. Replace with conditional logic:
- EGL safety fallback: re-force X11 only when wxUSE_GLCANVAS_EGL is
off and WAYLAND_DISPLAY is set, with a warning log
- XInitThreads() only called when DISPLAY is set (X11 in use)
- __GLX_VENDOR_LIBRARY_NAME only set when DISPLAY is present (GLX-specific)
- WEBKIT_DISABLE_COMPOSITING_MODE only set under XWayland (both
DISPLAY and WAYLAND_DISPLAY present)
- Guard X11/Xlib.h include with __has_include for robustness
- Restore display validation to accept either DISPLAY or WAYLAND_DISPLAY
This is Phase 2 of the Wayland support plan.
* Fix Phase 2: safer EGL macro check, add clarifying comments
* Add GLAD2 library and replace GLEW linkage in build system
Set up GLAD2 as a static library to replace GLEW for OpenGL loading.
GLAD2 supports both GLX and EGL, which is required for Wayland support.
- Create src/glad/ with pre-generated GLAD2 sources (GL 4.6 compat)
- Add src/glad/CMakeLists.txt building glad as a static library
- Wire glad into src/CMakeLists.txt before libvgcode
- Modify libvgcode to use shared glad for GL path (keeps local copy
only for GLES2/Emscripten) to avoid duplicate symbol conflicts
- Replace GLEW::GLEW with glad in libslic3r_gui link libraries
Note: GLEW is kept in deps for OpenCSG. Code migration from GL/glew.h
to glad/gl.h headers will follow in Phase 3B+3C.
* Fix Phase 3A+3D: libvgcode GLAD include, dead files, dlopen dep, OpenGL link var
* Migrate from GLEW to GLAD: replace headers and API calls across codebase
Replace all #include <GL/glew.h> with <glad/gl.h> across 49 source files.
Migrate GLEW API calls to GLAD equivalents:
- glewInit/glewExperimental -> gladLoaderLoadGL()
- GLEW_EXT_* / GLEW_ARB_* extension checks -> GLAD_GL_EXT_* / GLAD_GL_ARB_*
- Remove GLEW-specific EGL/GLX mismatch #error guards (not needed with GLAD)
- Replace unavailable EXT symbols with core GL equivalents in
GLCanvas3D.cpp (GL_MAX_SAMPLES, glRenderbufferStorageMultisample,
glBlitFramebuffer, GL_READ/DRAW_FRAMEBUFFER)
- Update log messages from glewInit to gladLoadGL
* Fix Phase 3B+3C: remove GLEW find, clean EXT symbols, update attribution
- Remove find_package(GLEW) block from root CMakeLists.txt since GLEW
is no longer linked by any main application code
- Remove "glew" from SLIC3R_STATIC option description
- Replace all remaining EXT framebuffer symbols with core equivalents
in render_thumbnail_framebuffer_ext and _rectangular_selection_picking_pass
- Update AboutDialog credits from GLEW to GLAD
* Enable EGL in wxWidgets and add runtime GLX/EGL selection for Wayland
- Set wxUSE_GLCANVAS_EGL=ON in wxWidgets build and Flatpak manifest
- Add PreferGLX() call on X11 sessions for driver compatibility
- Remove Phase 2 safety fallback (EGL is now always compiled in)
- Guard SwapBuffers against hidden canvases to prevent Wayland stalls
* Fix Phase 4: move PreferGLX to app startup, fix FPS counter guard
Move wxGLCanvas::PreferGLX() from OpenGLManager::create_wxglcanvas()
(static initializer) to GUI_App::on_init_inner() before any wxGLCanvas
is constructed. This prevents a race where SkipPartCanvas could trigger
wxGLBackend::Init() before the GLX preference is set. The new location
also adds explicit is_running_on_wayland() detection with a warning for
unknown backends.
Move increment_fps_counter() inside the IsShownOnScreen() guard so FPS
is only counted when a frame is actually swapped.
* Update GLFW from 3.3.7 to 3.4 for runtime Wayland/X11 backend selection
Replace the compile-time GLFW_USE_WAYLAND flag (which locked to a single
backend) with GLFW 3.4's GLFW_BUILD_WAYLAND + GLFW_BUILD_X11 flags that
build both backends and auto-select at runtime based on the available
display server. This enables the CLI thumbnail renderer to work on both
Wayland and X11 sessions without separate builds.
* wayland: Fix UI call sites that rely on global screen coordinates
On Wayland, wxGetMousePosition() returns (0,0) and SetPosition() is a
no-op for top-level windows. Fix the highest-impact call sites:
- GLCanvas3D: Use cached m_mouse.position from event handlers instead
of wxGetMousePosition() + ScreenToClient() in get_local_mouse_position()
- Plater: Use event-relative coords via ClientToScreen(e.GetPosition())
instead of wxGetMousePosition() in 3 leave-window handlers
- BBLTopbar: Use event.GetPosition() and FindToolByPosition() directly
in mouse handlers instead of wxGetMousePosition()/FindToolByCurrentPosition()
- Search: Use focus-based dismiss logic on Wayland instead of
wxGetMousePosition()-based rect checks in SearchDialog and
SearchObjectDialog
- GUI_App: Skip SetPosition() in window_pos_restore() on Wayland where
it is a no-op; still restore size and maximize state
- Button: Position tooltip relative to button widget via ClientToScreen
instead of wxGetMousePosition()
* Fix SearchDialog Wayland dismiss: guard against search_line focus
* flatpak: Add Wayland socket permission for native Wayland support
* spec
* Fix crash on Wayland when wxWidgets lacks EGL support
Restore the safety fallback that forces GDK_BACKEND=x11 when wxWidgets
was not built with wxUSE_GLCANVAS_EGL=ON. Without this, the GLX backend
tries to access a non-existent X11 display on native Wayland, crashing
in wxGLCanvas::IsDisplaySupported() with SIGSEGV at offset 0xe4.
Also add a defense-in-depth guard in detect_multisample() that skips
the IsDisplaySupported call entirely on Wayland without EGL.
Root cause: deps/wxWidgets must be rebuilt after enabling EGL. The
compile-time check in OrcaSlicer.cpp detects the mismatch and falls
back safely.
* Fix EGL detection: use wxHAS_EGL instead of wxUSE_GLCANVAS_EGL
wxUSE_GLCANVAS_EGL is a CMake build option, NOT a C++ preprocessor
macro. The actual macro defined in wxWidgets setup.h is wxHAS_EGL.
All compile-time EGL checks were using the wrong macro, causing
the safety fallback to always trigger even with a properly built
EGL-enabled wxWidgets.
* Fix GL function pointers invalidated on Wayland/EGL
gladLoaderLoadGL() dlopen's libGL.so.1 to resolve GL function pointers
via dlsym, then immediately dlclose's the handle. On X11/GLX this is
fine because the GLX context keeps libGL.so mapped. On Wayland/EGL,
nothing else holds libGL.so open, so dlclose unmaps it and all function
pointers become dangling — causing SIGSEGV on the first GL call.
Fix: on Wayland, use gladLoadGL(eglGetProcAddress) which resolves
function pointers through the EGL loader without opening/closing
libGL.so.
* fix crash on start and various rendering issues
* fix crash on close
* small refactor
* move GPU selection to desktop file
* clean up a bit
* clean up more
* fix appimage error
- add a new mode to build in docker
- Improve AppImage
1. fix libbz2 soname differeence issue on appimage
2. Downgrade to 22.04 for better compatibility
3. improve appimage overall
Bump GitHub Actions action versions
Update workflow action versions: upgrade geekyeggo/delete-artifact from v5 to v6 and microsoft/setup-msbuild from v2 to v3 across .github/workflows/build_all.yml, build_deps.yml, and build_orca.yml. This brings workflows to newer action releases for compatibility and fixes.
* Updated profile to match latest officlal BBL tweaks
Updated the profile for the P2S with several changes to match the latest machine gcode changes made by BBL:
- Added Ventobox support
- Added air purification at the end of the print. When exhaust fan controls are setup in the filament profile, this is skipped
- Disabled auxiliary_fan by default to fix the issue that it overrides auto cooling and heating managed by the printer. Enabling this in printer settings makes it behave as before if so desired
- Updated with other tweaks made by BBL
* Reverted one line in layer change code
Reverted one line in layer change gcode as it was causing issues and was bambu studio specific anyway. Filament change works exactly as expected now.
* Re-enabled soaking time
This was a personal change that sneaked in, but may be unwanted for other users who have been using Orca for this printer for a while.
* Fixed redundant homing command and moved enable input shaping up
Fixed some issues BBL made in their original startup code that executes one redundant homing command for people who disable ABL. Also moved up the enable input shaping command to make the startup sequence quieter.
---------
Co-authored-by: SoftFever <softfeverever@gmail.com>
## Summary
Adds proper system profiles for the **Anycubic Kobra Neo** with 0.4mm nozzle (stock Marlin firmware).
This replaces the profiles from #12341 which had several issues:
- All files had `"from": "User"` instead of `"from": "system"` — causing profile loading failures
- No `inherits` or `type` fields — broke the inheritance chain
- Klipper-only gcode (not stock firmware)
- No `Anycubic.json` index entries — printer never appeared in the UI
- Cover image was 382x600 instead of 240x240 (displayed squashed)
- Profiles were subsequently removed in #12889
### Files added/modified
| File | Description |
|------|-------------|
| `machine/Anycubic Kobra Neo.json` | Base machine model (220x220x250mm) |
| `machine/Anycubic Kobra Neo 0.4 nozzle.json` | 0.4mm nozzle variant, stock Marlin gcode |
| `process/0.12mm Detail @Anycubic Kobra Neo 0.4 nozzle.json` | Detail process profile |
| `process/0.16mm Standard @Anycubic Kobra Neo 0.4 nozzle.json` | Standard process profile |
| `process/0.20mm Standard @Anycubic Kobra Neo 0.4 nozzle.json` | Standard process profile |
| `process/0.28mm Standard @Anycubic Kobra Neo 0.4 nozzle.json` | Standard process profile |
| `filament/Anycubic PLA @Anycubic Kobra Neo 0.4 nozzle.json` | PLA filament profile |
| `Anycubic Kobra Neo_cover.png` | Resized to 240x240 |
| `Anycubic.json` | Added index entries for all new profiles |
### Approach
- Based on the working **Anycubic Kobra 2 Neo** profiles (similar hardware — direct drive, 220x220 bed)
- Start gcode uses `G29` for auto bed leveling (stock Kobra Neo probes fresh each print)
- Profiles use proper `"from": "system"` and `"inherits": "fdm_machine_common"` / `"fdm_process_common"` chains
- Buildplate model and texture from #12341 are already in the repo
### Testing
- Verified profiles load correctly in OrcaSlicer 2.3.2 (no errors in log)
- Printer appears in Printer Selection dialog with correct 240x240 cover image
- Process/filament presets appear when printer is selected
- **Note:** Start/end gcode adapted from Kobra 2 Neo for stock Marlin — testing on stock firmware by Kobra Neo owners would be appreciated
Closes the gap left by #12341 and #12889.
* Fix crash-inconsistent draft shield
* Skip empty skirt G-code and fix skirt_done handling
Track whether a skirt was actually generated for the current print Z and avoid appending empty skirt G-code. Only pop m_skirt_done when a skirt was emitted to prevent corrupting skirt state across multiple instances per layer. Also use a temporary string (moved into the main gcode) to detect emptiness before updating state. Preserves existing first-layer clearing behavior.
* Union ex brims
Revert "Union ex brims"
This reverts commit bbc9a39faf318dc2df093eb2bdcebf19a4162fe9.
Update Brim.cpp
* dont repeat paths
* Update Brim.cpp
* multimaterial brim independiente
* Normal brim if is by object
* fix print order
* cleaning 1
* cleaning 2
* Normal brim if multimaterial on first layer
* fix artifact
* combine_brim optional
refactoring
* refactoring gcode.cpp
* refactoring brim.cpp
Update Brim.cpp
* Remove multimaterial first-layer check for brims
Stop detecting extruders used on the first layer and remove the is_multimaterial_first_layer guard. Simplify can_combine_brims to only consider combine_brims and whether printing is ByObject, allowing brims to be combined across extruders unless printing by object or combine_brims is disabled. Cleans up unused code and simplifies brim-generation conditions.
* Remove material specification from unified brim comment
* Update PrintConfig.cpp
* Fix return from assembly linux
* Tie deferred callback to canvas lifetime and add shutdown guards
Use m_canvas->CallAfter instead of wxGetApp().CallAfter to ensure the callback is only executed if the canvas is still alive.
Add early returns if wxGetApp().is_closing() is true before accessing plater or the 3D canvas, reducing the risk of use-after-free during application shutdown.
Addresses feedback regarding potential UI teardown race conditions.
* copilot suggestion
* Use local reference to wxGetApp() in Return button callback
Replace multiple calls to wxGetApp() with a single local reference
to improve readability and avoid redundant function calls.
* Don't assume 0.4mm nozzle; format as "unknown" if not defined.
* Skip nozzle diameter and hardness checks if nozzle info unknown.
---------
Co-authored-by: SoftFever <softfeverever@gmail.com>
# Description
The Qidi Max 4 and Q2 don't report what they are via /server/info like
the other Qidi printers apparently do. This means that filament matching
is a fool's erand because you'll never actually match anything. this
adds a fallback where we just use the configured machine type. I'm not
sure why we wouldn't just do that all the time, but I wanted to change
as little as possible.
Here's the entirety of the `/server/info` output from a Qidi Max 4:
```
{
"result": {
"klippy_connected": true,
"klippy_state": "ready",
"components": [
"secrets",
"template",
"klippy_connection",
"jsonrpc",
"internal_transport",
"application",
"websockets",
"database",
"dbus_manager",
"file_manager",
"authorization",
"klippy_apis",
"shell_command",
"machine",
"data_store",
"proc_stats",
"job_state",
"job_queue",
"history",
"http_client",
"announcements",
"webcam",
"extensions",
"octoprint_compat",
"timelapse",
"frp_manager",
"mqtt"
],
"failed_components": [],
"registered_directories": [
"config",
"logs",
"gcodes",
"timelapse",
"timelapse_frames",
"config_examples",
"docs"
],
"warnings": [],
"websocket_count": 3,
"moonraker_version": "?",
"missing_klippy_requirements": [],
"api_version": [
1,
4,
0
],
"api_version_string": "1.4.0"
}
}
```
There's no machine name or hostname. This is also what the response
looks like from a Q2, including the exact same API version numbers, so
we cannot match on that either.
In GLCanvas3D::on_mouse, avoid calling SetFocus when the currently focused window is a text input control (wxTextCtrl, wxComboBox or wxSpinCtrl). This prevents deselection bugs when the mouse leaves the window while a text control is focused. Also commented out explicit wx text-control includes near the top of the file.
Only TextCtrl needed
cleaning
Removed unused wxWidgets header includes.
Update GLCanvas3D.cpp
Co-authored-by: yw4z <yw4z@outlook.com>
Co-authored-by: yw4z <ywsyildiz@gmail.com>
The Qidi Max 4 doesn't report that it's a Qidi Max 4 via /server/info
like the other Qidi printers apparently do. This means that filament
matching is a fool's erand because you'll never actually match anything.
this adds a fallback where we just use the configured machine type. I'm
not sure why we wouldn't just do that all the time, but I wanted to
change as little as possible.
Fix: generic locale fallback on all platforms when language is unavailable
Move the locale fallback chain out of the #ifdef __linux__ block so it
applies on macOS and Windows too. Add a base-language fallback step that
strips the region code (e.g. en_IL -> en) before trying the full
fallback chain (current locale, system, best, en_US, en_UK).
Previously, if wxLocale::IsAvailable() failed on non-Linux, the app
would show an error and exit. Now it gracefully falls back to a working
locale.
Co-authored-by: SoftFever <softfeverever@gmail.com>
# Description
Upgrade wxWidgets to the latest 3.3.2.
The wxWidgets team mentioned that while 3.3 is not labeled “stable,” it
is production-ready. It isn’t labeled “stable” only because it may
introduce breaking ABI/API changes. As Linux distros are moving to
Wayland, and given the number of fixes in wxWidgets to improve Wayland
support, it’s worth upgrading to 3.3.2 instead of staying on 3.2.x.
Note:
I didn’t switch the dark mode implementation to wxWidgets for two
reasons:
1. To avoid broader changes, since the current dark mode works well with
wxWidgets 3.3.2.
2. wxWidgets dark mode doesn’t support changing themes on the fly; it
requires an application restart for the change to take effect.
# Screenshots/Recordings/Graphs
<!--
> Please attach relevant screenshots to showcase the UI changes.
> Please attach images that can help explain the changes.
-->
## Tests
<!--
> Please describe the tests that you have conducted to verify the
changes made in this PR.
-->
Commit ed88cbe removed `new WebViewWebKit` on macOS because wx 3.3
dropped the no-arg wxWebViewWebKit constructor, falling through to
wxWebView::New(). That bypassed the WebViewWebKit destructor that calls
RemoveScriptMessageHandler("wx"), reintroducing the WebKit teardown bug
the subclass was added to fix.
Restore the macOS-specific subclass path by adding a constructor that
forwards to the wx 3.3 wxWebViewConfiguration-based ctor.
wxWidgets 3.3.2 changed MSWGetStyle to add WS_CAPTION when
wxMINIMIZE_BOX/wxMAXIMIZE_BOX/wxCLOSE_BOX is set. This caused
DefWindowProc to subtract the caption height in WM_NCCALCSIZE for
maximized windows, shrinking the client area and creating a gap
above the taskbar.
Fix by handling WM_NCCALCSIZE for the maximized case explicitly
(strip only border overshoot, not caption) and removing the now
unnecessary wxEVT_MAXIMIZE workaround.
On Linux/GTK, CheckBox, RadioBox, and SwitchButton set their size to
exactly the bitmap size (18x18 or 16x16), but GTK's internal CSS padding
requires additional space, resulting in negative content width warnings.
Use GetBestSize() on GTK to account for theme padding.
wxWidgets 3.3 cmake install doesn't include private headers.
OrcaSlicer uses some private headers for accessibility support.
Add a post-install step to copy the private headers directory.
wxWidgets 3.3 bundles its own NanoSVG in bmpsvg.cpp, conflicting with
OrcaSlicer's bundled copy which includes the nsvgRasterizeXY extension.
Set wxUSE_NANOSVG=OFF in deps cmake to use OrcaSlicer's version only.
- Plater: use Add() instead of wxArrayString(size_t, wxString) ctor
- Search: change sep from std::wstring to wxString for concatenation
- SendMultiMachinePage: replace wxList::Node* with compatibility_iterator
(Node type removed in wx 3.3 with wxUSE_STD_CONTAINERS=ON)
- PhysicalPrinterDialog: disambiguate set_values() call with explicit
std::vector<std::string> (wxArrayString now also matches initializer list)
- Preferences: use ToStdString() instead of mb_str() for std::string comparison
- Plater: use wxString::FromUTF8() for wxArrayString constructor argument
In wx 3.3 with wxUSE_STD_CONTAINERS=ON, wxString is backed by
std::wstring, so direct concatenation of const char[] with
std::wstring or wxUniCharRef fails. Fix by splitting compound
concatenations into separate += operations on wxString, or by
wrapping the left operand in wxString() to use its operator+.
Files fixed:
- AuxiliaryDataViewModel.cpp: split "\\" + wxString/wstring chains
- AboutDialog.cpp: split std::string("\n") + wxUniCharRef
- Auxiliary.cpp: wrap dir.wstring() in wxString(), split "/" + wstring
In wxWidgets 3.3, wxBitmapComboBoxBase::OnAddBitmap changed its
parameter from const wxBitmap& to const wxBitmapBundle&, and m_bitmaps
was replaced by m_bitmapbundles. Update OnAddBitmap signature and
OnDrawItem to use wxBitmapBundle, extracting wxBitmap via
GetBitmap(GetDefaultSize()) where needed.
- Handle z contouring in variable speed flow when emitting GCode
- Add logic to restore nominnal z height for regular extrusions
- preserve z_contoured flag when splitting extrusion paths
- Wrap GetToolTipCtrl() call in GUI_App.cpp with #if wxVERSION_NUMBER < 3300
guard, as this API may not be accessible in wxWidgets 3.3. The dark tooltip
theming is cosmetic and non-critical.
- Add explicit #include <wx/utils.h> to 7 source files that use functions from
that header (wxGetMousePosition, wxLaunchDefaultBrowser, wxGetDisplaySize,
wxBell) but relied on transitive includes. This preempts breakage from
wxWidgets 3.3 reducing transitive includes.
Files with wx/utils.h added: BBLTopbar.cpp, CreatePresetsDialog.cpp,
CameraPopup.cpp, GLCanvas3D.cpp, GCodeViewer.cpp, GUI_ObjectList.cpp,
FilamentMapPanel.cpp.
Skipped BindDialog.cpp and FilamentPickerDialog.cpp as they already include
wx/wx.h which provides wx/utils.h transitively.
Part of wxWidgets 3.1.5 -> 3.3.2 upgrade.
In wxWidgets 3.3, wxWindow::Raise() no longer implies Show(). Add
explicit Show() before Raise() in two event handlers that activate the
main frame from another instance (load model, start download), and swap
the Show/Raise order in bring_instance_forward() so Show() precedes
Raise().
wxTRANSPARENT_WINDOW is removed in wxWidgets 3.3. Remove all 3
occurrences in MainFrame.cpp:
- ResizeEdgePanel constructor: already uses wxBG_STYLE_TRANSPARENT
via SetBackgroundStyle(), so the flag was redundant
- slice_panel and print_panel: drop the style parameter entirely
(defaults to 0)
wxWidgets 3.2+ asserts on invalid sizer flag combinations where
wxEXPAND (which fills the entire space in the secondary direction)
is combined with wxALIGN_* flags (which are meaningless when expanding).
Remove the conflicting wxALIGN_* flags from all 112 occurrences across
21 files, keeping wxEXPAND and any non-conflicting flags intact.
Since we now target wxWidgets 3.3, all wxCHECK_VERSION(3,1,N) checks
are always true. Remove the guards keeping only the true branches:
- I18N.hpp: Remove version guard around _wxGetTranslation_ctx macro
- ExtraRenderers.hpp, GUI_App.hpp: Simplify SUPPORTS_MARKUP to check
only wxUSE_MARKUP (version check always true)
- ConfigWizard.cpp: Remove manual wxArrayInt comparison fallback
- SendSystemInfoDialog.cpp: Simplify display scaling guard to _WIN32 only
- GUI_Utils.cpp: Remove IsDark() fallback using luma approximation
- wxinit.h: Remove legacy wxEVT_BUTTON and wxEVT_HTML_LINK_CLICKED
compat macros (these event names exist natively in wx 3.3)
wxWidgets 3.3 requires macOS 10.11+, making the 10.9.5-specific crash
workaround in OpenGLManager impossible to trigger. Remove:
- OSInfo struct and s_os_info static member from the header
- OS version recording in init_glcontext()
- Conditional wxGLContext deletion in the destructor (now always deletes)
- Unused #include <wx/platinfo.h>
The MacDarkMode.hpp include is retained as mac_max_scaling_factor() is
still used by GLInfo::get_max_tex_size().
wxWidgets 3.1+ accepts const argv arrays (const wchar_t* const* and
const char* const*) in wxExecute(), making the const_casts unnecessary.
Remove all 14 const_cast<char**>/const_cast<wchar_t**> wrappers around
wxExecute calls and their associated FIXME comments across GUI.cpp,
NotificationManager.cpp, and Downloader.cpp.
Remove scale_win_font() and scale_controls_fonts() functions along
with the #if !wxVERSION_EQUAL_OR_GREATER_THAN(3,1,3) guard in
rescale(). Since wx >= 3.1.3 is now guaranteed, this code could
never execute and the functions had no other callers.
Since we now target wxWidgets 3.3, the custom DPI change event
workaround (DpiChangedEvent, EVT_DPI_CHANGED_SLICER,
register_win32_dpi_event) is dead code. wxWidgets 3.1.3+ provides
native wxEVT_DPI_CHANGED / wxDPIChangedEvent which is already
wired up in the "true" branch of the version guards.
Removes:
- DpiChangedEvent struct and EVT_DPI_CHANGED_SLICER declaration/definition
- register_win32_dpi_event() function and its call site
- All associated #if !wxVERSION_EQUAL_OR_GREATER_THAN(3,1,3) guards
* Aktualisiere deutsche Übersetzungen in der i18n-Datei für bessere Klarheit und Konsistenz
* Update German localization for OrcaSlicer
- Improved translations for various messages, ensuring clarity and consistency.
- Corrected terminology for technical terms such as "flow ratio" and "emboss text object."
- Adjusted phrasing for better readability and grammatical accuracy.
- Removed redundant or unclear phrases to streamline user experience.
- Added new entries for warnings and notifications related to printer operations.
* typo
# Description
<!--
> Please provide a summary of the changes made in this PR. Include
details such as:
> * What issue does this PR address or fix?
> * What new features or enhancements does this PR introduce?
> * Are there any breaking changes or dependencies that need to be
considered?
-->
# Screenshots/Recordings/Graphs
<!--
> Please attach relevant screenshots to showcase the UI changes.
> Please attach images that can help explain the changes.
-->
## Tests
<!--
> Please describe the tests that you have conducted to verify the
changes made in this PR.
-->
# Description
update cmake to 4.3.x version for better support of new build tools
# Screenshots/Recordings/Graphs
<!--
> Please attach relevant screenshots to showcase the UI changes.
> Please attach images that can help explain the changes.
-->
## Tests
<!--
> Please describe the tests that you have conducted to verify the
changes made in this PR.
-->
# Description
We want to ignore everything on this path so that the build uses its own
dependencies rather than picking up, e.g., the wrong version of libpng
just because that's what someone has in their MacPorts.
This fixes https://github.com/OrcaSlicer/OrcaSlicer/issues/10460
## Tests
I confirmed that this patch fixes the build (`./build_release_macos.sh
-x`).
Defaults to ignore:
/opt/local (MacPorts)
/opt/homebrew (Homebrew on ARM)
/opt/local (Homebrew on x86)
We want to ignore these paths so any dependencies they might contain don't interfere with the build.
This fixes https://github.com/OrcaSlicer/OrcaSlicer/issues/10460
# Description
<!--
> Please provide a summary of the changes made in this PR. Include
details such as:
> * What issue does this PR address or fix?
> * What new features or enhancements does this PR introduce?
> * Are there any breaking changes or dependencies that need to be
considered?
-->
# Screenshots/Recordings/Graphs
<!--
> Please attach relevant screenshots to showcase the UI changes.
> Please attach images that can help explain the changes.
-->
## Tests
<!--
> Please describe the tests that you have conducted to verify the
changes made in this PR.
-->
# Description
tweak some wipe tower related warnings to reduce confusion
1. Skip flushing volume validation for multi-tool printers
2. check precise_z_height and enable_prime_tower conflicts in print
validate
# Screenshots/Recordings/Graphs
<!--
> Please attach relevant screenshots to showcase the UI changes.
> Please attach images that can help explain the changes.
-->
## Tests
<!--
> Please describe the tests that you have conducted to verify the
changes made in this PR.
-->
Flushing volumes only apply to SEMM and BBL printers. Multi-tool printers don't perform filament purging between tool changes, so the zero-volume warning was being incorrectly triggered.
# Description
Reverted PR #12191 and #12777 and added new fixes. This also resolves an
issue where, in some cases, the sliced result was immediately
invalidated after the first slicing.
# Screenshots/Recordings/Graphs
<!--
> Please attach relevant screenshots to showcase the UI changes.
> Please attach images that can help explain the changes.
-->
## Tests
<!--
> Please describe the tests that you have conducted to verify the
changes made in this PR.
-->
# Description
Previously, wipe tower behavior was determined by the printer model.
In this PR, we introduced an option that lets users choose which wipe
tower type to use.
BBL printers remain hardcoded to Type 1. Qidi profiles default to Type
1.
This may be useful for users with a filament-cutter-based system
(similar to Bambu printers) who want to use similar configurations—they
can select the "Type 1" wipe tower. That said, Wipe Tower Type 2 is
generally recommended for all printers, whether they use a typical MMU
setup, a filament cutter, or a tool changer.
# Screenshots/Recordings/Graphs
<img width="1307" height="854" alt="Screenshot 2026-03-15 at 22 27 29"
src="https://github.com/user-attachments/assets/04bc5c42-88c4-458a-a933-a22f8408b6a8"
/>
## Tests
<!--
> Please describe the tests that you have conducted to verify the
changes made in this PR.
-->
The check_profiles workflow used gh pr comment directly, which fails for
fork PRs due to read-only GITHUB_TOKEN. Split into artifact upload +
workflow_run pattern so comments post with proper write permissions.
## FIXES
• Corrects area height on windows while using 125% and 175% scaling. it
shows scrollbar when it incorrectly set. i have used directly size of
combobox this time instead static number
## IMPROVEMENTS
• Removes restriction for restarting orca when setting changed
# Description
Add the localization/ directory to the Flatpak source list so
run_gettext.sh can compile .po files into .mo translations.
Replace LC_ALL=C.UTF-8 with LC_NUMERIC=C in the entrypoint script to
preserve the user's language settings while still preventing
decimal-separator parsing issues.
fixes#12714
# Screenshots/Recordings/Graphs
<!--
> Please attach relevant screenshots to showcase the UI changes.
> Please attach images that can help explain the changes.
-->
## Tests
<!--
> Please describe the tests that you have conducted to verify the
changes made in this PR.
-->
Add the localization/ directory to the Flatpak source list so
run_gettext.sh can compile .po files into .mo translations.
Replace LC_ALL=C.UTF-8 with LC_NUMERIC=C in the entrypoint script
to preserve the user's language settings while still preventing
decimal-separator parsing issues.
# Description
This pull request fixes the bug where Orca Slicer enters an infinite
loop when a density of zero is introduced for the top layer solid infill
# Screenshots/Recordings/Graphs
<img width="2560" height="1392" alt="image"
src="https://github.com/user-attachments/assets/5bf5c220-a398-483f-9f69-63dadbc888af"
/>
Note: For bottom solid infill, this is not a problem because the minimum
density is 10%.
Makes sure all non-bbl printers go through the same filament reordering
code so custom filament sequence is properly handled, while skipping the
filament grouping part by mapping all filaments to group 0.
This is the same method used by BBL printer to calculate the optimal
filament grouping so should be robust.
Fix#12449Fix#12766
# Description
<!--
> Please provide a summary of the changes made in this PR. Include
details such as:
> * What issue does this PR address or fix?
> * What new features or enhancements does this PR introduce?
> * Are there any breaking changes or dependencies that need to be
considered?
-->
Happy Hare now writes mmu lane data to the moonraker db similar to AFC,
so we can normalize to the one implementation. For now, i've just
re-ordered it so that the moonraker db is checked first. I want this
because I've actually updated the happy hare data to include more data
than we had access to via the "mmu" object. For happy hare we now have
access to vendor name, which we can eventually use to further fine tune
the auto-matched filament preset.
# Screenshots/Recordings/Graphs
<!--
> Please attach relevant screenshots to showcase the UI changes.
> Please attach images that can help explain the changes.
-->
_n/a_
## Tests
<!--
> Please describe the tests that you have conducted to verify the
changes made in this PR.
-->
# Description
Qidi printers run Klipper and we don't want arc fitting enabled for
these.
This is wrongly enabled in QidiStudio as well, likely where these
profiles originated.
With certain irrational beam interlocking parameters, it will take a few
minutes to complete the interlocking generation; even worse:
cancellation doesn't work once it started.
This PR fix that by adding cancellation check inside some of the most
time consuming loops so it can be stopped ASAP.
Also cherry picked a sanity check from
https://github.com/bambulab/BambuStudio/pull/9925 by @mpaperno. Thanks!
The following test project (which was modified from the upper PR by
@mpaperno) took me more than 90s to complete with 0.1mm beam width:
[Interloack-Test2.orca.3mf.txt](https://github.com/user-attachments/files/25975637/Interloack-Test2.orca.3mf.txt)
# Description
I was just building the project and checked out the CMakeLists to see if
there are some optional features I can disable to speed up compilation
and tripped on this chinese comment.
This just translates the comment to English for consistency
Previously, wipe tower behavior was determined by checking if the printer
was a QIDI vendor. This introduces a configurable enum (Type 1 / Type 2)
so any printer can select its wipe tower implementation. BBL printers
remain hardcoded to Type 1. Qidi profiles default to Type 1.
# Description
The wipe tower config position (wipe_tower_x/y) could be outside the plate boundary (e.g. default y=250 on a 200mm printer). No constraint was applied at slice time, so the tower was generated out-of-bounds.
issue reported in #12731
# Screenshots/Recordings/Graphs
<!--
> Please attach relevant screenshots to showcase the UI changes.
> Please attach images that can help explain the changes.
-->
## Tests
<!--
> Please describe the tests that you have conducted to verify the changes made in this PR.
-->
The wipe tower config position (wipe_tower_x/y) could be outside the
plate boundary (e.g. default y=250 on a 200mm printer). No constraint
was applied at slice time, so the tower was generated out-of-bounds.
Happy Hare now writes mmu lane data to the moonraker db similar to AFC, so we can normalize to the one implementation. For now, i've just re-ordered it so that the moonraker db is checked first. I want this because I've actually updated the happy hare data to include more data than we had access to via the "mmu" object. For happy hare we now have access to vendor name, which we can eventually use to further fine tune the auto-matched filament preset.
std::map::at() throws std::out_of_range when option.category or
"Basic information" is not present in the tab's category_icon_map,
crashing the app. Replace with a safe find()-based helper lambda
that falls back to an empty string (no icon) when the key is missing.
Add a guard that skips creating fill params for top surfaces when the configured density is less than or equal to zero. This avoids generating surface fills for zero/negative densities and prevents unnecessary processing or potential errors when top surface density is disabled.
In CLI mode, PartPlateList is constructed with a NULL plater pointer
(OrcaSlicer.cpp:3612). When set_shapes() calls PartPlate::set_shape(),
it unconditionally executes render data preparation code that
dereferences the null plater through calls like generate_print_polygon()
→ wxGetApp().plater(), causing a segmentation fault (exit code 139).
This adds a null check on m_plater in PartPlate::set_shape() to skip
the render-only code block that generates logo triangles, print/exclude
polygons, gridlines, icon vertices, and plate name textures.
These rendering operations are not needed in CLI mode and this change
has no impact on GUI mode where m_plater is always valid.
* Fix GIT_COMMIT_HASH not set in Flatpak builds
The env var check was gated inside the .git directory check, so
Flatpak builds (which exclude .git from the sandbox) always fell
back to "0000000". Lift the env var check to top level and inject
the commit hash into the Flatpak manifest via build-options.env.
* Switch Flatpak build to Clang/LLD via LLVM 21 SDK extension
- Add org.freedesktop.Sdk.Extension.llvm21
- Bump runtime to GNOME 49 (SDK 25.08) for llvm21 availability
* fix build errors and improving build speed for flatpak
* fxi more build errors
* Update error messages for GNOME Platform and SDK versions
The env var check was gated inside the .git directory check, so
Flatpak builds (which exclude .git from the sandbox) always fell
back to "0000000". Lift the env var check to top level and inject
the commit hash into the Flatpak manifest via build-options.env.
Fix hotkeys blocked in Prepare view when notification is shown
Restore SetFocus() in the GLCanvas3D mouse-entering handler so the
canvas reclaims wxWidget keyboard focus whenever the mouse enters it
(provided the main window is active). Without this, clicking a sidebar
control or a UI update triggered by slicing could leave the canvas
without focus, causing hotkeys like Tab to stop working until the user
clicked the canvas or dismissed the notification.
* optimize resize feature on Linux
* fix the black screen issue on app startup on Linux
* Fixed an issue that Filament Grouping dialog always popup on Linux
* Fix an issue that on Linux the project name or model file name was not displayed in title bar
* optimize resize feature on Linux
* fix the black screen issue on app startup on Linux
* Fixed an issue that Filament Grouping dialog always popup on Linux
# Description
Esthetic filaments such as wood-infused, matte and marble filaments will now be handled by the Snapmaker printer agent so that they could be matched to more appropriate print profiles instead of generic PLA.
When flush_multiplier is applied to flush_volumes_matrix values, the
result can be a decimal (e.g., 272 * 1.3 = 353.6). Some printer firmware
metadata parsers (notably Creality K2) crash when parsing decimal values
in flush_volumes_matrix, causing prints to get stuck at "File selected".
This fix rounds the multiplied values to integers, ensuring compatibility
with firmware that expects integer values in this field.
Fixes compatibility with Creality K2 and potentially other Klipper-based
printers that parse the CONFIG_BLOCK metadata.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-authored-by: Claude <noreply@anthropic.com>
# Description
<!--
> Please provide a summary of the changes made in this PR. Include details such as:
> * What issue does this PR address or fix?
> * What new features or enhancements does this PR introduce?
> * Are there any breaking changes or dependencies that need to be considered?
-->
Added eSUN Filament PLA Basic, Marble, Matte to Orca Filament Library
<img width="811" height="331" alt="image" src="https://github.com/user-attachments/assets/5cda8b59-cd44-4e32-bae0-d08d2346dd39" />
## Tests
<!--
> Please describe the tests that you have conducted to verify the changes made in this PR.
-->
```
./OrcaSlicer_profile_validator -v eSUN
Total loaded vendors: 1
Validation completed successfully
```
Translation added
# Description
<!--
> Please provide a summary of the changes made in this PR. Include details such as:
> * What issue does this PR address or fix?
> * What new features or enhancements does this PR introduce?
> * Are there any breaking changes or dependencies that need to be considered?
-->
# Screenshots/Recordings/Graphs
<!--
> Please attach relevant screenshots to showcase the UI changes.
> Please attach images that can help explain the changes.
-->
## Tests
<!--
> Please describe the tests that you have conducted to verify the changes made in this PR.
-->
### Description
A couple of warning dialogs still used a caption containing "**BambuStudio warning**". It is a leftover from the original BambuStudio codebase.
### This PR
- removes the explicit caption so the dialogs use the standard application warning title instead.
### Result
- removes the remaining Bambu reference while keeping the visible behavior consistent with the rest of the UI.
- addresses point 1. of "New ports from Bambu Studio" section from #12684
### Screenshots
- **Before:**
<img width="1352" height="277" alt="image" src="https://github.com/user-attachments/assets/d107acaa-f159-496a-b14e-93cd149bf355" />
- **After:**
<img width="1356" height="278" alt="image" src="https://github.com/user-attachments/assets/e111b5b3-9b3e-4b13-b20d-f98e5173ea16" />
Added entry to wipingdialog.html css to prevent it from being overscrollable and its position fixed.
Added escape button to close dialog event on both javascript and webview events
JIRA-136
# Description
When using the Bambu H2D, users can use Filament Grouping, a button found next to the bed preview. When not on a H2D profile, the button is hidden. However, it remained usable, and clicking an empty space below all the buttons causes the dialog to appear.
This PR fixes that by adding a check before the button is registered.
Addresses point 9 (focusing on the 2nd bullet) in #12684
## Tests
Tried to click on the empty area right below the column of buttons (see the below images)
Made sure to have the H2D profile loaded as well, and checked that the dialog still opens for that printer.
H2D active
<img width="1635" height="949" alt="image" src="https://github.com/user-attachments/assets/da6fb03b-e3c8-4504-ac60-b96ecc6347dc" />
Area to click for the invisible button
<img width="935" height="788" alt="image" src="https://github.com/user-attachments/assets/1f001bcf-0224-4922-b5bf-47a95820e536" />
The WipeTower2 code path never called construct_mesh(), leaving
wipe_tower_mesh_data as std::nullopt. GCode export then dereferenced
it unconditionally, triggering an assertion failure / crash.
1. Dirty flags not showing for extruder options:
2. Crash when switching to non-first extruder tabs:
3. Modifying one extruder's parameter affects other extruders:
* Linux: prefer discrete GPU on dual-GPU systems via PRIME environment variables
Set DRI_PRIME=1 for AMD/nouveau PRIME setups and __NV_PRIME_RENDER_OFFLOAD/__GLX_VENDOR_LIBRARY_NAME for NVIDIA proprietary driver, only when the NVIDIA kernel module is detected. Uses replace=false to respect user overrides.
* Improves usability on Linux. No more double title bar (#12600)
* Fix double title bar on Linux by removing WM decorations for GTK
* wip
* fix
* finish
* address review comment
Fix crash in PA calibration pattern generation
Reset current extruder ID and clear pointers in set_extruders to prevent dangling pointers when extruders are recreated. Also fixed undefined behavior by checking if the vector is empty before taking max_element.
Co-authored-by: SoftFever <softfeverever@gmail.com>
## Summary
- Change default bed temperature type from "By First filament" to "By Highest Temp"
- Move `bed_temperature_formula` option from develop mode to advanced mode for better accessibility
- Relocate UI control from "Basic Information - Advanced" to "Multimaterial Setup" section where it's more relevant for multi-filament printing
Using the highest temperature of all printed filaments is generally safer for bed adhesion than using the first filament's temperature, especially in multi-material prints where different filaments may require different bed temperatures.
<img width="390" height="239" alt="Screenshot 2026-02-26 at 18 44 56" src="https://github.com/user-attachments/assets/0fe9f8c7-062a-4a7a-8ab3-c52df7e74b26" />
# Description
This PR enhances the GCodeProcessor's time estimation by incorporating Junction Deviation (JD) into the jerk calculations, providing more accurate print time predictions for firmwares that use JD (like modern Marlin).
Key Changes:
- Added JD support to time estimation
- Reads machine_max_junction_deviation (machine limits) and default_junction_deviation (print profile)
- When JD is enabled (>0), replaces traditional X/Y jerk values with JD-based calculation:
$Jerk = \sqrt{2.5\cdot JD \cdot acceleration }$
- Falls back to traditional jerk when JD is not used
# Test:
JD:0.0256mm Accel.: 1000 mm/s²
<img width="2560" height="1392" alt="image" src="https://github.com/user-attachments/assets/f0e95294-bfca-400e-bffc-8d615d051b70" />
Jerk: 8mm/s (equivalent)
<img width="2560" height="1392" alt="image" src="https://github.com/user-attachments/assets/8508727e-70f6-49ed-ac19-002db73e957b" />
JD:0.0128mm (4mm/s jerk)
<img width="2560" height="1392" alt="image" src="https://github.com/user-attachments/assets/91b04d3b-1b9e-48f4-b4b4-5addda2eff57" />
* 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 <minicx@disroot.org>
* Port Pressure Advance visualization to libvgcode architecture
Adapt PA visualization (originally in commit e3a77259) 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 <minicx@disroot.org>
---------
Signed-off-by: minicx <minicx@disroot.org>
Co-authored-by: Ioannis Giannakas <59056762+igiannakas@users.noreply.github.com>
Co-authored-by: Claude <noreply@anthropic.com>
* 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 c6d1c11ebb 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 https://github.com/OrcaSlicer/OrcaSlicer/issues/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 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
* Fix: Range check added for coInt options; Ranges and defaults added in tooltips
---------
Co-authored-by: Noisyfox <timemanager.rick@gmail.com>
Co-authored-by: SoftFever <softfeverever@gmail.com>
* 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 <sezginacikgoz@mail.com>
* Optimize retraction settings in printer profiles to reduce stringing and improve print quality
Signed-off-by: Sezgin AÇIKGÖZ <sezginacikgoz@mail.com>
---------
Signed-off-by: Sezgin AÇIKGÖZ <sezginacikgoz@mail.com>
* Fix preheat regression bugs (#12438)
Fix preheat regression bugs
revert 769fc137c7
* Fix the issue where `resources/profiles/OrcaFilamentLibrary.json` is not updated accordingly.
---------
Signed-off-by: minicx <minicx@disroot.org>
Signed-off-by: Sezgin AÇIKGÖZ <sezginacikgoz@mail.com>
Co-authored-by: Rodrigo Faselli <162915171+RF47@users.noreply.github.com>
Co-authored-by: Kiss Lorand <50251547+kisslorand@users.noreply.github.com>
Co-authored-by: SoftFever <softfeverever@gmail.com>
Co-authored-by: minicx <39405619+loss-and-quick@users.noreply.github.com>
Co-authored-by: Ioannis Giannakas <59056762+igiannakas@users.noreply.github.com>
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Alexandre Folle de Menezes <afmenez@terra.com.br>
Co-authored-by: yw4z <ywsyildiz@gmail.com>
Co-authored-by: Valerii Bokhan <80919135+valerii-bokhan@users.noreply.github.com>
Co-authored-by: Noisyfox <timemanager.rick@gmail.com>
Co-authored-by: Sezgin AÇIKGÖZ <sezginacikgoz@mail.com>
Added checks in ByLayer print sequence to handle ordering for Intra-layer ordering option. Prevents new ordering setup when "As object list" is enabled.
* 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 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
* Fix: Range check added for coInt options; Ranges and defaults added in tooltips
---------
Co-authored-by: Noisyfox <timemanager.rick@gmail.com>
Co-authored-by: SoftFever <softfeverever@gmail.com>
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 c6d1c11ebb 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
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.
* Add Pressure Advance visualization support
Signed-off-by: minicx <minicx@disroot.org>
* Port Pressure Advance visualization to libvgcode architecture
Adapt PA visualization (originally in commit e3a77259) 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 <minicx@disroot.org>
---------
Signed-off-by: minicx <minicx@disroot.org>
Co-authored-by: Ioannis Giannakas <59056762+igiannakas@users.noreply.github.com>
Co-authored-by: Claude <noreply@anthropic.com>
* Reapply "Switch to self hosted mac runner (#12024)" with proper fix
This reverts commit 783f9926e3.
* use conditional logic for self-hosted runners
* improve readbility
- Add configurable GLEW_USE_EGL option (default OFF) to match wxWidgets
- Explicitly set wxUSE_GLCANVAS_EGL=OFF for vendored wxWidgets build
- Add compile-time check to detect EGL/GLX backend mismatch between
GLEW and wxWidgets, preventing silent rendering failures
The bug occurred when GLEW was compiled with EGL support (using
eglGetProcAddress) but wxWidgets created GLX contexts. This mismatch
caused OpenGL function pointers to fail loading, resulting in blank
3D model preview.
Co-authored-by: SoftFever <softfeverever@gmail.com>
Wipe tower interface features and preheat fixes
Fresh PR branch rebuilt on upstream/main (squash of origin/BBL-studio-wipe-tower-merge) to avoid merge-history issues.
* Add Rectilinear Support for Normal support type. Fix issue #9508.
* Remove duplicate the rotation logic, use raft_interface_angle function.
---------
Co-authored-by: SoftFever <softfeverever@gmail.com>
* Fix extruder_id out-of-bounds in switch_excluder
Added a check to reset extruder_id to 0 if it exceeds the size of nozzle_volumes or extruders, preventing potential out-of-bounds access.
Co-Authored-By: Christopher R. Palmer <1305033+crpalmer@users.noreply.github.com>
* Add custom nozzle diameter option in sidebar
Ensures that if the actual nozzle diameter is not present in the list, it is added as a custom option. This improves user experience by allowing selection of non-standard nozzle diameters.
Refactor nozzle diameter selection logic in Sidebar
Simplified the logic for updating the extruder nozzle diameter combo box by removing redundant checks and streamlining the addition of custom nozzle diameters. This improves code clarity and ensures the actual nozzle diameter from the printer config is always considered.
Co-Authored-By: yw4z <yw4z@outlook.com>
* Prevent profile switch if selected diameter matches nozzle
Adds a check in Sidebar::priv::switch_diameter to avoid switching printer profiles when the selected diameter matches the current nozzle diameter in the configuration. This prevents unnecessary profile changes and improves user experience.
---------
Co-authored-by: Christopher R. Palmer <1305033+crpalmer@users.noreply.github.com>
Co-authored-by: yw4z <yw4z@outlook.com>
New translation OrcaSlicer
# Description
<!--
> Please provide a summary of the changes made in this PR. Include details such as:
> * What issue does this PR address or fix?
> * What new features or enhancements does this PR introduce?
> * Are there any breaking changes or dependencies that need to be considered?
-->
# Screenshots/Recordings/Graphs
<!--
> Please attach relevant screenshots to showcase the UI changes.
> Please attach images that can help explain the changes.
-->
## Tests
<!--
> Please describe the tests that you have conducted to verify the changes made in this PR.
-->
* fixes: keys_map is initialized with itself [-Winit-self]
* fixes: operation on repeats may be undefined [-Wsequence-point]
* fixes: warning: suggest parentheses around && within || [-Wparentheses]
* fixes: moving brim_points to itself [-Wself-move]
* fixes: operation on unprintability may be undefined [-Wsequence-point]
* fixes: extra tokens at end of #endif directive [-Wendif-labels]
* fixes: converting to non-pointer type int from NULL [-Wconversion-null]
* review result: simplifies fix 'operation on repeats may be undefined'
# Description
The current bounding box selection display loses all usefulness once the furthest apart objects are selected.
This is especially noticeable on grid patterns, where nested unselected elements become indistinguishable after selecting all.
This PR implements a highlighting method that visually brightens individually selected objects.
# Screenshots/Recordings/Graphs
<img width="1845" height="829" alt="image" src="https://github.com/user-attachments/assets/a92a7176-182c-41e2-869e-badb220dfee2" />
Current 2.3.1: All but some objects are selected. Can you tell which ones?
<img width="2169" height="1042" alt="image" src="https://github.com/user-attachments/assets/c6c721d5-4f03-4c23-beff-b0acc0601568" />
Proposed PR: Slight lightening of selected objects
## Tests
Built on windows, tested with various colors and non-printable
Sorry had to re-create the PR as I did some chaos in my repo with CLI. xD
Fixes issue https://github.com/OrcaSlicer/OrcaSlicer/issues/10971
Description:
Fix wipe tower filament selection and clean up tool ordering. Added wipe_tower_filament handling to WipeTower2 (store config, mark non-selected tools as “soluble,” and use it in toolchange selection) and ensured the configured wipe‑tower extruder is included in the extruder list for ordering. Removed duplicated/merged tool‑ordering code (extra insert_wipe_tower_extruder definition, duplicate declaration, and redundant reorder block) so the tool order logic runs only once.
<img width="1819" height="799" alt="image" src="https://github.com/user-attachments/assets/cef39026-cf6a-46da-a87a-ef895774699f" />
This PR adds a new filament sync mode setting for device-based filament synchronization.
Users can now choose between syncing both filament preset + color (current behavior) or syncing color only, so calibrated local filament profiles are preserved while still updating slot colors from the printer.
It also includes small UI improvements for the new preference entry and sync status messaging.
<img width="665" height="671" alt="image" src="https://github.com/user-attachments/assets/23980846-0113-48ab-84aa-adf5cdab8ab6" />
External spools (virtual trays) are not AMS slots and should not count
toward the firmware's 16-material limit. Fixes blocking error when using
4 AMS units (16 slots) plus an external spool (17 total).
Fixes#12135
extrude_to_xyz() unconditionally emitted Z on every extrusion move
via emit_xyz(), even when Z hadn't changed. With ZAA enabled, this
produced ~987K redundant Z coordinates (98.2% of all Z emissions),
causing 10-20% file bloat.
Now compares quantized Z values before and after, and only emits Z
when it actually differs at export precision (0.001mm). Reduces
ZAA gcode Z emissions from 1,038,468 to 50,022 while preserving
all legitimate contouring Z changes.
The split point was being prepended (append_before) to p1 instead of
appended, causing it to be placed at the start of the segment rather
than the end. This resulted in rogue extrusion jumps (stringing)
across the model during ZAA sloped extrusions.
Also adds missing append/append_before calls in the exact-point
(index != -1) branch, which previously lost the split point entirely.
- build.sh: Handles full lifecycle (deps, configure, incremental build)
with auto-detection of architecture, CMake 4.x compat, and preflight checks
- BUILD.md: Beginner-friendly walkthrough from zero (no Xcode, no Homebrew,
no git) to running OrcaSlicer.app
Port Z Anti-Aliasing from BambuStudio-ZAA (https://github.com/adob/BambuStudio-ZAA)
to OrcaSlicer. ZAA eliminates stair-stepping on curved and sloped top surfaces
by raycasting each extrusion point against the original 3D mesh and micro-adjusting
Z height to follow the actual surface geometry.
Key changes:
- Add ContourZ.cpp raycasting algorithm (~330 lines)
- Extend geometry with 3D support (Point3, Line3, Polyline3, MultiPoint3)
- Template arc fitting for 2D/3D compatibility
- Change ExtrusionPath::polyline from Polyline to Polyline3
- Add 5 ZAA config options (zaa_enabled, zaa_min_z, etc.)
- Add posContouring pipeline step in PrintObject
- Update GCode writer for 3D coordinate output
- Add ZAA settings UI in Print Settings > Quality
- Add docs/ZAA.md with usage and implementation details
ZAA is opt-in and disabled by default. When disabled, the slicing pipeline
is unchanged.
* Add checks to snap wipe tower back to origin when it was loaded outside the plate boundary
* Fix Wipe Tower preview outside plate boundary and warning notification
- snaps wipe tower preview to nearest edge if it was loaded outside of plate boundary.
- Added warning notification to notify position change
# Description
Transforming internal 3D Files to DRC to reduce orca size
## Calibs
(Not counting temperature_tower)
Original 6,01 MB
Converted 1,57 MB
- Mesh (STL/3MF) to LossLess DRC
- SCV-V2 116kb -> 15kb
- fast_tower_test 66kb -> 9kb
- ringing_tower 172kb -> 22kb
- pressure_advance_test 124kb -> 16kb
- tower_with_seam 2kb -> 1kb
- retraction_tower 1.726kb -> 97kb (done at 25, if 0 = 212kb)
- ~~temperature_tower~~ Updated, fixed, wider range and Draco in: #12103 5.075kb -> 485kb
- vfa 1.453kb -> 179kb
- Step
- SpeedTestStructure 1.312kb -> 86kb
- Imported:
- Linear Deflection: 0.002
- Angle Deflection: 0.25
- Exported as LossLess DRC
## Handy Models
Original 4,66 MB
Converted 1,53 MB
- STL/3MF to LossLess DRC (Maybe reduce the bit depth???)
- 3DBenchy 2.417kb -> 570kb (done at 25, if 0 = 1.340kb)
- calicat 43kb -> 6kb
- ksr_fdmtest_v4 128kb -> 74kb
- Orca_stringhell 63kb -> 37kb
- OrcaToleranceTest 758kb -> 94kb
- Stanford_Bunny 755kb -> 187kb (done at 25, if 0 = 316kb)
- Voron_Design_Cube_v7 34kb -> 21kb
## Bit used
After some test with a lot of models and all possible combinations it's safe to say that >20 is BondingBox and mm3 volume the best it can.
So i used 25 just as a safe value in:
- Stanford_Bunny
- 3DBenchy
- retraction_tower
<img width="324" height="499" alt="imagen" src="https://github.com/user-attachments/assets/bb5000cf-c1fa-4153-af2f-691ea59bc254" />
<img width="324" height="499" alt="imagen" src="https://github.com/user-attachments/assets/f38e3528-0d05-4621-984e-f107a0eec91e" />
## MultiPart 3MF
Didint change them, too much trouble for small changes.
## Problem
Some Creality printers (e.g. Ender-3 V3 SE) rely on metadata comments in the first lines of G-code files to display print info on the screen (estimated time, filament usage, layer height). This follows a format originally used by Cura/Creality Print:
```
;FLAVOR:Marlin
;TIME:3708.97
;Filament used:6.21m
;Layer height:0.2
```
OrcaSlicer currently has no way to write content before the `HEADER_BLOCK` in the G-code output, and does not expose `print_time_sec` or `filament_length_m` as usable placeholders. As a result, these printers show zeroed-out print info on screen.
## Changes
### 1. New placeholders (post-processing)
Added two new G-code placeholders resolved during post-processing:
- `{print_time_sec}` — total estimated print time in seconds (double)
- `{filament_length_m}` — total filament length in meters (double)
These values are only available after G-code generation, so they use inline marker replacement (`@PRINT_TIME_SEC@`, `@FILAMENT_LENGTH_M@`) that `GCodeProcessor::run_post_process()` substitutes with actual computed values — the same pattern used by existing M73 and layer count placeholders.
### 2. New "File header G-code" option (`machine_top_gcode`)
Added a new G-code field in **Printer Settings > Machine G-code** that writes content at the very top of the output file, before `HEADER_BLOCK_START`. This allows users to add firmware-specific metadata that must appear in the first lines.
### 3. Creality Ender-3 V3 SE profile update
Pre-configured the Ender-3 V3 SE profiles (all 4 nozzle variants) with a default `machine_top_gcode` value matching the Cura-compatible header format, so print info displays correctly out of the box.
# Screenshots
| Before (current OrcaSlicer) | After (this PR) |
|---|---|
|  |  |
## Tests
- Sliced test model with Ender-3 V3 SE profile
- Verified G-code output contains correct values in first lines:
- `;TIME:` with actual print time in seconds
- `;Filament used:` with filament length in meters
- `;Layer height:` with correct layer height
- Verified `{print_time_sec}` and `{filament_length_m}` work in both Machine Start G-code and File header G-code fields
- Verified empty `machine_top_gcode` produces no extra output
- Built and tested on macOS (arm64)
The IDEX profiles for Ratrig v-core 4.0 printers where only working for the 0.4 mm nozzle. I suppose these changes should fix it. I only asked copilot about it, so not tested if that is the reason why I cannot select a second filament with the bigger nozzle profiles.
# Description
<!--
> Please provide a summary of the changes made in this PR. Include details such as:
> * What issue does this PR address or fix? Add new models
> * What new features or enhancements does this PR introduce? no
> * Are there any breaking changes or dependencies that need to be considered? no
-->
# Screenshots/Recordings/Graphs
<!--
> Please attach relevant screenshots to showcase the UI changes.
> Please attach images that can help explain the changes.
-->
## Tests
<!--
> Please describe the tests that you have conducted to verify the changes made in this PR.
-->
* added option to save a profile as detached(no inheritance)
* Revert "added option to save a profile as detached(no inheritance)"
This reverts commit c1326c6dec.
* re-commiting the changes
* fixed conflicts with upstream
---------
Co-authored-by: SoftFever <softfeverever@gmail.com>
* Add read support for Google's Draco (.drc) format.
* Fix build on Linux
* Use boost instead of fstat.
* Switch to boost memory-mapped file to save RAM and potentially improve performance.
* Trim trailing whitespace.
* Initial Draco write support.
Currently always exports with 16-bit precision and speed 0 (best compression).
The back-end function does have arguments to specify them, it's just not hooked into the GUI.
* Add Draco to the About dialogue.
* Fix Linux compile (hopefully)
* Add an option to associate DRC files on Windows.
* Implement a Preferences option to set Draco position quantization bits
* Update src/slic3r/GUI/Preferences.cpp
Co-authored-by: Ian Bassi <ian.bassi@outlook.com>
* Some slight changes to ianalexis's suggestion.
* Implement a create_item_spinctrl() function for numeric inputs, and use that instead of create_item_input().
* Move "bits" to inside the spinctrl box.
* Refactor following yw4z's feedback
* Update src/slic3r/GUI/Preferences.cpp
Co-authored-by: Ian Bassi <ian.bassi@outlook.com>
* Change to 0 bits as the default setting for Draco export precision.
* Change to a lossy checkbox and a bits field with a range of 8-30.
* Proper SpinInput code from yw4z
* Revert "Proper SpinInput code from yw4z"
This reverts commit 7e9c85f31a.
* Revert "Change to a lossy checkbox and a bits field with a range of 8-30."
This reverts commit d642c9bcc0.
* Redo preferences based on SoftFever's feedback
* Refactor to minimize code duplication
* Fix padding
* Improve Draco export quality level tooltip clarity
Clarify that 0 means lossless compression (not uncompressed),
document the valid lossy range (8-30), and better explain the
tradeoff between file size and geometric detail.
---------
Co-authored-by: SoftFever <softfeverever@gmail.com>
Co-authored-by: Noisyfox <timemanager.rick@gmail.com>
Co-authored-by: Ian Bassi <ian.bassi@outlook.com>
Closes#11726
# Description
Removed hardcoded 0.2mm layer height.
Now it will stay in with the user process.
Also corrected several config assignments to use print_config instead of obj->config for consistency.
## Note
Didn't change PA PATTERN because i don't know if it may impact the calibration results for this specific test.
Toolchanger printers with 4 tools were incorrectly treated as dual-nozzle (IDEX-style) printers in AMS Sync. So I was locked to just tool 1/2.
Adjusted AMS Sync to use dual-nozzle logic only for true 2-nozzle setups (nozzle_nums == 2 and filament_map in {1,2}), and route 3+ tool toolchangers through the generic mapping flow so all tool IDs are handled correctly.
Before:
<img width="2276" height="1738" alt="image" src="https://github.com/user-attachments/assets/ccebc020-37cf-4af6-8568-a9f331f6c08c" />
After:
<img width="2236" height="1662" alt="image" src="https://github.com/user-attachments/assets/030f49c3-463d-4355-95ba-ba8f95a01ecd" />
Tested on / with:
- Snamaker U1
- ARM macOS
# Description
Fixes the Setup Wizard getting stuck on the "Loading......" screen when
running on Wayland sessions.
**Root Cause:** When OrcaSlicer runs under XWayland (Wayland sessions
with `GDK_BACKEND=x11`), WebKit2GTK's compositing mode can fail
silently, causing the Setup Wizard WebView to freeze or render blank.
The JavaScript signal from C++ (`userguide_profile_load_finish`) either
fails to execute or its rendering result never displays, leaving users
permanently stuck.
**Solution:**
1. Set `WEBKIT_DISABLE_COMPOSITING_MODE=1` environment variable to force
software rendering for WebKit2GTK - this is the same fix used by
BambuStudio
2. Enable the 20-second timeout fallback in `load.js` so the wizard
proceeds automatically even if the C++ → JavaScript communication fails
**Files changed:**
- `src/OrcaSlicer.cpp` - Added `WEBKIT_DISABLE_COMPOSITING_MODE` env var
(4 lines)
- `resources/web/guide/0/load.js` - Enabled timeout fallback (2 lines)
# Screenshots/Recordings/Graphs
N/A - This is a Linux/Wayland-specific fix that addresses a rendering
issue. The visual result is simply that the Setup Wizard proceeds past
"Loading......" as expected.
## Tests
1. **On Wayland session (e.g., GNOME on Wayland):**
- Remove existing config (`~/.config/OrcaSlicer/`) to simulate first
launch
- Launch OrcaSlicer
- Verify Setup Wizard proceeds past "Loading......" to the actual wizard
page
2. **On X11 session:**
- Same test as above to verify no regression
3. **Verify env var is set:**
- Check that `WEBKIT_DISABLE_COMPOSITING_MODE=1` is in the process
environment on Linux builds
# Description
This PR lays the groundwork for future OrcaSlicer ↔ printer connectivity
enhancements by modularizing the network agent architecture. It also
adds experimental filament info sync from printers that have a material
station or multi-tool system.
## Architecture Changes
- **Introduce `IPrinterAgent` interface** — an abstraction layer that
allows per-machine printer agent switching at runtime, decoupling
printer communication from the monolithic `NetworkAgent`
- **Introduce `ICloudServiceAgent` interface** — separates cloud service
logic from printer-level communication
- **Extract `OrcaCloudServiceAgent`** — moves Orca cloud service logic
into its own implementation behind `ICloudServiceAgent`
- **Extract `OrcaPrinterAgent`** — wraps the existing BBL printer
communication behind `IPrinterAgent`
- **Add `NetworkAgentFactory`** — factory for creating the appropriate
printer agent per machine
- **Refactor `NetworkAgent`** — slimmed down from monolithic class to a
thinner coordination layer
## New Printer Agents
- **`MoonrakerPrinterAgent`** — Klipper/Moonraker-based printers
- **`QidiPrinterAgent`** — Qidi printers (with Qidi filament box
support)
- **`SnapmakerPrinterAgent`** — Snapmaker printers with filament sync
## Filament Sync (Experimental)
Syncs filament information from printers equipped with AMS-style
material systems or multi-tool changers:
- Qidi printers with Qidi box
- Armored Turtle (AFC) box via Moonraker
- Snapmaker material station
For Qidi printers with Qidi box:
<img width="1200" height="762" alt="Screenshot 2026-01-27 at 20 30 55"
src="https://github.com/user-attachments/assets/155a164f-cd08-40b0-b62b-c3ab7378224e"
/>
Armored Turtle box:
<img width="1135" height="805" alt="Screenshot 2026-01-27 at 20 32 58"
src="https://github.com/user-attachments/assets/50f6618e-eb54-46db-8e01-1197a005fbf0"
/>
# Screenshots/Recordings/Graphs
[filasync.webm](https://github.com/user-attachments/assets/e6bb7f04-8312-4014-b237-6bd3ef792215)
## Tests
<!-- Please describe the tests that you have conducted to verify the
changes made in this PR. -->
When running under XWayland (Wayland sessions with GDK_BACKEND=x11),
WebKit2GTK's compositing mode can fail silently, causing the Setup
Wizard WebView to freeze or render blank. This leaves users stuck on
the "Loading......" screen indefinitely.
Changes:
- Set WEBKIT_DISABLE_COMPOSITING_MODE=1 to force software rendering,
matching the fix used by BambuStudio
- Enable the 20-second timeout fallback in load.js so the wizard
proceeds even if the C++ -> JavaScript signal fails
* Fix active filament preset not matching wizard selection on first run
After completing the setup wizard with only a non-PLA filament selected
(e.g. Generic ABS), the active filament preset defaulted to Generic PLA
instead of the user's selection. This happened because load_presets()
falls back to Generic PLA when the initial printer differs from the
preferred printer, and the first_added_filament override was disabled.
Add post-load correction in apply_config() that switches the active
filament to the first compatible wizard-selected filament when the
current active filament is not in the wizard selection. Also fix the
guide JS (22.js, 23.js) to use the filalist attribute for building
the filament array, and add platform-specific build test commands to
CLAUDE.md.
* Replace @System filaments with vendor-specific overrides in wizard
When the wizard selects a generic filament like "Generic ABS @System",
check if a vendor-specific override exists (e.g. BBL "Generic ABS")
and use that instead. This ensures printer-tuned profiles are preferred,
preventing load_installed_filaments from adding unwanted BBL defaults.
When printers from the default bundle are also selected, both variants
are kept since those printers need the @System version.
Also adds diagnostic logging for filament loading in LoadProfileFamily.
* Guard against persisting presets for Default Printer and fix filament override logic
Prevent export_selections from saving stale preset settings for the
built-in "Default Printer" placeholder, which is only the initial state
before a real printer is loaded. Also require a non-default vendor printer
to be selected before replacing @System filaments with vendor-specific
overrides in the wizard, avoiding incorrect filament substitution when
only the default bundle is present.
layer_height_profile_adaptive() was using object_print_z_height()
(shrinkage-compensated) to bound the profile, but
update_layer_height_profile() validates against
object_print_z_uncompensated_max. When shrinkage compensation is
active, the mismatch causes the adaptive profile to be silently
cleared every frame and replaced with flat layers.
Use object_print_z_uncompensated_height() instead, matching both
the validator and the existing layer_height_profile_from_ranges()
implementation which already uses the uncompensated value.
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Replaced GitHub wiki URLs with new orcaslicer.com documentation links for several hints to provide more accurate and up-to-date references.
Co-authored-by: yw4z <yw4z@outlook.com>
* Add overhang_reverse config to calibration routines
Set the 'overhang_reverse' configuration option to false in both calib_temp and calib_retraction functions to ensure consistent calibration behavior.
* Disable overhang_reverse in calib_pa function
Adds a line to set the 'overhang_reverse' configuration option to false when running the calib_pa function, ensuring this feature is disabled during calibration.
* Disable reverse on even for PA Tower
* Remove unncesary overhang_reverse disablers
* Update Plater.cpp
Update Plater.cpp
* Update Plater.cpp
# Description
<!--
> Please provide a summary of the changes made in this PR. Include details such as:
> * What issue does this PR address or fix?
> * What new features or enhancements does this PR introduce?
> * Are there any breaking changes or dependencies that need to be considered?
-->
# Screenshots/Recordings/Graphs
<!--
> Please attach relevant screenshots to showcase the UI changes.
> Please attach images that can help explain the changes.
-->
## Tests
<!--
> Please describe the tests that you have conducted to verify the changes made in this PR.
-->
Changed the help link for the 'symmetric_infill_y_axis' option from 'strength_settings_patterns#zig-zag' to 'strength_settings_infill#symmetric-infill-y-axis' to provide more accurate documentation.
* Fix aligned back seam positioning for mirrored objects
This change makes “Aligned back” seams behave the same on mirrored models as on normal models.
Mirroring flips the model’s surface directions, so the slicer treated the back as the front.
Now it corrects those directions when calculating seam visibility, so seams still line up on the back after mirroring.
* Comments
Add comments to the changes
# Description
When creating a new filament preset and setting the Printer Dependencies to "All", the preset does not save this setting. This issue only occurs on creation due to code that is meant to validate the data to prevent a case where the filament is compatible with none of the printers.
EDIT: While I considered redoing the data validation for this tab overall, I have now preserved the original purpose of the code, which is to add the current printer as a compatible printer only if:
- the base preset is a System preset
- the user has not specified any compatible printers
Notably, this seems to be the cause of #11959
Moving the data validation from `Preset::save_current_preset` to `Tab::save_preset` allows the Preset function to be simplified through removal of the current printer parameter.
# Screenshots/Recordings/Graphs
There is no visible change on the UI.
## Tests
Tested the following combinations of filament presets:
- System->new User
- User->new User
- User->same User
Tried to set them to All, where the System->new User should be the only case where this is replaced by a default.
In any case where there are printers already set, those settings should be kept.
* Fix: GCodeViewer displaying inconsistent data in title and body
* Fix: remove actual flow info from GCodeViewer title
* Refactor: reduce repetition of N/A and headers
* Fix: Add missing categories to print settings (Seam, Wipe, Accel, Scarf)
- Assigns categories (Quality, Speed) to various print settings in PrintConfig.cpp.
- Ensures these settings are correctly tracked in the UI override list (GUI_ObjectList).
- Fixes issue where overriding these settings per-object did not trigger the 'modified' icon.
* Fix: Add missing categories to additional per-object settings
- Assigns categories (Speed, Quality, Strength, Support) to relevant settings.
- Cleans up duplicate definition of 'outer_wall_acceleration' in PrintConfig.cpp.
- Ensures the 'modified' icon (orange arrow) appears correctly in the Object List.
* Fix: Restore original default values for acceleration and skirt angle
- Reverted 'default_acceleration' back to 500.
- Reverted 'skirt_start_angle' back to -135.
* Style: Remove trailing whitespace in print_flow_ratio tooltip
* Fix: Mark skirt_start_angle as advanced setting
* fix values
* Fix dark color rendering in G-code preview by using additive specular lighting
* Revert "Fix dark color rendering in G-code preview by using additive specular lighting"
This reverts commit 2a65bc9060.
* Fix dark color rendering in G-code preview (Standard & ES shaders) by using additive specular lighting
* Fix dark color preview: Increase minimum brightness to 48/255 (~19%)
* Refactor: Revert to combined lighting calculation in shaders
Fix layer/time display in Preview legend for pause/custom G-code
The Preview legend showed incorrect layer numbers and elapsed time for pause/custom G-code entries. The issue was caused by:
• get_layer_id_at() performing a strict upper_bound search on float Z values, while custom G-code stores Z positions as doubles. Minor precision differences often pushed the lookup to return layer 0 or the last layer.
• The legend displayed the raw zero-based layer index.
Fixes included:
• Fetch layer Z values as doubles and use an epsilon-based closest-layer search.
• Display layers as 1-based values for user-facing UI.
• Accumulate time up to the beginning of the identified layer.
This aligns the legend with the vertical slider marker and provides consistent pause/custom G-code reporting.
# Description
### `src/libslic3r/PrintApply.cpp` changes (line 318)
Change `const auto` to `const auto&` for loops (simple optimization) .
### `src/slic3r/Utils/CalibUtils.cpp` changes (lines 762, 766, 779, 783/784, 814, 816, 831, 835, 837, 1001)
Define config_pattern
`const auto& config_pattern = SuggestedConfigCalibPAPattern();` (line 762 and 814)
Replace calls of `SuggestedConfigCalibPAPattern()` with `config_pattern` (lines 766, 775, 779, 783, 784, 816, 831, 835, 837)
Change `const auto` to `const auto&` for loops (simple optimization) (lines 816, 835, 837, 1001)
*Also gets rid of the five compiler warnings out of the few hundred/thousand (when building the entire project) that warn about copying loop variables*
i.e.
```/home/neo/git/OrcaSlicer-EDIT-TEMP/src/slic3r/Utils/CalibUtils.cpp:828: note: use reference type to prevent copying
/home/neo/git/OrcaSlicer-EDIT-TEMP/src/slic3r/Utils/CalibUtils.cpp:832: warning: loop variable ‘opt’ creates a copy from type ‘const std::pair<std::__cxx11::basic_string<char>, int>’ [-Wrange-loop-construct]
832 | for (const auto opt : SuggestedConfigCalibPAPattern().int_pairs) { print_config.set_key_value(opt.first, new ConfigOptionInt(opt.second)); }
```
## Tests
Should have no functional difference. Contains optimizations, calibrations appear to still function well.
### What was the issue?
The check that validates whether a filament is compatible with the selected build plate type was only executed for Bambu Lab printers.
Other printers skipped this entirely, even though they can also use multiple plate types with different temperature requirements.
This caused cases where:
- incompatible filament/plate combinations went unnoticed,
- users received no warning even when the bed type clearly couldn’t support the selected filament.
### What’s changed?
- The validation block extends beyond BambuLab printers.
- Now all printers get the same compatibility check:
- if a filament requires a bed temperature not supported by the chosen plate,
- Orca shows the same clear error message as it does for BBL printers.
- Show the selected filament preset name (alias if present) in bed/filament mismatch warnings instead of substituting the parent preset.
### Why this helps
- Consistent behavior across all printer brands.
- Prevents invalid filament/plate setups that could cause print failures.
- Makes plate presets more robust and predictable for custom and community printers.
### Notes
- No behavior changes for BBL printers — they keep the existing checks.
- Other printers now benefit from them too.
# Description
This PR introduces a new material type called **CoPE** to the system.
**Changes:**
* **New Material:** Implemented `CoPE` as a selectable material type.
* **Configuration:** Added necessary material properties and parameters specific to CoPE.
**Breaking Changes:**
* None.
# Screenshots/Recordings/Graphs
<img width="1793" height="618" alt="image" src="https://github.com/user-attachments/assets/8577be4d-9f5f-4bda-b0de-c0842857625d" />
<img width="978" height="937" alt="image" src="https://github.com/user-attachments/assets/ec2ba1a3-41d5-4792-8fea-41c282136ff2" />
## Tests
I have verified the changes with the following tests:
* **UI Validation:** Verified that `CoPE` correctly appears in the software's material selection list.
* **Preset Management:**
* Successfully **exported** a preset containing the CoPE material.
* Successfully **imported** the CoPE preset back into the software.
v3.0.0 of takanome-dev/assign-issue-action is broken:
- action.yml references dist/index.js
- But the release only contains dist/index.mjs
- This causes immediate failure: "File not found: dist/index.js"
This PR:
1. Reverts to v2.2 which works correctly
2. Reverts reminder_days to 7 (v2.2 behavior: days before unassignment)
3. Adds comment with link to upstream bug report
Bug report: https://github.com/takanome-dev/assign-issue-action/issues/426Fixes#11873
Co-authored-by: Hanan <okets78@hotmail.com>
* Fix Gtk-Critical assertion in PresetComboBoxes
Resolve the `gtk_cell_layout_get_cells: assertion GTK_IS_CELL_LAYOUT
failed` error by switching from `gtk_cell_layout_get_cells()` to
`gtk_container_get_children()` with direct PangoLayout ellipsization
on GtkEntry widgets.
Picked from PrusaSlicer:
https://github.com/prusa3d/PrusaSlicer/commit/e855ab5d
* Add defensive guards for GTK widget sizing
Fix Gtk-CRITICAL assertions in TextInput and DropDown widgets that
occur when the widget attempt relative sizing against window size
before GTK completes the window layout.
Changes include:
- TextInput.cpp: Clamp textSize.x >= -1 to prevent
`gtk_widget_set_size_request` failures.
- Picked from Prusa Slicer:
https://github.com/prusa3d/PrusaSlicer/commit/e855ab5d
- DropDown.cpp: Guard against zero/negative dimensions during early
initialization:
- Prevent szContent.x = 0 when parent size is unavailable.
- Unique to OrcaSlicer
- Triggers during initializing DesignerPanel --> BasicInfo -->
License DropDown before a parent size is available.
- Latent bug exists in Bambu Studio, but Bambu does not have
License field enabled on this panel.
- Created global guard for future resilience.
- Clamp szContent.y >= 1 for dropdowns before content initialized.
- Bug exists in BambuStudio
- Prusa did not implement the "ENH: ComboBox Second DropDown"
* Added proper tool‑change handling for Geeetech multi‑color
* Better variables used for initial bed/nozzle temp for Geeetech multicolor printers
* Wrong colon symbol (U+FF1A) replaced with regular U+003A
During the slicing those symbols are not recognized by the printers and come out with artifacts
* Enhance backward compatibility for filament extruder variants in 3MF project files
Fix crashes when loading old 3MF project
* QoL: add handy models directory to ignore list
# Description
<!--
> Please provide a summary of the changes made in this PR. Include details such as:
> * What issue does this PR address or fix?
> * What new features or enhancements does this PR introduce?
> * Are there any breaking changes or dependencies that need to be considered?
-->
This PR adds support for two new Wemake3D printer models to OrcaSlicer: the `Phoenix Pro V1` and `TinyBot V1`.
Changes Made:
Added new printer definitions for:
`WEMAKE3D Phoenix Pro V1`
`WEMAKE3D TinyBot V1`
Includes standard printer profiles (machines and process settings).
Implements device-specific start/end G-code.
Adds recommended slicing parameters for optimal print quality.
**Dependencies & Considerations:**
This PR adds new configuration files only and does not modify any existing core functionality.
No breaking changes are introduced.
The profiles are based on standard Marlin-compatible G-code and should work with the stock firmware on these devices.
# Screenshots/Recordings/Graphs
<!--
> Please attach relevant screenshots to showcase the UI changes.
> Please attach images that can help explain the changes.
-->
Printer Selection Menu
The new printers "Wemake3D Phoenix Pro V1" and "Wemake3D TinyBot V1" now appear in the printer selection list.
<img width="806" height="656" alt="image" src="https://github.com/user-attachments/assets/39c4e2fb-c1cc-4bdd-b6c6-ee432fbc198f" />
Printer Settings Preview
Example printer settings panel for the Phoenix Pro V1.
<img width="1180" height="785" alt="image" src="https://github.com/user-attachments/assets/44f0c820-6c70-4daa-86a2-94a7792d1216" />
## Tests
Verification Steps:
**Profile Validation:** Validated with `orca_extra_profile_check.py`
**Installation & Discovery:** Successfully installed the configuration files and verified both printers appear in the "Add Printer" wizard.
**Profile Loading:** Tested loading each printer profile and confirmed all default settings (print, filament, process) are applied correctly.
**G-code Validation:** Manually reviewed the start and end G-code for each model to ensure compatibility and safety.
**Slice Simulation:** Performed test slices on sample models (benchy, calibration cube) for both printers to verify parameter application and generate error-free G-code.
**Basic Compatibility:** Confirmed generated G-code follows standard Marlin syntax and should be compatible with the printers' expected firmware.
**Test Environment:**
OrcaSlicer Version : `2.3.2-dev` & `2.3.1`
OS :` Windows 10` & `Windows 11`
<!--
> Please describe the tests that you have conducted to verify the changes made in this PR.
-->
This PR fixes an issue where certain characters (for example the degree symbol ° used in °C) became corrupted after opening and saving the Custom G-code editor multiple times.
#### What was the problem?
When users added symbols like ° inside Start/End G-code, the editor would show them correctly the first time, but after reopening the dialog a few times the text would slowly change into strange characters.
#### How to reproduce
- Open any Custom G-code field
- Add a line containing °C
- Save the dialog
- Reopen it several times
- The text begins to change into unreadable characters
#### What this PR changes
The Custom G-code editor now properly loads and saves text that contains symbols such as °, so these characters stay exactly as the user typed them. This keeps Custom G-code stable across editing sessions and prevents slow corruption of Unicode characters.
#### Result
- °C and similar symbols remain correct
- No more “weird characters” appearing after multiple reopen/save cycles
- Custom G-code is preserved accurately
Fixes#11502
There's still a bug where it will expire too soon when idle *after* a reminder has been sent.
Fixes#11873
@SoftFever Every person who pushes a commit will get a dumb email until this merges (uhm, provided it actually works).
# Description
<!--
> Please provide a summary of the changes made in this PR. Include details such as:
> * What issue does this PR address or fix?
> * What new features or enhancements does this PR introduce?
> * Are there any breaking changes or dependencies that need to be considered?
-->
# Screenshots/Recordings/Graphs
<!--
> Please attach relevant screenshots to showcase the UI changes.
> Please attach images that can help explain the changes.
-->
## Tests
<!--
> Please describe the tests that you have conducted to verify the changes made in this PR.
-->
# Description
Fixes#6813Fixes#7782Fixes#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](https://github.com/prusa3d/PrusaSlicer/releases/tag/version_2.8.0-alpha5). It significantly improves performance of the G-code preview and allows displaying the actual speed and volumetric flow rate.
## TODO
- [x] Make the sliders work properly again
- [x] Make view type selection work
- [x] Fix toggling of feature type visibility
- [x] Expose actual speed/actual flow view types
- [x] Fix display of G2/G3 arcs
- [x] Wire up actual speed graph widgets
- [x] Fix painter gizmos
- [x] Fix crash when selecting filament view type on Windows
- [ ] Figure out display color management (#10827)
- [x] Fix incorrect rendering of small area flow compensation (or any extrusions with varying flow)
- [ ] Localization
- [ ] Testing
- [ ] Code cleanup, performance optimization
## Removed functionality
Some functionality is not supported by libvgcode:
- Toggling visibility of tools
- Toggling visibility of colors in color print view
- Support for systems with OpenGL <3.2
- Bambu's implementation of G2/G3 arcs was replaced with PrusaSlicer's implementation
# Screenshots/Recordings/Graphs
https://github.com/user-attachments/assets/c1413a82-3058-4541-b96c-3d5f7cdef174
<details>
<summary>Outdated Stuff</summary>
https://github.com/user-attachments/assets/ca172ef4-0828-4d21-8768-b08a4132c9ab
<img width="1611" height="1145" alt="image" src="https://github.com/user-attachments/assets/5e0d04ff-8046-4636-a08a-cdedc60303bc" />
</details>
## Tests
- [x] Normally sliced G-code
- [ ] G-code viewer mode
- [x] Arc fitting enabled
- [x] Spiral Z-hops
- [x] Multi-extruder/multi-color
- [x] Vase mode
- [x] Skirt/brim
- [x] Supports
- [ ] Support transition (whatever this is)
- [x] Painter gizmos
- [x] Measurement gizmo
- [x] Move/rotate/scale gizmos
- [x] H2D/H2S support (oh no)
- [ ] Windows
- [x] macOS
- [ ] Linux
Lowered hot_plate_temp from 5705 to a reasonable 70 degrees.
(should be 60-90 degrees according to sources, made it the same as the first layer bed temp)
# Description
This PR adds support for the new printer model **Cubicon xCeler-Plus**.
It includes:
- Machine configuration (JSON)
- Process profiles (Speed, Quality settings)
- Filament settings
- Bed texture and model resources
# Screenshots/Recordings/Graphs
# Tests
I have successfully tested the sliced G-code on the actual machine (Cubicon xCeler-Plus).
- [x] Slicing test passed
- [x] Printing test passed with Klipper firmware
# Description
This PR introduces most features and capabilities needed for future network plugin-related changes, as discussed on Discord. In short bullet points:
- it allows users to select a specific version of the Bambu network library to use,
- improves hot reloading (in most cases, version changes don't require restarting Orca),
- introduces possibility to add _custom_ variants of supported plugin versions by placing them in the plugin directory with a suffix of `-<name>`,
- adds an button in the "Developer" section of Preferences to hot-reload the network plugin from disk,
- ports plugin error messages from Bambu Studio, including the questionable unsigned app one (rephrased), to make it clear to users why their printer commands don't really execute.
Also introduces CMake 4.x compatibility on macOS, because I was too lazy to install CMake 3 on my computer 😶
# Screenshots/Recordings/Graphs
<img width="494" height="225" alt="image" src="https://github.com/user-attachments/assets/366e8c0f-8b12-4c75-a2db-ba08e7544ecd" />
<img width="223" height="276" alt="image" src="https://github.com/user-attachments/assets/dffec726-b6d5-44d3-a2b3-dd56d2590356" />
<img width="521" height="182" alt="image" src="https://github.com/user-attachments/assets/934ba963-f299-4d20-a107-8375f1f99571" />
<img width="644" height="640" alt="image" src="https://github.com/user-attachments/assets/00385657-04f2-4f36-896e-58265df58ebc" />
## Tests
Tested manually, also added some basic tests to make sure config management behaves correctly.
# Description
This PR addresses the issue that WipeTower's start z position didn't consider the z_offset.
fixes#11611
# Screenshots/Recordings/Graphs
<!--
> Please attach relevant screenshots to showcase the UI changes.
> Please attach images that can help explain the changes.
-->
## Tests
<!--
> Please describe the tests that you have conducted to verify the changes made in this PR.
-->
# 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.
# Description
* What issue does this PR address or fix?
1. Refactor Polymaker folder within Snapmaker profile directory, so that the structure is more clear.
2. Add more Polymaker filament presets for Snapmaker printers.
* What new features or enhancements does this PR introduce?
1. None
* Are there any breaking changes or dependencies that need to be considered?
1. None
# Description
This PR updates the machine start G-code and adaptive bed mesh options of the **OpenEYE Peacock V2** printer profile.
There are no breaking changes. Existing profiles and workflows remain fully compatible.
## Tests
- Loaded the updated profile in Orca Slicer.
- Generated sample G-code files and verified the updated startup sequence.
- Confirmed no impact on slicing behavior, materials, or process settings.
# Description
Accurate color change calculations for coprint setups by specifying the nozzle volume, reduced risk of jamming by removing parking position setting.
## Tests
Settings tested on N3+ and K1 equipped with coprint kits.
* fixes: wxTimerEvent not supposed to be created by user code [-Wdeprecated-declarations]
* use wxTimerEvent instead of wxCommandEvent.
---------
Co-authored-by: SoftFever <softfeverever@gmail.com>
# Description
[Updated Qhull]
changelog
https://github.com/qhull/qhull/releases/tag/v8.0.2
# Screenshots/Recordings/Graphs
<!--
> Please attach relevant screenshots to showcase the UI changes.
> Please attach images that can help explain the changes.
-->
## Tests
<!--
> Please describe the tests that you have conducted to verify the changes made in this PR.
-->
* Added InnovatiQ Vendor Files
* Cover image corrected
* Corrected Texture Image
* Support Interface Pattern modified
* Fix file name casing
* Added new filament(PETG)
* changed three parameters
* Added 6 new printer files
0.25, 0.6, 0.8 printer profiles are added to TiQ2 and TiQ8
* Added 6 new machines in machine list
* 6 new machines added in machine list
* Modified the PACF filament and process file
* Added two new filament file and one process file
* Modified one filament and one process file
* PETG Polymax profile for TiQ2 updated
* HPP4GF25 Grauts filament-process addeed to TiQ2
---------
Co-authored-by: MohanS <sibi.mohan@innovatiq.com>
Co-authored-by: Noisyfox <timemanager.rick@gmail.com>
Co-authored-by: Ashidsha Jaleel <JaA0@germanreprap.local>
Co-authored-by: SoftFever <softfeverever@gmail.com>
Co-authored-by: ash-innovatiq <ashidsha.jaleel@innovatiq.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
* Emit Disable Power Loss Recovery
Now only works if it's enabled but the goal it's to force disable it.
With this change it will always emit the command for BBL or Marlin 2.
Co-Authored-By: Michael Rook <54159303+michaelr0@users.noreply.github.com>
* Refactor power loss recovery G-code comments
* Return empty power loss recovery when no compatible printer
* Update power loss recovery comments
Update label and tooltip for power loss recovery
* Add enum for power loss recovery mode
Refactored power loss recovery configuration to use a new PowerLossRecoveryMode enum instead of a boolean. Updated GCodeWriter and related logic to handle the new enum, allowing for 'printer_configuration', 'enable', and 'disable' options. Updated config handling, legacy value conversion, and default values accordingly.
* Update PrintConfig.cpp
---------
Co-authored-by: Michael Rook <54159303+michaelr0@users.noreply.github.com>
Co-authored-by: SoftFever <softfeverever@gmail.com>
* 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.
* 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>
Relocated Clipper2 source files and CMake configuration from src/clipper2 to deps_src/clipper2. Updated CMakeLists to add Clipper2 as a dependency from the new location, improving dependency organization.
Co-authored-by: Rodrigo Faselli <162915171+RF47@users.noreply.github.com>
* Fix missing force-build and use non-docker publish action
Fixes#11687Fixes#10404
* Initial deletion of build_check_cache
Start to fold functionality into build_deps, but definitely broken.
* Tests can be built separately
Missed this before
* Create artifact for all platforms, fix cache usage
Cache is only created on `main` branch.
Artifact is used to move files between jobs.
The Linux artifact was broken, now it's not.
The Mac artifact didn't exist, now it does.
The Windows artifact gets a new name and now isn't a
zip-within-a-zip. Perhaps this will cause a permissions problem; we
will see shortly.
* Apparently cannot update env used for `if` mid-stream
* Force-build causes a clean deps build
* Either build or pull from cache
Cache only has final output, not intermediate files. So we either
build or use the cache.
* Keep dep uploads for 10 days instead
It's just the final object outputs, not intermediates, so it's not as
large and we can keep it slightly longer.
* Adds M3D D8500 Enabler Pro Profiles V1
Adds support for M3D D8500 Enabler Pro support for Orca.
Allows user to set up the printer directly from the printers menu.
* Adds M3D D8500 Enabler Pro Profiles V1
---------
Co-authored-by: SoftFever <softfeverever@gmail.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.
* Adjust resonance avoidance speed calculation
* Only adjust if it's strictly below max
* If the speed is over half of the set speed range,
use the max speed to prevent slowdowns
Signed-off-by: Kuran Kaname <celtare21@gmail.com>
* update comment
---------
Signed-off-by: Kuran Kaname <celtare21@gmail.com>
Co-authored-by: SoftFever <softfeverever@gmail.com>
* Add Eolas Prints filament profiles (18 profiles)
This commit adds official filament profiles for Eolas Prints, a Spain-based
3D printing materials supplier with nearly 10 years of experience and ISO 9001
& ISO 14001 certifications for quality control.
Profiles included:
- 9 PLA variants: Premium, Matte, Silk, Neon, High Speed, INGEO 850,
INGEO 870, Antibacterial, and Transition
- 3 PETG variants: Standard, UV Resistant, and Transition
- 4 TPU variants: Flex 93A, D53, D60 UV, and Transition
- 2 ABS/ASA variants: ABS and ASA
Company: Eolas Prints
Website: https://eolasprints.com
Location: Cantabria, Spain
Certifications: ISO 9001, ISO 14001
* Update Eolas Prints PLA INGEO 850 @system.json
Updated Eolas Prints INGEO 850 Filament profile
* Update Eolas Prints PETG Transition @system.json
Updated Eolas Prints PETG Transition Filament Profile
* Update Eolas Prints PETG UV Resistant @system.json
* Fixed JSON errors for Eolas Prints FIlament profiles
* Added filament_id & Fixed Typos for Eolas Prints Prints profiles.
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.
* explicitly set the machine_max_junction_deviation
* reworked the support settings for all profiles
* forgot the bottom interface spacing. set more accurate values
* set the wrong value, meant support_bottom_z_distance
* 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
Spiral Z-Hop resolution
Use slicing resolution to determine segment count for emulated spiral Z-hop
What’s changed
The number of linear segments used to approximate a spiral Z-hop is now derived from the PrintConfig resolution value.
The segment count is clamped to a safe range (4–24) to avoid excessive G-code generation or MCU queue overflow.
Why
Previously a fixed 24 segments were always used, regardless of model resolution.
For small-radius spiral lifts this was excessive and could overwhelm some printers.
Adapting segment count to resolution ensures smooth motion where needed, but lighter G-code where possible.
Details
m_resolution is now stored via apply_print_config().
_spiral_travel_to_z() uses this value to compute segment count dynamically.
Only the linear-segment fallback path is affected; G2/G3 arc-fitting remains unchanged.
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
* Enable IPv6 usage in curls resolve code
Before this change OrcaSlicer would fail to resolve the IPv6 addresses
of printers when trying to interact with them via HTTP.
For context: I'm running my Klipper based printers with only IPv6
addresses being assigned to them. That works fine for
everything (including other slicers such as prusa-slic3r).
A few years ago I did debug this and figured that it came down to the
single line in the code base that this commit removes. I've since
patched every single OrcaSlicer version with this change and never
noticed a downside. It should be fine to remove the restriction.
* 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>
Update default Windows SDK include path version
Changed the default Windows SDK include path from version 10.0.22000.0 to 10.0.26100.0 in CMakeLists.txt to use a newer SDK version when environment variables are not set.
* 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`
* Get libslic3r tests closer to passing
I can't get geometry tests to do anything useful. I've added extra
output, but it hasn't helped me figure out why they don't work
yet. That's also probably the last broken 3mf test doesn't work.
The config tests were mostly broken because of config name changes.
The placeholder_parser tests have some things that may-or-may-not
still apply to Orca.
* Vendor a 3.x version of Catch2
Everything is surely broken at this point.
* Allow building tests separately from Orca with build_linux.sh
* Remove unnecessary log message screwing up ctest
Same solution as Prusaslicer
* Make 2 TriangleMesh methods const
Since they can be.
* Move method comment to the header where it belongsc
* Add indirectly-included header directly
Transform3d IIRC
* libslic3r tests converted to Catch2 v3
Still has 3 failing tests, but builds and runs.
* Disable 2D convex hull test and comment what I've learned
Not sure the best way to solve this yet.
* Add diff compare method for DynamicConfig
Help the unit test report errors better.
* Perl no longer used, remove comment line
* Clang-format Config.?pp
So difficult to work with ATM
* Remove cpp17 unit tests
Who gives a shit
* Don't need explicit "example" test
We have lots of tests to serve as examples.
* Leave breadcrumb to enable sla_print tests
* Fix serialization of DynamicConfig
Add comments to test, because these code paths might not be even used
anymore.
* Update run_unit_tests to run all the tests
By the time I'm done with the PR all tests will either excluded by
default or passing, so just do all.
* Update how-to-test now that build_linux.sh builds tests separately
* Update cmake regenerate instructions
Read this online; hopefully works.
* Enable slic3rutils test with Catch2 v3
* Port libnest2d and fff_print to Catch2 v3
They build. Many failing.
* Add slightly more info to Objects not fit on bed exception
* Disable failing fff_print tests from running
They're mostly failing for "objects don't fit on bed" for an
infinite-sized bed. Given infinite bed is probably only used in tests,
it probably was incidentally broken long ago.
* Must checkout tests directory in GH Actions
So we get the test data
* Missed a failing fff_print test
* Disable (most/all) broken libnest2d tests
Trying all, not checking yet though
* Fix Polygon convex/concave detection tests
Document the implementation too. Reorganize the tests to be cleaner.
* Update the test script to run tests in parallel
* Get sla_print tests to build
Probably not passing
* Don't cause full project rebuild when updating test CMakeLists.txts
* Revert "Clang-format Config.?pp"
This reverts commit 771e4c0ad2.
---------
Co-authored-by: SoftFever <softfeverever@gmail.com>
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>
Add fallback URL for MPFR source download
Updated MPFR.cmake to include both the GNU FTP and mpfr.org URLs for downloading the MPFR source. This improves reliability in case one of the sources is unavailable.
* Clipper2 from BBS
* Fix
* Clipper2 Update: 1.5.2 -> 2.1.5.4
* Replace Clipper2Lib::Area calls with Clipper2LibArea
Updated area calculation calls to use Clipper2LibArea<T> instead of Clipper2Lib::Area<T> in multiple locations. This change likely reflects a refactor or renaming of the area calculation function.
* Revert "Replace Clipper2Lib::Area calls with Clipper2LibArea"
This reverts commit c92a9a1522e8d7b0f1f8557d4c752a8b8c8fc279.
* Revert "Clipper2 Update: 1.5.2 -> 2.1.5.4"
This reverts commit a745894bdc9cda4ce4d19e0705d214b78091acad.
* Update project version
* Update Visual Studio and CMake instructions in build guide
Reorders Visual Studio version recommendations and simplifies installation instructions. Clarifies CMake path setup guidance and removes outdated notes specific to Visual Studio 2026 and CMake 4.2.
* Update CMake mac version 3.31.10
* Profiles for Creality K2 Pro printer
Added printer profiles for Creality K2 Pro based on existing K2 Plus profile and Creality Print modifications.
* Fixed filament start g-code for K2 series
K2 Plus filament profiles have additional move for filament start g-code on some filaments. This causes unnecessary moves and make filament profiles non-working on K2 series printers.
As these moves are already mirrored on printer profile and not used in rest of the K2 series they should be removed.
* Update Creality K2 Pro profiles for improved print quality
Added adaptive probing comments to machine start gcode for all nozzle sizes. Adjusted process profiles for various layer heights and nozzle sizes, including changes to bridge speeds, acceleration, wall generator and support line widths according to Creality profiles s to optimize print quality and reliability.
* Revert "Update Creality K2 Pro profiles for improved print quality"
This reverts commit ac84058c33.
* Update Creality K2 Pro profiles for improved slicing
Adjusted speeds, accelerations, line widths, and other slicing parameters for better print quality and compatibility. Updated machine start g-code to include print area comments for adaptive probing (Creality K2 Pro uses these comments to define adaptive probing area)
* Bugfixes
* Reduce size of diff
to avoid merge conflicts when we cherry-pick from upstream :)
* remove extraneous space
---------
Co-authored-by: Andrew Sun <as-com@users.noreply.github.com>
This pull request updates GitHub Actions workflow files to explicitly
set permissions for certain actions. (fixing the permissions issues)
**Workflow permissions updates:**
* Added explicit `issues: write` permission to the `assign.yml` workflow
to ensure it can modify issues as needed.
* Set `contents: write`, `actions: write`, and `checks: write`
permissions in the `build_all.yml` workflow to allow the workflow to
interact with repository contents, manage actions, and update checks.
### IMPORTANT NOTICE
- Every time you download a new PR build, make sure to delete `<orca
config folder>/system/` folder first, otherwise the latest profile
update might not take effect (such as crash during startup, or not able
to find certain printer models in the list). Also it's a good idea to
always backup your config folder before trying any dev builds.
- You MUST **turn on both lan mode AND dev mode on your P2S**, there is
no firmware exists for these printers that allows 3rd party slicer over
cloud unfortunately.
- You MUST **turn off "Use legacy network plugin"** in Orca's
preference.
### HOW TO download the test builds:
1. Click the ["Checks"
tab](https://github.com/SoftFever/OrcaSlicer/pull/11132/checks) on top
of this page
<img width="1450" height="436" alt="image"
src="https://github.com/user-attachments/assets/5453e5ef-4455-4f23-9c76-a45218b9bf03"
/>
2. Click the "Build all" on the left side
<img width="1084" height="1110" alt="image"
src="https://github.com/user-attachments/assets/7caa5dc4-6280-4183-85c1-06cb702d1407"
/>
3. You'll find the build artifacts on the bottom of right side
<img width="2194" height="1316" alt="image"
src="https://github.com/user-attachments/assets/73536c51-2790-4302-9f9c-c3403bcb88d5"
/>
4. If you find the artifact list not complete (can't find the build for
your operating system/platform), try switch to different run and a
different attempt might have the artifact you're looking for:
<img width="1217" height="669" alt="image"
src="https://github.com/user-attachments/assets/7ac09291-2902-4ce2-9626-0d5cba7dfdba"
/>
-----------------------------
# P2S support cherry picked from BBS, with some other updates & fixes.
Thanks Bambu!
# **NOT TESTED** yet since I don't own a P2S.
I've try my best to port changes that are necessary to support P2S, and
features & bugfixes that only affect BambuLab printers.
Noticable changes:
- Added P2S profiles.
- Added some new gcode placeholders `max_additional_fan`,
`hold_chamber_temp_for_flat_print` which are used by the new P2S
profiles.
- Added chamber temp check for BBL printers, show warnings when print
certain filaments with low chamber temp.
- Can now trigger a nozzle type auto-recognition from Orca for supported
BBL printers (basically printer uses chamber camera to scan the code on
the nozzle).
- Highlight potential flush volume value error. The flush volume botton
will be red if flush volume is way too low.
- A1 / A1 mini support for AMS, AMS HT, and AMS 2 Pro.
- Skip Part also skips unnecessary color-change flush.
- Lots of BBL printer/plate image updates.
- Fix bunch of GUI bugs.
- Sync HMS & profiles with latest BBS.
* Reorder max volumetric speed calibration step
Moved the max volumetric speed calibration step after temperature tower in the documentation and updated the calibration menu initialization in MainFrame.cpp to match the new order.
* Update wiki image
* Reorder flow rate and pressure advance calibration steps
Updated documentation and GUI to list Pressure Advance calibration before Flow Rate calibration, reflecting the recommended calibration order. Adjusted menu item order in MainFrame.cpp and updated related documentation and image.
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)
* Added InnovatiQ Vendor Files
* Cover image corrected
* Corrected Texture Image
* Merge branch 'main' into main
* Support Interface Pattern modified
* Merge branch 'main' of https://github.com/InnovatiQ-Additive/OrcaSlicer
* Merge branch 'SoftFever:main' into main
* Merge branch 'main' into main
* Fix file name casing
* Merge branch 'SoftFever:main' into main
* Added new filament(PETG)
* Merge branch 'main' into main
* Merge branch 'SoftFever:main' into main
* Merge branch 'SoftFever:main' into main
* changed three parameters
* Merge branch 'SoftFever:main' into main
* Merge branch 'SoftFever:main' into main
* Added 6 new printer files
0.25, 0.6, 0.8 printer profiles are added to TiQ2 and TiQ8
* Merge branch 'SoftFever:main' into main
* Added 6 new machines in machine list
* 6 new machines added in machine list
* Merge branch 'SoftFever:main' into main
* Modified the PACF filament and process file
* Added two new filament file and one process file
* Modified one filament and one process file
* Update Windows build instructions and images
Revised the Windows build guide to support Visual Studio 2026, added hardware requirements, and simplified command prompts and build script instructions. Updated related screenshots to use generic names instead of version-specific ones.
1.Immediate do lift in eager_lift function
jira:NONE
Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: I931d22e901e2123bb886c31d8d1a5788fddeed42
(cherry picked from commit 6cea772d4f3b2f7e2a43c35a2271e4bdbba9eadd)
* Add script with VS version auto detection
* Add msvc145 toolset support
* Fix issue when build slicer only
* Fix vs2026 OpenCV build
* Set github action to use new build script
* Get vs version from `msbuild --version` so it works for github action
* Update 0.20mm Standard @Flashforge AD5M Pro 0.4 Nozzle.json
Change filename_format to include material and print time
* Update filename format in Flashforge profile
* Update 0.40mm Standard @Flashforge AD5M Pro 0.8 Nozzle.json
* Update filename format in Flashforge profile
* Update filename format in Flashforge profile
* Update filename format in Flashforge profile
* Update filename format in Flashforge profile
* Update filename format in Flashforge profile
* Update filename format in Flashforge profile
* Update filename format in Flashforge profile
* Update filename format in Flashforge profile
* Update filename format in Flashforge profile
* Update filename format in Flashforge profile
* Update filename format in Flashforge profile
* Update filename format in Flashforge profile
* Update filename format in Flashforge profile
* Update filename format in Flashforge profile
* Update filename format in Flashforge profile
* Update filename format in Flashforge profile
* Update filename format in Flashforge profile
* Update filename format in Flashforge profile
* Update filename format in Flashforge profile
* Update filename format in Flashforge profile
* Update filename format in Flashforge profile
* Update filename format in Flashforge profile
* Update filename format in Flashforge profile
* Update filename format in Flashforge profile
* Update filename format in Flashforge profile
* Update 0.18mm Optimal @Sovol SV08.json
This file needs compatible_printers parameter set to a proper, non-empty value. Otherwise it will show up in every Sovol printer profile.
* The 0.30mm layer height configuration for the 0.4 nozzle of the QIDI model has been removed
* Merge branch 'main' into main
* Merge branch 'SoftFever:main' into main
* Revert "The 0.30mm layer height configuration for the 0.4 nozzle of the QIDI model has been removed"
This reverts commit 8d296720b8.
* Update Qidi Q2 0.4 nozzle.json
修改Q2打印高度
* Merge branch 'SoftFever:main' into main
* Merge branch 'SoftFever:main' into main
* change machine_gcode
* Merge branch 'main' of https://github.com/HYzd766/OrcaSlicer
* Merge branch 'SoftFever:main' into main
* Multi-color code compatible with QIDI models
* Merge branch 'main' into main
* toggle axis visibility on canvas (#9666)
* toggle axis visibility on canvas
* set show_axes config on toggle
* fix: Add pause and filament change to machine gcodes for Sovol SV08 MAX (#11214)
* Add fixed Ironing Angle setting for uniform surface finish (#11195)
* Initial working fixed ironing angle implemented with new Fixed ironing angle setting
* update documentation
* Combine Fill.is_using_template_angle and Fill.alternate_fill_direction into Fill.fixed_angle
* Rename SurfaceFillParams.is_using_template_angle to SurfaceFillParam.fixed_angle.
* Initial working fixed ironing angle implemented with new Fixed ironing angle setting
* update documentation
* Combine Fill.is_using_template_angle and Fill.alternate_fill_direction into Fill.fixed_angle
* Rename SurfaceFillParams.is_using_template_angle to SurfaceFillParam.fixed_angle.
* Actually build tests on Linux and allow RelWithDebInfo
They weren't being built.
Also cleaned up --config flags which enables RelWithDebInfo on Linux,
now that Ninja Multi-Config is used, it's quite trivial.
* Remove obsolete Slic3r Perl tests
The directory doesn't exist, they're already gone.
* Add GH job for running unit tests
* Move unit test execution to script and upload test results
* Don't run scheduled builds on forks
* Only deploy from SoftFever/OrcaSlicer
Will stop failures on forks
* Use artifact instead of cache
* Tweak archive and checkout paths
Keep getting error:
```
/home/runner/work/_temp/902d0a0a-6d23-4fe0-a643-8b5cc4efd25b.sh: line 1: scripts/run_unit_tests.sh: Permission denied
```
That seems to be because I didn't use actions/checkout, the working
directory is never setup correctly? So using checkout to get scripts
directory. Unsure if archive will preserve the `build/tests/` prefix;
will find out soon.
* Use tar to package directory and write results to correct directory
Tar preserves filenames and directory structure
* Use tar -xvf not -xzf
Muscle memory failed me
* Add testing wiki page
* Save test logs on failure and choose correct directory for junit
* Consolidate apt install steps, use for unit tests too, disable non-Linux builds
Temporarily disable non-Linux builds to save time while developing
this.
Cache the apt packages to save some time searching apt and downloading
them again (though I realize this is also downloading, but hopefully
by something closer and faster).
Remove all the redundant packages listed in the workflow and debian
distribution lists.
* Remove apt install steps from workflow
`./build-linux.sh -u` is supposed to install all needed packages, so
it should build without needing anything besides that. If I'm wrong
this commit will be dropped.
* Need composite action checked out locally
* Re-enable non-Linux builds now that it's working
* Skip a deploy and a notarize in forks
They only succeed in the main repo.
* Fix multi-build for non-Release builds: share CONFIG
* Correct build errors in unit tests
Indeterminate method signatures resolved. Updated script to build all
the tests.
* Fix -g vs -e for RelWithDebInfo
* Change CONFIG->BUILD_CONFIG
Missed one in prior commits
* Reduce wasteful redundant build artifact copies
1. Don't copy the artifacts and leave them; make a hard link first;
only make a copy only while creating AppImage.
2. Don't tar up the `package` directory; nothing uses this tar AFAICT
* Fix directory name
* Change jigsaw auth test URLs to httpbin.org
No idea why the basic auth doesn't work, but it doesn't work for
`curl` CLI either. This does.
* Remove force-build
It got reverted at
e3f049829b
for unknown reasons.
* Add timeout for unit tests in GitHub Actions workflow (#11146)
---------
Co-authored-by: SoftFever <softfeverever@gmail.com>
* Add option to allow upload to SD-Cards marked as abnormal, also add better error description
+ Adds the options under the Network Settings to allow upload to abnormal SD-Card.
+ If not enabled user will now see why the upload is stuck at 10% depending on the sd_card_state (Readonly/Abnormal)
* Merging with current branch, and updateing "sd-card" to "storage"
* Generate localization and also change remaining sd_card_abnormal states to _storage_abnormal
* Fix issues from merge, and other bugfixes.
* Regenerate localization files.
* Improve Missing Storage Message, Add skip for abnormal storage in printer select dialog
* Add "Replace all from STL" command
this operates on the currently selected plate or on the selection
* Add more translations for "Replace all from STL"
* build fix
* "Replace all with STL" also works with multiple selected plates
* fix build
* replace all from stl: better error handling and a nicer status message box
---------
Co-authored-by: Nils Hasler <hasler@thecaptury.com>
Fix: Fixing the logic of the adaptive layer height for supports
Removing `tree_support_adaptive_layer_height` because its logic duplicates `independent_support_layer_height`
/run/build/BambuStudio/src/slic3r/GUI/DeviceCore/DevFilaAmsSetting.h:16:10: error: ‘optional’ in namespace ‘std’ does not name a template type
16 | std::optional<bool> IsDetectOnInsertEnabled() const { return m_enable_detect_on_insert; };
| ^~~~~~~~
/run/build/BambuStudio/src/slic3r/GUI/DeviceCore/DevFilaAmsSetting.h:4:1: note: ‘std::optional’ is defined in header ‘<optional>’; this is probably fixable by adding ‘#include <optional>’
3 | #include "DevCtrl.h"
+++ |+#include <optional>
4 |
/run/build/BambuStudio/src/slic3r/GUI/DeviceCore/DevFilaSystem.h:174:10: error: ‘optional’ in namespace ‘std’ does not name a template type
174 | std::optional<bool> IsDetectOnInsertEnabled() const { return m_ams_system_setting.IsDetectOnInsertEnabled(); };
| ^~~~~~~~
/run/build/BambuStudio/src/slic3r/GUI/DeviceCore/DevFilaSystem.h:13:1: note: ‘std::optional’ is defined in header ‘<optional>’; this is probably fixable by adding ‘#include <optional>’
12 | #include <wx/colour.h>
+++ |+#include <optional>
13 |
(cherry picked from commit fa482b1c0dc7faa2ad87c37eb7f1ea2ce87a5084)
/run/build/BambuStudio/src/slic3r/Utils/FileTransferUtils.hpp:65:27: error: ‘info’ was not declared in this scope
65 | BOOST_LOG_TRIVIAL(info) << std::string("symbol not found: ") + name;
| ^~~~
/run/build/BambuStudio/src/slic3r/Utils/FileTransferUtils.hpp:65:9: error: there are no arguments to ‘BOOST_LOG_TRIVIAL’ that depend on a template parameter, so a declaration of ‘BOOST_LOG_TRIVIAL’ must be available [-fpermissive]
65 | BOOST_LOG_TRIVIAL(info) << std::string("symbol not found: ") + name;
| ^~~~~~~~~~~~~~~~~
(cherry picked from commit 4c30fb7edd3a4a29db9178685ff276cff2da22f3)
This reverts commit 4f8d3466508f3706e8d3f656294f7c5d3a9a7f88.
Reason for revert: use another method
Change-Id: I2a6465ea507f15ce200ea9cf03994b18bb2f257f
(cherry picked from commit 630248ae566c8cf8c61ceacb74ae3cd31d9e1501)
This reverts commit 576444e746f4de3ab71c91b8a66fa4a64c3427c8.
Reason for revert: <remove high flow of X/P>
Change-Id: I875f649c62d503bdf1321b5fec829bb190b02bce
(cherry picked from commit 0b46acb8e793af883b797f83a9ad72a55dd69f3e)
When the retraction setting is larger than the retraction during the material change, the travel triggered during the material change will make up for the retraction interpolation, but the retracted extruder head will be the wrong one. By moving the travel part in the extruder switch Gcode to after the traditional head change (where m_curr_extruder_id in writer() is updated), the old ID is avoided during travel.
jira: STUDIO-14764
Change-Id: I8af8f66af180f01de2fef5760601ee54e73548c4
(cherry picked from commit 008c436803cdf48d3bdcf6fcd85596fc91b3fc70)
Coincident lines are considered as intersecting
jira:STUDIO-14085
Change-Id: I1487e6e2479e2488a3fd55651b8b4fb1bc1f4ced
(cherry picked from commit 2348328a96a8d805c35cae8f03ebaa0869b1313e)
Modify the machine start gcode for nozzle diameters 0.2, 0.4, 0.6, and 0.8 on the X1, X1 Carbon, and X1E models to move the compensation lines closer to the edge.
jira: STUDIO-14317
Change-Id: Ib0662d5cf9dfd63b960fcb7c458fa35dc0954c1b
(cherry picked from commit 6aaa7ae4ffd2c893ed41a5eed51a6a7dd2d83f7b)
(cherry picked from commit 62bcdd5b1627526035ce3f23ca9999b958fd05b2)
The configuration changes that were previously reverted are now reintegrated
jira: none
Change-Id: I82148ddb9688ffb358018c187ed71accad47529c
(cherry picked from commit 55fad607fd4e66b6b44b1b11b67f8cc5141c3af6)
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)
Description:By calculating the total area of the first layer (object, support, wipe tower), the flag is true when the area is greater than 200 and the height is less than 0.3 mm. machine_start_code placeholder: "hold_chamber_temp_for_flat_print"
jira: STUDIO-13370
Change-Id: If5982da28afb57e9bbb8a0a1ba69bc45f5cc1c7c
(cherry picked from commit eb942df30e6779acbdf1d330cae5c6ebe0010abf)
(cherry picked from commit 47a242ecd639cc630f70d9b6cf4d1fd91fd511d4)
(cherry picked from commit 87f4741d9caaf33699d647a2ce5b4f60d535f7b1)
* Introduced a new command-line argument `--vendor` to process images from a specific vendor subfolder.
* Enhanced error handling to check for the existence of the vendor path and list available vendors if the path does not exist.
* Updated help documentation to reflect the new functionality.
This change improves the script's usability for users managing multiple vendor-specific cover images.
* Auto generate CMAKE_PREFIX_PATH/DESTDIR
* Auto set CMAKE_INSTALL_PREFIX
* Always default SLIC3R_STATIC to on
* Only allow one value for CMAKE_OSX_ARCHITECTURES
* Set arch for OpenSSL from CMAKE_OSX_ARCHITECTURES
* Set CMAKE_INSTALL_RPATH from CMAKE_PREFIX_PATH
* Default CMAKE_MACOSX_RPATH and CMAKE_MACOSX_BUNDLE to on
* Auto set BBL_RELEASE_TO_PUBLIC based on build config
* Default to GTK 3
* Fix linux debug build
Update find modules to also look for the debug variant of the libraries
* Set DEP_DEBUG and ORCA_INCLUDE_DEBUG_INFO based on CMAKE_BUILD_TYPE
* Add a fallback value for Windows SDK if the env variables are not set
* Reflect CMake changes in the build scripts
* Add missing line
* Fix auto setting DEP_DEBUG and ORCA_INCLUDE_DEBUG_INFO
* Update dep folder name for linux in GH actions
* Invert dep-folder-name conditions
`''` is considered a falsy value, which was causing the value to always be set to 'OrcaSlicer_dep'
* Properly handle finding the debug version of libnoise
* Convert FindNLopt.cmake to a config mode wrapper
* Use separate build directory for debug builds on Linux
* Move find_package for libnoise
* Cleanup and improve linux build script
- Add dry run
- Add build in RelWithDebInfo
- Add function to print and run commands
* Remove linux destdir deprecation and cleanup
* Fix flatpak build
* Disable fail fast for flatpak builds
* Flatpak improvements
- Build wxWidgets using deps cmake
- Improve handling of space freeing commands while building deps
- Allow cmake to directly download deps
- Set needed flags within cmake instead of the build manifest
* Print clean build commands
* Implement shellcheck recommendations
* Cleanup
* Fix CMakeLists.txt syntax by replacing empty elseif with else statement
---------
Co-authored-by: SoftFever <softfeverever@gmail.com>
Updated multiple filament profiles to convert fields such as filament_cost, filament_density, and filament_max_volumetric_speed from single values to arrays for consistency. Removed unnecessary fields from filament profiles to streamline data structure. This change enhances compatibility with the updated profile handling logic in the orca_filament_lib.py script.
* The 0.30mm layer height configuration for the 0.4 nozzle of the QIDI model has been removed
* Revert "The 0.30mm layer height configuration for the 0.4 nozzle of the QIDI model has been removed"
This reverts commit 8d296720b8.
* Update Qidi Q2 0.4 nozzle.json
修改Q2打印高度
* change machine_gcode
---------
Co-authored-by: SoftFever <softfeverever@gmail.com>
* Add Vietnamese localization file for OrcaSlicer
* add Vietnamese po file
* Add Vietnamese language support in GUI (#11000)
- Added Vietnamese (vi_VN) to the language mapping in GUI_App.cpp.
- Updated Preferences.cpp to include Vietnamese in the language combobox and display its name in Vietnamese (Tiếng Việt).
---------
Co-authored-by: SoftFever <softfeverever@gmail.com>
# Change FillTpmsFK.cpp to use MarchingSquares.hpp.
This is still a work in progress, but it does seem to work fine, and I
thought I'd put this up there for people to have a play with. I also
have a few questions because I'm not 100% familiar with the rest of the
codebase and I'm going to use the review of this to figure a few things
out.
This builds on #10747 which simplified and significantly optimized
MarchingSquares.hpp by replacing most of FillTpmsFK.cpp's implementation
to just use that marching squares implementation instead of
re-implementing it's own.
I don't yet have any solid speed comparisons but it feels a bit
subjectively faster, though I think that most of the delay in previewing
the slicing results is not in the fill-generation so it's a bit hard to
tell. I don't know if there are any tests/benchmarks/etc that I could
use for testing this, but I'm probably going to add some to this PR at
some point.
Even if this doesn't give a significant speed-up, it does significantly
simplify the code and make it easier to re-use for other equation based
fill-patterns. This could re-implement gyroid or TpmsD with about 5
lines of C code to inherit from `ScalarField` and redefine the `float
get_scalar(coordf_t x, coordf_t y, coordf_t z)` function with the
appropriate equation.
I don't think it would be faster than the current gyroid or TpmsD fills
though, since they directly generate a single line using the equation
and then just copy and shift it. However, it might not be much slower
and it would simplify the code to do them all the same way.
But the main reason I'm doing this is this can be used to implement far
more complicated fills that can't really be implemented any other way.
In particular I'm working towards a gyroid fill that dynamically varies
it's density based on how close it is to the walls.
I have a bunch of questions about some of the other bits that I'll post
as comments against the review-diff.
# Screenshots/Recordings/Graphs
I'll add some when I get there... but so far the results look identical
to the previous implementation even when I zoom in close.
<!--
> Please attach relevant screenshots to showcase the UI changes.
> Please attach images that can help explain the changes.
-->
## Tests
<!--
> Please describe the tests that you have conducted to verify the
changes made in this PR.
-->
Ported part skip from BambuStudio. Thanks bambulab!
<img width="1350" height="902" alt="image"
src="https://github.com/user-attachments/assets/d7f89950-3420-4ea5-bbb6-e53c875e7422"
/>
Haven't fully tested yet!
### Minimum Firmware Requirements (from BambuStudio release page):
- **X1C**: v01.09.02.12 or later
- **H2D**: v01.02.00.00 or later
- **Other models**: Currently not supported. Feature support coming in
future firmware updates.
> ⚠️ Make sure your printer firmware is up to date to use this feature.
This new feature allows users to override flow ratios for the following extrusion path types:
* First layer (excluding Brims and Skirts)
* Outer walls
* Inner walls
* Overhang perimeters
* Sparse infill
* Internal solid infill
* Gap fill
* Support
* Support interfaces
Fixes#11082
Slicing is going to the endless loop when the `Base pattern spacing` value is 0 for `Tree Slim` support.
Co-authored-by: SoftFever <softfeverever@gmail.com>
* Change ironing angle setting to be an offset angle from the top surface angle rather offset from the layer 0 angle that changes on each layer.
* Change Ironing angle offset range from [-1,359] to [0,359].
-1 is redundant because it is the same behavior as 0 offset.
* Change ironing_angle new default value to 0.
* Update existing print profiles' hardcoded ironing_angles from -1 to 0 to reflect new default value.
* Add migration for old -1 ironing_angle settings. Remove logic for -1 ironing_angle.
* Add u8 prefix for degree symbol string
* Use solid_infill_direction instead of infill_direction for top surface infill direction. Use calculate_infill_rotation_angle to add offset to solid_infill_rotate_template if used.
* Update quality settings wiki for Ironing
* Set f->is_using_template_angle when making ironing filler objects
* Update quality_settings_ironing link from #angle to #angle-offset
---------
Co-authored-by: Noisyfox <timemanager.rick@gmail.com>
* New materials
* Temps
* Full filament type list
* Improve nozzle temperature range validation messages
Separates minimum and maximum recommended temperature warnings for nozzle configuration + generig °c usage.
Co-Authored-By: Alexandre Folle de Menezes <afmenez@gmail.com>
* Material Updates
Co-Authored-By: Rodrigo <162915171+RF47@users.noreply.github.com>
* petg-cf10 should be petg-cf
options.
* Pla reduced range
* Adjust some temps
* FilamentTempType Temperature-based logic
* chamber temps
* Fromatting
* Filament chamber temperature range support
Introduces get_filament_chamber_temp_range to retrieve safe chamber temperature limits for filament types. Updates ConfigManipulation to use these limits instead of hardcoded values.
* add adhesion coefficient and yield strength
Replaces hardcoded material checks for adhesion coefficient and yield strength with lookup functions using extended FilamentType struct.
* Thermal length
* Fix
* Refactor filament type data to MaterialType class
Moved filament type properties and related lookup functions from PrintConfig.cpp into a new MaterialType class.
* Fix adhesion_coefficient
Co-Authored-By: SoftFever <softfeverever@gmail.com>
---------
Co-authored-by: Alexandre Folle de Menezes <afmenez@gmail.com>
Co-authored-by: Rodrigo <162915171+RF47@users.noreply.github.com>
Co-authored-by: SoftFever <softfeverever@gmail.com>
* Optimize and simplify MarchingSquares.hpp, and fix it's test.
This changes the implementation to get the possible next directions for a cell
when building the tags and clearing them as the cells are visited during the
march, instead of adding the visited previous direction to the tags during the
march. The Dir enum has been turned into bit flags that for the possible next
directions with boolean operators for testing/setting/clearing them. This
simplifies and optimizes many operations during the march and building the
polygons.
The complicated/broken and unused partial support for cell overlap has been
removed, simplifying the overly confusing grid iteration logic.
The broken test has been fixed by removing the now gone `RasterBase` namespace
from `sla::RasterBase::Pixeldim` and `sla:RasterBase:Resolution`, and the
CMakeLists.txt entry uncommented.
make Dir into flags
* Further optimize MarchingSquares.hpp and improve comments.
* Switch from a single byte-vector containing tags and dirs for each cell to a
m_tags vector of bit-packed tags for each grid corner and an m_dirs vector
of packed 4bit dirs for each cell. Since each grid corner tag is shared by
the 4 adjacent cells this significantly reduces storage space and avoids
redundantly calculating each tag 4x. It also significantly improves memory
locality with each phase of calculating tags, calculating dirs, calculating
rings operating only on the tags or dirs data required without them being
interleaved with the data they don't need.
* Change NEXT_CCW to be initialized with a static constexpr lambda instead of
a manually entered table. This avoids typo errors manually building the
table.
* Optimize search_start_cell() so it can efficiently skip over cleared blocks
of 8 dirs in the packed m_dirs vector.
* Change the tags logical labeling to better suit the packed tags vector data.
This makes it a tiny bit more efficient to extract from the m_tags bitmap.
* Remove the now unused SquareTag enum class.
* Add comments explaining the algorithm, including corner-cases in cell
iteration.
* Remove unused Dir operators and get_dirs() argument, and clang-format.
* Fix some bugs and add stream output operators for debugging.
* Fix a bug building tags where `step(gcrd, Dir::right)` was not assigned to
update the gcrd grid point. Perhaps this should be a mutating method, or
even a += operator? Also when wrapping at the end of a row it was updating
the gcrd grid point by mutating the p raster point instead of itself.
Perhaps Grid and Raster points should be different types? Maybe even
templated?
* Fix a bug in get_tags() when the second row tags are packed into any of the
2 LSB's of the uint32_t blocks. In hind-sight obviously `>>(o - 2)` will not
shift left when `o < 2`.
* Move interpolation of the edge-crossings into a `interpolate()` method, and
make it shift bottom and right side points "out" by one to account for
raster pixel width. This makes the results track the raster shapes much more
accurately for very small windows.
* Make `interpolate_rings()` check for and remove duplicated points. It turns
out it's pretty common that two edge-crossing-points at a corner interpolate
to the same point. This can also happen for the first and last points.
* For Coord add `==` and `!=` operators, and use them wherever Coord's are
compared.
* Add `<<` stream output operators for Coord, Ring, and Dir classes. Add
`streamtags(<stream>)` and `streamdirs(<stream>)` methods for dumping the
tags and dirs data in an easy to understand text format. These make
print-debugging much easier.
* Add `assert(idx < m_gridlen)` in a bunch of places where grid-indexes are
used.
* For test_clipper_utils.cpp fix three "ambiguous overloading" compiler errors.
This just adds three `Polygons` qualifications to fix compiler errors about
ambiguous overloaded methods.
Note this file was formated with a mixture of tabs and spaces and had lots of
trailing whitespace. My editor cleaned these up resulting in a large looking
diff, but if you use `git diff -w` to ignore the whitespace changes you will
see it is actually tiny.
errros
* Update SLA/RasterToPolygons.* for MarchingSquares.hpp improvements.
Change the minimum and default window size from 2x2 to 1x1. Also remove the
strange pixel size re-scaling by (resolution/resolution-1).
The old MarchingSquares implementation had complications around a default
minimum 1 pixel "overlap" between cells which messed with the scaling a tiny
bit and meant when you requested a 2x2 window size it actually used a 1x1
window. Both of these meant you had to specify a window 1 pixel larger than
you really wanted, and you needed to undo the strange scaling artifact for
accurate dimensions of your results.
This has been fixed/removed in the new implementation, so the window is the
window, there is no overlap, and no strange miss-scaling.
* Fix test_marchingsquares.cpp and add StreamUtils.hpp.
This fixes the MarchingSquares unittests to both pass and be more strict than
they were before.
It also adds libslic3r/StreamUtils.hpp which includes some handy streaming
operators for standard libslic3r classes used to show extracted polys in the
unittests.
* Change Format/SL1.cpp to support the min 1x1 window for MarchingSquares.
* Fix the ring-walk termination condition.
Terminate the ring-walk when we return to the starting cell instead of when we
reach a cell with no remaining directions. This ensures we don't merge two
polygons if we started on an ambiguous cell.
* Revert the removal of duplicate points in interpolate_rings().
It turns out that duplicate points are only relatively common when using a 1x1
window. These happen when the line passes through the corner pixel on a
top-left corner in the raster, and the probability of this rapidly declines as
the window increases, so in many cases this filtering is just overhead. It can
also be potentially useful to see the points for every edge crossing even if
they are duplicates. This kind of filtering is already done and done better in
the polygon post-processing.
* rename `interpolate()` to `interpolate_edge()`, make it update the point
in-place, and add asserts to ensure the input point is a valid edge
interpolation point.
* Remove the duplicate point filtering from `interpolate_rings()` and simplify
it.
* Optimize directions building.
This optimizes `get_dirs_block8()` to rapidly skip over blocks where the tags
produce no directions (all tags are 1's or 0's), and also to build the
directions faster when it has to by fetching the whole blocks worth of tags at
once instead of cell-by-cell.
* Rename `get_tags()` to `get_tags9()` and make it fetch a row of nine tags
instead of the tags for a single cell.
* Optimize `get_dirs_block8()` to use `get_tags9()` to get the next nine tags
for the current and next rows and then shift through them to generate the
tags and directions for each cell in the block. Also abort early and just
return an empty block if the tags are all 0's or all 1's.
* Tiny optimization for `get_tags_block32()`.
This avoids using the `step()` method for a simple step-right that can be done
with a simple increment of the column. It also avoids re-calculating the
raster-coodinates for every corner, instead incrementing the column by
`m_window.c` until the end of a row.
* Fix svg output in test_marchingsquares.cpp for recreate_object_from_rasters.
These SVG's were not properly centered...
* Fix 2 static_casts for compiling on Windows.
Thanks to RF47 for pointing this out on the #10747 pull request.
* Make edge iteration use O(ln(N)) binary search instead of linear.
This should be much faster when the window size is large.
* Make `CellIt` into a `std::random_access_iterator_tag` so that
`std::lower_bound()` can use a binary search to find the point on the edge
instead of a linear search.
* Change `step()` to support an optional distance argument and make it modify
the `Coord` in-place instead of return a new one.
* Update tests for the `step()` change.
* Add Catch2 BENCHMARK tests for MarchingSquares.
This required enabling the benchmarks in the tests/CMakeLists.txt config.
* Add a _Loop<> specialization for parallel execution using ExecutionTBB.
This is something that could be added wherever you are going to use this, but
I intend on using this in multiple places so we might as add this once in one
place where it can be reused.
* Fix whitespace in messed up by tab-replacements.
My editor renders, and replaces, tabs as 8 spaces. This messed up the
indenting in tests/libslic3r/CMakeLists.txt and
tests/libslic3r/test_clipper_utils.cpp when I made tiny changes in them.
This fixes the indenting using 4 chars. Note it will still show as a diff
because it is replacing tabs with 4 spaces, and removing trailing whitespace.
But at least it's now indented correctly...
---------
Co-authored-by: Donovan Baarda <dbaarda@google.com>
Co-authored-by: SoftFever <softfeverever@gmail.com>
Caused by setting wrong value in app config
jira:STUDIO-10399
Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: Id492e666f78c05a4563d4625b544623c6529aae8
(cherry picked from commit 0dbd5417a831f8af5347cee9ffb4f7857e2396f0)
caused by printer_model missed in the setup stage
jira: STUDIO-10966
Change-Id: I3a887de800c62c5dd355c9dce554e2b5828a1c55
(cherry picked from commit a598ce8d6127f750a0c6e514a51111b247186c41)
use the shared printable area
jira: no-jira
Change-Id: I23e97a06b0ca9573c84fe4081496bae2e8e92382
(cherry picked from commit 3245ea6f6dd54bfaae30e76c903abfd632972544)
and cannot set cali step to 0.001
jira: STUDIO-14042 & STUDIO-14119
Change-Id: I56ecc70d0413398ecacd1c842f7102e810277cfd
(cherry picked from commit c16925931c642d8e27d739a401148bc94c5f3965)
Saved colors now reappear when reopening the picker.
jira: STUDIO-14100
Change-Id: I0348a177fcacb83779cf8c9c21151df5ccfd3e8d
(cherry picked from commit 7c21048b510ea993520e74d7068d17f0a879315f)
report from cloud team
jira: no-jira
Change-Id: I880d0fbf0ee6fac00eded9e8b3f52c0cfb6de870
(cherry picked from commit 1128c0087e980f70865dff6185f1f7ad540cf6db)
1. Use the minimum flush between nozzle volume and flush in datalist
2. Add a new param to decide the datalist to use
3. set for o1s
github:7445
Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: I7b3b69ee06f984b279ae4be47f70f5a472703b15
(cherry picked from commit 036fa80eea9ef8e02d9c9c9e6e7974d5a9a08131)
This reverts commit 4c091e4ab9ee55990eab8c72ef4e9acbbea65641.
Reason for revert: <miss one patch>
Change-Id: Ieb56c2dba1ead206489cecc3b25f136a00fea8b2
(cherry picked from commit 7632fe1dfa452c3a0e2c1d49aef0308100479c3a)
This reverts commit 07759cf9fdba538a488399abe47a1d417ed27b13.
Reason for revert: <miss one patch>
Change-Id: Ie0ac79b9db0259881ddc20a23feff3e6a4b0c9f6
(cherry picked from commit a09b2cacfbacff5ee26ed757a9f76c9dfb7cca09)
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)
The translated strings cannot match the correct config, delete the translation of these two opt_key
jira: STUDIO-13989, STUDIO-13988
Change-Id: I5e8ebf342b5bb18c1ca6a88a3916197941c0cb03
(cherry picked from commit a84d9ab466b1f6b1ccb727d4f34cdb7c2eb8e30a)
When printing by object, not lifted when traveling to the second piece, which causes scratches on the surface of the first piece.
Modify the lift height in GCode.cpp to add a z_hop height to the highest print height to avoid scratches.
jira: STUDIO-14001
Change-Id: I97835fce5b82f405d600f5aa6ce74edae1e97b47
(cherry picked from commit 9282806196e455883b36b17391a404106c4b3c82)
src/slic3r/GUI/DeviceCore/DevLamp.h:22:41: error: ‘string’ in namespace ‘std’ does not name a type
22 | void SetChamberLight(const std::string& status);
| ^~~~~~
(cherry picked from commit abd986164785070dcd39204781a0e5a9d40ce216)
src/slic3r/GUI/DeviceCore/DevManager.h:108:5: error: ‘wxTimer’ does not name a type
108 | wxTimer* m_timer{ nullptr };
| ^~~~~~~
(cherry picked from commit be709a977ea47380135606cccfab325cc5bb9df1)
In file included from /run/build/BambuStudio/src/slic3r/GUI/DeviceCore/DevFilaBlackList.cpp:5:
/run/build/BambuStudio/src/slic3r/GUI/DeviceCore/DevManager.h:23:10: error: ‘mutex’ in namespace ‘std’ does not name a type
23 | std::mutex listMutex;
| ^~~~~
(cherry picked from commit 53dba781011d468f44fc98a564157674220a947f)
In file included from /run/build/BambuStudio/src/slic3r/GUI/DeviceCore/DevFirmware.cpp:1:
src/slic3r/GUI/DeviceCore/DevFirmware.h:33:5: error: ‘wxString’ does not name a type
33 | wxString product_name;
| ^~~~~~~~
src/slic3r/GUI/DeviceCore/DevFilaBlackList.h:10:230: error: ‘wxString’ has not been declared
10 | static void check_filaments_in_blacklist(std::string model_id, std::string tag_vendor, std::string tag_type, const std::string& filament_id, int ams_id, int slot_id, std::string tag_name, bool& in_blacklist, std::string& ac, wxString& info);
| ^~~~~~~~
(cherry picked from commit 8092454b7560150c03bcd6c27c996b33dd52758f)
In file included from /run/build/BambuStudio/src/slic3r/GUI/DeviceCore/DevPrintTaskInfo.cpp:1:
src/slic3r/GUI/DeviceCore/DevPrintTaskInfo.h:15:10: error: ‘string’ in namespace ‘std’ does not name a type
15 | std::string content;
| ^~~~~~
src/slic3r/GUI/DeviceCore/DevPrintTaskInfo.h:16:10: error: ‘vector’ in namespace ‘std’ does not name a template type
16 | std::vector<std::string> image_url_paths;
| ^~~~~~
(cherry picked from commit 1e0ae7d3f8b47d1f8c1bb6b05be54d627bcc95f0)
src/slic3r/GUI/DeviceCore/DevExtruderSystem.h:136:10: error: ‘optional’ in namespace ‘std’ does not name a template type
136 | std::optional<DevExtder> GetCurrentExtder() const;
| ^~~~~~~~
(cherry picked from commit 3c67563639a6c99955e16ac8e5b4042e64b07b73)
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)
Added option information to the error prompt to facilitate users to jump to the corresponding option
jira: none
Change-Id: I3f13acac08a1e84625dc22363822989f1eab7ec7
(cherry picked from commit 96b4e6610fa532b74247abe925d8c8d19869bf93)
Add warning about enable_wrapping_detection without prime tower. Note: Only one of this warning, check_multi_filament_valid, and support_enforcer without support can be displayed at the same time.
jira: none
Change-Id: Ic8f0fc7ab62b63af1604e32b7380642741669462
(cherry picked from commit 698c0d16c99e13244101c06d7a3a8ff66ae2e4d0)
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)
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)
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)
The extreme extrusion in the H2D first layer's start code caused the color range in the preview to be too large. Add a constraint to eliminate the effect of this start extrusion.
jira: STUDIO-13830
Change-Id: Ifccbd14449d1c424f0bb3c1e3d254bddffa41a7c
(cherry picked from commit 6b935a9de0f9fe98f041f509ab6d2d72b59e957b)
Because the function in print.cpp mistakenly considers models with different variable layer height configurations to be the same, the layer height configurations of the copied objects are optimized and overwritten. Fixed function: auto is_print_object_the_same = [this](const PrintObject* object1, const PrintObject* object2)
jira: STUDIO-13507
Change-Id: Ic4b3a479e8984b46a2f9557f65826951b8979646
(cherry picked from commit 2d5137914e9699c4fe9ddbbc76f13b85dbc3a1a9)
In print.cpp, logic was added to skip checking for mixed prints when using the byobject mode. This prevented false positives for single-filament objects, but it also failed to detect mixed prints. This detection has been restored, but separate logic for byobject mode has been added to the detection function: StringObjectException Print::check_multi_filament_valid(const Print& print). This will only prompt a warning when a single object contains high- and low-temperature filaments.
jira: STUDIO-13667
Change-Id: I37622e49b76581ea4a2d78c97ebcd655bb7199e6
(cherry picked from commit 7128758056f1fe11bdd953e7f3d91284b15535a9)
Due to the decimal portion of floating-point numbers generated during square root extraction, mismatched matrix sizes were mistakenly considered consistent, resulting in the flush matrix size not being corrected. Now we compare the square value to avoid errors.
jira: STUDIO-13727
Change-Id: I1f3768dab186b25c9ac4e85d4eff24913f15b3dc
(cherry picked from commit d0e9a8c3f3086b4ad2bc14bbfebd3d6ceff9eefc)
Fix the issue that 3mf files containing small thumbnails cause the print page to crash. Due to m_cur_input_thumbnail_data has small size which caused array out of bounds and crash.
jira: STUDIO-13731
Change-Id: Ie3c30287265f635e6afb2b1157c97c5b6863d54e
(cherry picked from commit adffd16e1fbbcba0f1bc33ebd6112e57c88f30e7)
1.Correct the wrong logic for support filament check
jira:STUDIO-13719
Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: Ia0d5dfa210a4335ea2a6a5f5a97ba69fd136c720
(cherry picked from commit 75c75f83679937b1fcd2ef120ac83cc9a67f125b)
In file included from /run/build/BambuStudio/src/slic3r/GUI/DeviceErrorDialog.cpp:1:
/run/build/BambuStudio/src/slic3r/GUI/DeviceErrorDialog.hpp:78:5: error: ‘wxStaticBitmap’ does not name a type
78 | wxStaticBitmap* m_error_picture;
| ^~~~~~~~~~~~~~
(cherry picked from commit 834d2bc8026e38d7ed1d0bafa3e125baf412a322)
/run/build/BambuStudio/src/slic3r/GUI/EncodedFilament.hpp: At global scope:
/run/build/BambuStudio/src/slic3r/GUI/EncodedFilament.hpp:81:10: error: ‘set’ in namespace ‘std’ does not name a template type
81 | std::set<wxColour, wxColorSorter> m_colors;
| ^~~
/run/build/BambuStudio/src/slic3r/GUI/EncodedFilament.hpp:13:1: note: ‘std::set’ is defined in header ‘<set>’; this is probably fixable by adding ‘#include <set>’
12 | #include <chrono>
+++ |+#include <set>
13 |
(cherry picked from commit 9d86c8c15e69158d386596bd860b99b61b2c2e61)
/run/build/BambuStudio/src/slic3r/GUI/EncodedFilament.hpp: In function ‘Slic3r::ColourHSV Slic3r::wxColourToHSV(const wxColour&)’:
/run/build/BambuStudio/src/slic3r/GUI/EncodedFilament.hpp:41:25: error: ‘fmod’ was not declared in this scope
41 | h = 60.0 * (fmod(((g - b) / delta), 6.0));
| ^~~~
(cherry picked from commit 625b661f292fdac9b337365b6792c959f6df59ff)
• Official filament picker now renders semi-transparent colors correctly on macOS.
• Disables the flicker prompt while the default system color picker is open.
jira: STUDIO-13452
Change-Id: I6a83d3cf488114f92813e378b507f293d7c4254e
(cherry picked from commit 4cd2c47f99f956681f41a1af0343efc9ad377684)
Brief flicker reminds users to act on the dialog before proceeding elsewhere.
jira: STUDIO-13492
Change-Id: I3daaa567f4aa738094fc01effcd9b9245aea9d2c
(cherry picked from commit 3decd7a5e4f5a13b7fd1dbb0fc39e0b3849ed6d1)
change: Multiply the flush_volumes_matrix in the exported gcode by the coefficient and output the final value.
Also fixed the issue where the flush matrix page was limited to 900, but the Gcode output value could be greater than 900 (the product of the matrix and the multiplier was limited to 900 before storing the value)
jira: STUDIO-13332
Change-Id: I893f27bec206c3b9da3273241d1cd5f1883e55a9
(cherry picked from commit 8aa91cd86c8c75b3736c616bcfbed4872db9734c)
(cherry picked from commit 038fc1c18220cef8c269d272059afea503fb5d5b)
1. Use the minimum flush between nozzle volume and flush in datalist
2. Add a new param to decide the datalist to use
github:7445
Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: Id87c98ca5069e7b328974d641d7a81dfbf9c50a0
(cherry picked from commit 2be29b784727330732170b5c2ff0ba9d5e79d82f)
* Disable spiral_mode_smooth in calibrations
Causes problems when using absolute distances (use_relative_e_distances = false).
* Add note about absolute E distances in Smooth Spiral
- Add safeguards for invalid idx when opening color picker
- Prevent crash when filament color data is missing or uninitialized
- Simplify private member variable naming in filament picker dialog
jira: STUDIO-12956
Change-Id: I455565bdac769f497f22f884e19cd0cbb04fb8c3
(cherry picked from commit 705ad911ee81395b2162ae67a8f64e237f6a3c5d)
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)
- Use ellipsis to truncate long preset names and type names in the official picker
- Show user-defined name for official filaments by default in the picker
jira: STUDIO-12936, STUDIO-13128, STUDIO-13129
Change-Id: I744b44df32a7108a4273c3746eedddd9cde436e9
(cherry picked from commit dc0a66fd2017d4361d6b5597c36142bb03a92374)
- Display RGB values when a custom color is selected
- Prevent official color picker dialog from closing when custom color dialog is canceled
- Ensure multi-color materials are correctly displayed when importing new 3MF files
jira: STUDIO-12938, STUDIO-12937, STUDIO-12933, STUDIO-13110
Change-Id: Iab410585bf8cc5e9e81c6f0da23fe4ddba561785
(cherry picked from commit 2c20d591b998b02b0b66ac81b048a28fa26bd409)
- Adjust the color of the dividing line to be darker in dark mode.
jira: STUDIO-12982, STUDIO-12935
Change-Id: Icda8dd10dbcc470e55c8760716f5545fb784f194
(cherry picked from commit 60aa221033134dfba19830f71cd307db91119ed6)
- Applied dark theme styling to filament picker dialog
- Fixed color picker background not updating on theme switch
jira: STUDIO-12935
Change-Id: I9c7dcc518e7b0bd2c330f477ee42f4c61ea9fd4b
(cherry picked from commit 66ae7a02b945ff603b2dc699c93e55589481379e)
- Add a filament picker dialog for official color selection
- Enable displaying multiple filament colors in the picker dialog and preview sidebar
- Introduce two new config options:
- `filament_multi_colors`
- `filament_color_types`
to both the application config and the 3MF config
jira: STUDIO-12346
Change-Id: I66f8c1ec9147df4f5948c8a329c1737551280e63
(cherry picked from commit 522dc0bbca49033a1ba9725ca7f6c3ea729691a6)
Refactor DMG creation process in build workflow
* Update the OrcaSlicer DMG creation steps to exclude the profile validator helper from the main DMG.
* Introduce a dedicated directory for the main OrcaSlicer DMG and the profile validator DMG, ensuring a cleaner build process.
* Use symbolic links with the `-sfn` option to avoid issues with existing links.
This change enhances the organization of the build artifacts and improves the clarity of the DMG creation process.
/run/build/BambuStudio/src/slic3r/GUI/SkipPartCanvas.cpp: In lambda function:
/run/build/BambuStudio/src/slic3r/GUI/SkipPartCanvas.cpp:55:14: error: ‘map’ is not a member of ‘std’
55 | std::map<cv::Vec3b, int, std::function<bool(const cv::Vec3b &, const cv::Vec3b &)>> colorCount(
| ^~~
/run/build/BambuStudio/src/slic3r/GUI/SkipPartCanvas.cpp:13:1: note: ‘std::map’ is defined in header ‘<map>’; this is probably fixable by adding ‘#include <map>’
12 | #include <filesystem>
+++ |+#include <map>
13 |
(cherry picked from commit b9402b5be60188e8867471b64c3bc1d8c1d6bfa7)
/run/build/BambuStudio/src/slic3r/GUI/SkipPartCanvas.cpp: In member function ‘void Slic3r::GUI::_BBS_3MF_Base::log_errors()’:
/run/build/BambuStudio/src/slic3r/GUI/SkipPartCanvas.cpp:598:47: error: ‘BOOST_LOG_TRIVIAL’ was not declared in this scope
598 | for (const std::string &error : m_errors) BOOST_LOG_TRIVIAL(error) << error;
| ^~~~~~~~~~~~~~~~~
(cherry picked from commit dba7f3ad07f530ddce3e75eaf8f357794cfd1935)
/run/build/BambuStudio/src/slic3r/GUI/PartSkipDialog.cpp: In lambda function:
/run/build/BambuStudio/src/slic3r/GUI/PartSkipDialog.cpp:495: error: ‘lexical_cast’ is not a member of ‘boost’
495 | url += "&refresh_url=" + boost::lexical_cast<std::string>(&refresh_agora_url);
(cherry picked from commit fc8537c038a8dcc419f8b5558feb71700b77c996)
JIRA: STUDIO-9372 STUDIO-9374 STUDIO-9368
If the printer version does not support uploading, the original protocol
will be used
Change-Id: I3d47ac2567c2c6709a5b983ff1ad552d9a8606d4
(cherry picked from commit b8dde8ae7f4f5883fc163c57bb607a08ecdabf2b)
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
#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)
/run/build/BambuStudio/src/slic3r/GUI/PrePrintChecker.cpp: In member function ‘void Slic3r::GUI::PrinterMsgPanel::SetLabelList(const std::vector<wxString>&, const wxColour&)’:
/run/build/BambuStudio/src/slic3r/GUI/PrePrintChecker.cpp:182:10: error: ‘set’ is not a member of ‘std’
182 | std::set<wxString> unique_texts;
| ^~~
/run/build/BambuStudio/src/slic3r/GUI/PrePrintChecker.cpp:4:1: note: ‘std::set’ is defined in header ‘<set>’; this is probably fixable by adding ‘#include <set>’
3 | #include "I18N.hpp"
+++ |+#include <set>
4 |
(cherry picked from commit 4c9be9a0e42d5e7b94086bcc696c75aa8319c63d)
/run/build/BambuStudio/src/libslic3r/PrintApply.cpp:313:28: error: ‘diff’ was not declared in this scope
313 | Polygons res = diff(printable_poly, poly);
| ^~~~
/run/build/BambuStudio/src/libslic3r/PrintApply.cpp:317:39: error: ‘intersection’ was not declared in this scope; did you mean ‘Slic3r::line_alg::intersection’?
317 | Polygons all_extruder_polys = intersection({printable_poly}, extruder_polys);
| ^~~~~~~~~~~~
| Slic3r::line_alg::intersection
In file included from /run/build/BambuStudio/src/libslic3r/Polygon.hpp:7,
from /run/build/BambuStudio/src/libslic3r/BoundingBox.hpp:7,
from /run/build/BambuStudio/src/libslic3r/Geometry.hpp:5,
from /run/build/BambuStudio/src/libslic3r/Model.hpp:6:
/run/build/BambuStudio/src/libslic3r/Line.hpp:123:24: note: ‘Slic3r::line_alg::intersection’ declared here
123 | template<class L> bool intersection(const L &l1, const L &l2, Vec<Dim<L>, Scalar<L>> *intersection_pt)
| ^~~~~~~~~~~~
/run/build/BambuStudio/src/libslic3r/PrintApply.cpp: In lambda function:
/run/build/BambuStudio/src/libslic3r/PrintApply.cpp:323:22: error: ‘intersection’ is not captured
323 | if (!intersection(poly, contours[i]).empty()) { result.insert(static_cast<int>(i)); }
| ^~~~~~~~~~~~
(cherry picked from commit 00f4bbef9bcab1d7bb15ccfaf7bb4d3208b4bd12)
1. Should set plate index before send file
jira:STUDIO-12431
Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: Id7828069a81f5671b0a6b90d7b0c9b703b10a9cc
(cherry picked from commit fd1e17f818c5c8e38d207e1e829dc5c5749e6f65)
The prime tower is not allowed to extend beyond the plate boundary when moving it.
jira: STUDIO-11817 & STUDIO-12313
Change-Id: Icbb85dad26531b0ac01f088fc086b4ff499ac423
(cherry picked from commit 8f4d5f44d721fa9cae70cd9b47735c93151f2b81)
* Updated the 'How to create profiles' document to include a new section on testing profile changes.
* Added images for accessing the configuration folder and clearing the cache to ensure OrcaSlicer loads updated profiles.
This enhancement aims to assist developers in effectively managing profile updates during development.
* The 0.30mm layer height configuration for the 0.4 nozzle of the QIDI model has been removed
* Revert "The 0.30mm layer height configuration for the 0.4 nozzle of the QIDI model has been removed"
This reverts commit 8d296720b8.
* Update Qidi Q2 0.4 nozzle.json
修改Q2打印高度
---------
Co-authored-by: SoftFever <softfeverever@gmail.com>
JIRA: none
Change-Id: I163550c2e784a5920dbfeb3ee7d9344506da1567
Signed-off-by: Stone Li <stone.li@bambulab.com>
(cherry picked from commit fc6b447b4ae84901b17431ae1766fc581233e1f1)
* Enhance GCode handling for Z-axis movements
- Updated `travel_to_z` method to include a `force` parameter, allowing forced Z movements.
- Modified GCode generation logic to ensure Z position is restored after unknown last positions.
- Enforce z restoreation after tool changer
* Improve filament_multitool_ramming logic
* fix indent
* Add a once-daily Build All which skips caches
When an external dependency breaks a build, ensures a record exists of
it happening.
Half of #10404
* `inputs` is plural
1. Remove popup message with PVA
2. Add popup message with PETG
3. Encourage users to print both support base and interface with Supp.PLA
jira: STUDIO-11984
Change-Id: I7be5d033e47939b9b80ddb99635b2abbb8c848d5
(cherry picked from commit c7d05861270f925411256d8ce20093ec1701230a)
This might help improve the quality and strength of supports.
jira: STUDIO-11985
Change-Id: I51644c84b9ede018a08a0f2b8fdca5d271d69991
(cherry picked from commit ba5dbc544b65276d772834305fcca6b5f7536d6e)
This reverts commit e62d66565b2959f4131afe52b3471e7226c42966.
Reason for revert: not ready
Change-Id: I0c5146a19d08315af6816133079e92d902d65044
(cherry picked from commit fda752bb79dd7b9a3312ebac9c5d8479e528982e)
JIRA: STUDIO-9372 STUDIO-9374 STUDIO-9368
If the printer version does not support uploading, the original protocol
will be used
Change-Id: I3d47ac2567c2c6709a5b983ff1ad552d9a8606d4
(cherry picked from commit b8dde8ae7f4f5883fc163c57bb607a08ecdabf2b)
1. Caused by passing sentences to js. If failed, use raw english sentences
jira: NONE
Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: I48ea55101be26449ca2fd6e2bb5b08c596fe0087
(cherry picked from commit 47f714bf2fe5ab88c906a3fcbb28f1a715565315)
* Shellcheck all shell scripts
* Implement Shellcheck's recommendations
* Shellcheck the distribution-specific files
* Include the distro scripts to trigger action
* Fix array usage (hopefully)
* Use single-quote string
TIL: single quote string in yaml treats everything as literal, but
double quote allows backslash escaping.
* Make all cmake commands use set+-x dance and fix macos getopts line
Make Claude happy
getopts has colon after a command which takes an argument
---------
Co-authored-by: SoftFever <softfeverever@gmail.com>
- Reduced total amount of retraction as stock PTFE liner may not be able to take the heat. (7mm to 3mm)
- Added X Y to final G28 to avoid crashing into prints.
Co-authored-by: frawg <>
* fixes: 999 CMake Warnings at src/dev-utils/CMakeLists.txt:39 (add_custom_command)
* cmake clenup: adds PUBLIC/PRIVATE to libslic3r; attempt to reduce warnigns from eigen
* src/*/CMakeLists.txt: adds SYSTEM to arget_include_directories()
* src/*/CMakeLists.txt: removes duplicate sources from lisbslic3r_sources and SLIC3R_GUI_SOURCES"
* .gititnore: adds CMakeLists.txt.user and CMakeLists.txt.autosave
* deps_src/*/CMakeLists.txt: adds SYSTEM to arget_include_directories()
* removes #pragma once from .cpp file
As you can see, it's checkin the local variable
`custom_gcode_placeholders` which comes from
`custom_gcode_specific_placeholders()` which is:
```
const std::map<t_custom_gcode_key, t_config_option_keys>& custom_gcode_specific_placeholders()
{
return s_CustomGcodeSpecificPlaceholders;
}
```
not s_CustomGcodeSpecificOptions
/run/build/BambuStudio/src/slic3r/Utils/WxFontUtils.hpp: At global scope:
/run/build/BambuStudio/src/slic3r/Utils/WxFontUtils.hpp:44:56: error: ‘wxDC’ has not been declared
44 | static void get_suitable_font_size(int max_height, wxDC &dc);
| ^~~~
(cherry picked from commit 7f24d5123766fbcfcec6f1343eefa32edb6254d6)
In file included from /run/build/BambuStudio/src/slic3r/GUI/FilamentGroupPopup.cpp:1:
/run/build/BambuStudio/src/slic3r/GUI/FilamentGroupPopup.hpp:60:17: error: ‘wxBitmapButton’ was not declared in this scope
60 | std::vector<wxBitmapButton*> radio_btns;
| ^~~~~~~~~~~~~~
/run/build/BambuStudio/src/slic3r/GUI/FilamentGroupPopup.hpp:60:32: error: template argument 2 is invalid
/run/build/BambuStudio/src/slic3r/GUI/FilamentGroupPopup.hpp:65:14: error: field ‘checked_bmp’ has incomplete type ‘wxBitmap’
65 | wxBitmap checked_bmp;
| ^~~~~~~~~~~
(cherry picked from commit ab345221437f52606c54c76fd9837bd9dad98d1c)
In file included from /run/build/BambuStudio/src/slic3r/GUI/FilamentGroupPopup.cpp:1:
/run/build/BambuStudio/src/slic3r/GUI/FilamentGroupPopup.hpp:33:18: error: ‘wxTimerEvent’ has not been declared
33 | void OnTimer(wxTimerEvent &event);
| ^~~~~~~~~~~~
(cherry picked from commit b890f0a39fcb48a1f1e1ee01f2aacf5d2fa35ad6)
/run/build/BambuStudio/src/slic3r/GUI/WipeTowerDialog.cpp: In constructor ‘WipingDialog::WipingDialog(wxWindow*, const std::vector<std::vector<int>, std::allocator<std::vector<int> > >&, int)’:
/run/build/BambuStudio/src/slic3r/GUI/WipeTowerDialog.cpp:123: error: ‘wxDisplay’ was not declared in this scope; did you mean ‘wxGetDisplay’?
123 | double scale_factor = wxDisplay().GetScaleFactor();
(cherry picked from commit c6f2b0e950e607b24a74e797534e0aa7f6216d6f)
/run/build/BambuStudio/src/slic3r/GUI/ImGuiWrapper.cpp: In static member function ‘static ImVec2 Slic3r::GUI::ImGuiWrapper::suggest_location(const ImVec2&, const Slic3r::Polygon&, const ImVec2&)’:
/run/build/BambuStudio/src/slic3r/GUI/ImGuiWrapper.cpp:2201: error: ‘intersection’ is not a member of ‘Slic3r’; did you mean ‘PrinterFunction’?
2201 | if (Slic3r::intersection(interest, Polygon(moved_polygon)).empty())
(cherry picked from commit de2b5b74cecda595d75fef894da4a92936e0cb7f)
In file included from /run/build/BambuStudio/src/slic3r/GUI/WipeTowerDialog.cpp:4:
/run/build/BambuStudio/src/slic3r/GUI/WipeTowerDialog.hpp:8:1: error: expected class-name before ‘{’ token
8 | {
| ^
(cherry picked from commit 989d9f36b5a495e2d9b2e3c76d849a3b79f49799)
/run/build/BambuStudio/src/slic3r/GUI/CapsuleButton.cpp: In member function ‘void Slic3r::GUI::CapsuleButton::OnPaint(wxPaintEvent&)’:
/run/build/BambuStudio/src/slic3r/GUI/CapsuleButton.cpp:63: error: ‘wxAutoBufferedPaintDC’ was not declared in this scope
63 | wxAutoBufferedPaintDC dc(this);
/run/build/BambuStudio/src/slic3r/GUI/FilamentMapPanel.cpp: In member function ‘void Slic3r::GUI::FilamentMapBtnPanel::OnPaint(wxPaintEvent&)’:
/run/build/BambuStudio/src/slic3r/GUI/FilamentMapPanel.cpp:182: error: ‘wxAutoBufferedPaintDC’ was not declared in this scope
182 | wxAutoBufferedPaintDC dc(this);
(cherry picked from commit 05d977b553c24338286d9b01d8888e46214216c6)
/run/build/BambuStudio/src/slic3r/GUI/DragDropPanel.hpp:36:5: error: ‘wxGridSizer’ does not name a type; did you mean ‘wxSizer’?
36 | wxGridSizer *m_grid_item_sizer;
| ^~~~~~~~~~~
| wxSizer
(cherry picked from commit 06a146e20cbc9642b3f65a5173ffbee3c052798c)
/run/build/BambuStudio/src/slic3r/GUI/3DScene.hpp: At global scope:
/run/build/BambuStudio/src/slic3r/GUI/3DScene.hpp:65:5: error: ‘FilamentMapMode’ does not name a type
65 | FilamentMapMode mode;
| ^~~~~~~~~~~~~~~
(cherry picked from commit eaec4c997eca8310e9037b70567dceed79dd210c)
/run/build/BambuStudio/src/libslic3r/FilamentGroupUtils.cpp: In lambda function:
/run/build/BambuStudio/src/libslic3r/FilamentGroupUtils.cpp:92:18: error: ‘regex’ is not a member of ‘std’
92 | std::regex r1(R"(^Sup.(\w+)$)");
| ^~~~~
(cherry picked from commit bba6fa71a4a7fb931a93b9e5aa3be02865a0357e)
/run/build/BambuStudio/src/slic3r/GUI/Widgets/DropDown.cpp:281:10: error: ‘set’ is not a member of ‘std’
281 | std::set<wxString> groups;
| ^~~
(cherry picked from commit 842152b65a3584a9a59950f52260b20951dd09a5)
/run/build/BambuStudio/src/libslic3r/GCode/ToolOrderUtils.hpp:14:26: error: ‘numeric_limits’ is not a member of ‘std’
14 | const int INF = std::numeric_limits<int>::max();
| ^~~~~~~~~~~~~~
/run/build/BambuStudio/src/libslic3r/GCode/ToolOrderUtils.cpp:545:66: error: ‘unordered_set’ in namespace ‘std’ does not name a template type
545 | static std::vector<T> collect_filaments_in_groups(const std::unordered_set<unsigned int>& group, const std::vector<unsigned int>& filament_list) {
| ^~~~~~~~~~~~~
(cherry picked from commit 059e18aa38ccc715a6c1f2dc1ceb9af1940c7a17)
/run/build/BambuStudio/src/libslic3r/PrintConfig.cpp: In function ‘std::vector<std::map<int, int> > Slic3r::get_extruder_ams_count(const std::vector<std::__cxx11::basic_string<char> >&)’:
/run/build/BambuStudio/src/libslic3r/PrintConfig.cpp:454:27: error: ‘split’ is not a member of ‘boost::algorithm’
454 | boost::algorithm::split(ams_infos, str, boost::algorithm::is_any_of("|"));
| ^~~~~
(cherry picked from commit bf32b5a489670df588ee2ac217275c6c0b8170ba)
/run/build/BambuStudio/src/libslic3r/PresetBundle.cpp: In member function ‘unsigned int Slic3r::PresetBundle::sync_ams_list(std::vector<std::pair<Slic3r::DynamicPrintConfig*, std::__cxx11::basic_string<char> > >&, bool, std::map<int, Slic3r::AMSMapInfo>&, bool, Slic3r::MergeFilamentInfo&)’:
/run/build/BambuStudio/src/libslic3r/PresetBundle.cpp:1973:49: error: ‘L’ was not declared in this scope
1973 | unknowns.emplace_back(&ams, L("The filament model is unknown. Still using the previous filament preset."));
| ^
(cherry picked from commit a8d792ecf8508c030e27aae139eeaf45884ebdc7)
/run/build/BambuStudio/src/libslic3r/GCode/WipeTower.cpp:3327:26: error: ‘offset’ was not declared in this scope; did you mean ‘off_t’?
3327 | outer_wall = offset(outer_wall, scaled(spacing)).front();
| ^~~~~~
| off_t
(cherry picked from commit c77afa7096c48c2b3e2559b39252bafca3f87b28)
1. For cases where light color switch to dark color, multiply the value
with 1.3
jira : NONE
Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: I6b5b2f8e9578d031bbf830ecf18f0069865af2e6
(cherry picked from commit cfa54c55058cd9ed2bd76de7a1158b06bf3501a9)
1.Alsoe set default flush from support to 700
jira: STUDIO-10595
Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: I0d0a85cdac5e63b787c16b35ed6c05afc885a715
(cherry picked from commit 5fea5e6696a28d7ec9edcde38c43700cb3b7f596)
and add wiki link for tpu and brittle materials
jira: none
Change-Id: I15202158cc2ff9b710e80e181bcdf9659e93ff75
(cherry picked from commit a967c41edcc2489e2b348637e4cdfcefa22b2914)
1. Use url for video and wiki
jira:NONE
Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: Id1c195ecb3348f951d00b15273c94c7edd655e33
(cherry picked from commit 9eb5a057d4766b8bae52f2d64696206f768c6c65)
This reverts commit 74f0c8a63c220d688b503bff87f927c94749eef9.
Reason for revert: <add back now>
jira: none
Change-Id: I07c42c264b820fdd5beff1556f6615b22e278b28
(cherry picked from commit cbaf4d9a12d3aaa3507038d93ee5ecee848f8088)
Jira: none
extrude 5 mm in place before drawing the pre-extrusion line
to ensure the filament stick to bed
add a dirty detection feature for carmera
support dual-head high-low temp check
Signed-off-by: qing.zhang <qing.zhang@bambulab.com>
Change-Id: Ia365d99fe764acf4815d24cfb96532b6f1d79990
(cherry picked from commit d17f5586103e4b87c8ae875846253658afb6e42d)
when adding double-head related material parameters
jira: none
Change-Id: I666e1069746d2c284f59ca2ac0f44c664c578a63
(cherry picked from commit 4af6386302ac8daf7349099009f2ad73111d1b0c)
switch configs between single extruder and multiple extruders
jira: no-jira
Change-Id: I3a7ebd590b061f7dec4d8d12d5508e869a941beb
(cherry picked from commit 1e4c82c781ff8a634cecc9e419377c36f0775492)
/run/build/BambuStudio/src/libslic3r/GCode/WipeTower.hpp:31:12: error: ‘TriangleMesh’ does not name a type
31 | static TriangleMesh its_make_rib_tower(float width, float depth, float height, float rib_length, float rib_width, bool fillet_wall);
| ^~~~~~~~~~~~
<snip>
/run/build/BambuStudio/src/libslic3r/GCode/WipeTower.hpp:33:12: error: ‘Polygon’ does not name a type
33 | static Polygon rib_section(float width, float depth, float rib_length, float rib_width, bool fillet_wall);
| ^~~~~~~
<snip>
/run/build/BambuStudio/src/libslic3r/GCode/WipeTower.hpp:200:21: error: ‘Polylines’ was not declared in this scope
200 | std::map<float, Polylines> get_outer_wall() const
| ^~~~~~~~~
<snip>
(cherry picked from commit ea2c021427dddcddb8a4e9e41c0f649dd727fdf9)
1. set wipe tower real height
2. fix wipe tower small arc error
3. add rib_width constraint to ensure that the rib wall of the wipetower are attached to the infill.
jira: STUDIO-10540
Change-Id: Idfdc809f0236121d98587ac2a09a2ebbf5caf945
(cherry picked from commit 3a7dcfd23249571224a4d538c55907a0a5c6154d)
and fix crash on calipresetpage
jira: STUDIO-10669
Change-Id: I93aecdcc360d47baa72ef08af711f3d06206d5e2
(cherry picked from commit 926cfb14d28a196082b2437ace182e960c0c66c2)
enable timelapse and the first layer has no toolchange
jira: STUDIO-10698
Change-Id: Ia503efe4a143fe98f67cd3913b7745d74b113170
(cherry picked from commit a4388010bd289f15d57044b208a2aa2116f76332)
because of 2x nozzlechange width
jira: none
Change-Id: I3a9af777551c54b8bac273bf1f6e06c9f36673bb
(cherry picked from commit 99af2382c4a6d8d942611b4d1145b4d8872a99a8)
because [0,0] will cause the wipetower to disappear in low-layer-height models with enable smooth timelapse type.
jira: none
Change-Id: I6fe3d4128e9b284ae7660f7e0f9f8b62f74cf427
(cherry picked from commit d5b570d8dccd2b96620e0448c3657c1d21cc8844)
1.Also add a new field to mark whether enable high low temp mix
jira: NONE
Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: I208e0e7a4ce75feccc8659ecf940447e591d9505
(cherry picked from commit e79ba2f1ec64953100319a3d86ef9105cc7c3567)
when enter from plate parameter which lead slice error
jira: STUDIO-10556
Change-Id: Iea15547b5f17a34d0b222000dee990d8dc39bcd8
(cherry picked from commit 0f2d10f35d5e447b89be0c3e39bc532f1a0b687c)
2. Improve the judgment and display of the extruder printing area
jira: none
Change-Id: Ie9e1991904bfbc5bffceedb7810b1d1fa598933b
(cherry picked from commit ca5ec101f9a679d8ea4360d96a2db606923b8429)
and use bridge flow for nozzlechange
jira: none
Change-Id: I9bda1b689d7139819607bace09354ef43d27a970
(cherry picked from commit 147e7bdb50765143074dd8111c24f8c1b61872dc)
and resolve the infinite loop during multiple material changes when printing TPU.
jira: none
Change-Id: I9d0fb142ced6ba894803fd4c9b9b665e2fa93d92
(cherry picked from commit aad1ab2090781e072053dfe16764a3e05bb57178)
and fix conflict checking when the wipe tower's brim fully encloses the model
jira: STUDIO-10237, STUDIO-10296
Change-Id: I6e2a6640c06ddb6b3af700c9048fa26434411631
(cherry picked from commit b36c41e5146168325d8b7ec966eb97f1062442a7)
1.Support auto flush when change printer and nozzle volume type
jira:NONE
Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: I9dfc2fff095bbf1901afe99556d1e57aa225f482
(cherry picked from commit f12305832227940eb0eae05817ad046dd4eff02d)
jira: STUDIO-10467
set the filament selected to visible if it is selected
Change-Id: I376101c7c01b2f6dd85e780abd3ad69c81bcc0d6
(cherry picked from commit b957d5111b28d3d028153f9314b5a53389ef95d8)
when filament printable check is not valid
jira: none
Change-Id: I6d98e3aa27b063d2e7431f7aa5637348978331f2
(cherry picked from commit b0a8dd1014d3184be8ef9f2a4e9bd304cf4bdea3)
when enter "merge result" in cali page
jira: STUDIO-10409
Change-Id: I03c49306342cda9b9c305b188201ec6f5b6ab1f1
(cherry picked from commit 75ab432b124dad3a3d66e3a6a069c8543cf8e0b6)
and fix the nozzlechange's error cleanbox.
and fix some error in interface's nozzlechangle and toolchange.
jira: none
Change-Id: I2fd5c68d90506fcb8f01f09a8246dfb5838baef4
(cherry picked from commit 6c5b63db246a1f42e34225c5561fb8b0975da53b)
and reduce the toolchange speed if it occurs at the contact surface
jira: none
Change-Id: Ic238671366145bc7bff76d18d20c104a201a1f17
(cherry picked from commit fb9f9f41e618c5064032b85351363029307e209c)
when switch printer, we found some filament preset not visible
and we need to allow it to be selected
jira: STUDIO-9979
Change-Id: I9613747a755f449c2f48563082b6893e426f37ea
(cherry picked from commit bc5514bbabbbaddefb33ade556a0f15c051aed7e)
1. Try to merge filaments before grouping
2. Set max match num for machine filamnet in match mode
jira:STUDIO-10392
Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: I2451d838e07ee02f493fda4dc702f3d13b2ad37b
(cherry picked from commit d15fc37ff2fa048e38a0b132bb3ae525ff666fab)
1. In slice plate mode,force use plate mode
2. In slice all mode, force use global mode
jira:STUDIO-10390
Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: I3edb559043fdc52339b7f611643b8f5ac116571d
(cherry picked from commit f042c817a7ed21b4b18915e2a649aed733a80f48)
and set the contact surfaces of different material types as solid,
and reduce the nozzlechange speed if it occurs at the contact surface,
and recuce the toolchange speed if it occurs at the contact surface.
jira: none
Change-Id: I884d60f4114544dfa959bd654ecc985f5fb9aac4
(cherry picked from commit ed7bfd3ff6732efe6c7e9eb96901be1db00bb3d0)
In the original logic, the gcodeEditor did not parse gcode lines with
leading spaces. In recent changes, all leading spaces in gcode lines
were removed, causing all gcode to be parsed. However, some certain cmd
perform additional actions, leading to incorrect state recording. As a
result, based on the erroneous state, some gcode lines that should not
be deleted are being removed.
This logic needs to be optimized in the future.
jira:10357,10367
Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: If34b9c3b2913768b824030685e0a36708ca3a5ca
(cherry picked from commit 16813aa46092343c70681f3145a4f402ff415042)
1. the nozzle change gcode use double perimeter width
2. fix the error layer height for adaptive layer height
3. limit the nozzle change speed to 50 when a bridge is detected
4. fix the error extrusion flow for filament change gcode when a bridge is detected
jira: STUDIO-10269
Change-Id: I580c618555fe19d000a56e2510a42004722c1b8b
(cherry picked from commit 5c56b43166ab32b09da31b7046efbbcbe3cbc9c8)
from mulit-extruder to single-extruder
jira: none
Change-Id: I0fc00a279dbc7f5d6b1fb6df5556375bfb95782e
(cherry picked from commit 01075411dc81c8d7c34551525f93fecd8829a3c5)
1. Add filament_is_support field. Format the filament type
2. Optimize machine filament info logic
jira:STUDIO-10326
Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: Ia8bfc37095339e73c98209b4e3f1e0804e511e88
(cherry picked from commit 001144400b841629439a890d46fa40a7296689ba)
after enabling the ribbed outer wall
jira: STUDIO-10294
Change-Id: I08bd00c3c3ef643f4226ce0b882cd62ff680ae65
(cherry picked from commit cfeb574422741bbe48747aa7305fea2a13b6d834)
of the wipe tower's outer wall to use the actual outer wall path.
jira: none
Change-Id: Ib45ecbc328c88c1abe6d9e8567f715331a3ddd37
(cherry picked from commit 0a20f1fe6d6d63cdcb13bc19fd9ae553f45b6f59)
1. Add "Sup." prefix for support filament
2. Align the filament group elems
jira:STUDIO-10263
Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: Idd6d11d14cd378142dff03596eea5efb47dde79f
(cherry picked from commit 038df3180a5b79cde7980b0f3cdecb4bbfffc820)
and fix wipe error when enable timelapse and in single color
and set rib wall as default
jira: none
Change-Id: Ic365bb7ee0ee6715c9d4f4f00b4bca9fd472c61a
(cherry picked from commit 89b59f1c41e0f360457622438a09237bfa1eaa18)
1.Caused by too big tolerance
jira:STUDIO-10236
Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: I0ba182991bc70ca2d3a34a85b87fa7539c5e50d9
(cherry picked from commit d2ae5ea32c55c0023b27fac73a7479c2bd9a7e1c)
1.Always pop up to switch support type for PVA filaments
2.Rename the old "on_filament_change" to "on_filament_count_change",
add a new function as "on_filament_change"
jira:NONE
Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: Ib5a96f2334bbe016db6661864d44e66c1fc5660f
(cherry picked from commit a17aa8c701d05cee57fb9d422a5bcde9f434fd7b)
and reduce the travel speed inside the wipe_tower
jira: none
Change-Id: I3b07ee62623e0cdc2f1824f0011f95776020bee1
(cherry picked from commit 1aad582e08229fad1f935e257c1335dcfdbe406c)
2. use most used extruder for timelapse without wipe tower
3. apply retract_when_changing_layer for multi_extruder
jira: none
Change-Id: I4ff00573fd8a6ee9fa42877e3e7056d547e4d864
(cherry picked from commit 4715fa14edf2bdfc1170b0461da699903a3078a4)
when enable timelapse_print without toolchange;
jira: none
Change-Id: I4c89acc70ee122c0ad504d97c003ebb4016567d1
(cherry picked from commit 6350ebf9b651a933ab8a9030da9cdf9b1608cff0)
for X and P machine
2. remove lift and retract in filament_change_gcode and layer_change_gcode
jira: none
Change-Id: I3da2d3ac7f0100d1963dcbb1228323666a060534
(cherry picked from commit 5c3d804b9fbe65532d2717e60b5f1143710b0ecf)
1. support traditional timelapse for H2D when printing by object
2. insert timelapse gcode when close wipe tower
3. remove hard gcode before filament gcode
jira: none
Change-Id: Ib56c21b1f07832f2cbc8ba5ab7f2e8653b3105bf
(cherry picked from commit 7613474cefd210685d16a5585608c0c7cb7efa95)
(cherry picked from commit fff787345625a0031934e609b1b3709e39decd4a)
1.Add a Trietree to match command instead of the switch sentence.
2.Support VM104 and VM109
jira:NONE
Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: I5f6b3d1bf87baebc0a20c2589a5138538469dfec
(cherry picked from commit 85cb4a41c2a7e42552d7b8c04864e5199ae942e9)
Only update the last group id if there really has filaments
jira:STUDIO-10108
Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: I646f54c0bc4817f0b64364edc52b7263d2833c3c
(cherry picked from commit c6a12c38c589e15194a13632397754338cc82c93)
1. Remove error tip for unprintable areas if no longer needed
2. Add link for filament map dialog in error tip
jira:STUDIO-10073
Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: Ic3235038de73a85964c6dbcb9b4f435e7aa47d34
(cherry picked from commit 1793060e96cec973d9606bd4fbe36686671e0fee)
Implement a check for projects created with OrcaSlicer 2.3.1-alpha to warn users about potential issues with infill rotation template settings. If the infill pattern is not safe to rotate, prompt the user to clear the rotation template settings to avoid print quality issues.
when the connected machine is mutli_extruer and is the same as preset
2. fix the filament unprintable check bug
jira: STUDIO-10047
Change-Id: I4e78003f080897d5b43c0a742852078b149eba45
(cherry picked from commit 1fbc179ae4874d24089dc1faf81608b9417481cb)
after matching the untreated material
jira:STUDIO-10062
Change-Id: I699fd843600182bc87b224eee488e752b64ca0b4
(cherry picked from commit 29b0be89eb5190bd83d783bf173f14950aef738d)
1.Add automatic calculation of the wipe_tower's brim width by height;
2.modify the min_depth_per_height and the default ridwidth
jira: none
Change-Id: Idd96bc90e8e631aa8481b559e1e9fec24c6b822f
(cherry picked from commit 4dd4e9e12c02d945a0ac3fd2020f75313c5b2cc9)
also refine the text
jira: STUDIO-9809
Change-Id: Ifce527d3d19ead80b314611de8f3f861dc598188
(cherry picked from commit 014996d4258cef42ce943157d6485fad9cc98ee2)
when enter in prepare page
jira: none
Change-Id: I3dd0ac4fbc283d5c4b8e85d01724251cc1a7131e
(cherry picked from commit 34ed8441a16499f922e82b6c83f140eda58055a5)
If two objects have similar area, sort them by extruder id.
jira: STUDIO-9760
github: #5738
Change-Id: I6041fef4d3bfccce767555ac382688eea59e73c7
(cherry picked from commit ac4873d97686135b773226eb3487f0cc8cfe0503)
The old speed 50mm/s is too high and cause some print quality problems.
Also change the display of overhang speeds to better adhere to the code.
jira: STUDIO-9641
Change-Id: I6efa981db5bf88a9cf5bb70abb443cdfa1783025
(cherry picked from commit 979fefffd528ab1fb4e670fd88f716a3aed2e6f2)
1.Add filament type into consideration when selecting best map for
ams in filament saving mode
jira:NONE
Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: I7d4a4ff66da479ab560eaeea614e5bbf0f930d3f
(cherry picked from commit 4b6f82d042cadbd65e66edbb1c8287791da5caa3)
1. Only check printablily if have explicit filament map
2. Refine some sentences
jira:STUDIO-9753,STUDIO-9727
Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: I2fc3aa2276dc6f514c50ac2fcaf9509f41e778f3
(cherry picked from commit 73f92d27dab667c8893ab96e47f3832ce9d2de60)
when obj is small, it uses the full build volume to compute the empty cell
we need to use the shared one
jira: STUDIO-9583
Change-Id: I4cc183df38e054a7b94579637a49168c2fb77992
(cherry picked from commit fea423cdad4ee1a24c077cfeed99962e89953d5b)
(cherry picked from commit 06d483ee462f6b1a7a3f39805c81ac0b6f0dfcca)
1. Add tag to mark the global map mode
2. Fix some wrong usage of bmp in code
3. Fix display error in dark mode
jira:STUDIO-9729
Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: Idb36a5022c403e02c26d7fe23a95dd6877deca90
(cherry picked from commit 5a2abf7e211327cde57717b5ab7b79b63c967bbd)
So objects are auto arranged near the chamber fan.
jira: none
Change-Id: Ia7c76c0b048fad51728d2b24c9dd6530c8c30497
(cherry picked from commit 0f37893bea4961e1461df0c55bb4ad95bd4fb17f)
1.Add sync command. Now gcode and dirrectly add time sync command
2.Add support for ceil and floor in placeholder
3.Update change filament gcode for H2D
jira: NONE
Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: I6dd97cbd96bae1c2751c08357ff64947876d7471
(cherry picked from commit c99fcd454c2499b0c0e3ed9402a2182c00a9bffa)
1. Enable hover and pop up even if slice btn is disabled. Always
trigger background process schedule
jira: NONE
Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: Ie9c63c952eeb0f8a7611dd9929e656360609d11a
(cherry picked from commit 9340b4f89e3bd33f4f6d826118e90babe0ca694c)
1. the error start position after filament change
2. the error wall depth print with tpu
jira: none
Change-Id: I26d4e1c5c5c3bcae14555f9a875485435cdd6b97
(cherry picked from commit 753e2ac70870b43d52fa28437b9cc3cc0e174624)
2. modify the ams color
jira: STUDIO-9643 STUDIO-9572
Change-Id: I75ddffc6aa18d9b88df823170c44cfe6af905d03
(cherry picked from commit f4bcbfaf4a8594f30f2809cf1c7109824f581f1c)
JIRA: STUDIO-9376 STUDIO-9419
1. Cancel sending during sending and then resend failed
2. Optimization of prompt language after sending failure
Change-Id: I60bc4525b41cd4f803b811f0d1971bfed5cda0c5
(cherry picked from commit 92bd0cd18e4ea79b8b29f147e5ea09663837f7c0)
1. Always change the map and mode in plate if plate mode is not default
2. Always add pop up before slice
3. Fix the mapping issue in gcode viewer
jira: studio-9523,studio-9519,studio-9513,studio-9479
Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: I0d7d5daf081951ea2d49e06565762ac24064e77c
(cherry picked from commit afaa48520e16b6808f05e511ac1cfe91acadc84b)
* update OrcaSlicer_zh_TW.po
* add monitor-filee
* Updated part of the Traditional Chinese translation.
* Updated part of the Traditional Chinese translation.
* add overture preset
* Fix PLA pro profile missing issus
* fixed profile lib indexing order issus
* Merge branch 'main' into main
* Merge branch 'main' into main
and and modify the start position for tpu
jira: none
Change-Id: I75b09e7839ddd3b9fffe77392e573e1d8caa00d5
(cherry picked from commit fce47aa8cb59fb718ff30a7c7eebda30fc83119d)
Set fan speed to 40
jira:NONE
Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: I861f78e2cca4b31daf41e2cba0a4b9b11a658a5d
(cherry picked from commit 4a087ef78070af66d7551aacdca74c9a2d4463f2)
recover the y position when timelapse gcode end
jira:none
Change-Id: I80b9b65395722e0190aa7d50bb064e095d8ec09d
(cherry picked from commit db5e28ddaa1d4d7c58888d817dd77c176556e106)
and modify the path of travel to the wipe_tower after flushing
jira:none
Change-Id: Id4b0571fd12372c59cf522c13e256c7cc4ac3565
(cherry picked from commit 17771d0fbf753dd22411ce490586958bd643264e)
and add most used_extruder for print by object
jira:none
Change-Id: I021069e865992828b098d73c0d704ba7edbd55d8
(cherry picked from commit ae62f7b8e4b4258318c0d941963eddfb70e86c15)
1. Detect unprintable area for extruder when slicing
2. Always do filament map again if object pos changed
jira:STUDIO-9473
Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: Ic01b8be8e3b08ba6b34efb2d3c451c9e985a03e8
(cherry picked from commit f1445ff0477795e9baf3792348ff27d79ee2308c)
1. Add protection for building machine filaments.Sometimes we don't
know the info about maahcine filament
jira:NONE
Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: I3198d3a1a8825aa50aa49734f60a32620fc4f890
(cherry picked from commit 0c60cefe5e188ba966f4c254f833ae81bc5da476)
1. Optimize performance with pop up
2. Optimize display in dark mode
jira:NONE
Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: Ic0f72a42e791fb58b84e7a88d7a34ced3a9e8c38
(cherry picked from commit 481ebc4a4b9353d8c9ef9d6bf64cb0006364e839)
when switching between single and multi-extruder printer
jira: none
Change-Id: I2f3bf3677b2a5409021e8c6eec7f49daca0764fd
(cherry picked from commit 99e45a3e66cb9cd61588c330eff728a78ff65d40)
jira:none
code is from PrusaSlicer,thanks for PrusaSlicer and Lukas Matena
commit e04e8c55cfc0498bb665f6fb515f3a8fcea64796
Author: Lukas Matena <lukasmatena@seznam.cz>
Date: Fri Dec 2 14:21:18 2022 +0100
Improved performance of GLModel::render:
The way the OpenGL version was checked was quite inefficient
Change-Id: I6d7c6678e383c5cf2fbfea5b61ef65beab5328f9
(cherry picked from commit 3e938c9216c07ad0c50b763851d7dc9aa906162d)
1.fix crash when deleting filaments after sync ams or inital start up
jira:NONE
Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: I00c96fcebf7e0fbc127414eae44f184e3caf4dd9
(cherry picked from commit 6fb0ef6e68ed673d04c1c2311835e9988b1c70d3)
(cherry picked from commit 78b00bd0e3243bc4a4d1b72547b02ee85bf7a19a)
1.When there are identical materials, try to make the quantity of
materials for each nozzle as similar as possible after grouping.
2.Fix an encoding error
jira:NONE
Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: Iad77d7a995b9c25d004026f409c7e2ecbb8269db
(cherry picked from commit 13d7cd06252678b6b084d17438e99ff808a4191d)
(cherry picked from commit 3cd587d09e066d6c6a27d466b7f663dfd5d674f3)
1.Should use idx in used filaments in filament group algorithm
jira:NONE
Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: I5acc849827d84db090e61a45e80a3df2866b2724
(cherry picked from commit 84c55c10edfda91df16843f317ebc7912205b202)
(cherry picked from commit daaca0368626e68ba5bdb0ce6a90111292454119)
and current plate has no object not need sync nozzle and ams
jira: none
Change-Id: Ic3b724b3f05cce437228bca29ccd25bea021158f
(cherry picked from commit 6fe0dd2a3a9f726bfd255fca4e729249029af639)
1. Initilize the sentences in construct function
2. Fix some ui bugs
jira:NONE
Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: I991df343932bb60d5ba86f41f641661f2159da47
(cherry picked from commit 05383187e02cc0dec6a541859d44237a63d01820)
1.Compare stats of AutoForFlush with other filament map modes
2.Refine the function signature of filament group
jira:NONE
Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: Iec2aff069d8c44343df8b82f045c61354c7d1c2a
(cherry picked from commit 95e49986f32070756182a31843f4f37f863f07ac)
1. Clear filament map info in plate when switch to single extruder
profile
2. Use real filament map when check tpu validality
jira:NONE
Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: I45a3e8c91dd52e7300a563eda3ffb167c19b7074
(cherry picked from commit d27304e5ef2f43424046b1a1fabc8d999508be4e)
1. Check machine sync logic before pop up filament map
2. Switch to auto for flush mode if is not synced
jira: NONE
Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: I05ef0e610418767f763c5579f5fc85a4e9b79c47
(cherry picked from commit 5d7f8b126789ca4f8f20d5cfbcc70ac24efd4d6c)
1. Add filament group pop up when slice
2. Add more filament modes in filament dialog
3. Add capsule button
jira:NONE
Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: I8bc3a2e08696e406b89e550a0335a1a36728ee65
(cherry picked from commit f1702a5c3604f685a3b35ea0e83d29bdbbd90f70)
1.Add more filament map modes
2.Filament map and mode are set as project config
3.Plate filament map is only valid when plate filament mode is
manual
jira:NONE
Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: I33b2f853e0b77b9d605be1f2f1172b44df43da15
(cherry picked from commit e45f8c6dc2146e1e31a1c21e8aaada540af112d0)
1.Should get value by filament id instead of extruder id
2.Fix many other issues caused by incorrect usage
jira:NONE
Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: I3278d7de0f8976a97c9e5ccef80bba4a58553f5a
(cherry picked from commit 30c51dd1171fc16ba778308745fab2eb246aedd0)
(cherry picked from commit e9027478f8948352d99d33519994b044ca18a65a)
2. fix crash of ams item
3. fix crash in update_sync_status when ams is not calibrated
jira: STUDIO-8934
Change-Id: I4c8acd36e2f921d0750c23d2b8a1d65dfa6b241a
(cherry picked from commit 21865dc0558dd5019fa3e800b51e01a9c923fd82)
and modify some UI part
jira: none
Change-Id: I9462a10adb7017a7038e5cd7e30cf393b63ae77b
(cherry picked from commit da68a52247c3a963b9d5df339da8f80ead617839)
JIRA: STUDIO-7801
Change-Id: I672082d97c5afa144f704959c0c56d70fddd3a6a
Signed-off-by: Stone Li <stone.li@bambulab.com>
(cherry picked from commit 3f94e72cae8e799e25b623e0c0924d7cf813fc5a)
for cut and text object
jira:github 5195
Change-Id: I17cd57fef0e4882167643174ae2ba36023cbe349
(cherry picked from commit f7e49a3846ee9887924b777f5b2cb154d1b5cc1f)
in ObjColorDialog
jira:STUDIO-9057
Change-Id: Iff2c6bcab29d34fdc881439c8cfb4f6c8d6d0838
(cherry picked from commit 1663a5550dc9e5d2882b33be381b4d35cb696ed1)
when update filament configs, we need to use the old filament variant count
jira: STUDIO-9201
Change-Id: Ibc0084997c264d8527dc9998018907c8af4b2043
(cherry picked from commit 462bfb0b6e941e2771440d8ee06cea149162b595)
(cherry picked from commit a54abad44c572cee0e39ef60822033739b3c3306)
jira: STUDIO-9131
reason: sometimes the popup window causes Print::Apply using invalid configs
Change-Id: I1764050f7177a65625f4668b2e1f86c80a4d4e5a
(cherry picked from commit 5a32ce3599883b9976e32ef2c864967efd52fbc2)
(cherry picked from commit e16da5da85bc8b758e79223581c21fdd98a89a25)
* New Machine
This update introduces new consumables and a new model, Q2
* Delete HATCHBOX PLA @Qidi - 副本.json
* The arc fitting for QIDI plus4 and Q2 has been initiated
Update Phrozen Arco 0.4 nozzle.json start up gcode
Changes m109 S200 in machine_start_gcode to allow printer to properly utilize filament profile temperatures. With original code, the temperature will be stuck at 200c despite filament profile having different first layer and other layer temperatures.
* refactor Infill rotation template
* clean up comments
* set default solid_infill_rotate_template to empty
* Fix an issue that infill_direction solid_infill_direction not working as expected
* Add Extra Solid Infill Feature
Introduced a new feature to insert extra solid infills at specific layers for enhanced strength in 3D prints.
* fix doc error
* fix image name
* support "#K" for Explicit Layer List
* update wiki
* refactor Infill rotation template
* clean up comments
* set default solid_infill_rotate_template to empty
* Fix an issue that infill_direction solid_infill_direction not working as expected
* update based on feedback
* Updated machine start and end gcodes
* fix: Update Kobra 2 Neo profile for improved compatibility
- Switch gcode_flavor from marlin to marlin2
- Enable relative E distances for better extrusion control
- Add M420 S1 to start gcode to enable bed leveling mesh
- Add G92 E0 before layer changes to reset extruder position
- Fix end gcode formatting and add M83 for consistent relative mode
- Adjust purge line start position from Y3 to X10 Y5
* fix: Typo in end machine gcode
---------
Co-authored-by: frawg <>
when slice one filament with multi_extruder printer
jira: none
Change-Id: Ic8deeb7df9c428e97bf904532362180fc1fd6738
(cherry picked from commit feb9b02067b2e4bbdba7ba429531d4fd6081913c)
JIRA: STUDIO-9111
Change-Id: I5ed619d57b6857f5d4a1e38662d2fe03640222a3
Signed-off-by: Stone Li <stone.li@bambulab.com>
(cherry picked from commit 993228d3e99e7976a3839b29453b53023ec18b71)
JIRA: STUDIO-9079
1. emmc for printer is unavailable
2. When the printer is not inserted with an SD card, it cannot send
either
Change-Id: I59d2429ec2d13a5300e8bda46cb15f241fde614c
(cherry picked from commit d2096efe52704465f649c5b1846b3442ade8f078)
1.Always set filament retract params to filament_num size.In
gcode export module, we can always use filament idx to get
retract params
2. add logic in update_filament_maps_to_config to update the
retraction related params which can be overiden by filament
jira:NONE
Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: Ia45dd1401aa3565d062d5da1c9f4a2ba8966f693
(cherry picked from commit 4b083d8d8220b8f65a1b804688cb2d6e238eb4e6)
Allow users to assign issues to themselves.
I don't know if its comments (i.e. unassigning) affects orca bot's
inactivity and stale. Probably. I didn't see a way for actions/stale
to exempt particular comments. This is set for 30 days and stale for
90 days, so if people are using this the stale timing can jump up to
120 days.
only compare minor version when major equals
jira: no-jira
Change-Id: I0159c1b15db30238ad05b8ff7c83f6668fd11ac2
(cherry picked from commit e50e6985925582b4b686793244cc88bde3515d07)
1. Set shared retract length size to 2. Filaments in one extruder
shares the param
2. Move toolchange function before unretract function in append_tcr
to get the correct logic
jira:NONE
Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: I215a542ce36107071fad39f1f9e30234fb19a3a0
(cherry picked from commit c4ef6e9e0950c58a8c5f612662145c6a256884ad)
Jira: none
while there is no non support filament
set first print filament to initial_no_support_extruder
Signed-off-by: qing.zhang <qing.zhang@bambulab.com>
Change-Id: If2fee560772c9a7cfa1855efc85116fb7df04760
(cherry picked from commit 361d7489929dfc1a3b266951f0302f25cf48edcc)
when save MW 3mf file as multi-extruder
jira:none
Change-Id: I848e348277fb047c2c3569508d2adbe940e40255
(cherry picked from commit 17edbd8cd57b761027bb3c1f4d318578ab27430e)
The length of default value for extruder printable height
should be same with extruder printable area
jira:NONE
Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: I01bf5e2a9ddb2faadbbe0a01f4ff2c5582b8ac45
(cherry picked from commit 01bb0c6d661f1d72448782523fb612b2aabfec00)
1. add logic in CLI
2. add logic to process height range
jira: no-jira
Change-Id: I8a7ba1a78dacad7131cafa3fb8b742027276c7e8
(cherry picked from commit 9a6624653b7b66101f1a74715227a0f2b4588f16)
also fix the assert
jira: no-jira
Change-Id: I6becb689ff6a1dd2894d5004da796ece8fb23324
(cherry picked from commit ab588003e3bbd844f83b568106f60ef976fc6530)
and modify the min_depth_per_height
jira: none
Change-Id: I4860df661b4dd1f66677112d14e60560bc4a73be
(cherry picked from commit 00810d685d01a91b5373f3315413aaef1fe49cbc)
because the empty value of unprintable_filament_map
jira: none
Change-Id: I223fde51e31c2206b81512737058c7015cb10816
(cherry picked from commit bde01dc1814f7cef812d7f441cd969e0f3ab7747)
2. fix the status cali button of stat page is sometimes incorrect
3. when the nozzle volume type is not the same as printer, prompt user to sync
4. fix the incorrect nozzle volume type of cali preset page
jira: STUDIO-8856 STUDIO-8832
Change-Id: I83569f41533681b3d2f68d7b86be68955bd957f1
(cherry picked from commit 9dffa8d00281e06b24c29d818064e1c55418333d)
1.Only do reorder if requseted.In by object mode,we only need
to collect the filaments in the object for filament grouping
jira:NONE
Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: Id88f2449c6d3c5d45b9ff87513308d997fa72da1
(cherry picked from commit 7b5818fe6c538123373243ec8dfedc3c2fa68e6d)
to support different printable height of multi_extruder
jira:none
Change-Id: I265c65e15fc8f598c3456556557bb6977b5de820
(cherry picked from commit 933adbaaf0eaf361e39f131dd5536dca91214d43)
In some cases, the PA value cannot be saved successfully
jira: STUDIO-8832, STUDIO-8826, STUDIO-8825, STUDIO-8822, STUDIO-8821
Change-Id: I74cd2c6039c104f5e1ef1d03440e0b1914480d62
(cherry picked from commit 482af1849b27e3618a03f70e69844d3321c47d6a)
1.Always do filament group to get correct filament map
jira:NONE
Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: Ie4e61c310f6c0cfeacb2a49c4f065f9674b6a35f
(cherry picked from commit 242554557b1ecd72355841826af707580fc583b6)
1. Optimize the message for repeat names
2. Modify the recommended name
jira:none
Change-Id: Iebc5807208dcbe2086f690fda453a2f2abb032f7
(cherry picked from commit 4fe716a9c9268838929bdb8e08372fcd521d4fa2)
1. generate filament_self_index for old files in cli
2. set filament_self_index to default for old files using single extruder
jira: no-jira
Change-Id: I6e3f520723ee7f3a75634121604023ba319ff97a
(cherry picked from commit d050aa4d3609e7ccf072b23fbfe820a839e0c3fd)
1. add repeat pa name check
2. display tray icon in save page
3. incorrect extruder id for left virtual slot
4. fix crash when enter save page
jira:none
Change-Id: Iae00788094d182ae84fff2aa71fedbb35ea938c6
(cherry picked from commit be256c0a6dcdcd29a3fc97edf55435bb65858f1c)
1. modify the start position of wall
2. modify the overlap of wall and infill
3. print wall first
jira:none
Change-Id: I1b3f4a8cb198f84b81aba638cc722dedf84a164c
(cherry picked from commit 50b3d0097e8d4e7c4c112c75a757d25c929a038c)
and the pa profile not display in AMS setting dialog after switch nozzle diameter
jira: 8620
Change-Id: I38b3905b1490edbc8dfe32335a3f8600485050c1
(cherry picked from commit 2322d5f14f3f703a03db3c12c87ef3855b88cf63)
for synchronization of machine information when opening a file
jira:none
Change-Id: I7b3419bb3489a5b6a37a99b5021c7e69ac35a009
(cherry picked from commit 6437437fe0c83f7c14f7ee5b339475d6db559a56)
1. add slicing errors for gcode in unprintable area, also for filament mapping
2. use common area for auto arrange
3. support filament_map/filament_map_mode related params
4. add logic to check the filament maps before slicing
5. uptodate support multi-extruder
6. switch new machine/filament support multi-extruder
7. process config params support transfer between mult-extruder and
single-extruder
8. improve machine-limit logic support multi-extruder
9. flush-volume support multi-extruder
10. add default params to support auto mapping slicing
jira: no-jira
Change-Id: Ice39a365841322ddb586d39c56ff923626822528
(cherry picked from commit f518d6804a9de69deef81c20cd22005a4bbd0cd4)
for some obvious error, we identified it and show to user
JIRA: no-jira
Change-Id: Id0365e89c4121ccccb9b5627a98428704432ab58
(cherry picked from commit 270ae086fbca576b75901313959c92cbfb913db6)
In file included from src/libslic3r/FlushVolPredictor.cpp:1:
src/libslic3r/FlushVolPredictor.hpp:44:34: error: ‘string’ in namespace ‘std’ does not name a type
44 | FlushVolPredictor(const std::string& data_file);
| ^~~~~~
src/libslic3r/FlushVolPredictor.hpp:49:5: error: ‘uint64_t’ does not name a type
49 | uint64_t generate_hash_key(const RGB& from, const RGB& to);
| ^~~~~~~~
In file included from src/libslic3r/FlushVolPredictor.cpp:1:
src/libslic3r/FlushVolPredictor.hpp:44:34: error: ‘string’ in namespace ‘std’ does not name a type
44 | FlushVolPredictor(const std::string& data_file);
| ^~~~~~
(cherry picked from commit 126dfea02729e16f9e64d6634a762da8b665d6e2)
1. Use cie de2000 as color distance
2.Consider colors with de < 5 as the same color when calculating
flush
jira:NONE
Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: I4b451910a21c9db3471c63c270f1f120e3c5d160
(cherry picked from commit 72bc6f44cfab9145aecdb843ac4a03a9338a8cc6)
1. Do not consider empty filament when selecting group for ams
2. Function "collect_filaments_in_groups" is frequently called,
optimize memory allocation to speed up.
jira: NONE
Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: Iad8c9a257bc2dd832c77e650f8c052fb9d8379a0
(cherry picked from commit 21379e13366fd70f0042e85dcf8ee220185c782d)
1. Machine with multi extruder should set length of extruder offset
to extruder num
2. Register retract_restart_extra
jira:NONE
Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: Ic3eb324cb91dc70b091c8922936d2709c361cc38
(cherry picked from commit 13df1ee7bab2bf13c9f5ffca6ad1228ff48e885e)
1.Caused by uninitialized filament map in mapping for AMS
jira:NONE
Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: I71ce6001fc6f2e72eb9303fcaba0bac16ad70dc9
(cherry picked from commit 48023e4c154c118c9396b6065b7e2476970fd441)
1.Only consider groups with a distance within the threshold
jira:NONE
Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: I91526a796a0f7f1ed3e77c41076c1f85620dd944
(cherry picked from commit 1379b838466f9b0a188fc916c31916626b933dc4)
1.Use max flow network to handle limit
2.Support setting master extruder id
3.Fix the issue in the KMedoids algorithm where data is overwritten
after each retry.
jira:NONE
Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: Idd2bedf39f61e7a65eb4199852f60b8fbebe0a7d
(cherry picked from commit 3cfb49a1b9dc2c76066ec441f1028f99a4bf99c4)
1. Modify dragging behavior
2. The swap button is grayed out in automatic mode
jira:none
Change-Id: Idff795bf092c4959c67d0711b0be316fba997684
(cherry picked from commit c7486e1c5e56667cab61ee9a97898f03b65b64b8)
when the ams is 0/0, should not consider the print connect status
jira:none
Change-Id: I2288ff15894d5c734a98b830df6678cab2bd12fc
(cherry picked from commit 20837717d411016251c4831586b0fa61350a08b2)
1.Set the default size of ams filament to 2
jira:NONE
Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: Ie985ecfa44cb9fcaf21406303e32bb56e731f351
(cherry picked from commit b4d85663325eb9be1be48e1eee3d3128e31650db)
1.If the group result differs little in flush,we will choose the one
that best fits the ams filaments
jira:NONE
Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: Icd147b406e3494c841ef13564ad1b1231ad798fd
(cherry picked from commit 0b95bdd9d950918ea6979da6b4d62b2d2cd25b99)
1. Caused by setting the current filament to filaments used
in machine start gcode
jira:NONE
Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: If6789b1e02aadc6d03610b7b7cc4c829ae767a7d
(cherry picked from commit 8c88fabe8f0476280ff18bafc320a1d1e4a01a99)
some param has been changed for the multi-extruder
currently we popup an exception
JIRA: no-jira
Change-Id: I1e892203d34c569a580694c1c28a1c7d695c1c64
(cherry picked from commit 2636e44dc0a276962c77ed0a51128009bbf7608f)
1.Use float to store the weight copmputed in the procedure.Avoid the
issue where filament weight remains at 0 after changing filaments
jira:NONE
Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: Iff0cfc6e22f34affbc232dbfe196f27ee06d2d9e
(cherry picked from commit 994e4f4840a6734ab479e10d39462cc692bc4d77)
1. also remove original nozzle_volume_type from printer
and move into project config
2. support save nozzle_volume_type into appconfig
and load from it at beginning or printer switch
jira: no-jira
Change-Id: I01fc82d142fc633fc59a238796a71b9f8d180efb
(cherry picked from commit fe8b904e7551cde83b1ead75922e9b60278b50ad)
some fix to
Ib37896f9101d93ca63c7edb0b1e6328045a5ddb3
I4b5c8e158b073b302db6faad77bb8ca0f70f766a
Change-Id: Iec62a4df45159bac3db63c48feef16ec1aa35ae7
(cherry picked from commit 6fb06eb7790c1469d433f5ecec97d5be966e94af)
2. modify the filament_flow_ratio to nullable
jira:none
Change-Id: I3f0569ee643cfe9473c6029ca0e04f4b80c8332e
(cherry picked from commit ed61d1d31bdc79f064567deacf35e05bd123880d)
Jira: none
if the fist print filement as same as the filament be set on start gcode
not insert filment change
Signed-off-by: qing.zhang <qing.zhang@bambulab.com>
Change-Id: I0114f287fff9be276a90772537d1910df18dec61
(cherry picked from commit 276c797faff1407b2c1606d4bfafe21773901001)
1. Nozzle Volume and Nozzle Type support multi extruder now
jira:NONE
Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: Ie171b5105bd3830db3a992cadd365b785008c47a
(cherry picked from commit 2ebd14667e43dc745556f5e7bcbb7c2ccad4a007)
and delete ;nozzle_change_gcode of change_filament_gcode
jira:none
Change-Id: I79c2896afe15b59ba3932240edcb6330e230470f
(cherry picked from commit 8cf72ab46cea16fcd3b988593843b3766b296dc9)
and set 1/4 max_volumetic_speed for TPU
jira: none
Change-Id: I492ce178a88fb702fc051f8a0abec6a4b5706d00
(cherry picked from commit c1dec339dd7b5f9e70d3a9c132654aa589085757)
1. auto mode dragdrop is not allowed
2. not display filament_map when there is no result in auto mode
jira:none
Change-Id: I0800e0d832e27fe459a17bb1aa829b5e72d0ee8f
(cherry picked from commit 9ee85bef34aaabe7a4cef251f07e77f9af693a2f)
1.Use min cost max flow to solve the tool order
jira:NEW
Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: I909845039b67c7fe3ddd42580ad3f1d71d52262d
(cherry picked from commit 0716b8518ef62e0eac7c45de8bafb1458d8f9a8e)
1.Save multi extruder state in gcode processor
2.Add machine exturder change time
3.Fix some naming issues
jira:NONE
Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: I9785331290515eeb908ff0ff01aad5aac44212d9
(cherry picked from commit b49d4ca1539cd9f473e0ee0c79a4287c0d5fe03b)
1.Caused by missing break of switch case
jira:NONE
Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: Ie667eda4069f3e2487ed87081580e2540ae4da7b
(cherry picked from commit 9267bd65aa7a39c3a775890b59611fba7b3883ac)
1.In auto mode,display the statistics of auto mode and single
extruder
2.In manual mode,display the statistics of manual mode and auto mode
3.Support by object mode
jira:NONE
Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: If54c4db79f33d5278c0f18d01ab0518e8660f9c7
(cherry picked from commit 2dbc5c939666e294c805ee4bf33ec09976688be3)
1.Should calculate cost if filament used in that layer is 1,because
we should consider the last filament used in previous layer
jira:NONE
Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: I5838af77f1d73bfa07c65bd6ee12ae352dc3b571
(cherry picked from commit 0756b51eb2b457a1ddfddc0ab8e445c779737597)
1.Use forcast when filament num in current layer and next layer both
smaller than limit number
jira:NEW
Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: Ia21bb22ce353f0c74eeaf748c6d9f9c4b315ec18
(cherry picked from commit c49c0c8f723e82e4e87cd931b7d5070142fb0781)
after change the filament maps, we should invalidate state
jira:none
Change-Id: If2923d959f5120bd80c5bdf3933609cf8b282523
(cherry picked from commit 5f0bb395ad6464039bdacec58c924044a27587a0)
1.Add filament flush,filament change count reduced by multi
extruder
NTOE: cases when printing by object haven't been handled
jira:NONE
Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: Iaaea5f8ffae2345df5a6f1dc605342d835974d48
(cherry picked from commit ad65cdb909b29210117f690a119ef76b70373da4)
1.When n becomes large,the original algorithm to get best filament
sequence will cost too much time and memory.Use a greedy algorithm
instead.Always select the next filament with fewest flush
jira:NONE
Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: Iabc924e1bdb0a07af0a6ef0bbdd62e54ce54f052
(cherry picked from commit 3167e34e609d0eecb481fd550e6550024b72bb67)
1. always resize filament count when not matched in full_fff_print
2. remove no-use codes in Preset::normalize
jira: no-jira
Change-Id: Ie15a5977d28f28e0f63ba84f27f98f77d16665c0
(cherry picked from commit f122c4f4ef6f476c4e8190a0872e566d690d6c25)
1.During the filament change, the extruder will extrude an extra length
of grap_length for the corresponding detection, so the purge volume can
reduce this length.
jira:NEW
Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: I14f55a3200c1dd48b1603e50280d0c29e1319ebe
(cherry picked from commit 16cadec565f987e6baae97428d5392c1f8e7ad39)
1. save to appconfig and project setting
2. use it to group
jira: none
Change-Id: Id4048fc1b47f6904b2e9c0154aaa3a2b03590437
(cherry picked from commit da32b878b3d7ca95ae5c4786102848c1e8a5ab2d)
support drag drop to modify the filament map
jira: none
Change-Id: I0ed3180a0fa8e95e7c871bb039eb844faccd1344
(cherry picked from commit 67f67d76889668fdd80ae5e496b6cbca5f771a43)
1.When filament <10, do the reorder with next layer.This can reduce
10% flush in some cases
2.Support custom filament seq
3.Use caches to speed the algorithm
jira:NEW
Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: Ie1af9841f7165802d350eae962efe8febafbb357
(cherry picked from commit cffb4a8564844b1892eb42cfe8e883a52e70fb6a)
1.When capacity is greater than the num of filaments, always choose the
map result that can be accommodated
2.In BestFit strategy,always try to fill up the existing capacity
3.In BestCost strategy, just try the group with fewest flush
jira:NEW
Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: Ifd6d64b77774039e57ffff26cf2243a4d3f89054
(cherry picked from commit cddf8cae27f4320f830b463e92703d3a6cf344e7)
that has different nozzle nums
jira:none
Change-Id: If78571ddf4fa7ac17e7dcf47013075821b8567a6
(cherry picked from commit a6ad5c8be86313085922e3063eec2aba029a5a99)
and fix bug when switching printer preset between single-nozzle and double-nozzle, prompt the modification of extruder_count
jira:none
Change-Id: I1d5f0b2f002493378d2f482d08cfd5a72b35b99f
(cherry picked from commit ed9816397374116db37c2a76d11e0216df5aca1d)
1.When n<10, calc all case cost
2.When n>10, first k-medoids algorithm first
3.Enable setting group size
jira:NEW
Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: I625f47e0235c70e440c6d489b052a156fbffca3f
(cherry picked from commit 9ec276d3d7114fff7a33213c3b47ce88df85f2ee)
1. backend support multi_extrude data structure
2. Compatible with third-party calibration
3. fix bug when get extruder in gocde export process
Change-Id: I5dac9abdd9907a521a1ba9b480f9e05640591bc1
(cherry picked from commit 21e6271e59ea8e4924866275566617d14a4b2b6e)
jira:[Popup for multi nozzles]
Change-Id: I07e6d8f0469d2dcf0037d53e2ca8e22de78ca233
(cherry picked from commit 0924fce6858654c331eafcb91e43252f62e703bf)
we need to keep the original values and update after pre-slice
jira: no-jira
Change-Id: I232d3c43340b4a23bc42121bd05380746e736f20
(cherry picked from commit 7b7ebf1b959ba5c967baff30fb226c808a2e7d44)
1.Limit of four filaments per row
2.Fix incorrect data
3.Add filament id display
4.Optimised layout
Change-Id: I9ac3701c99597a5ed243dac0e3e371cf9aca4066
(cherry picked from commit 3321277f86dfeb9de80b40c320e20dd5f33eab51)
1. support recommended filament map when print by object
2. placeholder_parser support function filament_change
3. extruder_id of filament_map is start from 1
Change-Id: Ide8019cd4a165a25972f22706ff685c3005aa031
(cherry picked from commit b42d94e1d05236b8b7b2e65b4a24810eecf040cb)
* Shellcheck on build_linux.sh and tiny refactor
`shellcheck -e SC1090 build_linux.sh` and fixed the issues.
Also fixed the usage command to return an error, simplify directory
creation to use `mkdir -p`, and made printing of the cmake commands
consistent instead of having three different ways of doing it.
* Reorder functions in more pleasing way
* Add shellcheck to workflows
This is the beginning of adding some safety nets for making
changes. Currently it just runs shellcheck against `build_linux.sh`.
You can see it working at
https://github.com/coryrc/OrcaSlicer/actions/workflows/shellcheck.yml
I forked and tested it running in PRs and against pushes to HEAD.
* Rerun shellcheck
Missed quotes on the merge
* Imported Artillery M1 Pro profiles from ArtilleryStudio
* Removed duplicate overhang_fan_speed - keeping 90 as other profiles
* Replace by octo/klipper as it seems Artillery made a custom host_type on ArtilleryStudio...
* Changed sparse_infill_pattern to gyroid for M1 profile, as suggested
Move many third-party components' source codes from the src folder to a new folder called deps_src. The goal is to make the code structure clearer and easier to navigate.
Adjusted the default profile folder path in the OrcaSlicer profile validator for macOS to ensure correct resource access, as Multi configure is now set as the default.
* feat: expand Creality Ender-3 V3 KE profile with multiple nozzle diameters and new machine configurations
* Merge branch 'main' into main
* Merge branch 'main' into main
Fix clipped printer selection in Create Filament Preset dialog
Ensure the scrolled panel in the Create Filament Preset dialog expands vertically by changing `m_main_sizer->Add(..., proportion=0)` to `proportion=1`. This exposes the printer selection checkbox, which is required to create a custom filament.
Fixes#6719
Co-authored-by: SoftFever <softfeverever@gmail.com>
* Update to latest bbs network plugin, which should allow debugging
* Remove debugger detection and warnings
* Downgrade to 2.1.1 as 2.2 seems to be unstable
* Improve initial layer speed documentation
Expanded explanations for initial layer speed settings, including benefits of slower first layers, detailed descriptions for each speed parameter, and added an illustrative image for the 'number of slow layers' setting.
* Update Volumetric speed calib + images
* Update speed_settings_other_layers_speed.md
* Improved MVFS descriptions
Co-Authored-By: dewi-ny-je <2866139+dewi-ny-je@users.noreply.github.com>
Co-Authored-By: MxBrnr <142743732+mxbrnr@users.noreply.github.com>
Co-Authored-By: Rodrigo <162915171+RF47@users.noreply.github.com>
* Clarify bed temperature effects
* MVF images from 14 to 19
To match description
* Update temp-calib.md
* Expand and clarify temperature calibration guide
Added a standard temperature ranges table for common 3D printing materials, clarified and expanded sections on bed and chamber temperature, and improved formatting and tips for optimal print quality.
Co-Authored-By: dewi-ny-je <2866139+dewi-ny-je@users.noreply.github.com>
* Update links for acceleration and jerk settings
* Small perimeters
* Update speed_settings_other_layers_speed.md
* Add reference to ironing speed settings
* Update overhang speed
* Add travel speed illustration
* Update avoid crossing
* Update speed_settings_acceleration.md
* Update speed_settings_overhang_speed.md
* Update speed_settings_acceleration.md
* Update speed_settings_jerk_xy.md
* Update speed_settings_jerk_xy.md
* Update ERS documentation and replace images with PNGs
* Seam Aligned Back
* Copilot FIX
Co-Authored-By: Copilot <175728472+Copilot@users.noreply.github.com>
---------
Co-authored-by: dewi-ny-je <2866139+dewi-ny-je@users.noreply.github.com>
Co-authored-by: MxBrnr <142743732+mxbrnr@users.noreply.github.com>
Co-authored-by: Rodrigo <162915171+RF47@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Add a new feature to allow users to remap filament for a pre-painted model.
* Fix the color issues to support the theme
* clean up code
* Fix broken freetype-2.12.1.tar.gz link
* Wiki Home
Fix process-others
VFA test
* Add wall GIFs and update documentation
* Quality Overhangs Wiki Basic
Update README.md
Update Home.md
* Better only one wall
* Add infill ghosting image and update wall order
* Updates process options
* Fix calibration step numbering in documentation
Corrected the step numbers in the calibration order list to maintain sequential order.
* Update Calibration.md
* Update wall and surface quality docs with images and details
* Revise Linux build instructions and restructure sections
Co-Authored-By: cefiar <cefiar@gmail.com>
* APA Clarify compatibility notes
Co-Authored-By: dewi-ny-je <2866139+dewi-ny-je@users.noreply.github.com>
* Removed Tolerance test from calibration guide. Keeped as note
Co-Authored-By: Noisyfox <timemanager.rick@gmail.com>
* Copilot Review
---------
Co-authored-by: cefiar <cefiar@gmail.com>
Co-authored-by: dewi-ny-je <2866139+dewi-ny-je@users.noreply.github.com>
Co-authored-by: Noisyfox <timemanager.rick@gmail.com>
* Do not connect to default device during app startup
* Connect to last selected machine automatically even if it's lan machine
Simplify default machine connection logic
* Select last machine automatically when available
* Check for LAN connection state after updating combobox selection.
This matches the logic of `SendPrint.cpp`.
* Avoid showing same error message multiple times until next connection attempt.
---------
Co-authored-by: SoftFever <softfeverever@gmail.com>
* Add some new non-overlapping functions for rotation surfaces/infills
I can't post the entire package of changes yet, but this is just the beginning. These features do not affect the latest changes to the pattern rotation system. They are merely adding new functionality.
* Added relative rotation of the infill according to the template.
* Update PrintConfig.cpp
* Update PrintConfig.cpp
* Update PrintConfig.cpp
* Add height limitation
* Both sparse and solid. +one-time instructions
* implementation v3
need for clean code in future
* + Multiply Instructions
* Add solid layers into sparse infill
* Update Layer.hpp
* Update PrintObject.cpp
* Update Tab.cpp
* Remove some bugs and increase quality
* rename apply_model_direction to align_infill_direction_to_model
* Change the data type of top_surface_direction and bottom_surface_direction to float so that they are consistent with other infill direction parameters.
* remove top_surface_direction and bottom surface_direction options
* clean code
---------
Co-authored-by: SoftFever <softfeverever@gmail.com>
* Feature: Fuzzy Skin Extrusion Mode
This extension allows you to add new features to the fuzzy skin generator.
* Add auto switch to Arachne mode
* Move dialog to `update_print_fff_config` and update how `is_msg_dlg_already_exist` is used
---------
Co-authored-by: Noisyfox <timemanager.rick@gmail.com>
* SPE-2486: Refactor function apply_mm_segmentation() to prepare support for fuzzy skin painting.
(cherry picked from commit 2c06c81159f7aadd6ac20c7a7583c8f4959a5601)
* SPE-2585: Fix empty layers when multi-material painting and modifiers are used.
(cherry picked from commit 4b3da02ec26d43bfad91897cb34779fb21419e3e)
* Update project structure to match Prusa
* SPE-2486: Add a new gizmo for fuzzy skin painting.
(cherry picked from commit 886faac74ebe6978b828f51be62d26176e2900e5)
* Fix render
* Remove duplicated painting gizmo `render_triangles` code
* SPE-2486: Extend multi-material segmentation to allow segmentation of any painted faces.
(cherry picked from commit 519f5eea8e3be0d7c2cd5d030323ff264727e3d0)
---------
Co-authored-by: Lukáš Hejl <hejl.lukas@gmail.com>
* SPE-2486: Implement segmentation of layers based on fuzzy skin painting.
(cherry picked from commit 800b742b950438c5ed8323693074b6171300131c)
* SPE-2486: Separate fuzzy skin implementation into the separate file.
(cherry picked from commit efd95c1c66dc09fca7695fb82405056c687c2291)
* Move more fuzzy code to separate file
* Don't hide fuzzy skin option, so it can be applied to paint on fuzzy
* Fix build
* Add option group for fuzzy skin
* Update icon color
* Fix reset painting
* Update UI style
* Store fuzzy painting in bbs_3mf
* Add missing fuzzy paint code
* SPE-2486: Limit the depth of the painted fuzzy skin regions to make regions cover just external perimeters.
This reduces the possibility of artifacts that could happen during regions merging.
(cherry picked from commit fa2663f02647f80b239da4f45d92ef66f5ce048a)
* Update icons
---------
Co-authored-by: yw4z <ywsyildiz@gmail.com>
* Make the region compatible check a separate function
* Only warn about multi-material if it's truly multi-perimeters
* Improve gizmo UI & tooltips
---------
Co-authored-by: Lukáš Hejl <hejl.lukas@gmail.com>
Co-authored-by: yw4z <ywsyildiz@gmail.com>
* make **`Reverse threshold`** inactive when **`Reverse only internal perimeters`** is activated
* Update ConfigManipulation.cpp
* 100%% => 100%
Also fixed a typo along the way.
Update Anycubic Kobra 2 0.4 nozzle.json
Fixed error:
Relative extruder addressing requires resetting the
extruder position at each layer to prevent loss of
floating point accuracy.
* Update all Mk4 pla filament to have proper ramming parameters
* Update all Mk4 PETG filament to have proper ramming parameters
* Update all Mk4 ABS filament to have proper ramming parameters
---------
Co-authored-by: Noisyfox <timemanager.rick@gmail.com>
* Ported ramming configuration improvements from prusa slicer: Hold cmd to move all values, more granular time settings and higher maximum values.
* improve variable name, change space
* Move the label under the ramming chart
* Experimenting with values label for ramming chart
* Fix the label position and make the background 20% transparent
* update the way the multiline label is done
* reorder commands
---------
Co-authored-by: Noisyfox <timemanager.rick@gmail.com>
* Large images optimizations
* Add image and update instructions for junction deviation
Added a new image illustrating the printer jerk limitation setting and updated the calibration documentation to clarify steps for setting Maximum Junction Deviation. Improved formatting and corrected a typo in the instructions.
* Update README links to Wiki
* Fix Wiki image paths + Typos
* Fixes, typos and Infill improvements
* Update VFA calibration guide and add resonance avoidance
Expanded the VFA calibration documentation with more detailed explanations of VFA causes, the VFA Speed Test, and how to use the Resonance Avoidance Speed Range. Added a new image illustrating the resonance avoidance configuration.
* Add surface density setting to top/bottom shells docs
* Ironing Wiki Wip
* Wall and surfaces wiki wip
* Fix top/bottom link
* Better topbottom reddirect
* bridging wiki wip
* Fix TOP bottom
* Wall wiki wip
* strength advanced wiki wip
* speed advance renaming
* inital speed wiki wip
* Other Layer Speed Wiki Wip...
* Speed overhang Wiki WIP
* Travel speed wiki wip
* Speed acceleration wiki wip
* Update speed_settings_initial_layer_speed.md
* Jerk Wiki Wip
* support wiki wip
* Raft wiki wip
* support filamnet wiki wip
* Support ironing wiki wip
* Support advanced Wiki Wip
* Tree wiki wip
* STL images optimizations
* Prime tower wiki wip
* Update PA line diagram images
Were bigger than original used to crop this ones.
* Ooze wiki wip
* Flush wiki wip
* Image optimizatios
* Clarify TPMS-D infill description
Updated the TPMS-D infill section to specify that it refers to the Schwarz Diamond surface, improving clarity for users. Also updated the infill calculator spreadsheet.
Co-Authored-By: Rodrigo <162915171+RF47@users.noreply.github.com>
* images+++
* Multimaterial advanced Wiki Wip
* Skirt Wiki Wip
* Brim wiki wip
* Add Junction Deviation formula to documentation
Included the mathematical formula for Junction Deviation in the cornering calibration documentation to clarify its calculation.
Co-Authored-By: Rodrigo <162915171+RF47@users.noreply.github.com>
* Others special mode Wiki Wip
Co-Authored-By: Rodrigo <162915171+RF47@users.noreply.github.com>
* Fix links
* Fill Multiline infill Wiki
Introduced a new section in the infill documentation describing the Fill Multiline setting, its differences from other slicers, and its use cases. Added a comparison table and illustrative GIF to clarify how OrcaSlicer maintains density and material usage when using multiple infill lines.
* Multiline infill wiki update
Co-Authored-By: Rodrigo <162915171+RF47@users.noreply.github.com>
* Multiline Tab.cpp
* Gcode output Wiki Wip
* Others wiki wips
* Home quality
* Add process links in home
* Quality Basic Missing descriptions
* Update quality_settings_bridging.md
* basic desc
* basic advance strentgth
* Basic speed
* basic other speeds
* Fix link
* Update speed_settings_overhang_speed.md
* Update speed_settings_travel.md
* Update speed_settings_acceleration.md
* Fix
* Expand documentation for acceleration and jerk settings
* Support wiki
* Raft wiki
* Support wiki desc
* Prime tower wiki
* Multimaterial wiki desc
* Filament to features wiki
* Ooze improve
* Fix duplicate text
* Fix typo in volumetric speed calibration guide
Corrected 'promoted' to 'prompted' in the instructions for entering test settings in the volumetric speed calibration documentation.
* centeres image
* Overlapping gif
* Others wiki basic desc
* Clarify retraction calibration recommendation
Expanded the explanation for calibrating retraction settings, specifying that it should be done after Flow and Pressure Advance calibration for optimal extrusion setup.
Co-Authored-By: Rodrigo <162915171+RF47@users.noreply.github.com>
* Links in Readme + minor change
Refined links and formatting in README for better navigation. Expanded wall printing order section in quality settings documentation to clarify Inner/Outer, Inner/Outer/Inner, and Outer/Inner modes. Updated calibration guide images and formatting for improved clarity.
* Add SVG icons to infill pattern comparison table
* Delete doc/images/gui directory
remplaced with GUI
* Create process-preset-full.png
---------
Co-authored-by: Rodrigo <162915171+RF47@users.noreply.github.com>
* GUI: Add filament notes to material selector tooltip
Enhances material selector tooltip to display filament notes from preset configuration.
Adds automatic truncation for notes longer than 200 characters with ellipsis.
Improves user experience by providing material context directly in tooltip.
Fixes#10037
* GUI: Add filament notes to material selector tooltip
Enhances material selector tooltip to display filament notes from preset configuration.
Adds automatic truncation for notes longer than 200 characters with ellipsis.
Improves user experience by providing material context directly in tooltip.
Fixes#10037
* GUI: Fix tooltip display for unsaved profile notes
* chore: Updated the documentation on how to build OrcaSlicer, adding instructions for macOS and Linux, and improving the structure and clarity of the sections.
* chore: Improve structure and clarity of the build instructions for macOS and Linux
* smooth tpmsd
Changed the number of initial segments in the make_waves function from 4 to 16 for finer wave discretization. This should improve the accuracy of the generated wave polylines.
* Update param_tpmsd.svg
* Infill Line Multiplier
* Modular Offset Function
* Lightning multiline
* Crosshatch Multiline
ipCrosshatch
* cleaning
Cleaning
clean2
* 3d Honeycomb
cut poliline ends
* Fill Tpmsd Multiline
Fill Tpmsd Multiline
* Update Multiline function
multiline funcion simplify
* Update FillTpmsD
* FillHoneycomb
* Update src/libslic3r/PrintConfig.cpp
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Fix Honeycomb Multiline
Simplify polylines in honeycomb infill generation
* Improve multiline infill support and pattern simplification
Moved multiline infill application after pattern translation and simplification in Fill3DHoneycomb, and added multiline support to FillAdaptive. Updated honeycomb and 3D honeycomb infill to simplify polylines to 5x line width. Extended GUI and config to support multiline for Adaptive Cubic infill pattern and clarified max value comment.
minimum changes
Co-Authored-By: Ian Bassi <12130714+ianalexis@users.noreply.github.com>
* Increase multiline fill spacing in honeycomb infill
Adjusts the spacing parameter in the multiline_fill function to 1.1 times the original spacing, potentially improving infill distribution or print quality.
* Refine fill_multiline tooltip and pattern support logic
Updated the tooltip for the 'fill_multiline' parameter to improve clarity and punctuation. Refactored the logic in ConfigManipulation.cpp to clarify which infill patterns support multiline infill.
* better management of non supported infill patterns
---------
Co-authored-by: SoftFever <softfeverever@gmail.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Ian Bassi <ian.bassi@outlook.com>
Co-authored-by: Ian Bassi <12130714+ianalexis@users.noreply.github.com>
* Enable toggling of surface density and overlap options
Added toggling for 'top_surface_density', 'bottom_surface_density', and 'top_bottom_infill_wall_overlap' fields in based on shell presence.
* un toggle shell overlapping option
---------
Co-authored-by: Rodrigo <162915171+RF47@users.noreply.github.com>
* fix: added skin_infill_line_width and skeleton_infill_line_width to print profiles as nozzle_size is greater than 0.4
* fix: update version to 0.0.0.1 in multiple process profiles
* fix: Set the default value for the skeleton infill width to 0 fork skipping the min check
* fix: Update default value for skeleton infill line width to 100%
Update fdm_marlin_common.json
fix for time discrepancy, ;LAYER_COUNT was missing which made it impossible for the anker M5/M5C to have a correct predicted time.
* Create top surface density option
* Update tooltip
* Specify what 0% top infill means
* Add density for bottom layers
* Discourage users from using top/bottom density incorrectly
* Fix percent don't need translation
* Fix incorrect indentation
---------
Co-authored-by: Noisyfox <timemanager.rick@gmail.com>
* SPE-2405: Add Zig Zag infill that is rectilinear infill but with a consistent pattern between layers.
This Zig Zag infill is inspired by the Zig Zag infill in Cura.
Change-Id: I798affa99f4b5c3bd67f47643e67530fb7c3e0cb
(cherry picked from commit 2808d04d5deef6f99f9618648e46f11de03efc98)
* Add Cross zag and locked-zag for shoes
Ported from BambuStudio
* wip
* sparse infill roratation template
* solid_infill_rotate_template
* remove rotate_solid_infill_direction
* hide sparse infill rotation template for non applicable infill pattern
* hide solid_infill_rotate_template for non supported solid infill patterns
* update icon
* support empty string for ConfigOptionFloats deserialize
* fix build errors
---------
Co-authored-by: Lukáš Hejl <hejl.lukas@gmail.com>
* feat: Add check for obsolete keys in filament profiles and improve error handling
* feat: Enhance error handling in machine profile checks and filament name consistency
* feat: Add option to check for obsolete keys in profile validation
* feat: Clarify help message for obsolete keys check in filament profiles
* BASE
* precise wall and z moved
* PolyHoles
* Arc-fitting
* X-Y Compensation
* Elephant foot + moved images
* Update quality_settings_precision.md
* Wall generator and more
* Full Reorder
* TPMS-D bases
* Update strength_settings_infill.md
* Image Fix + Infill desc calculator
* Descriptions + image fix
Co-Authored-By: Rodrigo <162915171+RF47@users.noreply.github.com>
* Update cornering-calib.md
* minor fixes
* Wip updated
* Missing fills
* Update infill_desc_calculator.xlsx
* Update infill_desc_calculator.xlsx
* Update infill documentation and images
Removed outdated 'iso' infill images and updated 'top' infill images with new versions. Added new images for adaptive cubic and 2D honeycomb infill patterns. Updated strength_settings_infill.md to revise infill strength values, descriptions, and remove references to deleted images. Introduced documentation for 2D honeycomb infill and made minor corrections and clarifications throughout.
* Revise infill pattern documentation and add comparison table
Updated strength_settings_infill.md to clarify infill density calculation, add a comprehensive comparison table of infill patterns, and standardize terminology for strength and print time. Expanded pattern descriptions to use qualitative strength ratings instead of numeric values. Updated infill_desc_calculator.xlsx to reflect these changes.
* Indentation in code examples
Adjusted the indentation of code blocks in the cornering calibration documentation for clarity and consistency with the rest of the document.
* Update 3D Honeycomb infill strength ratings
Adjusted the horizontal strength rating for 3D Honeycomb infill from 'Normal' to 'Normal-High' in the strength settings documentation and table. Updated the infill_desc_calculator.xlsx file to reflect these changes.
* Formatting and fix in ERS documentation
Updated headings to use consistent Markdown syntax, improved clarity in explanations, and reworded references for better readability.
* Fix wall generator doc link and filename
Updated the Home.md to reference the correct 'quality_settings_wall_generator' section and renamed the corresponding documentation file for consistency.
---------
Co-authored-by: Rodrigo <162915171+RF47@users.noreply.github.com>
* Generate support interface iron extrusion
* Always ironing last
* Add options
* Move ironing speed to speed tab
* Don't iron places that are covered by upper support layers
* Disable support interface spacing settings when support ironing is enabled
* Update text
* Clipper: Verify range of int32 coordinates on input.
Cherry-picked from prusa3d/PrusaSlicer@fa7debf49d
Co-authored-by: Vojtech Bubnik <bubnikv@gmail.com>
* ClipperLib: Optimized PointInPolygon() to calculate cross products
with int64s instead of doubles.
Cherry-picked from prusa3d/PrusaSlicer@9dca8403fe
Co-authored-by: Vojtech Bubnik <bubnikv@gmail.com>
* Reworked the ClipperLib / Polygon types to use
the tbb::scallable_allocator to better scale on multiple threads.
Cherry-picked from prusa3d/PrusaSlicer@9cde96993e
Co-authored-by: Vojtech Bubnik <bubnikv@gmail.com>
* use tbb::scallable_allocator for Polygons and ExPolygon::holes
to better scale on multiple threads
Cherry-picked from prusa3d/PrusaSlicer@b67ad6434d
Co-authored-by: Vojtech Bubnik <bubnikv@gmail.com>
* Fixed compilation on GCC and CLang
Cherry-picked from prusa3d/PrusaSlicer@b3b44681a9
Co-authored-by: Vojtech Bubnik <bubnikv@gmail.com>
* Remove clipper2 which is not used
* Removed shiny profiler from clipperlib
Cherry-picked from prusa3d/PrusaSlicer@7e77048593
Co-authored-by: Vojtech Bubnik <bubnikv@gmail.com>
* ClipperLib: Further optimization of memory allocation using scalable_allocator.
ClipperLib: SimplifyPolygon() - changed default winding number to positive,
added strictly_simple parameter.
ClipperUtlis simplify_polygons() - removed "remove_collinear" parameter
Cherry-picked from prusa3d/PrusaSlicer@a7e17df25f
Co-authored-by: Vojtech Bubnik <bubnikv@gmail.com>
* ClipperLib: emplace_back() instead of push_back().
Cherry-picked from prusa3d/PrusaSlicer@2e150795b1
Co-authored-by: Vojtech Bubnik <bubnikv@gmail.com>
* Fixed issue in a 32bit clipper, where IntersectPoint() checked for
the Y coordinate of the calculated intersection point for validity,
but the Y coordinate was already rounded to 32bits, thus an overflow
may have in rare cases masked invalidity of the result.
Cherry-picked from prusa3d/PrusaSlicer@b39c33414f
Co-authored-by: Vojtech Bubnik <bubnikv@gmail.com>
* Fixed Vojtech's out of boundary assert in Clipper library.
Cherry-picked from prusa3d/PrusaSlicer@0a202dcff3
Co-authored-by: Vojtech Bubnik <bubnikv@gmail.com>
* Update clipper to 6.4.2.
Cherry-picked from prusa3d/PrusaSlicer@b8b3cccb40
Co-authored-by: Lukáš Hejl <hejl.lukas@gmail.com>
* Try fix cmake opencv
---------
Co-authored-by: Vojtech Bubnik <bubnikv@gmail.com>
Co-authored-by: Lukáš Hejl <hejl.lukas@gmail.com>
* bugfix for TPU filament overrides
* higher voluemetric flow
* bugfix for to high speed at internal solid infill
* Update Prusa.json
* updated firmware check and nozzle settings
* bugfix speed and standard for 0,15mm profiles of the 0.4mm nozzle
* variables not defined in orcaslicer
* bug fix volumetric speed, wrong value
* added high flow base process
* added highflow base process
* added first full draft of high flow profiles, further tests are necessary
* changed 0.35mm to 0.32mm for 0.6mm nozzle
* minor changes to initial layer speeds
* changed 0.35mm to 0.32mm for 0.6mm nozzle
* furcer changes on accelartion and speed
* added 0.35mm Standard @MK3.5 again for not breaking anythin for current users
* Update 0.35mm Standard @MK3.5.json
forgot to set the layer_height after creation of the 0.35mm profile
* minor fixes in filament overrides
* added profiles for high flow nozzles on the Prusa MINIIS
* added fan_speedup_time for MINIIS and MK3.5
* changes to support interface, pattern and distance
---------
Co-authored-by: Noisyfox <timemanager.rick@gmail.com>
* Fix punctuation of enumerations
* Add missing '?' at the end of questions on hints
* Add periods after error messages
* Add punctuation to all tooltips
* Add missing periods on the pt-BR translation
* remove OSMesa
OSMesa is depricated for quite a while and got removed with Mesa 25.1.0
* remove OSMesa from all buildfiles, readmes, etc…
---------
Co-authored-by: Noisyfox <timemanager.rick@gmail.com>
* Add new Bambu RIB wall feature, including only the rib wall generation algorithm.
* Fix Linux compilation errors.
* Attempt to fix flatpak build
---------
Co-authored-by: Noisyfox <timemanager.rick@gmail.com>
* Revert 98be94a729
We carry a wxgtk patch [1] that detects dark theme automatically. If it
doesn't work, it means that either selected Gtk theme is not installed
in flatpak environment, or appropriate xdg-desktop-portal for the DE is not
installed.
Plasma users may need to install org.gtk.Gtk3theme.Adapta
Also see https://flatpak.github.io/xdg-desktop-portal/docs/doc-org.freedesktop.portal.Settings.html
[1] 0001-Enable-using-a-dark-theme-when-Gnome-dark-style-is-s.patch
* flatpak: introduce ORCA_SLICER_DARK_THEME to force dark theme
If ORCA_SLICER_DARK_THEME is set, dark theme will be applied regardless
of system settings.
* FIX: occt build failure
Pick up build error fix from upstream:
7236e83dcc
/run/build/BambuStudio/deps/build/dep_OCCT-prefix/src/dep_OCCT/src/StdPrs/StdPrs_BRepFont.cxx: In member function ‘Standard_Boolean StdPrs_BRepFont::renderGlyph(Standard_Utf32Char, TopoDS_Shape&)’:
/run/build/BambuStudio/deps/build/dep_OCCT-prefix/src/dep_OCCT/src/StdPrs/StdPrs_BRepFont.cxx:465:30: error: invalid conversion from ‘unsigned char*’ to ‘const char*’ [-fpermissive]
465 | const char* aTags = &anOutline->tags[aStartIndex];
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| |
| unsigned char*
* Set policy CMP0167 to NEW
Newer cmake switched to using BoostConfig.cmake shipped with boost-1.70
or later for detecting boost, to preserve old behavior policy CMP0167
was introduced.
Set it to "NEW" to indicate that we want to use .cmake shipped with
boost
* Add OpenSSL tarball link to the manifest
* Add curl zip to the manifest
* flatpak: bump runtime version to 47
Gnome 47 has been released a while ago
---------
Co-authored-by: Bastien Nocera <hadess@hadess.net>
* fixes and refactors linux build scripts
- build_linux.sh: fixes wrong AppImage build folder; refactors script; enhances help text
- harmonizes names: BuildLinux.sh and BuildLinuxImage.sh
- fixes file permissions: cmake inherits .in-file permission; removes chmod 755 in scripts
- linux.d/debian: removes false positive error message
- updates documentation
* enables ANSI-colored output for GNU or Clang
* build_linux.sh: adds -p flag to disable PCH for boosting ccache hit rate
* Allow compilation on distributions based on Ubuntu/Debian (#8625)
* build_linux.sh: takes over changes from BuildLinux.sh
* CMakeLists.txt: removes leftovers, enables ANSI-colored output
* CMakeLists.txt: fixes issue where FORCE_COLORED_OUTPUT was not respected form environment (introduces -C cli arg)
* merges 5df4275: Make it easy to pass extra build args to deps and orca in BuildLinux.sh (#9648)
* feat: add Phrozen Arco machine profiles and bed plate assets
- Upload JSON profiles for the Phrozen Arco printer series
- Include 3D bed plate model and corresponding texture files
- Enables accurate slicing configuration and scene rendering for Arco
* fix: add missing "instantiation" attribute
---------
Co-authored-by: SoftFever <softfeverever@gmail.com>
Co-authored-by: Noisyfox <timemanager.rick@gmail.com>
* init
* update dialog buttons
* Fix color on Linux & macOS
* Fix dark mode dialog title color on Windows
---------
Co-authored-by: Noisyfox <timemanager.rick@gmail.com>
* Replace prusa printer images with standard sizes and aspect ratio
* Rename Prusa Mini IS to specify the IS in the name
* Add missing prusa CORE One in the preset dialog and reorder prusa printers
* updated pictures to 320px
* chore: update how to build doc
* chore: add how to validate profiles doc
* remove old build info from readme.md
* fix: typo
* fix: typo
* chore: minor fix
* fix: typo
* chore: minor fix
* chore: minor fix
* chore: remove lfs
* fix: note 2 procedure for repair build
* fix: update CMake installation instructions for macOS to specify version 3.31.x
* fix: clarify CMake installation instructions for macOS and remove outdated commands
* fix: enhance documentation for profile structure and templates in OrcaSlicer
* fix: update profile validation documentation and remove obsolete guide
* chore: update path for building on mac
* better version check in linux build script
Running `BuildLinux.sh` on Debian Trixie (and probably on other platforms)
results in this warning:
```
$ sudo ./BuildLinux.sh -u
./linux.d/debian: line 32: [: ==: unary operator expected
./linux.d/debian: line 32: [: ==: unary operator expected
...
```
The script is looking for the `VERSION_ID` variable
in `/etc/os-release`, but that variable is optional (see
https://www.linux.org/docs/man5/os-release.html) and is not present in
my install of Debian Trixie. The script handles the missing variable
incorrectly, resulting in the above warning.
This commit fixes the version check to be more tolerant and IMO clearer.
Tested on Ubuntu 22.04, 24.04, and Debian Trixie.
JIRA: STUDIO-none
Change-Id: I3bb7b209962c15e94ef24d24f752e8cdafc42975
Signed-off-by: Stone Li <stone.li@bambulab.com>
(cherry picked from commit d5f9b35b911aabc0bf3683744f980838934f5bf7)
(cherry picked from commit 499b0d8e4f2295dd07a5d84e4917e04a404efd53)
IS Calib - Use default Filament MVS
To fix#9439 added a comment in wiki and remove Max Volumetric Speed overload.
Co-authored-by: Rodrigo <162915171+RF47@users.noreply.github.com>
add extruder_id for start_cali and add protection for setting_id
jira:none
Change-Id: Idd8eeaa38c618c0ef8db10064d3e4d9793487aa6
(cherry picked from commit 9097efd8699b93d1d8a128eadf55a9252fa728ad)
use typedef instead of IsWow64Process2
jira: no-jira
Change-Id: I3d5c4becca1586094b6950431470b12bd71a0056
(cherry picked from commit c34e985f188c206d588ee8da7149ded2516981cf)
* Fix CMAKE version check to only apply to Windows
* Treat arch-based distros as arch when building
* Fix cmake policy version issue on Arch
* Remove duplicate cmake minimum version check
* Move cmake 4.x compatibility fix to BuildLinux.sh
* Patch GMP to build on GCC15
* Add cstdint include - GCC15 defaults to C23
* Update GMP PATCH_COMMAND to work without a valid git repo
* Set GMP_DIRECTORY_FLAG
* Remove extra spaces between words
* Remove extra spaces after punctuation
* Remove extra spaces before punctuation
* Always needs a space after punctuation
* Always needs a space before parens
* Remove trailing spaces before newline
* Make gcode editor window resizable
* Make param list expands with the window
* Make dialog shrinkable and give it a proper initial size
* Revert "Hardcode Location of Add Button"
This reverts commit aef74ab005.
* Make sure the dialog fits inside current screen
* Fix compile error
Don't show "remember my choice" on 3mf open dialog (SoftFever/OrcaSlicer#9108)
Lots of people accidentally checked it without realizing the consequences, now we make it more explicit by
only allowing change this in preference settings.
2. use transparent color when reset filament
jira: 7946
Change-Id: I129dc0e6b7244cad3b5e61e1bc423938f4b92d7e
(cherry picked from commit 7f473c2027e31458664e184645cf46f8e9b5d307)
and the pa profile not display in AMS setting dialog after switch nozzle diameter
jira: 8620
Change-Id: If40bfe41ae13f5199f09baae3af09757498f1edf
(cherry picked from commit f3064e223df468eb9901e65c8f0abab2dae91f15)
ENH: calib support multi_extruder
1. backend support multi_extrude data structure
2. Compatible with third-party calibration
(cherry picked from commit bambulab/BambuStudio@21e6271e59)
Co-authored-by: zhimin.zeng <zhimin.zeng@bambulab.com>
1.Get bed type from project config
jira:NONE
Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: I1f1b9185dd4592b5fd3b03f07e8cde7b7d26510e
(cherry picked from commit 1c90355199384903f166730c5bb43c6a6baaa1cf)
* FIX: brim should be extruded only on first layer
github: github.com/bambulab/BambuStudio/issues/4678
Change-Id: Ib00795dfba2e6d869c30ac906385f170088bbfd6
(cherry picked from commit b51ff1721ddc2080c4f7e487f67c4f1a722bf091)
* Fix compile
* Update GUI_ObjectList.cpp
* fix scaling issue on arrow
* Update GUI_ObjectList.cpp
* Update name column on Linux as well
* Always use column width from `m_columns_width`
* Always use column width from `m_columns_width`
* Remove object list extra horizontal spacing on macOS
* Remove object list header
* Avoid negative width
* Fix compile error
---------
Co-authored-by: Noisyfox <timemanager.rick@gmail.com>
* Make sure printer vendor matches
* Handle cases where some vendor do not have printers (such as `OrcaFilamentLibrary`)
* Ignore vendor `custom printer` from create printer vendor list
* Fix missing end bracket
* Update printer vendor and model list on create printer dialog
* Remove unused search code
* Reimplement the object search bar (SoftFever/OrcaSlicer#7438)
* Fix result list when search text is empty
* Prevent infinite focus loop
* Update layout on Linux
* Fix focus on macOS
---------
Co-authored-by: SoftFever <softfeverever@gmail.com>
* Merge tiny cracks that is part of a large bottom surface into bottom surface (SoftFever/OrcaSlicer#9329)
* Revert bottom offset
* Top surfaces will have perimeters around, which need to be removed from bottom surfaces so bridges not extended to visible areas
* attach console for Windows when command line is used
* fix version check failer in command line mode
* attach console only when we need to print help info
* Ignore very tiny extrusions in flow rate scale (SoftFever/OrcaSlicer#9190)
* Don't show flow rate if it's not extrusion
* Merge branch 'main' into bugfox/gcode-viewer-flow-scale
* Fix infill anchor missing
* Correctly process cases without fill lines in FillRectilinear::fill_surface_with_multilines()
* Fix infill anchor missing for several other infill patterns
* Fix infill anchor missing for rectilinear and aligned rectilinear infill pattern
---------
Co-authored-by: Noisyfox <timemanager.rick@gmail.com>
* bugfix:All button doesnt get checked on tab-reopen when the selection is empty
* bugfix:when dep tab is open, and you check All, hitting reset all doesnt update the All button correctly; also partially fixed the bug that checking All doesnt flag the tab as dirty
* fixed a bug where checking All in dependency tab doesnt flag the field as dirty
---------
Co-authored-by: Noisyfox <timemanager.rick@gmail.com>
Co-authored-by: SoftFever <softfeverever@gmail.com>
* Revert "Fixed an bug that filament_minimal_purge_on_wipe_tower option doesn't work for soluable filament (#8397)"
This reverts commit fcc5489911.
* Fixed an bug that filament_minimal_purge_on_wipe_tower option doesn't work for soluable filament (#8397)
---------
Co-authored-by: SoftFever <softfeverever@gmail.com>
Fix#6839 with final tool preheating on multitool machines causing in appropriate temp settings
Seems like Orca is trying to preheat the next tool in a multitool print, and ends up calling a heater off command in the last 30 seconds of any print.
This happens because there's no handling to check if the next active tool is an actual valid tool index, or its a T-1 command to end the print since we're using the last tool.
Simply moved the preheat commands into the conditional IF that automatically fixes this issue since the tool index is now properly evaluated.
Co-authored-by: SoftFever <softfeverever@gmail.com>
* chore: limit cmake version to 3.31 for win32
* chore: fix check for variable path order
* chore: fix check for pipeline
* chore: remove warn on CI enviroment
* chore: change cmake limit version from 3.32 to 4.0
# Description
Add social media links to the project so people can follow the **real** social media accounts. There's only a Twitter/X account added so far. I'd be happy to add more.
Additional context: There are many fake accounts, and this addition to the `README.md` helps users determine which accounts are real. Adding the links will protect users and the OrcaSlicer project.
# Screenshots/Recordings/Graphs
Screenshot of the `README.md` with a social media link.
<img width="1037" alt="image" src="https://github.com/user-attachments/assets/d019bbc0-4b4d-4abf-916c-d3bc41d7062a" />
## Tests
Made the change and previewed in Github.
Add social media links to the project so people can follow the **real** social media accounts.
Additional context: There are many fake accounts, and this addition to the `README.md` helps users determine which accounts are real. Adding the links will protect users and the OrcaSlicer project.
# Description
This PR adds CoLiDo series 3D printers, processes for them and filaments
to the slicer.
Includes:
Machine, Process, Filament and Model(as available from CoLiDo)
Machine:
CoLiDo DIY 4.0, X16, 160 V2, SR1, DIY 4.0 V2
<!--
> Please provide a summary of the changes made in this PR. Include
details such as:,
> * What issue does this PR address or fix?
> * What new features or enhancements does this PR introduce?
> * Are there any breaking changes or dependencies that need to be
considered?
-->
# Screenshots/Recordings/Graphs

<!--
> Please attach relevant screenshots to showcase the UI changes.
> Please attach images that can help explain the changes.
-->
## Tests
Had no issue Printing with CoLiDo profiles.
<!--
> Please describe the tests that you have conducted to verify the
changes made in this PR.
-->
Add FusRock and keep the alphabetical order
# Description
<!--
> Please provide a summary of the changes made in this PR. Include
details such as:
> * What issue does this PR address or fix?
> * What new features or enhancements does this PR introduce?
> * Are there any breaking changes or dependencies that need to be
considered?
-->
# Screenshots/Recordings/Graphs
<!--
> Please attach relevant screenshots to showcase the UI changes.
> Please attach images that can help explain the changes.
-->
## Tests
<!--
> Please describe the tests that you have conducted to verify the
changes made in this PR.
-->
* Add `renamed_from` so existing user won't break
(cherry picked from commit f8f3b5c2c9b0b15c209d8307a6eaba24e393ddda)
* Add check for profile name consistency
(cherry picked from commit 7343aa5b55cab9a9f7cbdcdddd4e7650f1577598)
* Update filament name checking script
(cherry picked from commit 7c4c1bf191de1fd6b86a07bf62c1ab634faa9f55)
* Fix filament name inconsistency
(cherry picked from commit 36225fc3dbd88babbc5a227fcc6247528d0de6a4)
* bugfix for TPU filament overrides
* higher voluemetric flow
* bugfix for to high speed at internal solid infill
* Update Prusa.json
* updated firmware check and nozzle settings
* bugfix speed and standard for 0,15mm profiles of the 0.4mm nozzle
* variables not defined in orcaslicer
* bug fix volumetric speed, wrong value
* added high flow base process
* added highflow base process
* added first full draft of high flow profiles, further tests are necessary
* changed 0.35mm to 0.32mm for 0.6mm nozzle
* minor changes to initial layer speeds
* changed 0.35mm to 0.32mm for 0.6mm nozzle
* furcer changes on accelartion and speed
* added 0.35mm Standard @MK3.5 again for not breaking anythin for current users
* Update 0.35mm Standard @MK3.5.json
forgot to set the layer_height after creation of the 0.35mm profile
* Junction Deviation Machine Limit
jd 3
JD menu 2
JD operativo
limpieza
final
* default JD print menu without warnings
* to fix multiple instances
* Only at first layer
* Calibs upgrade
* Shown on Marlin2
Shown on Marlin2
CodeCleaning
* Update Calibration.md
* set on writer
---------
Co-authored-by: Ian Bassi <ian.bassi@outlook.com>
* Don't check intersection if points below bed is also inside the bed, when the bed is convex
* Skip intersection check if bbox not overlapping
* Remove duplicated out of bed check
* Faster (but less accurate) bbox test
* Merge branch 'main' into dev/faster-outside-check
# Conflicts:
# src/libslic3r/Model.cpp
* First set of fixes
* Add FLEX filament to PrintConfig.cpp
* Add new FLEX filament profiles to main Prusa json
* Comment out M104.1 code
* Revert "Comment out M104.1 code"
This reverts commit 831414adb7.
* fix: for custom filament creation, if no compatible printers are defined, it should be available for all printers
* same fix idea but for 'Copy Current Filament Preset' option
---------
Co-authored-by: Noisyfox <timemanager.rick@gmail.com>
Remove 'www' subdomain from official link.
With 'www.orcaslicer.com' creates certificate warnings, and ultimately redirects to 'orcaslicer.com' anyway.
* Fix#12469 - crash caused by bridge expansion.
Handle a very rare case in which the algorithm picks a wrong
polygon for expansion seed.
(cherry picked from commit 5f843cc93470c96483abcbd47cf8ee5fe38dffe2)
* SPE-2698: Fix crash during regions expansion.
(cherry picked from commit a3f75133c8baead6f8d7bb01722a6bfcdc2e9038)
---------
Co-authored-by: Martin Šach <martin.sachin@gmail.com>
Co-authored-by: Lukáš Hejl <hejl.lukas@gmail.com>
* Make sure the objects are refreshed after scaling
* Scale the calib pattern using `selection.scale` so they won't overlap (SoftFever/OrcaSlicer#9085)
Fix wrong travel before printing first skirt point (SoftFever/OrcaSlicer#9109)
don't modify `last_pos`, otherwise it could move out of plate/to wrong places and cause issue
* Fix issue that you cannot select multiple brim ears with shift+left click
* Fix brim ear size preview when dragging the slide
* Fix `render_hover_point` memory leaking by using `std::optional`
The selection screen shows a loading indicator instead of frozen during
the page loading process, during that time you will able to close the
window if you want, instead of been stuck at this screen until it
loaded:

Ported from BambuStudio, huge thanks to BambuLab!
* VFA-Calibs Wiki images
* Calib Code Fixes
Improve Settings
JD Set Precision to 3
Change damp default
Recommend 0
Fixes
* IS JD Wiki
* Updated with 9234
* IS Verbose
New important message due to flow ratio test changes. Afaik wasn't doced somewhere. I made the mistake if thinking the yolo tests followed the same formula as pass 1/2.
# Description
Finished Lithuanian translation
Still some work with *.js (C:\Program
Files\OrcaSlicer\resources\web\***) files:

****
Not found where can add Lithuanian language into preferences menu:

<!--
> Please provide a summary of the changes made in this PR. Include
details such as:
> * What issue does this PR address or fix?
> * What new features or enhancements does this PR introduce?
> * Are there any breaking changes or dependencies that need to be
considered?
-->
# Screenshots/Recordings/Graphs

<!--
> Please attach relevant screenshots to showcase the UI changes.
> Please attach images that can help explain the changes.
-->
## Tests
Used internal Poedit tests and alredy loaded this language for my
working program interface.
<!--
> Please describe the tests that you have conducted to verify the
changes made in this PR.
-->
# Description
Fixes https://github.com/SoftFever/OrcaSlicer/issues/8342
Some printers require extreme flushes to prevent color bleeding or weird
mixed material issues. This change simply bumps the UI constraint by an
order of magnitude.
Filament manufacturers rejoice at the waste!
## Tests
I have made no attempt to test this change or its impact on
purge/flushing calculations.
"Insanely high value that still plays nicely when converting between int and float (because it's internally stored in m_matrix as floats). 2147483520 (which is ~2 cubic meters) is the max value that can be saved properly in this case."
"Insanely high value that still plays nicely when converting between int and float (because it's internally stored in m_matrix as floats). 2147483520 (which is ~2 cubic meters) is the max value that can be saved properly in this case."
"Insanely high value that still plays nicely when converting between int and float (because it's internally stored in m_matrix as floats). 2147483520 (which is ~2 cubic meters) is the max value that can be saved properly in this case."
FIX:remove the auxiliary directory when sending for printing
jira:[for send gcode]
Change-Id: I0774ca97043e25ce1f731371739052921f721087
(cherry picked from commit 0dda96f91ee68c89b16f0f2622902817a1171798)
(cherry picked from commit 73b45f347bba8654fa5a415b673beb0d3ab1f5bf)
(cherry picked from commit 6eb533019eda9c810f3eaf80a81fd7698ebb4578)
Co-authored-by: tao wang <tao.wang@bambulab.com>
The existing support to use a specified number of cores for compilation was setting the variable
CMAKE_BUILD_PARALLEL_LEVEL but not exporting it, so CMake was not being affected, while the -1
option did work (as it was exporting the value).
* NEW:add move and rotate gizmo in assemble view
Cherry-picked from bambulab/BambuStudio@d9e47bd9a9
Co-authored-by: zhou.xu <zhou.xu@bambulab.com>
* Deselect other parts if Alt is pressed when selecting
Cherry-picked from bambulab/BambuStudio@f5eb2899e7
Co-authored-by: zhou.xu <zhou.xu@bambulab.com>
* FIX:z offset is error after copy and paste several objects
jira: STUDIO-6753 STUDIO-7135
Change-Id: I6d9c8eb0c957ff1e3194709704ceb6c3920baa4f
(cherry picked from commit 847a7141a6f47e409566b19e73c0ebdeb08f39e2)
(cherry picked from commit a5cc52beb7eef5848368e660ca4f14e95ad5f7d5)
* FIX:arrow direction in scaling tool is incorrect
Jira: STUDIO-5672
Change-Id: I82c0ab336805e34c8380f93e64d3b9dbbf283805
(cherry picked from commit f6f27b700f0305854fcdbcb1191af25a4b8bdbe4)
* FIX:world cs is displayed incorrectly
The value of world coordinate system for model_volume
is displayed incorrectly
Jira: STUDIO-6399
code is from PrusaSlicer
thanks for PrusaSlicer and enricoturri1966
commit 325709c5ae9b937867b36103a41d12a102c99292
Author: enricoturri1966 <enricoturri@seznam.cz>
Date: Thu Jan 26 15:49:00 2023 +0100
SPE-1419 - Fixed reset skew resetting mirror, reset scale resetting mirror, changed labels in Object Manipulator panel, scale of instances using the Object Manipulator panel always made as absolute
Change-Id: I30fdd39effd73b8dc027e4263fa7e64937b84326
Cherry-picked from bambulab/BambuStudio@0b46b9848b
Co-authored-by: enricoturri1966 <enricoturri@seznam.cz>
* FIX:fix scale problem
add tool tip for move,rotate,scale gizmo
Jira: STUDIO-6425 STUDIO-6419
Change-Id: I0b89c9b70f83cde21c6a407bcecd78c925515cfa
Cherry-picked from bambulab/BambuStudio@6dad59102b
Co-authored-by: zhou.xu <zhou.xu@bambulab.com>
* NEW:add Object coordinates in move gizmo
jira: none
Part of the code references PrusaSlicer,thanks for PrusaSlicer and enricoturri1966
commit c12eeee12f9e2c91a9dfe7905f1370143805f038
Author: enricoturri1966 <enricoturri@seznam.cz>
Date: Mon Oct 2 14:26:36 2023 +0200
SPE-1926: Tech ENABLE_CGAL_BOUNDING_SPHERE - Use selection's bounding sphere center as pivot for rotations
Change-Id: Iae7e4539c198af3ff1aa99e1c0ce015fbcf80256
(cherry picked from commit 2b73bc915ee27218c9803ba0a01b0d3e47adf1da)
Cherry-picked from bambulab/BambuStudio@98cce3b656
Co-authored-by: enricoturri1966 <enricoturri@seznam.cz>
Co-authored-by: zhou.xu <zhou.xu@bambulab.com>
* FIX:fix imgui style at Object coordinate
in move tool
jira:STUDIO-7141
Change-Id: Ib2900012c28878c4e7ad97eb0cf319f693cb9f6f
(cherry picked from commit b7b09c82897678c4f3615713bc5d1cc7a3b17b19)
(cherry picked from commit c89732a04619a6d910b723c126515bae802f7167)
* ENH:use local cs for non_model_part better
jira: STUDIO-7234
Change-Id: I0f0e99429e5e0b7cc4932a661eceffcff4a495f6
(cherry picked from commit b4305a3bfc9e5ae05c1785a710238a70f2dfb44a)
(cherry picked from commit b28ac4f812f0024ec619c5d1b3c96e4cef4debdb)
* ENH:add a cross mark for object cs
jira: STUDIO-6947
Change-Id: Iaaab4f072045756ac3ba12c3f65e1c7f04ba65b8
(cherry picked from commit a2a2f49b4d94f257d36c9d17b4ec952e5dc9f0eb)
Cherry-picked from bambulab/BambuStudio@8400e162a7
Co-authored-by: zhou.xu <zhou.xu@bambulab.com>
* NEW:add tip button for move,rotate,scale
jira: STUDIO-7273
Change-Id: I44aeecd8aaa17ec49ac1d8ff2bee5c3729c52061
(cherry picked from commit 998f33b4ce588f59cef345e327a97f6f669f6089)
(cherry picked from commit f5eb2899e7252ea3ff0f8a79ef8d55c6009ebb28)
* FIX:scale and size sholud >0 in scale tool
jira: STUDIO-7433
Change-Id: Ibd4d00d9ca4762d002049e97a6d0819649f464db
(cherry picked from commit eaaf11031ee49009af14abbd05bb4a07c88aceda)
(cherry picked from commit 0d393d64b804ba7ae05454bf158de470cc74a6a6)
* Fix crossmark rendering
* Use combox as coord selection
Cherry-picked from bambulab/BambuStudio@56f628dac1
Co-authored-by: zhou.xu <zhou.xu@bambulab.com>
* NEW:add "world coordinates" scale for scale gizmo
upgrade Transformation class
jira:none
about 75% code is from PrusaSlicer,thanks for PrusaSlicer and enricoturri1966
commit b32e9366606dce7d4f8de8db84fd902113bdbe28
Author: enricoturri1966 <enricoturri@seznam.cz>
Date: Tue Mar 7 14:32:18 2023 +0100
Rework of constrained scaling
Change-Id: I1248ea586e6b8f2fb6cdf3aa901ed7f525c3f111
(cherry picked from commit e10381aad1412b0c47afa340b634faa3af9d1a1f)
Cherry-picked from bambulab/BambuStudio@c0536c09b4
Co-authored-by: enricoturri1966 <enricoturri@seznam.cz>
Co-authored-by: zhou.xu <zhou.xu@bambulab.com>
* ENH:set "Rotate (relative)"
jira:none
code is from PrusaSlicer,thanks for PrusaSlicer and enricoturri1966
commit 243985173e70c189ad9a86eefaaea0757d9749cb
Author: enricoturri1966 <enricoturri@seznam.cz>
Date: Thu May 12 14:33:41 2022 +0200
Tech ENABLE_TRANSFORMATIONS_BY_MATRICES - Allow for relative rotations
Change-Id: I851939093ffb6881542fb21b434e17cc31a6dab2
(cherry picked from commit e412fa3492fa2ef59b84a84be1ede80935fb8a8d)
* FIX:limit scaling ratio by grabber in scale tool
jira: none
Change-Id: I20a4404d4e4025ae230ab46ba8d8d3e5ffed10e3
(cherry picked from commit 97f63f167e80e859fec49666c8986f5a01f61838)
* FIX:selection should be not empty when update_ui_from_settings
jira: none
Change-Id: I74b76733eba03d148dfd70279ec2ba65f19cc39a
(cherry picked from commit f402685aee747fe5c3740b2cb80fc2a60e129918)
* ENH:add "volume selection" checkbox
jira: none
Change-Id: I68b5f54e37ea2ab9e2b65ac84abc834060f400df
(cherry picked from commit eec7de441bd40408fe688587d2834b0c42c0d66f)
* FIX:add can_sequential_clearance_show_in_gizmo api
jira: STUDIO-7836
Change-Id: Ie0cded272596bafee4e491e379722dcc23035dc4
(cherry picked from commit 715d2b9b7840939663e99e0ecbfcefd8ecf2904f)
* FIX:select all should ban in paint,cut and so on gizmo
jira: STUDIO-7872
Change-Id: Ic6496dbdd892814e1fc41625ee34ffc46f171657
(cherry picked from commit 95e8ca728553081db4ecbb3d865c8b999a6ff2fa)
* FIX:add wipe tower'position in move gizmo
jira: STUDIO-7861
Change-Id: I8147717bc61ba06a7e1fba45532cdadc2ba1174e
(cherry picked from commit 065dddb890d3ec81643b9767397bdad72ae69ebd)
* ENH:fix text coordinate system calculation
jira: STUDIO-6449
Change-Id: I36214c14c348e8f52b96501cd027205819b0dabc
(cherry picked from commit 44287812a0cb212f1bf6fe70e32e1075f532886d)
Cherry-picked from bambulab/BambuStudio@4091f3e042
Co-authored-by: zhou.xu <zhou.xu@bambulab.com>
* FIX:delete old selection.translate api
jira: STUDIO-8201
code is from PrusaSlicer,thanks for PrusaSlicer and enricoturri1966
commit 88ce6ccdef5f680709ea8b676688784a7af287dd
Author: enricoturri1966 <enricoturri@seznam.cz>
Date: Wed May 11 10:54:42 2022 +0200
Tech ENABLE_TRANSFORMATIONS_BY_MATRICES -
Change-Id: Iafe963f0f7bf9028f32a4fb4a4cc8cc609662283
Change-Id: Ibbc36c004734f35564f0028dd1e537ac926a2f1f
Cherry-picked from bambulab/BambuStudio@c6d9f2685e
Co-authored-by: enricoturri1966 <enricoturri@seznam.cz>
Co-authored-by: zhou.xu <zhou.xu@bambulab.com>
* FIX:add protection for null pointer
jira: none
Change-Id: I9a9231bab893f5d2afa008f65165269ae176c962
(cherry picked from commit f27a713aaf77b1109fc57b8650efa6b23081f799)
* FIX:when two dir is perpendicular to each other,scale error
(plane_normal.dot(ray_dir))
jira:STUDIO-8274
Change-Id: Ib3145ab75e18c832d20065d204aa41b75f73b673
(cherry picked from commit fbdc9cd580f835d1a873d08ed64baed3b3db6f9a)
* ENH:add "reset real zeros" button in rotate gizmo
jira: STUDIO-8291
Change-Id: Ia10e4d8a2a3a073c22a1306aeab9ffa3e7b77c2b
(cherry picked from commit 738e3f004daa9082709800e4e3d0d9bbe1b7ed7e)
* FIX:add "absolute rotation" in rotate gizmo
jira: STUDIO-8726
Change-Id: I23deb4ab11cf24ca4f0f0c5a35a74268c34f60f6
(cherry picked from commit d26b8f9fcadf8f7709a302991e43be711560e84e)
(cherry picked from commit 496d69f9d1b91c6bd84804e57a276bccf79f0cbd)
* Fix tooltip button size
* Fix issue that reative rotation history not cleared after gizmo closed
* Show selection box in assemble view
* ENH:add an tip icon for assembly view
jira: STUDIO-7155
Change-Id: Ie9e4fa578c8aa5bda9ff771d82f396f8b51026bb
(cherry picked from commit 515f9473347fb912a9dc8c365f1c318506096083)
---------
Co-authored-by: zhou.xu <zhou.xu@bambulab.com>
Co-authored-by: enricoturri1966 <enricoturri@seznam.cz>
Co-authored-by: SoftFever <softfeverever@gmail.com>
It looks like start and end values are swapped. Start needs to be greater than end. If you try to hit "Ok" for the default values, it results in this error:
```
Please input valid values:
Start temp: <= 350
End temp: >= 170
Start temp > End temp + 5)
```
* FIX: enable circle fitting of tree support with larger threshold
jira: STUDIO-8588
Change-Id: Ia566fa14f7f786ff905fc3484885634811a6d686
(cherry picked from commit bambulab/BambuStudio@82c72b19bd)
Fixed a crash bug of OTA feature
Fixed a bug that OTA update didn't work for OrcaFilamentLibrary
Add a help script to pack OTA package
# Description
<!--
> Please provide a summary of the changes made in this PR. Include details such as:
> * What issue does this PR address or fix?
> * What new features or enhancements does this PR introduce?
> * Are there any breaking changes or dependencies that need to be considered?
-->
# Screenshots/Recordings/Graphs
<!--
> Please attach relevant screenshots to showcase the UI changes.
> Please attach images that can help explain the changes.
-->
## Tests
<!--
> Please describe the tests that you have conducted to verify the changes made in this PR.
-->
* Use ipArchimedeanChords pattern for flow rate calibration
* Merge branch 'main' into feature/different_pattern_flowrate
* improve order
* Merge branch 'main' into feature/different_pattern_flowrate
* Build script improvements.
Add NDEBUG for non-debug MacOS builds. I don't understand why, but on my system Release and RelWithDebugInfo builds were not defining NDEBUG, resulting in failing asserts and other sanity checks.
Add -jN flag to BuildLinux.sh. On my 4-core 8GB RAM system, passing -j4 allows building without a swap storm.
Improve README.md description of building on macOS.
* Merge branch 'main' into bug/macos-ndebug
* Merge branch 'main' into bug/macos-ndebug
* Merge branch 'SoftFever:main' into bug/macos-ndebug
* Improve CMake syntax. Mention Mac path to app.
* Merge branch 'main' into bug/macos-ndebug
incorrect values, reset them to the default values
jira: nojira
Change-Id: Ia2c64a2a0ebe30641192fdb716234f34c356a6c6
(cherry picked from commit f9d9d40c4fd72ddf4c6aaa9b3d45851bf1fe7ffc)
1.Put commctrl.h into pch precompilation(OCCT conflicts)
2.Replace input wxWidgets to support loss focus verification(STUDIO-8101)
3.Optimize slider interaction and trigger mesh when push up slider(STUDIO-8099)
4.Optimize step loading method, separate import of step and mesh
5.Fix dialog cancel button logic;
6.mesh tasks into sub-threads to prevent blocking the UI;
JIRA: STUDIO-8101 STUDIO-8099
Change-Id: I50bbb43953a5128f358c6880032d20693531333b
(cherry picked from commit ed7ab6b505a2becf8f38edb3c43b96e51eac3317)
The printer model search can be hard to use, depending on how profiles
are named. This makes it a little easier by matching on both the vendor
and model name, and tokenizing the query and matching all of the tokens,
instead of trying to find the whole query substring in the model name.
* Added TCP Queue Delay + Updated Flashforge Serial comms
- Added TCP Queue Delay parameter to delay TCP messages in queue
- Updated Flashforge Serial comms - Upload/Print to older Flashforge devices (AD3/AD4 etc) now working alongside FF Klipper devices
* Set buffer to 4096 & add 3 sec delay for file save command
* include thread in TCPConsole
* Update Creality K2 Plus 0.8 nozzle.json
* Update Creality K2 Plus 0.6 nozzle.json
* Update Creality K2 Plus 0.4 nozzle.json
* Update Creality K2 Plus 0.2 nozzle.json
* Increase PEI bed temp to 100C from 60C for ASA
* Merge branch 'main' into creality-patch
* add creality ender-5 max
* add filament profiles for ender-5 max
* update creality manifest
* fix references
* put creality.json at 4 space indent
* remove invalid parameters
* fix thumb format
* Merge branch 'main' into feature/ender-5-max
* Update Lulzbot.json to include Taz 4, 5, Pro Dual, and Pro S
* Rename Lulzbot Taz 4, 5_cover.png to Lulzbot Taz 4 or 5_cover.png
* Add build plate model for Taz 4 or Taz 5
* Add compatible printers
* Add compatible printers
* Update Lulzbot 2.85mm PLA.json
* Add Taz 4, 5, Pro Dual, Pro S
* Add files for Taz 4, 5, Pro Dual, Pro S
* simplified build plate model
* bugfix for TPU filament overrides
* higher voluemetric flow
* bugfix for to high speed at internal solid infill
* Update Prusa.json
* updated firmware check and nozzle settings
* bugfix speed and standard for 0,15mm profiles of the 0.4mm nozzle
* variables not defined in orcaslicer
* Change Elegoo Centauri Start GCode to Wait for bed temp
This changes the M140 command to M190 so that the machine waits for the bed to get up to temp.
* Add qemu for arm builds on flatpak
* Increase timeout-minutes
Mainly meant to retrigger GitHub actions (free GitHub actions runners have a max runtime of 6 hours)
* Change arm64 flatpak to build barebones, rather than through emulation
This new addition is highlighted in GitHub's new blog post:
https://github.blog/changelog/2025-01-16-linux-arm64-hosted-runners-now-available-for-free-in-public-repositories-public-preview/
* Rename from arm64 to aarch64
* Potental fix for gst-plugins-good compilation
* Initial appimage arm64 builds
* Add inputs.arch variable
* Temporarily completely isolate arm64 and x86 dependencies
* Fix mesa download link and remove temp comments
* Disable libunwind in gst-plugins-good
* Revert changes in build_check_cache.yml
* Disable nls & static options in gst-plugins-good
* Rebase on main
* Re-add flatpak arm build
* Update gst-plugins-good to 1.24.10
This should be the version that received complete arm64 support
* Trying a solution
* Revert "Update gst-plugins-good to 1.24.10"
This reverts commit b416dcd0ae.
* Remove previous build-options
* Try installing the proper arch version of Meson
When building on a local arm64 device it runs properly.
* Remove sudo commands
* Use dnf rather than apt-get
* Try installing meson before the flatpak builder
* Change flatpak runner
This uses a more experimental version of the flatpak runner provided by Flathub
* Temporarily enable artifact upload
* Resolve merge conflicts
* Add arch variable into flatpak name
* Revert to using Gnome 46, rather than Gnome 47
* Add curl dependency
* Revert "Add curl dependency"
This reverts commit 888a0c4a75.
* Clean up
* Define ubuntu version
Seems to be needed due to the arm version still being in public beta
* Add SV06 high-speed settings which were incomplete earlier
Signed-off-by: Apoorv Parle <19315187+apparle@users.noreply.github.com>
* Remove SV06 PLA filament and use Generic filaments. Also enable other types of filaments.
Signed-off-by: Apoorv Parle <19315187+apparle@users.noreply.github.com>
* Merge branch 'main' into sv06_high_speed
* ImGuizmo: Comment out unused code
* 3DNav: Avoid gimbal lock by using polar coordinates
* 3DNav: Make sure top and bottom are oriented correctly
* Add auto perspective
* Add options
---------
Co-authored-by: SoftFever <softfeverever@gmail.com>
* Introduce option to control number of skirt walls after first layer
* Merge branch 'main' into Introduce-option-to-control-number-of-walls-on-skirt-after-first-layer
* Merge branch 'main' into Introduce-option-to-control-number-of-walls-on-skirt-after-first-layer
* One wall draft shield options refactor
* Merge remote-tracking branch 'upstream/main' into Introduce-option-to-control-number-of-walls-on-skirt-after-first-layer
* Merge branch 'main' into Introduce-option-to-control-number-of-walls-on-skirt-after-first-layer
* Renamed to single loop draft shield
* Merge branch 'main' into Introduce-option-to-control-number-of-walls-on-skirt-after-first-layer
* Merge branch 'main' into Introduce-option-to-control-number-of-walls-on-skirt-after-first-layer
* Update Artillery Genius & Sidewinder profiles
- Fixed bed-size of Genius (Pro) profile.
- Fixed default retraction values for the Artillery Genius (Pro) 0.4 profile,
which were set too high for this direct-drive machine.
- Slightly increased default retraction value for Sidewinder X1 & X2, to match
the Genius profiles. Tested values on all machines.
- Matching minimum layer height for Genius & Sidewinder profiles.
- Fixed line endings & indentation.
* Check for air filtration support on the printer level before emitting air filtration gcode command
* Merge branch 'main' into Check-air-filtration-support-at-the-printer-level-too
* Removed expand factor from IOI as it was incorrectly causing perimeter failing to observe IOI reordering.
* Merge branch 'main' into Bug-Fix-IOI-re-ordering-failing-to-reorder-in-certain-edge-cases
* Update Italian translation
* Fix Italian translation
* Fix Italian translation
* Fix Italian translation
---------
Co-authored-by: Noisyfox <timemanager.rick@gmail.com>
The default build plate model for Creality K2 Plus is heavy (516kB) and has a lot of visible artefacts - like diagonal "stairs". I found this a bit annoying. So I redrew the file - to a simple flat stl - 16kb.
* fix alignments for tab and sidebar icons
* minimize code changes
* minimize code changes
* minimize code changes
* Align config label with group title
* minimize changes
* Update Plater.cpp
* Update spacing after titlebar text and comments
* Update Plater.cpp
* Update OG_CustomCtrl.cpp
* Use class to control values from one place
* fix error
* Update Plater.cpp
* update
Move init sys font into GUI_App, after logging has been set up properly (#8603)
This avoid annoying messagebox if somehow failed to load font on windows, and write the message into log files instead
* Fix pt-BR translation of "raft" and "draft"
* Fix the pt-BR translations of "bridge"
* Fix the pt-BR translations of "skirt"
* Fix the pt-BR translations of "fuzzy skin"
* Fix the pt-BR translations of "pellets"
* Fix and uniformize the pt-BR translations of "bed" and "plate"
According to https://eigen.tuxfamily.org/dox/TopicPitfalls.html one
should just avoid using `auto` as the type of an Eigen expression.
This PR fixes most of them I could found in the project. There might be
cases that I missed, and I might update those later if I noticed.
This should prevent issues like #7741 and hopefully fix some mysterious
crashes happened inside Eigen calls.
* Fix the pt-BR translation of "extruder" e "multi-material",
* Fix pt-BR translation of "prime tower"
* Fix translation of "wall", "perimeter" and "shell"
* Add files via upload
Added Lulzbot Taz 6 profile, and supporting files images to add other printers in the future.
* Add bed model and image for Taz Pro
* Filament name clarifications and prep for GFL
* Changes to align with GFL
* GFL Integrated
* Update version # to reflect changes to use GFL
* format cleanup
* cleanup format
* cleanup format
* correct discrepancy on max acceleration label/value
---------
Co-authored-by: SoftFever <softfeverever@gmail.com>
* Revert "fix more Flashforge issues"
This reverts commit 6e473fd5fa.
* Revert "Fixed an issue that some Flashforge filament profiles don't' have compatible_printers defined which cause filament selection dialog didn't filter properly"
This reverts commit f8c0cdfb11.
* Revert "Merged Orca-Flashforge 1.3 branch (Added AD5X & G4P) + fixes & optimizations (#8461)"
This reverts commit b8e4ce75e0, reversing
changes made to be8bf54884.
* Fix OCCT and OpenCV patching during build
The inclusion of the `--directory` flag here isn't necessary because of
how `PATCH_COMMAND` applies patches. In fact this causes issues when
trying to build from an archive, `--directory` seems to imply `--index`
and thus this patch only succeeds if you're inside an initialized git
repo. If you simply use the archive without a git repo the build fails
at the patch step.
* Alter patch command based on git repo status
`git apply` has different behavior when inside a git repo vs not. If
we're in a git repo we need to fully quality the path for these patches,
otherwise we can omit the directory flag.
---------
Co-authored-by: Joe Palazzolo <joe@joepalazzolo.net>
* Misc fixes on the pt-BR translation
* Fix the pt-BR translation of "Wipe Tower"
* Fix the pt-br translation of "ooze"
* Fix pt-BR translations of "flip", "roll", "rotate"
* Fix translations of "preset", "profile", "template", "model"
* Fix the pt-br translation of "nozzle"
* Fix the pt-br translation of "overhang"
* Fix the pt-br translation of "threshold"
* Fix the pt-br translation of "scarf joint"
- Fix crash when selected bed type is not supported by current version.
This could happen if you downgrade Orca to old version that does not
have that bed type.
- For example, if you ever run 2.3.0-beta and having current bed type
set to the last one from the drop down, then if you use 2.2 again the
app will crash during startup.
- This PR fix this by falling back to default bed type if current value
is out of range.
- This PR also fixes issue that current bed type is changed after
upgrading to 2.3 from previous version, due to adding the supertack in
the wrong place in the enum.
and modify the overlap of wall and infill for wipe tower jira:none
cherry picked from commit
bambulab/BambuStudio@4db196b11f
Thanks BambuLab!
- Optimize the starting position of the printing wiper tower after
material change, the initial print on the wipe tower sometimes had
under-extrusion issues, and all layers of wipe tower have the same
starting position, increasing the risk of collision. This optimization
distributes the initial extrusion over four corners, reducing the
accumulation of defects.
- Reducing the rivet length between the wipe tower's outer wall and
infill to 0mm minimizes the risk of collision when switching between
printing infill and outer walls.

# Description
Fixed two regressions:
1. Total layer number was missing for BBL printers
2. M73 remaining info was wrong when ARC fitting is enabled.
# Screenshots/Recordings/Graphs
<!--
> Please attach relevant screenshots to showcase the UI changes.
> Please attach images that can help explain the changes.
-->
## Tests
<!--
> Please describe the tests that you have conducted to verify the
changes made in this PR.
-->
* Added Elegoolink connection
* Set Elegoo CC default bed to btPTE
* Friendly output of some error codes of PrintHost
* feat: Add elegoo centauri carbon profile
* fix: Fix the issue where the bed type in the printer configuration does not match the bed temperature settings when multiple bed types are not supported.
* feat: Modify the elegoo process parameters to disable slowdown_for_curled_perimeters.
* feat: Update comment to clarify plate visibility for multi bed support, BBL printer, and selected bed type.
* fix: Optimize ElegooLink upload; The code is clearer than before.
* feat: Format the ElegooPrintHostSendDialog code.
* fix: Remove the unnecessary instantiation attribute in the Elegoo process.
* fix: Flatpak compilation failed
---------
Co-authored-by: anjis <anjis.zhou@elegoo.com>
* Comprehensive Update in Traditional Chinese
* Update OrcaSlicer.pot & Update Traditional Chinese
* Update OrcaSlicer_zh_TW.po
* Fix Space
* Update the translation for the new features.
* Correction of full width symbols
* Correction of full width symbols
and modify the overlap of wall and infill for wipe tower
jira:none
Change-Id: I0d1355c718e2bd1efea6d898f793f5869476ab12
(cherry picked from commit 4db196b11f052d6a7a7c7a8aafe0d2b34a7d2d80)
the maximum diameter is changed to 20;
the diameter will not be reset;
jira:STUDIO-8497
GITHUB: #5048
Change-Id: I131305671ebc00dcf6b2972994879fe4ea768a36
(cherry picked from commit 3e9006e2d47c87da40e627034d0dc71c563e98ae)
Add minimum flow ratios for spiral vase transitsions
Currently when starting the spiral vase the extrusion rate is ramped
from 0 to 100% on the first layer and from 100% to 0% on the last layer.
In some cases it can lead to underextrusion at the beginning and end of
the spiral.
This change adds minimum flow ratio options for the beginning and the end
of the vase. This means that instead of ramping from 0% to 100% it
instead ramps from for example 20% to 100%.
This issue has been reported in SuperSlicer
https://github.com/supermerill/SuperSlicer/issues/4195
jira:[STUDIO-6649]
If the model comes from model mall, the name from the mall will be used when sending and printing. When there are special characters in the name, it will cause the sending to fail.
Change-Id: I324441cc7177e7062b79280c5d23afe9eeb5e4c2
(cherry picked from commit 1bcf30c39c648763952703c9060573baa2782f87)
Co-authored-by: tao wang <tao.wang@bambulab.com>
* Additional control over bridges
* Label updates
* Detect and handle layers over external bridges
* Label updates
* To-Do placeholders
* Filter out small external bridges
* Apply safety offset for internal bridge polygon intersections
* code comments
* Increase bridge offsets to 3 perimeters total (1.5 perimeter in each dimension)
* Filter out bridges based on perimeter counts to focus bridge on areas where bridge infill is actually generated in the end.
* Fixing bugs
* Convert tick boxes to drop down menu
* Additional geometry checks for second internal bridge to ensure no small polygons are left over.
* Minor code refactor for clarity
* Further refinements in polygon logic
* Polygon logic refinements pt3
* Further union operations to ensure clean geometry
* Fix compile error
* Clean up constructors
* Only create bridges on stInternalSolid areas, not sparse infill.
* Refactor internal second bridge logic to stand alone parallel for loop to avoid thread deadlocks
* Revert change to only consider stInternalSolid areas for second internal bridge layer.
This resulted in partly unsupported solid infill areas above as the remainder was too narrow to generate sparse infill
* Updated beta statements and tooltip changes
---------
Co-authored-by: SoftFever <softfeverever@gmail.com>
Make the "Open in Orca Slicer" button on Thingiverse work by informing
the system that Orca Slicer is the application to handle URLs with the
orcaslicer scheme.
This fixes this error message visible in Firefox' console when clicking
the button on the website:
Prevented navigation to “orcaslicer://open?file=https%3A%2F%2Fwww.thingiverse.com%2Fdownload%3A14134689” due to an unknown protocol.
See https://github.com/bambulab/BambuStudio/commit/62006bba30f39
PROBLEM
• Current color palette has many repeating or very similar colors
• Colors looks came from 80s and all raw colors like rgb(0,255,255)
• Black and White colors shows less details on surfaces due to shadows
and highlights
SOLUTION
• Picked more specific color tones. Tried to make every alternative to
easily identifiable
• Didnt used black, white or gray
QUESTIONABLE
• New colors follows given order and i used orca color as first. Maybe
orange one is better pick
• I can add, remove, or change order of colors
COMPARISON
before

after

old color set

new color set

as text if you want to experiment
`
wxColour("#00C1AE"),
wxColour("#F4E2C1"),
wxColour("#ED1C24"),
wxColour("#00FF7F"),
wxColour("#F26722"),
wxColour("#FFEB31"),
wxColour("#7841CE"),
wxColour("#115877"),
wxColour("#ED1E79"),
wxColour("#2EBDEF"),
wxColour("#345B2F"),
wxColour("#800080"),
wxColour("#FA8173"),
wxColour("#800000"),
wxColour("#F7B763"),
wxColour("#A4C41E"),
`
/run/build/BambuStudio/src/libslic3r/Support/SupportParameters.hpp: In constructor ‘Slic3r::SupportParameters::SupportParameters(const Slic3r::PrintObject&)’:
/run/build/BambuStudio/src/libslic3r/Support/SupportParameters.hpp:172:39: error: ‘warning’ was not declared in this scope
172 | BOOST_LOG_TRIVIAL(warning) << "tree support default to organic support";
| ^~~~~~~
/run/build/BambuStudio/src/libslic3r/Support/SupportParameters.hpp:172:21: error: ‘BOOST_LOG_TRIVIAL’ was not declared in this scope
172 | BOOST_LOG_TRIVIAL(warning) << "tree support default to organic support";
| ^~~~~~~~~~~~~~~~~
/run/build/BambuStudio/src/libslic3r/Support/SupportParameters.hpp:175:39: error: ‘warning’ was not declared in this scope
175 | BOOST_LOG_TRIVIAL(warning) << "tree support default to hybrid tree due to adaptive layer height";
| ^~~~~~~
/run/build/BambuStudio/src/libslic3r/Support/SupportParameters.hpp:175:21: error: ‘BOOST_LOG_TRIVIAL’ was not declared in this scope
175 | BOOST_LOG_TRIVIAL(warning) << "tree support default to hybrid tree due to adaptive layer height";
| ^~~~~~~~~~~~~~~~~
(cherry picked from commit a63070bd4cbe012315b9532f5c199f6d2664333a)
1. fix the issue that setting top z distance=0 not working
2. remove too small extrusions of tree support
jira: STUDIO-8578
Change-Id: I8c3face9d6a756698a6fab876fdb1acc0686647c
(cherry picked from commit 4d219266a1f520445bec6ac5a0274dcfec4050e8)
1. speedup organic tree support by using parallel for intersection of bed area
jira: STUDIO-8451
2. add extra wall for hybrid tree support's tall branches
3. disable circle fitting for tree support. This feature produces inconsistent
circles for tree supports.
4. expose the option tree_support_branch_diameter_angle. Tree supports'
strength can be improved by increasing this value.
Change-Id: If3688ca895df98a77f6ca538077daf8fe94e53f1
(cherry picked from commit 7697eb3dc8f87204d28e6be9adaf55dfcdadbc74)
The expansion was too large and may miss sharp tails near the object.
jira: STUDIO-8400
Change-Id: Iee5bd15cc7c23f16d30365d5f1c9fbcc0a632c19
(cherry picked from commit 05174d07063d8296241de1d35f5b4196bc33a353)
1. fix hybrid tree support may go outside plate
github: #4769
2. fix false alarm of empty layer warning
jira: STUDIO-8178
Change-Id: I7bcc3959b06184901cbec946e8840c7a94bc1cab
(cherry picked from commit 647bd4213c363eff6258992f5f607c1f03cbc482)
Change the behavior of "tree support wall count" option, let it control precisely.
0 means auto.
jira: STUDIO-8068
github: 4780
Change-Id: I6d1a64cff9b121f5c0a3e910c5ddbfe6db198687
(cherry picked from commit a557bbe758cd352fa9bb48323995ed2c90737577)
1. keep all polygon nodes in drop_nodes
2. prevent generating too small polygon nodes
jira: STUDIO-8107
Change-Id: I1311158ab15097eb10727a8d6884b0bcd8136ef1
(cherry picked from commit 038b92a536a56568b1c6f385ce19ff36331cd46a)
this function crashes if there are empty elements in entities.
jira: STUDIO-7975
Change-Id: I0dbeb6b1151dd089be7617ebc3271691f64ac61e
(cherry picked from commit df30728617a89891c68e36cce771fb6380355b82)
(cherry picked from commit e42aabebb16253b0172fb80a58f58953aec8dda7)
Previously painting support enforces on vertical faces doesn't work, as projecting the facets downwards will give empty polygons.
Now we use a different mechanism to enable vertical paint-on enforces, by directly adding contact nodes.
Note: this feature only works with tree support as only tree support has contact nodes.
jira: none
Change-Id: Id171b1665566d142a6427285baccb40c0aa00949
(cherry picked from commit 9c882f61eb37350a4486df58de48f0ae489f2d15)
(cherry picked from commit 68625a6e601e2feef8e56693da1f58372b27b560)
1. do not add interface for small overhangs so supports are easier to
remove
2. calculate avoidance more accurately using real layer height
jira: STUDIO-6285
3. hybrid nodes won't collide with lower layers
4. calculate max move more accurately
5. do not increase radius if next layer has collision
jira: STUDIO-2296, STUDIO-7883
6. rewrite plan_layer_heights to prevent support layers overlap.
Now the tree support layers are completely independent to object layers.
6. increase collision areas for interface. The top layers may be too
close to interface with adaptive layer heights and very small overhang angle
Change-Id: I052c3f66e68afb7663e2d70c846dd09ed7086071
(cherry picked from commit aca511caebfdeec270d4fc0ec6bbbadde77cddc9)
(cherry picked from commit f2fc996652b3b204b4e554f57afed8519feb0397)
1. add rectilinear interface pattern for organic support
jira: STUDIO-7181
2. add tree support optgroup
Change-Id: I94882bc34a61c6adc06b8ecbc9f2323f9b039aac
(cherry picked from commit a8142ab3f37e0bd140a31a7e635b8475f471d7e3)
(cherry picked from commit 69cf816b9431bc21ca0187c7db1148e2d2e898ab)
To fix this we have to expand the enforcer areas just like organic support.
jira: STUDIO-7538
Change-Id: I8e4e3fd18b0e77db9beb57347d8da895fc83f4b0
(cherry picked from commit 319b3e2247e01e545bb9e4cebea7950d875cd89a)
The top z gap should be split if it's too large.
Also we use same logic for both synced and independent support layer.
jira: STUDIO-7232
github: #4191
Change-Id: Idca792e8fa51a83c2a09441ecac64d40b91d6390
(cherry picked from commit c262a7ea137db09e453c157115b3d5417a32886d)
The raft gap layer should only exist if there are raft layers.
jira: STUDIO-7184
Change-Id: Ia4d2a5b7ddf873fb4ef16c7087648214e6bde806
(cherry picked from commit f13144d6a9c20cfbad11c6907c30b10447d8f8a3)
This bug causes supports difficult to remove.
Rule to remmeber:
never decrease the top z distance, you can only increase it SLIGHTLY.
jira: STUDIO-7103, STUDIO-7001
Change-Id: I24f71cd67d182d4e2c0902f244a8ca8f4c3ee982
(cherry picked from commit 461af9e8f6f98a8e0b363436276f225183365998)
also change default style to tree organic
jira: STUDIO-6801
Change-Id: Iab1d8c6117139c9a7a4c1fa71de0a13bcb356dd5
(cherry picked from commit d2c4efad58f16b23bef49bd47d3b70bf322d6f55)
(cherry picked from commit cd9305e3e061b67903ed8f5cd05d0136d608ee01)
Previous parallelization has a bug where two adjacent nodes may be deleted at the same time.
jira: none
Change-Id: I99a29dae9f72aa74ed2721eea4421b15eec10732
(cherry picked from commit 91efe67d723652d3f7e4484dd3cdf31638f769a4)
(cherry picked from commit 734a70b493b0347870dc955021b0f7055c76f84b)
1. sharp tails are supported by a sparse set of contact points which are
easier to remove than previously dense surrounding support.
Organic tree support also has this feature, including all other smart
overhang detection techniques (small overhang and cantilever detection),
with the cost of slightly longer time to detect overhangs.
2. improve supporting overhang contours by adding contact points along
contours.
jira: STUDIO-3876
2. remove some redundant data structure.
Change-Id: If7f595348506a14aba2d0132d23f97d3539c1e1f
(cherry picked from commit e3cce09b9db12ced2841045ffd337b1f35494e6c)
(cherry picked from commit 507345deb193d895d0813fc913f00b0def7e62f9)
1. speedup detect_overhangs by skipping sharp tail and cantilever detection if there are too many overhangs.
jira: STUDIO-3584, STUDIO-2592
2. drop_nodes with precalculation of avoidance and tbb parallel_for_each for all nodes in each layer.
jira: STUDIO-1814, STUDIO-2381, STUDIO-2639, STUDIO-5020,
3. don't show too many progress messages
Change-Id: Ia4897089c69c235fb7cd8e5fdcf4690086048b31
(cherry picked from commit 9c08e28b5b5342dfdde2c939fc953f143a42a59b)
(cherry picked from commit 9de69035a029374be477b74e67c96dd8235daafa)
1. reduce unnecessary small parts of tree supports
jira: STUDIO-6506
2. fix the bug that zero height tree support may be generated with synced support layer height.
3. fix the bug that tree nodes' radii may change abruptly
jira: STUDIO-6326
Change-Id: I38153d136e46bf9d797881cc6ca8803767f46736
(cherry picked from commit 59af0a6c2643169463cf18010ffd75f3aa19b704)
(cherry picked from commit 47440f040cae70f79e430b02d44f6093208ac066)
1. raft under organic trees are not generated
2. Studio may crash when generating organic supports for some objects.
jira: STUDIO-6407
Change-Id: I6e7ff2423b9fee95e4a4a85ccc2844549142f0c8
(cherry picked from commit 00db6c241270f5524bf1618109a2b45872073fd0)
(cherry picked from commit c7d12b703e23a83840f480e2cbb3a80fb00e059d)
1. reduce the gap between blade-shape overhang and support
github: #3667
2. improve sharp tail detection of blade-shape overhangs by introducing
lslices_extrudable.
github: #2786, #3367
jira: STUDIO-5065, STUDIO-6038
Change-Id: I4e899eace1aa28b100a6f4ce2b8d740c317f5530
(cherry picked from commit 08328b848e39c345b6c7b64021d1e0f04df24d08)
(cherry picked from commit 22056d5f7e7bef5574b53fc0453781cd365bf0e1)
1. Raft was not generated when tree support is selected but enable_support is false.
2. Raft angle and density of tree support was incorrect
github: #3675
Change-Id: Ifd78bf619a28eb03a908e75ad56af4934b6b08b7
(cherry picked from commit 2a448095a2fb4a2abebb0a5c8082a2ddbb635f16)
(cherry picked from commit e7ffe31cb3c6b526268adb4c2349a2623b181c53)
Only early stop detect_overhangs if support is disabled AND not checking support necessity.
jira: STUDIO-6158
Change-Id: I2d9662231d941827d6392d57344f7d911f641e09
(cherry picked from commit b811a6031d1afe0e7b1cb73050fe6391a65411ef)
(cherry picked from commit fa61ee6abdb4b04a2141b3f8ea9e2e8a789b7881)
1. accurate top z distance for tree support
Also fix a bug that bottom z and top z distances are misused.
jira: STUDIO-3000, STUDIO-5990
github: #1827
2. Change interface pattern to interlaced rectilinear when using
support material.
2. clean up tree support code
Change-Id: Icc8ce1b6844c841a6fbd1d623df707fdc8ed0f7b
(cherry picked from commit da7412a48dfb5767918ef125b9d0fb9718c03a61)
(cherry picked from commit 39ae64fc53abec794d740e36baaa13fd6fb35849)
The bottom interface layers were not right when "independent support layer height" is enabled.
This commit ensures there are always 2 bottom interface layers and the gap
is not less than specified. However, the gap may be slightly larger.
Jira: STUDIO-3842, STUDIO-2138
Github: #2127
Change-Id: Ifd8fbc4c7bc6dd92f2534fdd0179458a9e93c79a
(cherry picked from commit edcdad162e)
For tree support, use lslices as tree support island when generating brim,
as this is faster and more accurate.
For normal support, still use "support_fills.polygons_covered_by_spacing()" as support island when generating brim;
Jira: studio 4332
Change-Id: Ibfadd3a166606f824e5780b57112fff221470aaf
(cherry picked from commit 64960b19818c7029eaaaf3d8a89804aeaa26f11d)
(cherry picked from commit 181b05c236)
1. interlaced rectilinear interface pattern not working with tree supports
2. infill overlaps with walls when wall count>1
3. support blockers can't block sharp tail detection in normal support
jira: STUDIO-5663
4. bottom z distance=0 not working for normal support.
jira: STUDIO-5676
github: #3203
Change-Id: I025eff2aaad90ad565661aa656c59c82ff969bbf
(cherry picked from commit 5aaf7ead0fd697043f673161e0ede0145ec49f4d)
(cherry picked from commit f3bd5ff87021b5c26794751a1f1da4349b603102)
There is no raft generated when only raft enabled but no support needed.
jira: none
Change-Id: Ic0c9269e2f98038d85c9bc54e4a85f892dc5d764
(cherry picked from commit 1106ff8253)
We must ensure when independent support layer height is enabled, the
support layers are strictly synced with object layers. Otherwise, the
wipe tower toolchange may be messed up.
Jira: STUDIO-4097
Change-Id: I6208653f9665b15d028940d5e130c9e895629fc2
(cherry picked from commit 41d35c8af152c91cb356a68d88a879a115b44778)
(cherry picked from commit 2b593ce378)
1. open support wall count for normal support
Enabling this option makes normal support stronger and gives
better overhang quality, but also more difficult to removal.
Jira: STUDIO-5192
2. fix a bug where tree support (hybrid style) may get overlapped
extrusions near the walls.
3. fix a bug where raft layers can't be 1 in tree support
Jira: STUDIO-5261
Change-Id: Iadc0c67a9b50b5b221c8e83d5aa22ed282018cf8
(cherry picked from commit c0bb0084e386cb70ed6e16edf93190e4b38f5b90)
(cherry picked from commit bf93fd02fb)
First layer support can't be top interface, and
min brim width of auto mode should be larger
than 0.
Jira: STUDIO-5010
Change-Id: I02f8b017b535f8a47965387e8679f692b1966e04
(cherry picked from commit 3e7d54abe352e8ab5f9d6492b5a86a96f9067f94)
(cherry picked from commit 7efebe6bc6)
We decide to set brim width of all objects to MAX_BRANCH_RADIUS_FIRST_LAYER if there is an object with tree support after discussion.
Jira: MAK-2009
Change-Id: I4c4940800632c433235966b01c44ac910e33a51c
(cherry picked from commit bambulab/BambuStudio@2bd6b11505)
Co-authored-by: Arthur <arthur.tang@bambulab.com>
1. Improve generation speed by removing unnecessary get_avoidance.
2. Fix a bug of hybrid support's interface (Jira: STUDIO-4878,
STUDIO-4726, Github#2614)
3. Fix a bug of tree support pass through objects (Jira: STUDIO-4252, STUDIO-4608
STUDIO-4298)
4. Fix a bug with first layer + Arachne (Jira: STUDIO-4281, Github #2423)
Change-Id: I40978c93ab93fa6964483514dad552d73a66c710
(cherry picked from commit 2ccbbe49c74d4aab4f086e79a6f8262b7fc80f15)
(cherry picked from commit bambulab/BambuStudio@d7a4623380)
Co-authored-by: Arthur <arthur.tang@bambulab.com>
1. add a hook inside tree branches for improved strength
2. fix the issue that interface may fly as a mess (delete the logic
where gap nodes can skip dropping down)
3. fix the issue that base nodes may fly as a mess (smoothing should
skip polygon nodes, see Jira:STUDIO-4403)
Change-Id: Ie9f2039813c2ca3127ed8913304cc455fec8e7ee
(cherry picked from commit 83cef5f91d49ff3d275a89ec3df8b5f0fd573f8c)
(cherry picked from commit bambulab/BambuStudio@76f876a3c6)
Co-authored-by: Arthur <arthur.tang@bambulab.com>
* Whitespace cleanup in Prusa profile
```
$ diff -u Prusa.json <(jq --indent 4 < Prusa.json) | wc -l
0
```
* Add Prusa MK4S profiles
There were generated from the PrusaSlicer profiles[0] using some scripts
which try to faithfully convert the profiles[1]. The high flow nozzle
settings have been modeled as a separate printer model.
A few things I'm aware of that haven't been converted:
- Filament multi-material settings (eg loading speeds)
- High-flow and abrasive nozzle check in gcode, which, as far as I
know, isn't available in the current firmware anyways
I've also found that disabling z-hop on layer change in OrcaSlicer seems
more similar to the behavior in PrusaSlicer (which allows travel
distance limitations to override that setting), so I've disabled that.
Fixes#7391
[0]: 0bca90da13/resources/profiles/PrusaResearch.ini
[1]: https://github.com/rcloran/SuperSlicer_to_Orca_scripts/tree/20d2881
**The latest download link can be found from the "Checks" tab above or
[here](https://github.com/SoftFever/OrcaSlicer/pull/8256/checks). There
should be an "artifact" dropdown on top of that page once the build is
completed.**
This PR solves the following problems:
- Bind printers in different subnet
- Binded LAN printers are not automatically connected when switching to
Device tab



Few improtant things to know:
The automatic printer info detection (ie, the step in the first image)
doesn't work on MacOS, when you click "Connect" you will immediately be
prompted to the second image to enter the printer details. (I don't know
why but Bambu does not provide this capability on MacOS for their
network plugin)
AFAIK, P1 series do not support automatic printer info detection (as
tested by @SoftFever and myself), so the first step is gauranteed to
fail, which is unfortunate but expected. Simply click the "Manual Setup"
button (which will appear after clicking the "Connect" button then wait
for a while) and enter the printer detail and you should be good to go.
If anything entered wrong, you could simply unbind the printer and do it
all over again.
I know current binding flow is not very user-friendly, but consider how
rare this will be used, I think it's OK. Given the current situation
this is the best I could do with the closed-source Bambu network plugin.
I only have a P1 so I couldn't throughly test this PR. Please if you
have different printers and home network configurations, your feedback
are valuable to help validating and improving this PR, thanks in
advance!
Fix#6169Fix#8097
Calculate toolbar icon size the same way as it done on windows:
manipulate icon size, not toolbar scale.
Scaling icons this way makes images sharper since they getting
rasterized to a target size rather than being rasterized for 40px and
scaled to a desired size later.
Addresses #8275 by adding time lapse gcode
The profile was missing the time lapse gcode. I ported the time lapse gcode from Qidi Studio's layer change for this profile.
Co-authored-by: Noisyfox <timemanager.rick@gmail.com>
addresses #8093 by using proper placeholder
The original setting was using `hot_plate_temp_initial_layer` which doesn't respect the various build plate temperatures. `bed_temperature_initial_layer_single` does.
Co-authored-by: Noisyfox <timemanager.rick@gmail.com>
* glcanvas: add modifiers to mouse events logging
* glcanvas: workaround for touchpad nav on Win
Releasing ALT on windows platform result in GLCanvas losing focus.
Because of this mouse movements not being processed by on_mouse() event
handler and camera rotation have not cleaned up.
Make a workaround for Windows to cleanup camera rotate state on
releasing ALT modifier.
The following Bambu filaments have been added:
- Bambu PLA Wood
- Bambu PLA Silk+
- Bambu PC FR
- Bambu PETG Translucent
Additional variants for the above filaments have also been added, including versions for different nozzles and printers.
The filament vendor for Fiberon PA612-CF has been corrected from "Bambu Lab" to "Polymaker."
This PR ported the following changes based on BBS 1.10.1 codebase:
- The ability of binding printers via IP (Fix#8099)
- The ability of setting AMS filaments during print (Fix#7882)
- Some other related fixes and improvements
Thanks BambuLab for those improvements!
~~Please note: with this update, we will no longer be able to streaming
the live camera through cloud, only through Lan (even if the printer is
not in Lan mode). At least that's what I saw with this PR and also
#8103, more tests & feedbacks on this are needed.~~ Update: nvm, I
missed a commit that fixes the remote live view. It's working now.
Unfortunately even with this update you still cannot bind the printer in
a different subnet, which is an inherent problem from BBS:
https://github.com/bambulab/BambuStudio/issues/4512
https://github.com/bambulab/BambuStudio/issues/5070
https://github.com/bambulab/BambuStudio/issues/5833
and more...
* Add support for perlin noise fuzzy skin
* Support multiple types of coherent noise
* Updated tooltips for more clarity.
* Reorder options as suggested by @discip
* Fix accidental removal of &
* Move libnoise to deps
---------
Co-authored-by: SoftFever <softfeverever@gmail.com>
* Gcode Statistics Panel - Persist open/close state
Bug: On slicing a model, the Statistics Panel would be reset to being open (regardless of if the user had shut it earlier)
Fix: Now on app open the Statistics Panel will be open, but if the user closes it, its state will persist (regardless of slicing again)
https://github.com/SoftFever/OrcaSlicer/discussions/6021
* Gcode Statistics Panel - fold/unfold button width fix
Issue: The fold/unfold button width is too wide (It seems CalcTextSize is making the button wider than necessary)
Fix: Set the width to a correct fixed value
* Update Anycubic Kobra 0.4 nozzle.json
Fix incorrect parameters for M204 in start gcode
* Update Anycubic Kobra end_gcode and travel speeds
* Update Anycubic i3 Mega S start and end gcode
* FIX:update custom_texture when new_shape=false
Jira: STUDIO-5287
Change-Id: I3add95f9f9345c14a48cc7467513d1b3ce95f4c9
(cherry picked from commit 9ce7de10f4)
* FIX: correct the bed model to the print area origin point
Change-Id: Ieb856dff421d39694966e3c13c519f4ffa3da5c2
(cherry picked from commit 32892514ff)
* Avoid unnecessary copy of `position` parameter
* Merge branch 'main' into bugfox/plater-y
* flatpak: install translations in flatpak
Note: you also need to update flatpak config to add desired locales to
flatpak environment via `flatpak config --set languages='en;ru'; flatpak update`
or `flatpak --user config --set languages='en;ru'; flatpak --user update`
* flatpak: mesa-20.x tarball has been moved, fix the url
It's now under older-versions/20.x directory
# Description
1. Implement a centralized Orca filament library. Previously, OrcaSlicer
required that filament profiles be contained within a printer vendor's
profiles, making it impractical to add printer-vendor-independent
filament profiles. With this new implementation, Orca now supports a
centralized filament library, accommodating all filament vendors for any
printer, or offering specialized versions for specific printer models.

2. Support the reuse of filaments across various vendors and machines
Users can now share any personal filament and print configurations
across all printers.
https://github.com/user-attachments/assets/5c324d07-7bbf-4913-8abf-2506a255759f
<!--
> Please provide a summary of the changes made in this PR. Include
details such as:
> * What issue does this PR address or fix?
> * What new features or enhancements does this PR introduce?
> * Are there any breaking changes or dependencies that need to be
considered?
-->
# Screenshots/Recordings/Graphs
<!--
> Please attach relevant screenshots to showcase the UI changes.
> Please attach images that can help explain the changes.
-->
## Tests
<!--
> Please describe the tests that you have conducted to verify the
changes made in this PR.
-->
* Initial DM2 Profiles
Add profiles for DeltaMaker 3D printers
* Made changes to machine/fdm_machine_common.json and process/fdm_process_common.json to validate successfully using the Orca profile validator
* Update DeltaMaker 2.json
Corrected the capitalization of the file name.
---------
Co-authored-by: Noisyfox <timemanager.rick@gmail.com>
Co-authored-by: SoftFever <softfeverever@gmail.com>
Co-authored-by: Christian Coleman <christianlanecoleman@gmail.com>
Fix issue `Preset name "0.20mm Speed @MK3S 0.4" was marked as renamed from "0.20mm Standard @MK3S", though preset name "0.20mm Detail @MK3S 0.6" was marked as renamed from "0.20mm Standard @MK3S" as well.`
During the printer connection cycle, each Filament and slot is only judged once
When deleting custom filaments or modifying the temperature of custom filaments, re evaluate
Jira: XXXX
Change-Id: If495a343efdb1be6f46d11dd20f6ec7934266e87
(cherry picked from commit e5dab1487188d744c732568232b32666e5f2cc5c)
only use the same path as binary for current path
JIRA: STUDIO-7875
Change-Id: I5523e3b7e20b0f24de50c8d295f54b984693165a
(cherry picked from commit 62b98f783dcee8900da034b384167817155a3e59)
JIRA: STUDIO-7534
Change-Id: I0b5d3764ebf61735238207adc2053ad45ce5ec1a
Signed-off-by: Stone Li <stone.li@bambulab.com>
(cherry picked from commit babda59caa2cb83ae993bfe87c865d7f61c6ab4b)
(cherry picked from commit ff22a8651580a637e42a6839ae364552354781e1)
JIRA: STUDIO-5195
Change-Id: Ida3cd5c60b25d1eff4f04e324a74d63394a9ffeb
Signed-off-by: Stone Li <stone.li@bambulab.com>
(cherry picked from commit 6b6787b30736f87491171237a36c6badc8e51878)
(cherry picked from commit acfdcadac09f05f2e008340d485c4781744c95f9)
A trivial amendment to the initial graphics location to correct it from that of another fork, plus some trivial text edits to smooth reading.
Added a small text to encourage others to report spammy sites to the engines to have them eventually culled.
* Update build_deps.yml
Fixes "Build on Windows" so an error isn't thrown if the working directories already exist.
* Update build_deps.yml
* Update build_deps.yml
Compare the custom gcode z to `0.5*(layer_z[n] + layer_z[n+1])` instead of `EPSILON`
to compensate float rounding error during gcode processing (SoftFever/OrcaSlicer#7834)
* Fix style preview size per resolution
(cherry picked from commit b67c4785f0d300b5615126ea1df1d518dd6d00b0)
* Align font preview to left. (closer to font name)
(cherry picked from commit eb9b8c0c2b112f0f7649e58f4f6d7977380b8442)
---------
Co-authored-by: Filip Sykala - NTB T15p <Filip.Sykala@Prusa3D.cz>
Field: SpinCtrl: Removed code that was relevant for wxSpinCtrl, but not for the new SpinCtrl.
(fix for SPE-2050)
(cherry picked from commit 555193f6ec477d4107f8998c7a3c441cde72382c)
Co-authored-by: YuSanka <yusanka@gmail.com>
* Make sure the `m_extrusion_quality_estimator.set_current_object()` is called after regional config has been applied (SoftFever/OrcaSlicer#7946)
* Init `m_extrusion_quality_estimator` based on region config
* Revert "Make sure the `m_extrusion_quality_estimator.set_current_object()` is called after regional config has been applied (SoftFever/OrcaSlicer#7946)"
This reverts commit d13d4a47b7.
* Call `m_extrusion_quality_estimator.set_current_object` regardless, because that doesn't hurt
* Add a comment
* Revert "SPE-1950: Optimization of computation complexity of perimeter ordering for Arachne generator."
This reverts commit 47ec9b9b06.
* Revert "SPE-1963: Improve ordering of perimeters with Arachne perimeter generator"
This reverts commit babb84c70a.
Fix issue that the contact layer is printed in wrong filament when interface layer number is set to 0
Cherry-picked from prusa3d/PrusaSlicer@ca5f6da08d
Co-authored-by: Vojtech Bubnik <bubnikv@gmail.com>
Some portions of GCode (like BTT_TFT thumbnails) has to be CRLF in
order to work correctly. However, gcode post processor was ignoring
input line endings style emitting '\n' (LF) into post-processed output.
* enabled dependency setting for filament and process
* Add information about inheritance back to Dependencies tab
* Merge pull request #1 from michmela44/Add_inherits_to_dependencies
Add information about inheritance back to Dependencies tab
* Merge branch 'main' into feature/enable_profile_dependencies
* Update OrcaSlicer.pot
Made sentence a bit clearer.
* Update PrintConfig.cpp
Made sentence a bit clearer.
* Update OrcaSlicer.pot
corrected previous expression
* Update PrintConfig.cpp
corrected previous expression
* fix: tray_exist_bits != tray_exist_bits comparison
* fix: title == GetTitle() == title comparison
* fix: possibly dangling reference to a temporary
```
OrcaSlicer/src/libslic3r/calib.cpp:456:17: warning: possibly dangling reference to a temporary [-Wdangling-reference]
456 | const auto &w = bed_ext.size().x();
OrcaSlicer/src/libslic3r/calib.cpp:456:45: note: the temporary was destroyed at the end of the full expression ‘((Eigen::DenseCoeffsBase<Eigen::Matrix<double, 2, 1, 2>, 1>*)(& Slic3r::BoundingBoxBase<PointClass>::size() const [with PointClass = Eigen::Matrix<double, 2, 1, 2>]()))->Eigen::DenseCoeffsBase<Eigen::Matrix<double, 2, 1, 2>, 1>::x()’
456 | const auto &w = bed_ext.size().x();
```
* fix: mixup of | and ||
in this case I think it actually does not change the semantics it just means that both comparison have to be evaluated.
* fix: multi-character character constants need "
OrcaSlicer/src/slic3r/GUI/MediaPlayCtrl.cpp:392: warning: multi-character character constant [-Wmultichar]
392 | if (auto n = tunnel.find_first_of('/_'); n != std::string::npos)
OrcaSlicer/src/slic3r/GUI/MediaPlayCtrl.cpp: In member function ‘void Slic3r::GUI::MediaPlayCtrl::Stop(const wxString&)’:
OrcaSlicer/src/slic3r/GUI/MediaPlayCtrl.cpp:392: warning: overflow in conversion from ‘int’ to ‘char’ changes value from ‘12127’ to ‘95’ [-Woverflow]
* fix: missing paranthesis - skips null check
* NFC: Remove this check it can never be false
* NFC: fix warning: statement has no effect
* Update 0.25mm Quality Speed @RatRig V-Core 4 HYBRID 0.4.json
it's HYBRID not HYBIRD
* Update 0.25mm Quality Speed @RatRig V-Core 4 HYBRID 0.5.json
it's HYBRID not HYBIRD
* Update 0.25mm Quality Speed @RatRig V-Core 4 HYBRID 0.6.json
it's HYBRID not HYBIRD
* Add files via upload
Adding process files for the 0.8 nozzle
* Add files via upload
machine profiles for 0.8 nozzle
* Update Ratrig.json
Added support for 0.8.nozle
* Add files via upload
Added filament profile for the more and more popular PCTG
* Update Ratrig.json
Add filament PCTG
* Update Ratrig.json
Filament setting for big (>0.4) nozzles
* Add files via upload
Filament setting for big (>0.4) nozzles
* Filament setting for big (>0.4) nozzles
Filament setting for big (>0.4) nozzles
* Optimized layer and extrusion values
Optimized layer and extrusion values
* New set of profiles for RatRig V-Core 4 - 400 IDEX
New developed set of profiles for RatRig V-Core 4 - 400 IDEX with virtual copy and mirror printers (with appropriate smaller build plates and idex commands)
* New set of profiles for RatRig V-Core 4 - 400 IDEX
New developed set of profiles for RatRig V-Core 4 - 400 IDEX with virtual copy and mirror printers (with appropriate smaller build plates and idex commands)
* New set of profiles for RatRig V-Core 4 - 400 IDEX
New developed set of profiles for RatRig V-Core 4 - 400 IDEX with virtual copy and mirror printers (with appropriate smaller build plates and idex commands)
* Profiles V-Core4 IDEX 300 + 500
Added profiles for Ratrig V-Core4 IDEX bedsize 300 and 500
* Profiles V-Core4 IDEX 300 + 500
Added profiles for Ratrig V-Core4 IDEX bedsize 300 and 500
* Complete profile sets for V-Core 4 - IDEX
Now the profile sets for V-Core 4 IDEX - size 300+400+500, all with copy and mirror mode, are completed.
(profiles are tested in real prints for V-Core 4 IDEX 400 including copy and mirror, 300+500 only calculated)
* Complete profile sets for V-Core 4 - IDEX
Now the profile sets for V-Core 4 IDEX - size 300+400+500, all with copy and mirror mode, are completed.
(profiles are tested in real prints for V-Core 4 IDEX 400 including copy and mirror, 300+500 only calculated)
* Updated Filament for large nozzles (>=0.6)
Added missing TPU for big nozzles
---------
Co-authored-by: SoftFever <softfeverever@gmail.com>
* Fix start gcode setting bed temp to nozzle temp for Raise3D Pro3 Plus left nozzle
Edited Raise3D Pro3 Plus 0.4 nozzle (Left).json
Replaced S{nozzle_temperature_initial_layer[0]} with S[bed_temperature_initial_layer_single] for M140 and M190
* Fix start gcode setting bed temp to nozzle temp for Raise3D Pro3 left nozzle
Edited Raise3D Pro3 0.4 nozzle (Left).json
Replaced S{nozzle_temperature_initial_layer[0]} with S[bed_temperature_initial_layer_single] for M140 and M190
* Update Raise3D Pro3 Plus 0.4 nozzle (Left).json
---------
Co-authored-by: SoftFever <softfeverever@gmail.com>
* added change g-code
* adjusted change_filament_gcode for all k2 profiles
* Merge branch 'main' into 7607-k2plus-filament-change-gcode
* Merge branch 'main' into 7607-k2plus-filament-change-gcode
* Merge branch 'main' into 7607-k2plus-filament-change-gcode
* Merge branch 'main' into 7607-k2plus-filament-change-gcode
* Merge branch 'main' into 7607-k2plus-filament-change-gcode
* Merge branch 'main' into 7607-k2plus-filament-change-gcode
* Merge branch 'main' into 7607-k2plus-filament-change-gcode
* removed extra space on new line characters. to exeactly match creality print
* Merge branch 'main' into 7607-k2plus-filament-change-gcode
* Merge branch 'main' into 7607-k2plus-filament-change-gcode
* disabled filamanet ramming and cleared Single Extruder Paramaters
* Merge branch '7607-k2plus-filament-change-gcode' of https://github.com/brandonfhall/OrcaSlicer into 7607-k2plus-filament-change-gcode
* Merge branch 'main' into 7607-k2plus-filament-change-gcode
* Merge branch 'main' into 7607-k2plus-filament-change-gcode
# Description
<!--
> Please provide a summary of the changes made in this PR. Include
details such as:
> * What issue does this PR address or fix?
> * What new features or enhancements does this PR introduce?
> * Are there any breaking changes or dependencies that need to be
considered?
-->
# Screenshots/Recordings/Graphs
<!--
> Please attach relevant screenshots to showcase the UI changes.
> Please attach images that can help explain the changes.
-->
## Tests
<!--
> Please describe the tests that you have conducted to verify the
changes made in this PR.
-->
# Description
Filaments that don't have compatible printers defined will invalidate
filter in filament selection UI
This PR:
1. Fix profiles with missing compatible printers attributes
2. Change code logic so that we don't show such filaments
# Screenshots/Recordings/Graphs

## Tests
<!--
> Please describe the tests that you have conducted to verify the
changes made in this PR.
-->
Enhancement: ERS segment length - convert to float
To allow splitting of line segments down to 0.5mm for improved external surface finish.
Co-authored-by: SoftFever <softfeverever@gmail.com>
* Option to limit ERS to external perimeters and overhangs only
* Label name
* Label update
* Merge branch 'main' into Limit-ERS-to-external-perimeters-and-overhangs
* Merge branch 'main' into Limit-ERS-to-external-perimeters-and-overhangs
* Merge branch 'SoftFever:main' into Limit-ERS-to-external-perimeters-and-overhangs
* Merge branch 'SoftFever:main' into Limit-ERS-to-external-perimeters-and-overhangs
* Merge branch 'main' into Limit-ERS-to-external-perimeters-and-overhangs
* Merge branch 'SoftFever:main' into Limit-ERS-to-external-perimeters-and-overhangs
* Merge branch 'main' into Limit-ERS-to-external-perimeters-and-overhangs
* Merge branch 'SoftFever:main' into Limit-ERS-to-external-perimeters-and-overhangs
* Merge branch 'main' into Limit-ERS-to-external-perimeters-and-overhangs
# Description
<!--
> Please provide a summary of the changes made in this PR. Include
details such as:
> * What issue does this PR address or fix?
> * What new features or enhancements does this PR introduce?
> * Are there any breaking changes or dependencies that need to be
considered?
-->
# Screenshots/Recordings/Graphs
<!--
> Please attach relevant screenshots to showcase the UI changes.
> Please attach images that can help explain the changes.
-->
## Tests
<!--
> Please describe the tests that you have conducted to verify the
changes made in this PR.
-->
* SPE-1950: Reimplement algorithm for filtering vibrating extractions inside the ensuring infill to make it less computation complex.
Cherry-picked from prusa3d/PrusaSlicer@b3510ac808
Co-authored-by: Lukáš Hejl <hejl.lukas@gmail.com>
* Remove unused file
---------
Co-authored-by: Lukáš Hejl <hejl.lukas@gmail.com>
* Update DockerBuild.sh
Ensure that the X11 server allows connections from the Docker container.
* Update DockerBuild.sh
Removed fix for X11. Will add to DockerRun.sh
* Update DockerRun.sh
Added help comment to fix and ensure that your X11 server allows connections from the Docker container.
* linxu build with docker in readme
Add build on linux with docker section
* Update README.md
* Update README.md
* Update README.md
remove low ram thing
* Update Dockerfile
---------
Co-authored-by: samthebest699 <106000727+samthebest699@users.noreply.github.com>
Co-authored-by: SoftFever <softfeverever@gmail.com>
The previous implementation during the grouping of perimeters using depth-first searches unnecessarily searched nodes that had no impact on grouping, which significantly increased the search space.
Cherry-picked from prusa3d/PrusaSlicer@86309ba939
Co-authored-by: Lukáš Hejl <hejl.lukas@gmail.com>
Especially in cases when the object is composed only of 2 external perimeters and 1 or 2 internal perimeters, the order of perimeters wasn't optimal and differed from the Classic perimeter generator. That caused unnecessary long travels before the external contour was printed.
The ordering of perimeters is slightly inspired by the latest changes in CuraEngine.
Cherry-picked from prusa3d/PrusaSlicer@10875082de
Co-authored-by: Lukáš Hejl <hejl.lukas@gmail.com>
* Arachne: Fix an arithmetic overflow that causing extra points outside the plate (SoftFever/OrcaSlicer#7321)
* Better way of avoiding overflow, works in Release mode as well
* Fix debug build
* Fix build
# Description
<!--
> Please provide a summary of the changes made in this PR. Include
details such as:
> * What issue does this PR address or fix?
> * What new features or enhancements does this PR introduce?
> * Are there any breaking changes or dependencies that need to be
considered?
-->
# Screenshots/Recordings/Graphs
<!--
> Please attach relevant screenshots to showcase the UI changes.
> Please attach images that can help explain the changes.
-->
## Tests
<!--
> Please describe the tests that you have conducted to verify the
changes made in this PR.
-->
# Description
This PR updates the profiles for BambuLab to the versions shipped in
[01.10.01.50](https://github.com/bambulab/BambuStudio/releases) (which
at time of writing is the latest version).
These includes new profiles for:
- BambuLab ASA-CF
- BambuLab TPU for AMS
- Polymaker Fiberon PA12-CF
- Polymaker Fiberon PA6-CF
- Polymaker Fiberon PA6-GF
- Polymaker Fiberon PA612-CF
- Polymaker Fiberon PET-CF
- Polymaker Fiberon PETG-ESD
- Polymaker Fiberon PETG-rCF
- multiple new generic filaments
And additionally also changes for there Bambu Cool Plate SuperTack
* Update fdm_process_common.json to use slower jerk settings to prevent belt tooth skipping
* Update fdm_process_anker_fast_common.json for faster jerk settings
* Update Max Jerk limit to be in line with real world machine limits
---------
Co-authored-by: Noisyfox <timemanager.rick@gmail.com>
Using my Ender 3 V3 SE I noticed weird printing behaviour. Searching for
the cause, I found that the default layer height for a 0.2mm nozzle for
the printer was set to 0.08mm min and 0.32mm max, which are the default
20%/80% values for a 0.4mm nozzle. This commit changes the values for
all Creality printer which had not a reasonable default value for 0.2mm,
0.6mm and 0.8mm nozzles to 20% min and 80% max.
Co-authored-by: SoftFever <softfeverever@gmail.com>
Accessing a moved object.
Also this method create an unused "out" variable by removing from the parameter.
I guess It should update the parameter object?
Anyway, seems very wrong
(cherry picked from commit 534792e249da3efb83a62279f532b6690d028592)
Co-authored-by: Merill <merill@free.fr>
PrintObject.cpp references tbb::spin_mutex, thus it needs to include
tbb/spin_mutex. Otherwise compilation fails with:
error: ‘spin_mutex’ is not a member of ‘tbb’
Supersedes #7057
* Update 0.25mm Quality Speed @RatRig V-Core 4 HYBRID 0.4.json
it's HYBRID not HYBIRD
* Update 0.25mm Quality Speed @RatRig V-Core 4 HYBRID 0.5.json
it's HYBRID not HYBIRD
* Update 0.25mm Quality Speed @RatRig V-Core 4 HYBRID 0.6.json
it's HYBRID not HYBIRD
* Add files via upload
Adding process files for the 0.8 nozzle
* Add files via upload
machine profiles for 0.8 nozzle
* Update Ratrig.json
Added support for 0.8.nozle
* Add files via upload
Added filament profile for the more and more popular PCTG
* Update Ratrig.json
Add filament PCTG
* Update Ratrig.json
Filament setting for big (>0.4) nozzles
* Add files via upload
Filament setting for big (>0.4) nozzles
* Filament setting for big (>0.4) nozzles
Filament setting for big (>0.4) nozzles
* Optimized layer and extrusion values
Optimized layer and extrusion values
---------
Co-authored-by: SoftFever <softfeverever@gmail.com>
* Patch wxWidgets to automatically select dark theme variant (taken from
Bambu slicer flatpak manifest)
* Drop python script that selected dark theme
* Add a patch to fix libslic3r build
Avoid collisions with previous extrusions in the same layer when moving Z down in an XYZ move.
This happens for example when starting a scarf joint after another perimeter was already printed.
Fixes SoftFever#7191
Co-authored-by: SoftFever <softfeverever@gmail.com>
* Add BLOCKS RD50, ProS100 and RF50 printers
Add printer configurations and profiles for Blockstech printers to OrcaSlicer
* Update RF50 thumbnail
Added the definative thumbnail for the RF50 printer model.
* pa calib: print flow value and acceleration
Print flow value and acceleration for PA pattern calibration.
This should help keep track during adaptive PA calibration.
* pa pattern: fix legent section too wide in some cases
Rework pa pattern legent generation to correctly estimate
width of the legend section.
Current flow value now has variable length which is a longest of
PA value and the acceleration for a given test.
Few examples:
1. PA value are 4 characters: 0.04
Acceleratioion 3 chars: 400
Flow value will be 4 chars long: 7.98, or 11.3
2. PA: 0.018
Accel: 1000
Flow: 12.35, or 6.345
3. PA: 0.04
Accel: 15000
Flow: 34.34, or 4.567
Rework number-to-string conversion flow to correctly round values at
given precision.
Fixed Clipper library (our own fork of it) when working with Z coordinate:
The Eigen vector type compares all components, while the ClipperLib
own IntPoint type compared x and y only.
Fixed by overriding the ==/!= operators to compare just x and y components
for Eigen types.
Cherry-picked from prusa3d/PrusaSlicer@0202eec4b7
Co-authored-by: Vojtech Bubnik <bubnikv@gmail.com>
If layer starts with a color change, the full layer time will be much longer, which will trick the slicer to think this layer has enough cooling time.
However the actual filament extrusion time (the real "printing" part) won't necessarily have enough time to cool down, so if we don't do extra slowing down
before starting next layer, the filament could still be soft and lead to worse surface quality.
# Description
Re-Creation of Pull Request #6964 with X1E changes pulled.
OrcaSlicer includes exhaust fan settings for each filaments, however
these settings do not take effect on Bambu Labs machines that include
chamber temperature regulation fans.

Further investigation into the g-code files produced reveals that the
filament start g-code is responsible for using the air filtration
setting and sending the appropriate `M106 P3
S{during_print_exhaust_fan_speed_num[current_extruder]}` command to the
printer. However, this command, even with the setting enabled, is never
written to the final g-code file.
By default, Bambu Lab's filament profiles wrap this command up in` {if
activate_air_filtration[current_extruder] && support_air_filtration}`
clause, which always evaluates to false. As it turns out, the printer's
have the `support_air_filtration` flag set to `0` in the
`fdm_machine_common.json` file.
This change updates that value to `1` in the .json files for the X1,
X1C, X1E, and P1S 0.4mm nozzles. This is then inherited to other nozzle
sizes and user generated profiles. This is done by simply adding a line
` "support_air_filtration": "1",` to the .json to override the inherited
setting.
<!--
> Please provide a summary of the changes made in this PR. Include
details such as:
> * What issue does this PR address or fix?
> * What new features or enhancements does this PR introduce?
> * Are there any breaking changes or dependencies that need to be
considered?
-->
Fixes#6066
# Screenshots/Recordings/Graphs
N/A
## Tests
Updated this flag in a custom user config for the printer than tried
generating the code file with Air Filtration enabled and set to 70%
The appropriate `M106 P3 S178 ` appears in the filament start gcode
section of the file.
<!--
> Please provide a summary of the changes made in this PR. Include
details such as:
> * What issue does this PR address or fix?
> * What new features or enhancements does this PR introduce?
> * Are there any breaking changes or dependencies that need to be
considered?
-->
# Screenshots/Recordings/Graphs
<!--
> Please attach relevant screenshots to showcase the UI changes.
> Please attach images that can help explain the changes.
-->
## Tests
Updated this flag in a custom user config for the printer than tried
generating the code file with Air Filtration enabled and set to 70%
The appropriate `M106 P3 S178 ` appears in the filament start gcode
section of the file.
# Description
Added support for Creality Print (E.g. Orca can upload and print
directly to Ender 3 V3 KE)
# Screenshots/Recordings/Graphs
Video: https://www.youtube.com/watch?v=ONzaMJhj_Hk
## Tests
Tested in the video above on a Macbook Pro, Ender 3 V3 KE.
It should also be tested on Windows but I don't have a windows computer.
# Description
fixed#6987
# Screenshots/Recordings/Graphs
<!--
> Please attach relevant screenshots to showcase the UI changes.
> Please attach images that can help explain the changes.
-->
## Tests
<!--
> Please describe the tests that you have conducted to verify the
changes made in this PR.
-->
# Description
The idea behind this PR is to make it easier for the users to tweak
filament setting overrides i.e. reduce number of times users have to
switch between the printer and filament settings to compare the values.
# Screenshots/Recordings/Graphs




## Tests
I've done some manual testing to confirm:
* Override setting with the same value as extruder is still shown as a
change.
* Resetting unsaved override setting back to original value still works
as expected.
* Override settings are shown correctly on the next load after a save.
* Extruder settings changes are reflected on Settings Overrides page.
## Other
I have discovered a strange behaviour between `Filament Settings` and
`Printer Settings` windows. On a fresh load of application opening
`Filament Settings` window, navigating to `Settings Overrides` tab and
then closing the window results in `Filament` tab being opened the next
time `Filament Settings` window is opened. But if you open `Printer
settings` window, navigate to `Extruder` or `Motion ability` tabs then
the application changes the behaviour to open the last visited tab by
the user for both of the windows. I'm mentioning this because when this
happens the flow of events in the application changes and causes my
change to break until the user changes a tab. As far as I can tell for
some reason ConfigOptionsGroup's `reload_config` method is starting to
get called (second time?) after TabFilament's
`update_filament_overrides_page` method which wipes out the values set
by me. I'm not sure which is the correct behaviour, so I left that for a
discussion here. If last visited tab is the correct behaviour, then I
would need help to figure out how to fix this problem.
This PR moves the code around without any functional changes, so that all code related to supports now placed at the same location & structure as BambuStudio.
This makes merging updates from BambuStudio much easier in the future.
Resolves#5932
**The following changes made are made to all V-Core 4 versions**
- Improved cover's quality

- Added RatRig's PunkFil ABS, PETG, and PETG CF filaments
- Added PETG-CF10 filament type & RatRig to filament vendors
- Increased max z speed to 200 from 50 and max acceleration travel to
10,000 from 9,000
- Enabled wipe and z hop, as well as, increased retract before wipe to
70% from 0%
- Improved layer change G-Code
- Fixed pause G-Code
- Added extruder clearance parameters
*Almost all of these changes come from @nameisCruzCruz in #5932
…
# Description
This update, along with #6934, resolves the remaining issues with the
wipe tower.
The GCode class will no longer maintain its own Z height information
(m_nominal_z). Instead, it will utilize the Z height from GCodeWriter's
m_pos. This approach is less error-prone.
This PR also fixes#6755.
It also enforce "Enable Filament ramming" option
@igiannakas It should fix the wipe tower crashing issue
# Screenshots/Recordings/Graphs
<!--
> Please attach relevant screenshots to showcase the UI changes.
> Please attach images that can help explain the changes.
-->
## Tests
<!--
> Please describe the tests that you have conducted to verify the
changes made in this PR.
-->
* Russian translation update
The next russian translation update OrcaSlicer V2.1.1 Official Release.
The work done to improve translation, corrected errors.
Thx.
* Russian translation update
The next russian translation update OrcaSlicer v2.2.0-beta2.
The work done to improve translation, corrected errors.
Thx.
* Russian translation update
The next russian translation update OrcaSlicer V2.2.0-beta2 + 3 lines in text.js
The work done to improve translation, corrected errors.
Thx.
* WIP:only works after saving and then reloading
* working version of move plate to the front
* added icons for move to front
* removed a commented line
* fixed the move to front function to behave correctly with undo/redo actions
* Merge branch 'main' into feature/move_plate_to_the_front
* One top wall fixes
* Use one wall threshold set in GUI without limiting
* Updates to one wall top perimeter to address splitting top surface against too small segments and lettering overlap.
* Fix precise wall
* Merge branch 'main' into one-top-wall-fix-pr
* Merge branch 'main' into one-top-wall-fix-pr
* Pass all compatible regions to perimeter generator
* Simplify & unify fuzzify detection
* Simplify `to_thick_polyline`
* Group regions by fuzzy skin settings
* Initial code structure of multi-regional fuzzy skin
* Determine fuzzy type by all compatible regions
* Add fuzzy region debug
* Implement the line split algorithm
* Do splitted fuzzy in classic mode
* Disable debug macros
* Fix infinit loop issue when segment points are out of order
* Fix path connection
* Implement splitted fuzzy in Arachne mode
* Translation of missing phrases into Russian. Part 1
* Translation of missing phrases into Russian. Part 2
* Returned special terms that do not require translation and corrected an error
* Update localization/i18n/ru/OrcaSlicer_ru.po
* Some fixes
* Removed unnecessary format check rules
ENH: support spiral lift with timelapse gcode
The existing implementation did only read the new Z position from the injected timelapse_gcode and flagged the position as unsafe because of this.
This change reads X, Y and Z pos from the timelapgse_gcode and will keep the position state correct to enable safety checks required for using spiral Z hop.
Because of this, spiral Z hop can be used everyhwere now. The same pattern is also applied for layer_change/toolhead gcode injection.
The set_current_position_clear method is unused but will be kept in implementation for future scenarios.
Co-authored-by: Simon ziehmon@users.noreply.github.com
* Fix issue that github action windows build could not find win10sdk (SoftFever/OrcaSlicer#6724)
* Another attempt to fix the build issue
* This should work now
* Delete Readme.txt
Not in use
* Update SECURITY.md
Formatted and little changes made
* Update README.md
Improved format and texts, insert image at the top
* Added `duplicate plate` feature.
This the initial commit and this still needs work.
* [#2025] Fixed the SEGFAULT, apparently an icon id=6 needed to be updated to id=7 as we have one more plate icon.
[#2025] Removed the `printf` statements.
* [#2025] Plate duplication is now fully implemented.
* [#2025] Updated icons for plate duplicate funcctionality.
* [#2025] Added toolbar icon fro "Duplicate Current Plate" action.
* [#2025] Revert changes for `toolbar_add_plate_dark.svg`.
* [#2025] Removed the `BBS` label in the code that is not written by BBS.
* [#2025] Updated `.gitignore` to ignore VSCode workspace file.
* [#2025] Fixed the instances not transforming in global space when the plate is duplicated.
* [#2025] Removed the Duplicate Plate action from the plate actions and the toolbar.
* [#2025] Added the `Duplicate Current Plate` functionality to the `Edit` menu.
* [#2025] Addressed review comments.
* [#2025] Addressed review comments.
* [#2025] Removed unused icons related to the previously introduced "Duplicate Plate" functionality.
* Fix issue that `fuzzy_skin_first_layer` not respected by classic wall generator
* Fix issue that Contour / Contour and hole mode not working properly (SoftFever/OrcaSlicer#6414)
* We have `is_contour`, so need for complicated hole detection
Including a marathon of resolving merge conflicts due to PRs today.
We should abolish multi-line msgids :-)
# Description
This looks like a huge PR, but it is only fixes for typos and grammar.
On the previous PR #6638 I mistakenly used _en.po as the reference
instead of the .pot.
It caused missed strings in the source and other .po files.
This around I triple checked again to make sure the msgids are in sync
with the L"" strings in the code.
Comments, variable names and non-English translation strings were
excluded.
I learnt that typos were "fixed" before by using translations. After
this PR, those translations are no longer relevant and can be cleaned
up.
Hopefully this sets a new baseline which will last us a while. :-)
<!--
> Please provide a summary of the changes made in this PR. Include
details such as:
> * What issue does this PR address or fix?
> * What new features or enhancements does this PR introduce?
> * Are there any breaking changes or dependencies that need to be
considered?
-->
# Screenshots/Recordings/Graphs
<!--
> Please attach relevant screenshots to showcase the UI changes.
> Please attach images that can help explain the changes.
-->
## Tests
The code compiled and ran successfully.
The translation files were verified with ./run_gettext.sh
I did not se any issues when running ./run_gettext.sh --full
Please confirm it again, before the merge.
<!--
> Please describe the tests that you have conducted to verify the
changes made in this PR.
-->
Profile created based on information contained in the printer's firmware and profiles recommended by the manufacturer for Cura. It has been tested on various parts including 3DBenchy with more than satisfactory results.
* Update OrcaSlicer_es.po
* Update OrcaSlicer_es.po
* Upodate OrcaSlicer_es.po
* Update OrcaSlicer_es.po
* Update OrcaSlicer_es.po
* Add new translations and update existin from merged PR 6543
* Small fix in new msgid in OrcaSlicer_es.po
* Fix string start and termination quotes
* Fix string length?
* Update check_locale.yml
* testing with turkish translation
* test format
* fix format issues
* Ported filament shrinkage compensation from Prusa Slicer. Updated logic to be 100 = no shrinkage to be consistent with orca definitions
* Code comments update
* Merge branch 'main' into Filament-Shrinkage-compension---port-from-Prusa-slicer
* Merge remote-tracking branch 'upstream/main' into Filament-Shrinkage-compension---port-from-Prusa-slicer
* Merge branch 'main' into Filament-Shrinkage-compension---port-from-Prusa-slicer
* Kingroon KLP1 profiles
* Kingroon KP3S V1 profiles
* Make cover png file size more reasonable
* copy/paste error in the profile name
* Merge branch 'main' into kingroon-klp1-profiles
- add Breakaway Support filament
- add preheat params for Snapmaker Dual/IDEX printers
- update the check bounds code in start-gcode, which is now off by default
* Make sure the speed tab is properly hidden when toggle off advance mode
* Clear each page before clearing the parent, otherwise the child pages will be destroyed twice
* Fix crash if current selected tab is positioned after the removed tab
* Fix issue that sometimes the printer config first page is not displayed
* Fix issue that the wrong tab item get bold if the number of tabs changed
* update flow rate calibration tests
* more tweaks
* add YOLO linear flow rate calibration
* update name
* revert line_width changes
* Make it 2mm thick and change some text
* Update YOLO test:
Normal YOLO for 0.01 step
Perfectionist YOLO for 0.005 step
* add space
* Wiki home page fix links and readme update to link to wiki
* Update README.md
* Fixed developer reference links
* Update linkage from slicer settings to Wiki for layer height, line width and seam settings
* adaptive PA documentation
* Update adaptive-pressure-advance.md
* updated screenshots
* formatting
* Update adaptive-pressure-advance.md
* Update adaptive-pressure-advance.md
* Update adaptive-pressure-advance.md
* Include adaptive PA link
* Fix crash due to the wrong window get returned in `PointCtrl` (SoftFever/OrcaSlicer#6261).
`getWindow()` must return the control itself, not its child control; otherwise the child control will be destroyed twice when the tab container is destroyed.
* Fix another crash on Linux caused by unused undo button
* Fix build with CGAL 5.6
Surface_mesh iterators no longer return references, so it's necessary to
use const references or copies when iterating.
This was previously merged in #3045 but isn't references in the
current main branch anymore. No idea where why it is gone, but the issue
still persists thus the patch should still be added.
* Fix linux deps debug build
* Use the same DL_CACHE for release build when building debug version of deps on Linux.
This prevents downloading the same source packages twice, and avoid downloading again after deleting the build dir.
* Fix debug build
* Fix warnings "loop variable creates a copy from type" and "loop variable binds to a temporary constructed from type"
* Improvements in Inner Outer Inner wall ordering logic
* Updated to BFS algorithm, made ordering more robust and corrected edge cases
* Doc updates
* Refinements in perimeter sorting
* Removal of touch threshold and code debugging to improve sequencing
* Code cleanup
* Code refinements on perimeter distance thresholds
* Extend perimeter re-ordering to more than inset index 2, to reduce travel moves when printing neighbouring features
* Refinements to IOI perimeter re-ordering algorithm to improve travel scenarios where multiple external perimeters are contained in the same island.
* Documentation updates
* Removed unnecessary code
* Removed bespoke to_points function and replaced with ExtrusionLine member already present. Removed squaredDistance and replaced with Eigen library call.
* Refactor code to move distancing functions to the multipoint class. Renamed for more clarity on their purpose.
* Added SBS to filament_info.json
* Added SBS to Print.cpp
* added SBS to PrintConfig.cpp
* Added SBS to BBL
* Added SBS Template and also specified SBS as type in fdm_filament_sbs.json
* Updated settings for SBS in filament_sbs_template.json
* Applied SBS settings to fdm_filament_sbs.json
* added settings to Generic SBS @base.json
---------
Co-authored-by: Duan Gauche <duan.gauche@pdsvision.com>
Co-authored-by: SoftFever <softfeverever@gmail.com>
* Revert "Fix #3311: filament Load / Unload time was not used in time estimation (#3706)"
This reverts commit 252788419b.
* revamp tool/filament change time
* tweak message
* Use more readable data types for storing triangle splitting information.
* fix build errors
* SPE-2063: Determine correctly which extruders are used when the object is painted by the multi-material painting gizmo.
During the serialization of TriangleSelector and also during reading serialized painting data from 3MF, we cache all used states in the painted triangle mesh.
Based on this information, we can quickly determine which extruders are used and which don't.
* Fixed an bug that filament list was not updated properly
---------
Co-authored-by: Lukáš Hejl <hejl.lukas@gmail.com>
* Fix z hop performed after retraction in PA pattern calibration. Fix zhop config value not used
* Updated gathering of z hop value method for consistency
* Fix -Wsubobject-linkage warning
Having tk::spline header-only implementation included from
SmallAreaInfillFlowCompensator.hpp makes
SmallAreaInfillFlowCompensator::flowModel have separate (albeit the
same) implementation in each translation unit.
In order to fix this issue, SmallAreaInfillFlowCompensator::flowModel
converted to opaque 'pimpl'
* spline: remove anonymous namespace
Remove outer anonymous namespace from splice.h to make
forward declaration for tk::spline possible.
* fix gizmo bar wobbling
Gizmo bar is wobbling at specific application window width range.
This comes from a bar scaling calculations method:
- new scale calculated for already scaled bar
- scale stored as application settings loosing precision
Rework gizmo bar resizing code to remove feedback:
- calculate scale factor based on unscaled bar size
* rework gizmo bar scaling
Unify scaling implementation across platforms (MacOS, Win, Linux).
Now all platform scale bar setting icon size.
Toolbar scale is used for high-DPI displays scaling only.
* Add comments, reorganize changes to minimize diff
* Fix crash when filling very tiny (1-5nm) gaps (#6279)
Cherry-picked from prusa3d/PrusaSlicer@8784ca0ecf
Co-authored-by: Lukáš Hejl <hejl.lukas@gmail.com>
* SPE-2256: Fix the issue that we used the old Voronoi graph during the detection of invalid Voronoi diagrams.
This happens because we didn't set a modified flag that is required to be set before we use the new Voronoi graph.
Possibly related to #12385
Cherry-picked from prusa3d/PrusaSlicer@2de1f3aa45
Co-authored-by: Lukáš Hejl <hejl.lukas@gmail.com>
---------
Co-authored-by: Lukáš Hejl <hejl.lukas@gmail.com>
* Supress warnings on unused functions an variables
Compilation of OrcaSlicer produces 3056 warnings.
Nearly half of them related to unused functions and variables.
It is unlikely we going to clean them up since we may want to
keep code base as close to the BBS as possible
* initialize class member with correct value
* Fix memset arguments order
* Merge multiple statemensts into single
* fix -Wpessimizing-move
* Increase granularity of extrusion move splitting for small line segments ending in an overhang
* Parameter tweak
* Increase granularity of estimation for curled perimeters
* Adjust parameters following experimentation with overhang prints
* Updated overhang segmentation logic
* Cleanup code comments
This PR:
- Updates translation template to include new messages from #6009 and
updates <s>existing translation files</s> Korean translation file
accordingly
- Updates Korean translation, including new translations for #6009
# Description
Copied files from BambuStudio after downloading updated profiles.
Add support for BambuLab PETG-HF and Support for ABS. Fixes#6182
Also contains some changes to the default infill from crosshatch to
gyroid, and updated start g-code for A1.
# Tests
Copied all files to resources directory on install, and started.
Profiles showed up.
flush_length variable is now provide correct value based on the flush
matrix set by the user.
pesudo code in Change filament gcode:
```
...
T1
; Park head to the purging location
G1 X0 Y-5 F12000
; Purge certain amount of filament into waste bin
G1 E[flush_length] F600
...
```
This PR is based on the WIP tool changer branch #6087Fixes#4194#5937#5912
# Description
Add support of tool changer printers.
A new printer model has been added: `Generic ToolChanger`
Currently only support tool changer printers like `TapChanger` and
`StealthChanger`.
~Support for Prusa XL is still WIP.~ Prusa XL is supported now
~~⚠️WARNING⚠️ : please proceed with caution. It hasn't been tested on an
real printer yet. Please double check with g-code before printing it.~~
🚀GOOD NEWS🚀: Multiple successful prints have been reported; it should be
safe to try [Discord
Thread](https://discord.com/channels/1137181739773603922/1258993224018821160).
**For bugs, please kindly help by logging issues with details and sample
projects, then label them as ToolChanger. This will help me track
them.**
# Screenshots/Recordings/Graphs
https://github.com/SoftFever/OrcaSlicer/assets/103989404/bd518f77-5cc1-4b3a-ba76-7ead75494365
# Test
Feedback is welcomed!
For Mac users, please ref to this instruction:
https://github.com/SoftFever/OrcaSlicer#how-to-install
- [x] Occasionally crashes when change printer settings
- [x] Prusa XL profiles and custom gcode
- [x] Ooze prevention bug
- [x] Prusa XL z offset issue when prime tower is used
- [x] Preheat nozzle(temporary solution)
- [x] infinite(tall) skirt when both ooze prevention and skirt are
enabled
- [ ] skirt/purge cone overlap
- [ ] Document about custom variables
Implement #5943#2050#5079
* Fix calls to depreciated wxPen constructor
* Fix use of wxTimerEvent
* Fix unrecognized character escape sequence
* Fix signed/unsigned mismatch
At least as much as possible without significantly altering parts of the application
* Clean unreferenced variables
* fix mistyped namespace selector
* Update deprecated calls
* Fix preprocessor statement
* Remove empty switch statements
* Change int vector used as bool to bool vector
* Remove empty control statements and related unused code
* Change multi character constant to string constant
* Fix discarded return value
json::parse was being called on the object, rather than statically like it should be. Also, the value was not being captured.
* Rename ICON_SIZE def used by MultiMachine
By having the definition in the header, it causes issues when other files define ICON_SIZE. By renaming it to MM_ICON_SIZE, this lessens the issue. It would probably be ideal to have the definitions in the respective .cpp that use them, but it would make it less convenient to update the values if needed in the future.
* Remove unused includes
* Fix linux/macOS compilation
* Hide unused-function errors on non-Windows systems
* Disable signed/unsigned comparison mismatch error
* Remove/Disable more unused variables
Still TODO: check double for loop in Print.cpp
* Remove unused variable that was missed
* Remove unused variables in libraries in the src folder
* Apply temporary fix for subobject linkage error
* Remove/Disable last set of unused variables reported by GCC
* remove redundant for loop
* fix misspelled ifdef check
* Update message on dialog
* Fix hard-coded platform specific modifier keys
* Remove duplicate for loop
* Disable -Wmisleading-indentation warning
* disable -Wswitch warning
* Remove unused local typedefs
* Fix -Wunused-value
* Fix pragma error on Windows from subobject linkage fix
* Fix -Waddress
* Fix null conversions (-Wconversion-null)
---------
Co-authored-by: SoftFever <softfeverever@gmail.com>
* Fix crossing max x axis & rise max print height of Ender-3 V3 KE
* Merge branch 'main' into ender-3-V3-KE-4
* Merge branch 'main' into ender-3-V3-KE-4
* Adaptive Pressure advance options setup
* Dynamic PA - PCHIP interpolator code and tests
* Integrate dynamic PA with slicing code - emit new PA values per speed change
* Link adaptive PA to role change instead of speed change
* Adaptive PA - Alpha 2
Reduce the frequency of requested PA changes by introducing a "state" variable.
Implement user toggle for adapting PA for external walls for overhangs
* Hide adaptive PA for overhangs
* Convert Adaptive PA to use volumetric flow model and start preparing for converting to Gcode post processor
* Converted Dynamic PA to a post processing filter. Reverted changes in GCode cpp and created tagging mechanism to allow filter to apply PA changes.
* Removed adaptive PA for overhangs
* Foundations for two dimensional adaptive PA based on acceleration and volumetric flow speed
* Minor code cleanup and updating of tooltips
* Renaming files for better clarity and generate classes documentation
* Update src/libslic3r/PrintConfig.cpp
Co-authored-by: ElectricalBoy <15651807+ElectricalBoy@users.noreply.github.com>
* Update src/libslic3r/PrintConfig.cpp
Co-authored-by: ElectricalBoy <15651807+ElectricalBoy@users.noreply.github.com>
* Update src/libslic3r/PrintConfig.cpp
Co-authored-by: ElectricalBoy <15651807+ElectricalBoy@users.noreply.github.com>
* Introduce average mm3_mm over the length of a multipath for adaptive PA
* Updates for multipath handling part 2
* Introduce average mm3_mm over the length of a multipath for adaptive PA
* Trigger PA evaluation more frequently to catch edge cases where speed changes across islands of the same feature type.
* Updates for multipath handling part 2
* Adaptive PA: Implement average flow estimation on loops
* Code formatting
* Fix adaptive PA not adapting for small disconnected external wall line segments.
* Updated to take max print speed of upcoming feature to calculate new PA value.
This is to resolve issue of incorrect PA value used when starting a new feature at an overhang.
* Code clean up
* Performance tuning
* Further performance tuning by reducing use of regex commands in the nested loops and fix bug preventing gcode line output
* Further performance tuning and tweaks to stop searching for max speed after the first travel move.
* Reduce debug information
* Updated debug info
* Fix an issue on seams on specific models when wipe before external perimeter was enabled. Also cleanup documentation and add new to-do's
* Prepare for adaptive PA for overhangs, fix wipe bug & clean up code and comments
* Initial commit for adapting PA when extruding fully overhanging perimeters
* Ignore wipe command when identifying current print speed
* Option to evaluate adaptive PA on overhang regions in preparation for Klipper experimental option testing
* Update to issue PA changes for varying flow conditions within the same feature
* Fix bug where adaptive PA was enabled erroneously for role changes and ignoring user's preference.
* Refactored some code
* More refactoring
* Some bug fixes and enabled comments only when verbose g-code is enabled
* Introduced dedicated PA option for bridges
* Code refactoring to optimise initialisation of PA processor (making it faster). Fix a bug where PA was not always set after a toolchange. Improve general error handling and robustness.
* Updates to adaptive PA tooltips
* Bridging PA check with Epsilon instead of 0.
* Adaptive PA: addressing comments
---------
Co-authored-by: ElectricalBoy <15651807+ElectricalBoy@users.noreply.github.com>
removed imgui.set_requires_extra_frame(), this line causes Slic3r::GUI::GLCanvas3D::render() to be called repeatedly when 'Filament' or 'Speed' is selected for preview panel
* Flushing volumes button background color for active state
* Sliced plates bar > Use different colors on plate numbers for light / dark theme
* Remove 3D navigator background
* Device & Project Tab > Sidebar > Selected tab background color
* Merge branch 'SoftFever:main' into color-fixes-3
* Correct sidebar button color for light mode for bbl monitor / calibration and project page
* Homepage fixes
* Fix parameters group title color too bright on dark theme
* Search popup hovered item background color
* Sidebar > Search box > match border color with other input/combo boxes
* fix indents
* Add descriptions to statecolors
* Paint gizmos > remove background of non active Tool / Brush buttons on dark mode
* Merge branch 'SoftFever:main' into color-fixes-3
* Top bar / Main tab bar button hover background
* Fix broken color change from last merges
* Gizmos selected text background
* Keyboard shortcuts window selected tab bg color
* About page link color
* Project page fixes
* match disabled text color on combo boxes with input boxes
* Use better background color for disabled elements on dark mode
* match all colors for disabled elements
* BBL > Monitor tab > Add printer text and icon not visible on dark theme
* even darker bg color for homepage thumbnails
* Sidebar arrow not visible
* Better bg color for row highlighting
* match style of gizmo combo box
* Merge branch 'SoftFever:main' into color-fixes-3
* Revert changes for main tab bar background color of button while hover
Fix override that cause segfault and EGL initialization error
When user built Mesa from GIT and load it using env variables
LD_LIBRARY_PATH and LIBGL_DRIVERS_PATH
it override LD_LIBRARY_PATH inside AppImage but other variable
LIBGL_DRIVERS_PATH not override and it cause EGL init error.
* Flashforge-06-12: gcode and filament mapping
* 06-27 Add Chuanying x1 printer profiles
* 20240702-Flashforge Guider 2s process fix
* [07-10 Flashforge]: Add more layer height options for AD5M and more nozzles for G3U etc.
* Update fdm_klipper_common.json
* Update fdm_machine_common.json
* add new nozzle type
* add new nozzle type with filaments
* add new nozzle type with mechine files
* add new nozzle type with process files
* Update InfiMech.json
add new nozzle type
* Update InfiMech.json
* Update 0.08mm Extra Fine @InfiMech TX.json
* Update 0.12mm Fine @InfiMech TX.json
* Update 0.16mm Optimal @InfiMech TX.json
* Update 0.20mm Standard @InfiMech TX.json
* Update 0.24mm Draft @InfiMech TX.json
* added Prusa Mini with Input Shaper to profiles
* Merge branch 'SoftFever:main' into main
* refactoring to more reusable settings
* Merge branch 'SoftFever:main' into main
* added more processes, changed settings
* Merge branch 'main' of https://github.com/koppensb/OrcaSlicer
* Update 0.15mm Speed @MINIIS.json
* Update 0.10mm Speed @MINIIS.json
* changed to cubic because of speed
* Merge branch 'main' of https://github.com/koppensb/OrcaSlicer
* further changes after reviewing prusa slicer settings
* simplified machine settings
* retraction speeds according to prusa slicer
* Merge branch 'SoftFever:main' into main
* changed max flow according to prusa slicer
* Merge branch 'main' of https://github.com/koppensb/OrcaSlicer
* after clearification at the prusaslicer repository M900 got removed
* Merge branch 'SoftFever:main' into main
* precise wall per default
* Merge branch 'main' of https://github.com/koppensb/OrcaSlicer
* enable reverse overhang on odd by default
* added settings from prusa slicer
* changed cooling setings
* Merge branch 'SoftFever:main' into main
* changed default to inner-outer-inner wall
inner-outer-inner gives pretty good overhangs with better surface
* new profiles for bigger nozzles, changed some cooling settings according to prusaslicer
* profiles for different nozzles sizes, better speed settings
* initial layer height was wrong
* wrong initial layer height
* set the correct accelerations
* Merge branch 'main' of https://github.com/koppensb/OrcaSlicer
* changed firmware version number
* using pressure advance UI setting instead of custom filament g-code
* Merge branch 'SoftFever:main' into main
* Update Prusa Generic PC.json
* Update Prusa Generic PC.json
* changed max flow for PC
* added PVA filament profiles
* bug fix in filament loading
* Merge branch 'SoftFever:main' into main
* Merge branch 'SoftFever:main' into main
* changed line width according to prusa slicer
* Merge branch 'main' of https://github.com/koppensb/OrcaSlicer
* Merge branch 'main' into main
* changed heatbed temperature for Minis capabilities
* Merge branch 'main' of https://github.com/koppensb/OrcaSlicer
* Merge branch 'main' into main
* Merge branch 'SoftFever:main' into main
* set default support to snug
* changed default filament setting to the correct value
* Init port of Cura's MM interlocking
* Refactor a bit
* Fix crash when bottom surface is multi-color
* Fix crash when boundary avoidance is 0
* Add config
---------
Co-authored-by: SoftFever <softfeverever@gmail.com>
* creating settings for printer and some UI changes work
* related filament diameter and pellet flow changes to each other
* UI name change to turn Filament to Material
* updated the flow coefficient to filament diameter formula
* updated the preset for the configuration wizard
* configuration changes for the final release
* config changes and preset bundle sync removed
* start gcode change for ginger machines
* added explanation of relationship between pellet_flow_coefficient and filament_diameter
* Added tooltip. Fixed Ginger machine configuration, Added docs
* add missing includes
Building without precompiled header support revealed some missing
includes that are added with this change for code health purposes.
Those missing includes were hidden by precompiled header support due to
the fact that the precompiled header file provides some definitions
despite not being defined in directly or indirectly included header
files.
Linux distros started removing libwebkit2gtk-4.0 libriry from their
repos. Ubuntu Noble (24.04) is one of them.
Modify debian/ubuntu deps to install libwebkit2gtk-4.1 if
no libwebkit2gtk-4.0 available
* Flashforge-06-12: gcode and filament mapping
* Merge branch 'SoftFever:main' into main
* Merge branch 'SoftFever:main' into main
* 06-27 Add Chuanying x1 printer profiles
* Update printer profiles
* Fix accelerations
* Fix z hop
* Small fixes
* Update layer height according to printer data sheet
---------
Co-authored-by: SoftFever <softfeverever@gmail.com>
add some series of printer parameter configurations. 15 Geeetech printers, including 3 series models.
Thunder series. A high-speed printer and the maximum printing speed can reach 300 mm/s. Mizar series. A machine that has very exquisite print quality and ultra quiet printing. Other Geeetech printers.
---Request from Geeetech offical .
Co-authored-by: SoftFever <softfeverever@gmail.com>
* Do not use get_scaling_factor then construct the matrix again, because it cannot properly handle situations that contains negative scale (mirror) / shear (SoftFever/OrcaSlicer#5578)
* Do not use get_scaling_factor then construct the matrix again, because it cannot properly handle situations that contains negative scale (mirror) / shear (SoftFever/OrcaSlicer#5578, SoftFever/OrcaSlicer#4719)
* Fix regression, always create SmallAreaInfillFlowCompensator model
small_area_infill_flow_compensation is per-region parameter, it's not necessary to iterate though all regions to check whether to create a model.
* Make SmallAreaInfillFlowCompensator robus.
1. handle spaces/tabs/new lines etc
2. don't throw expection, fall back to no-op instead if parsing failed
* Fixing an issue that changing small_area_infill_flow_compensation per modifier didn't take effect
* Fix check_url_association return value
* Update Web Link Association Preferences
Uses a checkbox in place of button to show if the current instance is registered at a quick look
New function is added to build the link association item
Current association line shows "None" for no app associated, "Current Instance" if the current instance is associated, and the formatted path to the registered app (Removes quotes and other extra chars)
* Update to use localization
* Fix Linux Build
---------
Co-authored-by: SoftFever <softfeverever@gmail.com>
* Allow using BBL's device tab when 3rd party print host is used
* Add option to open SimplyPrint panel in device tab after uploading
* Fix default print host for prusa connect
* Do not set api key in device view when SimplyPrint is used
* Sending 3mf file to SimplyPrint when using BBL printers
* Fix file extension when uploading 3mf
* Prepare for large file uploading
* Implement chunk upload
* Fix file uploading exceeding content size
* Fix wrong field type
* Add `temp=true` to all chunk upload calls
* Add macro to enable test api
* Merge branch 'main' into dev/simplyprint-improve
* Fix another missing `temp=true`
* Add delete token
* Try fixing build error on *nix systems
* Merge branch 'main' into dev/simplyprint-improve
* Merge branch 'main' into dev/simplyprint-improve
* Merge remote-tracking branch 'remote/main' into dev/simplyprint-improve
# Conflicts:
# src/slic3r/GUI/BackgroundSlicingProcess.cpp
* Move the `bbl_use_print_host_webui` option to print host dialog. Also make it a derived option of `print_host_webui` instead.
* Merge branch 'main' into dev/simplyprint-improve
# Conflicts:
# src/slic3r/GUI/MainFrame.cpp
# src/slic3r/GUI/Plater.cpp
* Merge branch 'main' into dev/simplyprint-improve
# Conflicts:
# src/slic3r/GUI/Plater.cpp
* Use a more generic option instead of SimplyPrint specific
* Merge branch 'main' into dev/simplyprint-improve
* Merge branch 'main' into dev/simplyprint-improve
* Update OrcaSlicer_es.po
* some changes
* Some fixes
* More fixes
* More fixes and improves
* More fixes
* Update OrcaSlicer_es.po
* Update OrcaSlicer_es.po
Cambiado punto por coma
* Update Spanish Language
* Updated strings
* Update OrcaSlicer_es.po
* Update OrcaSlicer_es.po
* Fixed Spanish Strings in English
Fixed a lot of string whose are translations were english to english.
* Some spanish strings improved
* Update Spanish Strings in RC
* Add translation for "Don't slow down outer walls" in Korean
* Update existing/missing translations in Korean
* Make "Don't slow down outer walls" translation more natural
* Catalan language updated to 2.1.0 beta
Catalan language updated to 2.1.0 beta
* added catalan translation at text.js file
Added new language "ca_ES" but loading "en" by default. Catalan language should be shown at preferences as "Català" instead of "Catalan". Please, solve these issues
---------
Co-authored-by: SoftFever <softfeverever@gmail.com>
* POC - Do not slow down external perimeters to meet minimum layer time
* POC - Do not slow down external perimeters to meet minimum layer time - rework
* Revert "POC - Do not slow down external perimeters to meet minimum layer time"
This reverts commit d84ff93f90.
* Dont slow down external perimeters to meet layer time target v2
* Reverted previous implementation
* UI fixes for dont slow down for layer cooling
* Update dont slow down outer walls naming convention
---------
Co-authored-by: SoftFever <softfeverever@gmail.com>
* Change G-Code
* Change config to closely match prusa profile
The profile can be found at https://forum.prusa3d.com/forum/prusaslicer/looking-for-a-dremel-3d45-profile-for-prusa-slicer-help-me-help-my-students/
* Use original build plate model
* Change printable area
* Update machine settings
* Change bed model naming
* Prevent future conflicts
* Update values
* Fix error
* Disable firmware retraction
* Enable reduce infill retraction
* Fully disable relative e distances
* Fix filename format
* Revert "Fix filename format"
This reverts commit b95e76a57a.
* Forgot this one
* Clean up
* Update OrcaSlicer_es.po
* some changes
* Some fixes
* More fixes
* More fixes and improves
* More fixes
* Update OrcaSlicer_es.po
* Update OrcaSlicer_es.po
Cambiado punto por coma
* Update Spanish Language
* Updated strings
* Update OrcaSlicer_es.po
* Update OrcaSlicer_es.po
* Fixed Spanish Strings in English
Fixed a lot of string whose are translations were english to english.
* added Prusa Mini with Input Shaper to profiles
* refactoring to more reusable settings
* added more processes, changed settings
* Update 0.15mm Speed @MINIIS.json
* Update 0.10mm Speed @MINIIS.json
* changed to cubic because of speed
* further changes after reviewing prusa slicer settings
* simplified machine settings
* retraction speeds according to prusa slicer
* changed max flow according to prusa slicer
* after clearification at the prusaslicer repository M900 got removed
* precise wall per default
* enable reverse overhang on odd by default
* added settings from prusa slicer
* changed cooling setings
* changed default to inner-outer-inner wall
inner-outer-inner gives pretty good overhangs with better surface
* new profiles for bigger nozzles, changed some cooling settings according to prusaslicer
* profiles for different nozzles sizes, better speed settings
* initial layer height was wrong
* wrong initial layer height
* set the correct accelerations
* changed firmware version number
* using pressure advance UI setting instead of custom filament g-code
* Update Prusa Generic PC.json
* Update Prusa Generic PC.json
* changed max flow for PC
* added PVA filament profiles
* bug fix in filament loading
* changed line width according to prusa slicer
* changed heatbed temperature for Minis capabilities
* set default support to snug
* changed default filament setting to the correct value
* changed line with to the correct values according to prusaslicer profiles
* Update Prusa MINIIS 0.4 nozzle.json
updated firmware version
* updated firmware version
* changed first layer height according to optimal value of the respective nozzle size
* changed wall loops to 2 for bigger nozzles
* Update fdm_filament_abs.json
Modification based on chamber temperature
* Update fdm_filament_asa.json
Modification based on chamber temperature
* Update QIDI ABS-GF25 @Qidi Q1 Pro 0.4 nozzle.json
Modification based on chamber temperature
* Update QIDI ABS-GF25 @Qidi Q1 Pro 0.6 nozzle.json
Modification based on chamber temperature
* Update QIDI ABS-GF25 @Qidi Q1 Pro 0.8 nozzle.json
Modification based on chamber temperature
* Update QIDI ASA @Qidi Q1 Pro 0.2 nozzle.json
Modification based on chamber temperature
* Update Qidi Generic ABS.json
Modification based on chamber temperature
* Update Qidi Generic ASA.json
Modification based on chamber temperature
* Update QIDI ABS-GF25 @Qidi Q1 Pro 0.4 nozzle.json
Sorry, there is still a parameter that needs to be modified for this type of consumable
* Update QIDI ABS-GF25 @Qidi Q1 Pro 0.6 nozzle.json
Sorry, there is still a parameter that needs to be modified for this type of consumable
* Update QIDI ABS-GF25 @Qidi Q1 Pro 0.8 nozzle.json
Sorry, there is still a parameter that needs to be modified for this type of consumable
* Update Qidi Q1 Pro 0.4 nozzle.json
Parameter modification
* Update fdm_qidi_x3_common.json
Parameter modification
* Update Qidi Q1 Pro 0.4 nozzle.json
Gcode Change
* Update fdm_qidi_x3_common.json
Gcode Change
* Merge branch 'main' into main
* Prevent Cmd-Shift-M from minimizing on Mac EXCEPT on "Home" sub-screen
The problem is that hitting "Cmd-Shift-M" on mac always minimizes the app, even though it should only minimize on "Cmd-M", and not on "Cmd-Shift-M".
The code that minimizes (using the WXWidgets "Iconize()" call) happens in MainFrame.cpp keyboard event loop. The code that's checking, looks for "Cmd-M" but does not check for any other keyboard modifiers, so I added a check to ignore the event if Shift is pressed along with "Cmd-M".
There's a secondary issue that isn't really relevant to this bug in that the app will still minimize when pressing "Cmd-Shift-M", but ONLY on the "Home" sub-screen. (all other sub-screens work as they should).
I'm not sure why, but when the "Home" sub-screen is selected, the keyboard event loop (MainFrame.cpp, line 609), is called TWICE when "Cmd-Shift-<any key>" is pressed:
* Once where the event's wxKeyModifier (retrieved via `evt.GetModifiers()` is set to `wxMOD_CONTROL` AND `wxMOD_SHIFT`. (this is correct)
* Once where the event's wxKeyModifier is **ONLY** set to `wxMOD_CONTROL` (this is wrong).
Again, this double-event (with the wrong modifiers) only happens when the user is on the "Home" sub-screen. For the context of this bug the 3DConnexion preferences dialog isn't needed on the "Home" sub-screen so this secondary bug doesn't matter. But it does make the UX odd where Cmd-Shift-M will minimize the app when the user is viewing the "Home" sub-screen, but not minimize the app when the user is viewing any other sub-screen.
* Merge branch 'main' into spacemouse_dialog
fixes includes:
1. 0.6 and 0.8 nozzles are not displayed
2. Some filaments are not enabled for 0.6 0.8 nozzle
3. version number
4. change default sparse_infill_pattern to crosshatch
5. change top_surface_pattern to monotonicline
* Potential fix for other layers bed temperature not applied
* Merge branch 'main' into Potential-fix-for-other-layers-bed-temperature-not-applied
* Merge branch 'main' into Potential-fix-for-other-layers-bed-temperature-not-applied
Fixes InfimechTx Start Gcode
- Current start gcode for InfimechTx has the wrong index for Y when creating the purge line
- Updated start gcode to use right index for the Y value
Having spent a few days working on the translation into Ukrainian language for yourself, you would like to share the result! Please let the reader of this translation come!
* Update fdm_filament_abs.json
Modification based on chamber temperature
* Update fdm_filament_asa.json
Modification based on chamber temperature
* Update QIDI ABS-GF25 @Qidi Q1 Pro 0.4 nozzle.json
Modification based on chamber temperature
* Update QIDI ABS-GF25 @Qidi Q1 Pro 0.6 nozzle.json
Modification based on chamber temperature
* Update QIDI ABS-GF25 @Qidi Q1 Pro 0.8 nozzle.json
Modification based on chamber temperature
* Update QIDI ASA @Qidi Q1 Pro 0.2 nozzle.json
Modification based on chamber temperature
* Update Qidi Generic ABS.json
Modification based on chamber temperature
* Update Qidi Generic ASA.json
Modification based on chamber temperature
1. Change default ensure_vertical_shell_thickness value back to ensure_all as suggested by @igiannakas
2. Change default sparse_infill_pattern vaule to ipCrossHatch
* Parameter improvements
• Added "Layers" side text for
Bottom shell layers
Number of slow layers
Top shell layers
• Added "Layer" side text for
Full fan speed at layer
• Added "x" side text for ratios. This one looks nice imo
Internal bridge flow ratio
Bridge flow ratio
Top surface flow ratio
Bottom surface flow ratio
Flow ratio
Scarf joint flow ratio
• Added "mm" side text for
Mesh margin
Minimum wall length
• Added "°C" side text for
Softening temperature
• Converted these to spin boxes. Currently it combines combo box and input box and it has weird usage. Using spin boxes better because other layer related input boxes uses this too
Top interface layers
Bottom interface layers
* Fix for combo boxes without arrows
* Add icon files for Point input boxes
* Add side text for Point controls
* Update width of point controls
* Use TextInput for PointCtrl
* Use TextInput for PointCtrl
* Update style of Point Control
* Better Background color for Disabled elements on dark mode
* Use same color for disabled text on combo boxes
* Use Slightly darker text color for disabled text elements
* Revert changes for Top / Bottom interface layers parameter boxes
* fix build error
* update point control icons
* Remove "x" side text from flow ratio related parameters
* revert color related fixes
---------
Co-authored-by: SoftFever <softfeverever@gmail.com>
* Initial commit for the builder
* fix wx, use hack to install into /app
* add some workarounds for /usr/local
* fix up rest of paths
* attempt to fix wxwebview undef
* figure out why wxwidgets isnt getting its patches applied
* do "proper" patching of wxwidgets
* Flip the flag
* actually append the /usr/local
* restrict package finding to flatpak only
* Update the destdir stuff for mpfr, gmp
* Transfer over all the _destdir, again
* update patch command for all other plats
* initial ci check
* what even happened
* clear ci image
* I doubt this will do anything
* do cleanup after running each step
* remove build objects for flatpak ci
* compress debug info
* Fix MacOS build
* Try saving space after building deps
* No debug info for now
* Do debug info, use thin static archives
* use BSD flag, not --thin
* try building with lto
* Use release, no debug info
* remove lto
* Revert the last 5 commits
* It might require write perms
* Revert "It might require write perms"
This reverts commit 44cec58a57.
* Import fixes for merge
* remove some patch stuff
* the worst hack!
* remove uneeded patches
* Initial commit for the builder
* note to self, go back to regular wx
* attempt to fix wxwebview undef
* do "proper" patching of wxwidgets
* update patch command for all other plats
* what even happened
* -ldep_name-NOTFOUND is still here
* concat patches
* Build wx with flatpak
* more wx shenatigans
* fix a missing import
* build wx with proper flags
* fix imports and libs
* trigger ci
* try fixing mac and windows ci
* remove duplicate definition of freetype
* curl may not have openssl for a dep
* has openssl been found?
* force building
* build images on apple
* cleanup for review
* cleanup cmake files
---------
Co-authored-by: SoftFever <softfeverever@gmail.com>
This uses the BBS project name from the `Project` tab which could be
susceptible to upstream changes removing this feature.
The project_name template only works when you open a 3MF file. If you
create a new project and set the project name `Model.model_info` is
always null whether you save the project or not. If you save the current
project, switch to a new project/different project, then re-load it then
the template works as expected.
The plate number is assumed to always be <100 which matches the
formatting of the plate number in the UI.
Relates-To: https://github.com/SoftFever/OrcaSlicer/issues/3816
Setting slow_down_layers to 2 or more results in wrong number of slowed
down layers.
Do not increment layer_id since bottom layer (#0) handled separately.
* Replace M109 S[material_print_temperature_layer_0] with M109 S[first_layer_temperature]
* Change line width to match nozzle
* Change line_width for Ender-3 S1 Plus
* Update creality_cr10se_buildplate_model.stl
* Change line width to match nozzle size (Ender3v3SE)
* Fix Ender-3 S1 Plus 0.8 bed size
* Enable Z-hop for Ender-3 S1 Plus
* Trying something
* Update creality_ender3s1plus_buildplate_model.stl
* Fix CR-10 SE print size
* Various Flying Bear fixes
* Try fixing error
* Revert "Try fixing error"
This reverts commit e42e016e4a.
* Add minor Ender-3 V3 KE improvements
* Maybe this will fix the error?
* Revert "Maybe this will fix the error?"
This reverts commit 5e7873251b.
* Revert "Various Flying Bear fixes"
This reverts commit babca572dc.
* Fix CR-10 SE G-Code
Recommended by @bkonosky
* Minor changes to Ender-3 V3 KE
* Probe when bed is heated (Ender-3 V3 KE)
* Minor changes to Ender-3 V3 KE
* Fix oozing (Ende-3 V3 KE)
* Change retraction settings
* Use different retraction settings
* Revert "Use different retraction settings"
This reverts commit 854decf848.
* try this
* Remove "role_based_wipe_speed": "0",
* Add changes from CR-10 SE Config #4966
* Add "role_based_wipe_speed" : "0",
* Up retraction speed
* Missed this
* Resolve merge conflicts
* Resolve merge conflicts
* Change retraction & wipe speed
* Revert line removal
* Change wipe_speed to 200mm/s
* Forgot the 0.16mm
* Add BED_MESH_CALIBRATE PROBE_COUNT=6,6
* Improve for Matte PLA
* Compensate for fan speed
* Fix CANCEL_PRINT bug
* Move SET_VELOCITY_LIMIT ACCEL_TO_DECEL=2500 to start g-code
* Disable infill combination for 0.2 & 0.24
* Fix end G-Code
* Disable arc fitting
This fixes the merge conflict
* temp
* Revert "temp"
This reverts commit 4bbc028ade.
* Enable ability to open `prusaslicer://` links
* Add needed function to miniz
* Import Zip Functionality
Allows zip file to be drag and dropped or imported via the menu option
Based on prusa3d/PrusaSlicer@ce38e57 and current master branch files
* Update dialog style to match Orca
* Ensure link is from printables
* add toggle option in preferences
doesn't actually control anything yet
* Add Downloader classes
As-is from PS master
* Create Orca Styled Variant of Icons
* Add Icons to ImGui
* Use PS's Downloader impl for `prusaslicer://` links
* Implement URL Registering on Windows
* Implement prusaslicer:// link on macOS
* Remove unnecessary class name qualifier in Plater.hpp
* Add downloader desktop integration registration and undo
* Revert Info.plist
* register prusaslicer:// on user request only
* fix build error
* fix single instance problem
* format
* add orcalicer:// handler for Mac
Attempt to add Linux support but seems not working
---------
Co-authored-by: Ocraftyone <Ocraftyone@users.noreply.github.com>
* Enable ability to open `prusaslicer://` links
* Add needed function to miniz
* Import Zip Functionality
Allows zip file to be drag and dropped or imported via the menu option
Based on prusa3d/PrusaSlicer@ce38e57 and current master branch files
* Update dialog style to match Orca
* Ensure link is from printables
* add toggle option in preferences
doesn't actually control anything yet
* Add Downloader classes
As-is from PS master
* Create Orca Styled Variant of Icons
* Add Icons to ImGui
* Use PS's Downloader impl for `prusaslicer://` links
* Implement URL Registering on Windows
* Implement prusaslicer:// link on macOS
* Remove unnecessary class name qualifier in Plater.hpp
* Add downloader desktop integration registration and undo
* Revert Info.plist
---------
Co-authored-by: SoftFever <softfeverever@gmail.com>
* Sidebar > Height range > Add / Delete range icons
* Add icon for Object list > Layers (Height Range)
* Add icon for Object list > Range (Hight Range item)
* Add icon for Object list > Support / Color painting
* File Renamed for Calibration Tab
* Update Sidebar icons
* Add icon for CrossHatch fill pattern
* Delete leftover icons from previous commit
* Update Filament Settings icons
* Update Machine Settings icons
* Update plaholders editor icons
* Fix for Printer Setting > Extruder icons and Add support for icons for its tabs
* Update undefined category icon on compare window with low res compatible one
* Update toolbar > variable layer height icon
* Fix warning icon on Emboss & SVG gizmo
* Delete leftover icons from previous commit
* Gizmos > Keyboard cheat sheet icon resolution fix
* Combo box arrow resolution fix
* Delete leftover icons from previous commit
* Update plate & toolbar icons
* Fix: ComboBox > Dropdown menu checkmark not visible on light theme
* Delete leftover icons from previous commit
* Restore icons for plate rename
* Swap directions of notification expand / collapse icons
* Mixed
• Increases contrast of icons on light theme
• Removes opacity from edit, delete, search... icons
• Fixes different color for advanced toggle on dark mode
• Fixes checkboxes not aligned with other boxes
• Style fixes for checkboxes
* Fix some colors not changing
* Slightly changed color paint icon
Spray icon is now taller and fits better with brush icon on seam / support paint
* Minor changes on seam and support related icons
* Fix blurry icons that vertically centered on gizmos
* Update warning icon on dialogs
* Fix plate icons rendering issue
* Update icons for Gap fill and Fill on color paint and add icon for Skirt
---------
Co-authored-by: SoftFever <softfeverever@gmail.com>
* preview: home/end to move to start/end step of the layer
Add HOME and END key action to preview tab which moves horizontal slider
position to a first and last position respectively
* preview: cross-layer gcode inspection
Automatically advance gcode preview to the next layer when pressing
right at the last step of the layer. Same for the first step of the
layer: pressing 'left' will switch preview to the previous layer
Added a deactivate() function to Tab so when switching tabs it hides the active contents. Also removed clearing of the pages so it's not destroyed each time.
Co-authored-by: SoftFever <softfeverever@gmail.com>
* fixed logic error in PLA jamming gcode for P1S
* Fix use after free bug in LinesBucketQueue::emplace_back_bucket
I found a use after free bug in LinesBucketQueue::emplace_back_bucket. This was found by enabling address sanitizer.
The LinesBucketQueue class has two related members:
std::vector<LinesBucket> line_buckets;
std::priority_queue<LinesBucket *, std::vector<LinesBucket *>, LinesBucketPtrComp> line_bucket_ptr_queue;
line_bucket_ptr_queue holds pointers into line_buckets. However, since items are inserted into line_buckets one at a time, existing pointers that were stored inside line_bucket_ptr_queue become invalid. Specifically:
void LinesBucketQueue::emplace_back_bucket(ExtrusionLayers &&els, const void *objPtr, Point offset)
{
auto oldSize = line_buckets.capacity();
line_buckets.emplace_back(std::move(els), objPtr, offset); <--- Causes a reallocation, making previous pointers invalid
line_bucket_ptr_queue.push(&line_buckets.back()); <-- priority queue compares against old, now invalid pointers
...
The proposed fix is to calculate the required number of entries in ConflictChecker::find_inter_of_lines_in_diff_objs, and then calling line_buckets.reserve(count). This ensures that sufficient buffer is allocated up front and the pointers are stable as items are added.
* Updated to fix the handling of the capacity change, and removed the code I previously added to reserve upfront since it is not really needed
* Remove accidentally added whitespace
* Removed unused method
* ENH:add mz_zip_reader_extract_to_file_w api
to solove plugin install failed problem by special wide char
jira: none
Change-Id: Ic7d3efe3fdf852387650abf9df65803da9e46a60
(cherry picked from commit b68ad03717a63675fef2f3ef73d4058bf311adea)
* FIX: PrinterFileSystem report real connect error
Change-Id: I99d6ff7f6dcb1f53ccf59854f5f19d0bd39fa9fc
Jira: none
* rename preference name
* FIX:Relax restrictions on importing obj files
jira: none
Change-Id: I61a0156a8424a5f59922956918d37d38e2c3306a
* FIX: [6469] popup dialog too mach when reload object
Jira: 6469
Change-Id: I4097e3a3b018c7a676fea93bf63f8f778bb3148b
* FIX:fixed incorrect display of printer options page on Linux
jira:[STUDIO-6220]
Change-Id: Id1f084658b0b340b7f17ab97ba82c0fd3ae83fae
* FIX: handle exception of dividing by zero in arranging
jira: none
Change-Id: I0d20464dbe81a80293539100f06d72dee456a27b
(cherry picked from commit 94746ae9bf7f467243849570450567b4fdc78e3a)
* ENH:delete no use code
jira: none
Change-Id: I40e7ffa7ea47bb3cd4039eef9f6c28c604eb3abc
* FIX: PrinterFileSystem::FileRemoved
Change-Id: I891aaa8d58ff379dc1ebd8581064865a33388f74
* FIX: resend ttcode to printer on -90 error
Change-Id: I96dc45102a2759a9f1a0002f42c3a91b2c6b2d75
Jira: STUDIO-5947
(cherry picked from commit 97d687b7c88f8cd51b8eddd39120349d8eac42b1)
* FIX: fix some issue in multi machine
JIRA: STUDIO-6934 STUDIO-6888
1. Fix the issue of incomplete display caused by excessively long file names
2. Fix the issue of icon display being too large
3. Fix the issue of garbled Chinese characters in the task list
Change-Id: I36bc10bf2067f44aaa7e3651b58e526ea323c8ad
* FIX: Incorrect multiplier, when the multiplier is set to below 1
github: #3987#3805
1. In some languages that use commas as decimal points, setting multiplier below 1 will resolve to 0
2. Unable to save multiplier correctly
Change-Id: I62bc55e270929ebb5e910eb79c6f97106e842b93
* Arrange
* FIX: wrong wipe tower when open 3mf file
1.wipe tower pos in 3mf was overwritten by default pos when opening 3mf
with a different printer profile.This patch fix it
jira: STUDIO-5890
Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: I12e5d4b80a0ad86194db0682c1763ba4a9492521
* ENH: update A1 machine gcode
1.Adjust the y position of the A1 extrusion compensation line
jira:NEW
Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: Iea690a0184ae10a47f53e1532272c31fc0a04cfa
* FIX: minor spelling mistake in gcode
github:#3477
Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: Id3201bf8b8125ce060e2cac102ab2525877e27c1
* FIX: slice crash with height_range
github: 3917
Change-Id: Icdf83013213b47935b7a795ed75cc3d49057665d
* FIX: ERROR_RES_BUSY text
Change-Id: Ifde1a7b0c6ab915eb226c2072c46edd40f60cf9a
Jira: STUDIO-6436
* ENH:Unable to send printing without selecting a device
jira:[STUDIO-6850]
Change-Id: Ic537579727fd1618af364db93fce8fbbe4cd635a
* FIX:add exit_gizmo before slice model
jira: STUDIO-5531
Change-Id: Icddc9d73b3d91bb68e9768d13e48cbae0680e58e
* FIX: PrinterFileSystem report real connect error
Change-Id: Id6750cfa2a98fe8325ba677dabb606a0a701b495
* FIX: add can slice judgement in slice all plates processing
jira: STUDIO-6325
Change-Id: Ic7fb8cef000c03210bb77289a570ee6b60b6083e
* FIX:Fixed error in displaying the name of Bambu filaments
Change-Id: Ib42194c07b6eefe793eec81a588debc9d622d951
* FIX: text hidden in calibration tab
jira: STUDIO-6264
Change-Id: I24fbc590638a3213d948a973422e010486113923
* FIX: logic error in PLA fan control
github PR: #3948
Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: I28e4a673e590e83d151e92cc82caab45012aeabe
* FIX:upgrade cluster algorithm to remove duplicate labels
jira: none
Change-Id: I4d68d8cd8e080932c7c308bc8f69e27546ffe309
* FIX: can not parse json float in ES on macOS
jira: STUDIO-5889
Change-Id: I622f4b474c378d77b0e43d67a320f023be2d5811
* ENH:Clear the value of the previous nozzle type
jira:[for nozzle check]
Change-Id: I9a932b833fb07de6cb0a91abe6372b0e91f273f1
* ENH: update A1 gcode
1.Modify the width of extrusion compensation line
jira:NEW
Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: I90543758c866d74f2154e3135d7569109def84b8
* FIX: the height range is not valid in assemble object
github: 3876
Change-Id: Id38672bbf0c01bc9b9f0a3e2bf1052d945b45131
* FIX: calibration page text hidden in linux
jira: STUDIO-6264
Change-Id: If210abf64057eb2e9c2c5b11d41fa33f18684c72
* ENH:clear nozzle information
jira:[STUDIO-7050]
Change-Id: I15ca4973d09132ddb5cb5a56bedd795ba6976b27
* update plugin version
---------
Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Co-authored-by: afriede <me@afriede.dev>
Co-authored-by: Momin Al-Ghosien <momin@sanestudios.com>
Co-authored-by: zhou.xu <zhou.xu@bambulab.com>
Co-authored-by: chunmao.guo <chunmao.guo@bambulab.com>
Co-authored-by: maosheng.wei <maosheng.wei@bambulab.com>
Co-authored-by: tao wang <tao.wang@bambulab.com>
Co-authored-by: Arthur <arthur.tang@bambulab.com>
Co-authored-by: Kunlong Ma <kunlong.ma@bambulab.com>
Co-authored-by: xun.zhang <xun.zhang@bambulab.com>
Co-authored-by: zhimin.zeng <zhimin.zeng@bambulab.com>
Co-authored-by: liz.li <liz.li@bambulab.com>
* Add base files & 3D20
* Add Dremel 3D20, 3D40, and 3D45
* Used the wrong name
* Let's see if this fixes the crashes
* test
* Limit variables and trying something
* Forgot to remove these,,,
* Tweaks
* Re-add Dremel files and fix several format errors
* Add Dremel 3D40 & 3D45 and process
* Temp bed model/texture
* Forgot to add the actual files
* Revert "Forgot to add the actual files"
This reverts commit 9190ca3d0e.
* Revert "Temp bed model/texture"
This reverts commit 6e873f8e72.
* Update fdm_process_dremel_common.json
* Add bed models
* Improve upon build plates
* Attempt at fixing error
* Didn't work
* Attempt at a fix
* Revert "Attempt at a fix"
This reverts commit 1e06ea355c.
* Try changing order of process_list
* Remove gcode_flavor from process
* Add fdm_filament_pla to Dremel.json
* Add Dremel Generic PLA
* forgot this...
* Change to dremel
* Fix buildplate model naming
* Try this
* Revert "Try this"
This reverts commit 851f355c2e.
* Fix issues that it won't load on Linux/Mac OS
---------
Co-authored-by: SoftFever <softfeverever@gmail.com>
* Add spacing between icons of node on objects list if node has multiple icons
* Fix usage of operators and move comments to separate line
* Simplified condition and comments
* simplify conditions
* Make sure all icons & toolbars have sizes & locations in whole number pixels, so icons won't be blurry
* Make every size even so it scales well on screen
* gui: improve RichMessageDialog
Current implementation of RichMessageDialog creates and pushes
extra checkbox widget into button button sizer which already filled in
with wxEXPAND items. That pushes position of newly added checkbox to the
left-most position which makes it invisibe for some users.
Optimize implementation of RichMessageDialog using m_checkbox_dsa of
MessageDialog instead of creating a new one. As a result, position of
the checkbox is right below the main text section.
* e3v3se: remove jerk settings from processes
Remove jerk settings from Ender3 V3 SE processes to prevent emission of M205 into gcode.
This is due to E3 V3 SE does not use jerk, but has junction deviation
enabled instead. Those two modes are mutually exclusive according to
marlin configuration page:
https://marlinfw.org/docs/configuration/configuration.html#default-acceleration-https://marlinfw.org/docs/configuration/configuration.html#junction-deviation-
Based on M503 output, E3V3SE hase junction deviation enabled:
echo:; Advanced: B<min_segment_time_us> S<min_feedrate> T<min_travel_feedrate> J<junc_dev>
echo: M205 B20000.00 S0.00 T0.00 J0.10
"M205" emitted into gcode is useless since setting jerk settings via
"M205 Xn Yn Zn" does not have any effect on the stock V3 SE firmware.
* e3v3se: update machine retraction settings
Set retraction speed to 40 mm/s as recommended by Creality
Source: https://wiki.creality.com/en/ender-series/ender-3-v3-se/quick-start-guide/user-manual
Set retraction acceleration to 500 mm/s2 to prevent extruder clicking on retraction.
* e3v3se: update start gcode
* Set and wait for bed temperature to stabilize prior to homing.
Bed mesh calibration is done with the bed temp set to 60C.
Performing G28 with bed at room temperature will not compensate
for thermal deformation introduced by heated bed if there are any.
* Remove explicit mesh levelling enable (M420).
Creality FW auto enables M420 once homing (G28) is complete:
"M420 S1 Z10.00"
* RatRig machines which use Klipper don't use M601 but "PAUSE" for pause command
RatRig machines which use Klipper don't use M601 but "PAUSE" for pause command
* Add "Add Model" on plate and background context menu
* Fix icon usage if its not windows os
* Update item name with an existed translation "Add models"
* added Prusa Mini with Input Shaper to profiles
* refactoring to more reusable settings
* added more processes, changed settings
* Update 0.15mm Speed @MINIIS.json
* Update 0.10mm Speed @MINIIS.json
* changed to cubic because of speed
* further changes after reviewing prusa slicer settings
* simplified machine settings
* retraction speeds according to prusa slicer
* changed max flow according to prusa slicer
* after clearification at the prusaslicer repository M900 got removed
* precise wall per default
* enable reverse overhang on odd by default
* added settings from prusa slicer
* changed cooling setings
* changed default to inner-outer-inner wall
inner-outer-inner gives pretty good overhangs with better surface
* new profiles for bigger nozzles, changed some cooling settings according to prusaslicer
* profiles for different nozzles sizes, better speed settings
* initial layer height was wrong
* wrong initial layer height
* set the correct accelerations
* changed firmware version number
* using pressure advance UI setting instead of custom filament g-code
* Update Prusa Generic PC.json
* Update Prusa Generic PC.json
* changed max flow for PC
* added PVA filament profiles
* bug fix in filament loading
* changed line width according to prusa slicer
* changed heatbed temperature for Minis capabilities
* Update plate name & number colors
* Update sliced plates selected item border color and "All Plates Stats" text color
* Simplify gizmo update slider thumb and text color
* Update confirm button hover color
* Fix assembly info titlebar not compatible with dark mode
* Update selected tab color on set filaments to use window
* Update gCode viewer text colors
* Update color of selection rectangle
* Update gcode view slider value text color
* Paint gizmos update colors for tool / brush buttons
* Update colors of gizmo radio buttons
* Update combined slider thumb color for gizmos
* Update header color for gizmos
* Update titlebar buttons background color while hover
* Fix side bar header background not uses correct color for dark theme
* Update background colors of focused Combo box and checked item on Dropdown
* Revert changes for gCode Window text colors
* Revert changes for plate name / number text color
* Update background color of Sliced Plates list > Scrollbar
---------
Co-authored-by: SoftFever <softfeverever@gmail.com>
* Fix issue that plate icons are rendered outsied the window
* Fix the mouse hover detection when list is scrolled
* Make sure the plate list do not overlap the 3d navigator
* Changed Most of Icons
* Updated Tab Bar icons
Replaced with wider and a bit bigger ones
• Used a bigger toolhead for printer icon on device tab
* Tab Bar
• Device icon > slightly increased nozzle size
* Bed Plate images
• Bed plate > Lock Enabled (Dark & Light Mode) > Hover > Used brighter background color
• Bed plate > Settings (Changed status) (Dark & Light Mode) > Hover > Used brighter background color
* Modifiers & Notification icons
• Redesigned modifier icons
• Added some of notification icons
* Mixed imrovements
• Added Sidebar collapse button with simpler design
• Sidebar Printing Preset Section > Added "Advanced" Icon with atom like design
• Sidebar Printing Preset Section > Improved "Support Filament" Icon .filaments tip supports an object now
• Notifications > Corrected image sizes
• Notifications > Corrected icon placements
* Mixed improvements
• Updated warning dialog icon
• added plate stats images for multiple plate slicing
• added icon for info dialog
* Mixed improvements
• updated volumetric speed icon
• improved readability of preset compare button
* Mixed improvements
• Updated paint height range icon
• Added paint triangle icon
• Added multi material paint icon for toolbar
* Mixed Improvements
• updated titlebar file icon as square to increase similarity with other icons
• redesigned toolbaar icons for painting (support, seam, color) they are sharing same design language now
• updated sidebar icons wall, top/bottom shell, seam, support
• added icons for compare window. (equal, not equal, spool, undefined, node_dot,cog,support)
• Added confirm button icon for search boxes for toolbar popups
* Mixed Improvements
• Added new icons for project page
• Added a loading icon to all sliced plates stats icon while slicing process continues
• Updated lock and plate setting icons for plate buttons
• Added new icons for cut modifier (cut_ / cut_connector)
* Mixed
• Updated notification icons (notification_preferences, notification_right, notification_eject_sd, notification_documentation)
• Added missing original resources from my folder
* Mixed improvements
• Reworked network / wifi icon
• Reworked bed adhension icon
• Reworked raft icon
• Reworked layer height and width icons
• Added new icons to replace generic / missing icons on sidebar (param_overhang, param_bridge, param_wall_surface, param_overhang_speed, param_jerk)
• Updated Edit, Save, Delete, Search icons on sidebar
• Used a brighter color for all icons. they are more visible now on dark mode. #949494() color has better balance between dark / light theme
• Sidebar > Improved readability of Support Material icon
• Sidebar > Improved readability of compare icon. again
* Mixed improvements
• Added height_range_modifier.svg for context menu
• Edited Placeholder > Lock icons. just increased heights to match with other icons
• Edited slowdown for overhangs
• Edited Object sinking icon
• Reworked Add copies button
• Updated add button
* Mixed
• Updated placeholder tempeture icon
• Added new image for placeholder time icon - custom-gcode_time.svg . Added new one because i dont want to mess with other time icons
• Restored original file model_time.svg
* Mixed improvements
• Updated Sidebar > Temperature icon
• Reworked image of about page
* Reworked about page
• Updated orca slicer logo with custom made font
* Readded Optimizsed PNG files
Branch has not in sync with original branch. so i added manually
Original commit https://github.com/SoftFever/OrcaSlicer/pull/4294
* Mixed Improvements
• Updated Sidebar > Flush volumes icon
• Updated Toolbar > Emboss & Measure icon (Shifted them 1 px to fixing minor placement mistake)
* About Page
• Minor change on L letter on logo
• Slightly changed proportions on text
* Mixed
• Updated Tab bar > Device icon with added a tiny pixel for presenting fan.
• Updated Sidebar > Device icon with bigger toolhead. added a tiny pixel for presenting fan. it matches with tab icon now
• Updated Sidebar > Overhangs icon
• Added new icons for missing placeholder items. Quality, Strenght, Other, Setting Overrides, Multi Material and many others. added them to tasklist
* Mixed
• Added new icons for missing filament setting items. Toolchange added to tasklist
• Added new icons for missing printer setting items. Toolchange, Printable Space, Extruder Clearence, Adaptive Bed Mesh, Accesory, Multi Material, Size, Position, Lift Z Enforcement
* Mixed
• Reworked support enforcer and blocker icons. they are much better now
• Slightly changed modifier icons
• Updated Object sinking icon. added a wave intead of straight line. Will try too add waves more places to improve aqua effect
• Used same revert icon for lock_normal.svg to increase UI constinency. added an cube icon as badge to indicate its spesific to object. Icon used in object list
• Toolbar > Popup windows > Keyboard cheet sheet icon > Updated icon. changed resolution. tried many resolution but i couldnt fix blur on icon. So added it to task list for coding side fixes
• Updated Sidebar > Compare icon
• Updated Sidebar > Nozzle size icon
* Removed misnamed files
• Removed some unnecessary files caused by misnamed on illustrator
* Mixed
• Updated design of Context Menu > Reinforce support and Block support again
• Updated design of Toolbar > Emboss > now it shares same design language with add object. Also using 3D shape for letter presents better emboss function
• Updated design of Toolbar > Color paint > Added some waves and bubbles :)
• Updated design of Toolbar > Paint > Brush types
• Updated design of Toolbar > Auto Orient / Lay on Surface > Moved asteriks to middle of object and added an target icon for lay on surface. I choose target because lay on surface is selective function
• Updated design of Toolbar > Auto Arrange > All shapes highlighted instead of one while hovering. this makes sense because it arranges all objects. Added different shapes to increase indication of works with multiple different objects / shapes.
• Updated design of Toolbar > Add Plate > Added few plates to back to make it looks like a bit smaller. its now fit better with other icons
• Updated design of Sidebar > Overhang Speed > Changes snail to turtle. its much more related with ocean
• Updated design of Sidebar > Prime Tower > Used a light house to present tower
• Updated design of Modifiers > Height range
• Updated notification and dialog type icons. Added a wave and orca to improve branding
• Updated Plate icons with new auto arrange and auto orient icons
• Added 2 new images for object list to support lower resolutions. objlist_support_painting and objlist_seam_painting. added this change in tasklist
• Many minor fixes
* Updated object list icons
• Updated object list icons for painting functions
* Updated object list icons
• Improved readability object list icons for painting functions
* Mixed
• Updated design of Toolbar > Emboss > Removed 3D design because its makes it hard to identify. Used a simplified 3D effect to present emboss function
• Updated design of Toolbar > Add Plate > Removed + badge because it makes design a bit complicated and second/third plate on back already presents button related with multiple plates
• Updated design of Toolbar > Auto Orient & Lay on Face > Changed bed shape to a single line. Icon fits better with other designs now
• Updated design of Toolbar > Variable Layer Height > Used lines to present layer instead of rectangles. Icon fits better with other designs now. Also this change will improve design consistency with height range menu item icon
• Updated design of Toolbar > Split to objects / parts > Increased gap between object to increase visibility of dashed line
• Reduced opacity of edit, delete preset, search icon fot reducing contrast on sidebar
• Updated icon of return icon (assemble_return.svg)
• Updated all lock / Unlock icons
• Updated Plate name edit icons. Used same line width with other plate icons and used same icon on other edit buttons
• Found new icons to redesign in svg import popup. Updated files & designs
> Refresh (refresh.svg)
> Mirror on X (reflection_x.svg)
> Mirror on Y (reflection_y)
> Dropdown Menu > Bake / Forget the File Path (burn.svg)
> Dropdown Menu > Change File (open.svg)
• Found new icons to redesign in create printer. Updated files & designs
> step_1.svg
> step_2.svg
> step_2_ready.svg
> step_is_ok.svg
> create_success.svg
* Mixed
• Updated Plate icons > Lock / Unlock > icon now shows opposite state while hover
• Updated Plate icons > Auto orient > Changed bed shape to 1px line. now matches with toolbar icon
• Fixed some opacity related issues on edit, delete, search buttons
* Mixed
• Found new icons to redesign on slided object > layer slider
> im_slider_delete.svg > Used red color on this to reduce accidental usage
> im_gcode_custom.svg > Changed backround to turquoise. Made icon pixel perfect and now easier to identify
> im_gcode_pause.svg > Changed backround to turquoise. Made icon pixel perfect and now easier to identify
• Reworked all plate normal and hover colors. Their background color not changes on hover. Only border and icon changes on hover now. Now it feel more naturally
• Updated design of all preferences icons
• Found new icon to redesign on SVG popup window. it appears when shape has not filled path
> exclamation.svg > Made icon pixel perfect and now easier to identify. used filled shape like other dialog icons. Used orange color as warning color
• Changed colors of object sinking to orange because its a warning
* Mixed
Logo Usages
• Updated icons on dialogs. i will update all icons if design approved
> OrcaSlicer.svg (Used on Most dialogs)
> OrcaSlicer_192px_grayscale.png (Used on file not found error. connection error etc..)
Bamboo Lab Related icons
• Sidebar > Filament Titlebar > AMS Filament sync (ams_fila_sync.svg) > Made pixel perfect with minor changes
• Bamboo Lap Printer > Print Plate >
> print-time.svg > Made pixel perfect
> print-weight.svg > Made pixel perfect and used a scale which fish are weighed. Orcas need fish not ingots :)
> ams_editable.svg > Made pixel perfect and used same pen icon on other edit icons
> ams_editable_light.svg > Made pixel perfect and used same pen icon on other edit icons
> ams_arrow > Made pixel perfect
> enable_ams.svg > Made pixel perfect and used same question mark on other related icons
• Added Calibration Tab icon for Bamboo Lab printer. Thanks @KrisMorr for coding fixes
* Mixed
• Updated design of printer_in_lan.svg
• Placeholders > Quality > Improved readability
• Plate Icons > Used slightly lighter color for dark theme. It improves readability of preferences and lock button while they are at active status
• Titlebar > Undo / Redo > Used slightly shorter arrow. This will make difference between revert icon and presents better function 1 step forward / backward. Revert icon is much more "Put back to original place"
* Mixed
• Preview > Layer Slider > Custom Code Icon > Used a / instead of G letter. Its easier to read now
• Preview > Layer Mode Icon > Changed background color and changed single layer icon shape
* Mixed
• Re exported all images with better precision
• Updated design of SVG modifiers
• Notifications > Corrected preferences and next button resolution
• Notifications > Expand / Collapse buttons > Fixed color usages between dark/light theme
• Sidebar > Parameters > Minor change on speed / initial layer speed
• Sidebar > Parameters > Minor change on bridging
• Plate Setting > Filament order > Arrow > Made pixel perfect
• Object List > Minor changes on Paint icons
• Menubar > Increased size of all icons
• Tab bar > Added icon for Debug tab
• Added many icons related with bamboo lab monitor
> Mostly corrected their resolution made them pixel perfect. This problem caused by they created an artboard on illustrator at 0,5px then it spreads to most of other artboards. Artboards exported as 17x17 intead of 16x16 while this problem exist in project
> Matched design of some icons with designed ones to improve consistency on UI but keeped designs of Bamboo Lab spesific ones
> Mostly used pictures that shared by people to identify correct resolutions but need a dummy account for further testing
* Mixed
• Removed delete/remove/export/import related icons on Context menu
• Added new icon for printer settings > Extruder > Retraction when switching material
• Added new icon for filament settings > Filament > Print Temperature
• Added new icon for filament settings > Filament > Bed Temperature
• Added new icon for filament settings > Cooling > Cooling specific layer
• Added new icon for filament settings > Cooling > Part Cooling Fan
• Added new icon for filament settings > Cooling > Auxiliary part cooling fan
• Added new icon for filament settings > Cooling > Exhaust Fan
• Added new icon for process settings > Quality > Wall Generator
• Added new icon for question dialogs and used orange color for that because it mostly used critical dialogs (preset delete etc). Just found undefined icon on placeholder list uses this and added new icon for that
• Changed info dialog icon fill color to turquase. because its mostly positive information
• Updated design of Sidebar > Parameters > Overhangs and Overhang Speed
• Fixed warning icon usage
• Added new image for placeholders > undefined. this was sharing same icon with dialogs previously
* Update ObjectDataViewModel.cpp
Added new color and support painting icons for object list
* Added new icons for Sidebar, Filament and Printer Settings
• Added new icon for Sidebar > Process > Support > Tree Supports
• Updated /src/slic3r/GUI/Tab.cpp > Process > Added new / missing icons
• Updated /src/slic3r/GUI/Tab.cpp > Filament Settings > Added new / missing icons
• Updated /src/slic3r/GUI/Tab.cpp > Printer Settings > Added new / missing icons
Compiled from source and checked all changes
* Updated Placeholder icons
• Added new icons to placeholders window
• Updated slic3r\GUI\EditGCodeDialog.cpp
• Updated slic3r\GUI\Tab.cpp
• Changed copy code icon to add.svg instead of add_copy.svg
• Added new icon for Placeholders > Setting overrides
* Update AboutDialog.cpp
• Removed "Orca slicer" string to cleanup
• Removed "Based on". already writes on bottom
• Changed background color of version text to transparent
• Changed github link color to turquoise
• Aligned link text with other texts
* Compare window - Update GUI\UnsavedChangesDialog.cpp
• Updated icon for undefined category. question.svg is used for dialogs and not compatible with low res. used new icon undefined.svg
• Also updated process > tab icons started to show up in compare window. blank images was used for tabs in original files
* Added Height Range icons on Object List / Context Menu
• Added new icon for Object list > Layers > Layer
• Object list > Layers > Added Hight Range icon
• Context menu > Height Range icon
• Object list > Layers > Replaced icons of add / delete Height range buttons
* Update imconfig.h
• Fixes toolbar > measure > copy to clipboard icon uses "notification_arrow_right.svg" on dark theme instead of "copy_menu_dark.svg"
* Context Menu Icons
• Updated \GUI\GUI_Factories.cpp
• Updated icons of split sub menu
• Added new icons for modifier objects submenus. load, cube, cylinder, sphere, disc, torus, text, svg
• Added new icons for mirror sub menu items
* Fixed wrong warning icon usage on Emboss / SVG widgets
• Emboss and SVG popups uses exclamation.svg instead of obj_warning.svg . exclamation.svg used for dialogs and not supports low resolution
• Updated \GUI\Gizmos\GLGizmoEmboss.cpp
• Updated \GUI\Gizmos\GLGizmoSVG.cpp
* Toolbar > Emboss and Cut
Emboss \GUI\Gizmos\GLGizmoEmboss.cpp
• Added a small gap between vertical related and horizontal related text aligment buttons
• Used style dropdown and its title in same line to reduce vertical usage. This will also improves visual consistency with other dropdowns
• Used operation radio buttons and its title in same line
\GUI\IconManager.cpp
• Fixed blurry icons > Emboss > buttons near Style dropdown menu , bold / italic buttons and Text alignment buttons
\GUI\ImGuiWrapper.cpp
• Changed color of active radio button to turquoise. This will also improves visual consistency
* Update GLGizmoEmboss.cpp
* Fixed blurry tooltip icon on toolbar popup windows
• Updated icon design on hover state. It looks like its pressed now
• updated show_tooltip_information function in this. Set icon size as 30x22 intead of relative to font size and removed padding on icons
\GUI\Gizmos\GLGizmoCut.cpp
\GUI\Gizmos\GLGizmoFdmSupports.cpp
\GUI\Gizmos\GLGizmoMeasure.cpp
\GUI\Gizmos\GLGizmoMmuSegmentation.cpp
\GUI\Gizmos\GLGizmoSeam.cpp
\GUI\GLCanvas3D.cpp
* Mixed
Painting Tool / Brush icons
• Made Dark mode icons a bit more darker
\GUI\Gizmos\GLGizmoSeam.cpp
\GUI\Gizmos\GLGizmoMmuSegmentation.cpp
\GUI\Gizmos\GLGizmoFdmSupports.cpp
• Updated button shapes of brush type icons (used square shape with more radius)
• Updated margin between brush type buttons
• Updated paddings of brush type buttons
• Updated border color of brush type icons
• Used brush / tool buttons bigger to make them easier to select
• Fixed icons not uses colors on SVG files while using Light theme
\GUI\Gizmos\GLGizmoMmuSegmentation.cpp
• Fixed green border color on selected filament. now uses orca color
• Used radio buttons for free / vertical / horizontal. Works better for options, reduces vertical height, Easier to understand
\imgui\imgui_widgets.cpp > ImGui::ColorButton
• Updated function for making sure drawing pixel perfect rectangles. It draws filament colors / borders on color painting gizmo
\GUI\Gizmos\GLGizmoSeam.cpp
• Used radio buttons for free / vertical / horizontal. Works better for options, reduces vertical height, Easier to understand
\GUI\Gizmos\GLGizmoPainterBase.hpp
• Added m_free_only variable for new radio buttons
\GUI\ImGuiWrapper.cpp
• Added darker and lighter versions of orca color as variable
• Updated push_confirm_button_style for replacing BBS colors
• Slightly reduced horizontal window padding for gizmos
\GUI\IMSlider.cpp
• Slice > Layer and move slider text is now using turquoise color
• Fixed wrong resolution on some states of layer mode icon
\GUI\Gizmos\GLGizmoSimplify.cpp
• Object > Simplify model > Detail level slider is now using orca color
• Object > Simplify model > Hover state of apply button is now using orca color
\GUI\GLCanvas3D.cpp
• Sliced Plates Toolbar > All Plate Stats > Changed color of "All plate stats" text to orca
• Sliced Plates Toolbar > Changed button border color to Orca
• Sliced Plates Toolbar > Changed position of plate number text to closer to edges so it will not overlaps with thumbnails
* Mixed - Titlebar & Tabs & Search box
\GUI\BBLTopbar.cpp > Titlebar
• Updated icon background colors while hover / active states
• Used same color on border and fill color for more modern look
\GUI\Widgets\TabCtrl.cpp > Tabs on parameters / filament & machine window
• Updated line color under selected tab to orca color
\GUI\Tab.cpp
• Fixed > Sidebar > Global > Delete button visible while using search box
• Fixed > Sidebar > Global > Revert button visible while using search box
• Tabs > Disabled using bold font for active tab. Advantages; tabs always stays at same position, makes switching between tabs a bit faster
* \GUI\GUI_App.cpp > Splash Logo
* Reworked Emboss Gizmo
Reworked Icons
• Simplified them as much as possible to give modernish look
Reworked layout
• Moved style to top. Fitted to window width. Used title and imput box on same line to reduce window height
• Used height and depth at same line. Used icons for Height and Depth text to save some place
• Moved alignment to top and used at same line with bold / italic icons
• Used operation and its radio buttons on same line to recude window height
• Made many changes how it scales on different languages
Improvements
• Surface related values only visible if embos used as modifier
• Reworked stepper buttons. Looks more modern now
• Reworked advanced expansion. Simplified and removed text
• Hidden surface related settings if there is no relations with objects to save some vertical space
UI consistency improvements
• Used text > revert > input order for components line on sidebar
• Revert icon and title used orange color if values edited like on sidebar
• Used orca color on sliders, radio buttons
• Removed border and other decorations on edit buttons of sliders
Fixes
• Moved warning icon a bit up to prevent overlapping with text preview box border
Effects on other all widgets
• Updated selected text background to orca color
* Mixed
Overall
• All gizmos uses same paddings now. it will improve consistency between them. All uses padding value from push_toolbar_style
Combobox
• Removed paddings from combo box menu
• Fixed frame background highlighting on hover
• Used border for highlighting menu items instead of background color
Combo Box with Filter
• Now its shares very similar code with normal combo box. Used ImGui:ButtonBehavior in it to get hover effects properly
• Added support for border highlighting on hover
• Used border for highlighting menu items instead of background color
Combo boxes
• Made easier to manage styles for combo boxes
Input box with step controls
• Added support for border highlighting on hover or active
Sliders
• Added support for border highlighting on hover or active
• Used fully rounded grab and frame. now it looks much more like slider
Checkboxes
• Made them a bit smaller. Old one is looks like giant and not matches with sidebar style
• Updated hover effect to match with other components
• Updated icons of checkboxes to match style
Radio Buttons
• Made them a bit smaller. Old one is looks like giant and not matches with sidebar style
Gizmo > Painting tools
• Updated all sliders with new one to improve UI consistency
• Calculated slider start offset from maximum width of title of sliders to solve window width change between tool changes
Gizmo > Simplify
• Updated code for new radio buttons
Gizmo > Measure
• Used selection values with multiline. Window size highly reduced with this layout
• Moved restart selection to bottom. like on other gizmos mostly at bottom. this will also reduce vertical spacing
• Aligned measure type texts vertically to "copy to clipboard" button
• Updated style of copy to clipboard button
• Updated dimension value edit box on viewport. Values are much more readable now
Color Fixes
• Viewport > Plate Name / Number text colors > Updated them to orca color
Icons
• Updated keyboard cheat sheet icon on gizmos
* Titlebar Remove icon from File and Dropdown menu
* Sidebar and UI component improvements
New Feature
• Sidebar > Delete filament button only visible only if there is multi filaments
Sidebar
• Corrected most of aligment and spacing related problems. all icons has equal space between them and all elements has equal margin to frame
• Updated style of Global/objects toggle to match style
• Updated style of Advanced toggle. Updated SwitchButton.cpp and its not using vector images now
• All combo boxes uses same height now
• Slightly reduced vertical spaces on printer and filament sections. more vertical space for process section available now
• Process > Global > Search Bar > added search icon
UI component style updates
• Updated style of most of UI components. All uses 4px corner rounding instead fully rounded
• Updated some of old wxButtons with new buttons. still need too much work
Added new icons for
• param_default-pattern > Used for Support > Base Pattern
Fixes
• Converted these to step boxes
---- Sidebar > Support > Advanced > Top interface layers > this should not use drop down
---- Sidebar > Support > Advanced > Bottom interface layers > this should not use drop down
Color Fixes
• Dropdown focus / hold background color
• Disabled element background color
* Add missing side text for parameters
* Gizmo Improvements
All Gizmos
• Updated button styles on all gizmos
Arrange gizmo
• Updated slider style
Cut gizmo
• Removed hexagon shapes for upper / lower part. Used colored text instead
• Matched style of mode combo box
Move & Rotate gizmo
• Removed World axis text like on scale gizmo to reduce window size
Variable Layer Height
• Moved adaptive and smooth buttons to bottom
• Changed name of smooth to smooth radius to improve relation with slider
• Updated sliders style
• Fixed gizmo not closing when other toolbar buttons clicked
Assemble view
• Updated slider and button styles
• Used Assembly info window with vertical layout to reduce its size. This will also prevents overlapping with slider bar
Mesh Boolean
• Added new icons
• Updated style of elements
* Fix conflict
* Update splash screen
* Updated About Page
* Mixed
Sidebar
• Updated style of Object list search bar
• Updated Search list item background hover color
Keyboard shortcuts window
• Changed active tab color to orca color
Color fixes
• Disabled text color for UI components
• "Slice" button disabled background and foreground color
UI Component Styles
• Matched style of more buttons
--Progress dialog
--Release Notes window
* Update Toolbar icons
* Update style of single choose dialog
* Gizmo Improvements
Cut Gizmo
• Matched elements order with sidebar. Title > Revert button > Controller
• Moved "Cut to Parts" checkbox to same line with "After Cut". This reduces vertical height and seems logical
• Used slider for cut height controller
• Used regular text color for build volume, groove, connector
• Revert buttons only visible if value changed like on other UI sections
• Removed shapes for "Upper Part" and "Lower Part". Used colored text instead
• Matched radio button styles
• Matched slider styles
• Moved "Add Connector" and "Reset Cut" buttons to bottom to reduce vertical height
• Connectors > Used icons for shapes
• Connectors > Used regular button for "Remove connectors"
• Connectors > Used radio buttons for connector style instead combo box
SVG Gizmo
• Matched elements order with sidebar. Title > Revert button > Controller
• Slightly decreased preview size
• Used Combo box for filename related dropdown
• Surface related features will not show if there is no surface relation
• Matched radio button styles
• Matched slider styles
Gizmos Combo Box
• Fixed rendered with wrong width
• Fixed drowpdown menu paddings
* fix build with gcc13
Fix compilation error produced by GCC 13:
/home/dbuzdyk/packages/3d/OrcaSlicer/src/slic3r/GUI/Gizmos/GLGizmoMeshBoolean.cpp:306: error: no match for call to ‘(Slic3r::GUI::GLGizmoMeshBoolean::on_render_input_window(float, float, float)::<lambda(wchar_t, bool, ImVec2, ImVec2, std::string&)>) (const wchar_t&, bool, ImVec2&, ImVec2&, std::string)’
306 | if (tab_button(
| ~~~~~~~~~~~~~~~
307 | m_is_dark_mode ? ImGui::MeshBooleanUnionDark : ImGui::MeshBooleanUnion,
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
308 | m_operation_mode == MeshBooleanOperation::Union,
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
309 | tab_size,
| ~~~~~~~~~
310 | tab_padding,
| ~~~~~~~~~~~~
311 | _u8L("Union")
| ~~~~~~~~~~~~~
312 | )){
|
/home/dbuzdyk/packages/3d/OrcaSlicer/src/slic3r/GUI/Gizmos/GLGizmoMeshBoolean.cpp:214: note: candidate: ‘Slic3r::GUI::GLGizmoMeshBoolean::on_render_input_window(float, float, float)::<lambda(wchar_t, bool, ImVec2, ImVec2, std::string&)>’ (near match)
214 | auto tab_button = [this](const wchar_t icon, bool selected, ImVec2 size, ImVec2 tab_padding, std::string& tooltip) {
|
/home/dbuzdyk/packages/3d/OrcaSlicer/src/slic3r/GUI/Gizmos/GLGizmoMeshBoolean.cpp:214: note: conversion of argument 5 would be ill-formed:
In file included from /home/dbuzdyk/packages/3d/OrcaSlicer/src/slic3r/GUI/Gizmos/GLGizmoBase.hpp:11,
from /home/dbuzdyk/packages/3d/OrcaSlicer/src/slic3r/GUI/Gizmos/GLGizmoMeshBoolean.hpp:4:
/home/dbuzdyk/packages/3d/OrcaSlicer/src/slic3r/GUI/I18N.hpp:7:54: error: cannot bind non-const lvalue reference of type ‘std::string&’ {aka ‘std::__cxx11::basic_string<char>&’} to an rvalue of type ‘std::string’ {aka ‘std::__cxx11::basic_string<char>’}
7 | #define _u8L(s) Slic3r::GUI::I18N::translate_utf8((s))
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~
/home/dbuzdyk/packages/3d/OrcaSlicer/src/slic3r/GUI/Gizmos/GLGizmoMeshBoolean.cpp:311: note: in expansion of macro ‘_u8L’
311 | _u8L("Union")
|
* revert some icon changes
* Add back missing menu icons
---------
Co-authored-by: SoftFever <softfeverever@gmail.com>
Co-authored-by: Dima Buzdyk <dima.buzdyk@gmail.com>
* Update selected tab underline color
* Disable using bold font for Selected tab
* Revert changes
* Calculate tab width from bold font to fix tab position changes
* Adjusted start g-code for Qidi X-Max/X-Plus 1 and 2.
* Aligned more with Qidi slicer default start code.\nWill raise the bed during warming up and park nozzle in default possition.
* added Prusa Mini with Input Shaper to profiles
* refactoring to more reusable settings
* added more processes, changed settings
* Update 0.15mm Speed @MINIIS.json
* Update 0.10mm Speed @MINIIS.json
* changed to cubic because of speed
* further changes after reviewing prusa slicer settings
* simplified machine settings
* retraction speeds according to prusa slicer
* changed max flow according to prusa slicer
* after clearification at the prusaslicer repository M900 got removed
* precise wall per default
* enable reverse overhang on odd by default
* added settings from prusa slicer
* changed cooling setings
* Add files via upload
* Add files via upload
* Add files via upload
* Add files via upload
* Add files via upload
* Update Creality Sermoon V1 0.4 nozzle.json
Changed the default process for the Sermoon V1 Printer.
* Update 0.20mm Standard @Creality Sermoon V1.json
Reduced speeds of .20mm process for Sermoon V1 to no more than 195mm/s as not all printers which may use this are running Klipper. It is set to Marlin for the flavour but is targeted at a Klippered printer.
* Update 0.16mm Optimal @Creality Sermoon V1.json
Remove Arc Fitting and reduce elephant foot.
* Update 0.20mm Standard @Creality Sermoon V1.json
Remove Arc Fitting and reduce elephant foot.
* Update 0.28mm Standard @Creality Sermoon V1.json
Remove Arc Fitting and reduce elephant foot.
* FIX: do not touch the plate with different printing sequence
jira: STUDIO-5424
Change-Id: I8ad00fa991b753de126a5bef0d320c452033e2e7
(cherry picked from commit c4adfe16e285f238f2c5cd8938b2167fdfb6b1b0)
* FIX: global arrange setting is wrong
global arrange setting is wrong if a plate's setting is changed from object list
jira: STUDIO-5438
Change-Id: Iaa7f35837edbacff9b97ca17a8ab34c8e6bb023d
(cherry picked from commit fa2f56575b2e4305e35dd59ff55e0881720de025)
* FIX: temperature symbols not shown correctly
Need to use wxString::FromUTF8 to convert unicode symbols to wxString.
jira: none
Change-Id: Ia8b559d437c956a2cc28916d8963823356402d05
* FIX:Repair calculation process of plate_box
Jira: STUDIO-5520
Change-Id: I4c3f9597542ad2dfec4d7849e75fa28272fa4ea3
* FIX:frequent calls to _update_imgui_select_plate_toolbar
Jira: STUDIO-5488
Change-Id: I12e6f37c2fe94de004aa6da43421970d6df10f0f
* FIX: & is not displayed on the sending print page
Jira: STUDIO-5343
Signed-off-by: wenjie.guo <wenjie.guo@bambulab.com>
Change-Id: I1736bb97433581ff117bfe09afe8ee70c1b08fc4
* FIX: file name is not fully displayed if it is too long
Jira: STUDIO-5230
Signed-off-by: wenjie.guo <wenjie.guo@bambulab.com>
Change-Id: I992fa0c0575afbd2eecb2af02c8a305eda028f7f
(cherry picked from commit d0d7fb0b1394429ee9d28d8ef4060a286ba0112d)
* FIX: The warning box still exits when the temperature has reset.
Jira: STUDIO-5562
Signed-off-by: wenjie.guo <wenjie.guo@bambulab.com>
Change-Id: I7532db69880449eb3fa0a14fc4dfc61e7f6d518e
(cherry picked from commit 589ed5fe045b5e7ec3effe437c9685085960c0fc)
* FIX: White circle is not clear on auto refill page
Jira: STUDIO-3262
Signed-off-by: wenjie.guo <wenjie.guo@bambulab.com>
Change-Id: I05ac6257638063d32a9943c09bb7c14cc9229b3a
* FIX: Groove text ctrl is not wide engough
Jira: STUDIO-5434
Signed-off-by: wenjie.guo <wenjie.guo@bambulab.com>
Change-Id: I93c0995473a72b5c19bc413c38c090906e360455
(cherry picked from commit e4a8b0ef5e62ba0053dc782c30ea79b237a46ac3)
* FIX: values are not saved when clicking on an empty space
Jira: STUDIO-4637
Signed-off-by: wenjie.guo <wenjie.guo@bambulab.com>
Change-Id: I837050029635f673b3ae671ea1ad049aaf4fdd16
* FIX: Temperature warning is not fully displayed
Jira: STUDIO-5038
Signed-off-by: wenjie.guo <wenjie.guo@bambulab.com>
Change-Id: I460cbe2a5d0a092c4257b7bd5192058bf2e4707b
* NEW: display bitmap when calibrating
Jira: STUDIO-4661
Signed-off-by: wenjie.guo <wenjie.guo@bambulab.com>
Change-Id: I60cf4f9769feca74699012418880e93fcfe34432
(cherry picked from commit 1213aea816694405311dc0c1061655a4c2a1d067)
* FIX: remember the flow ratio calibration type
Jira: STUDIO-5181
Signed-off-by: wenjie.guo <wenjie.guo@bambulab.com>
Change-Id: Id6125d1d4ea58972ce55c2c2498259596b25111e
(cherry picked from commit 1af1038fd4824d989e992cb630cf34e00c787af7)
* FIX: File panel crash on scroll
Change-Id: I56833a376fa52c960efea5fbd60003367ba410c2
Jira: STUDIO-5337, STUDIO-5513
* FIX: auto arranging skip unprintable high items
Jira: STUDIO-5646
Change-Id: I72dc3d8c71a075bab8204f4418e869a7a34c0c8e
(cherry picked from commit 0afdf8361493485da2254c426719594fd9a982ed)
* FIX: MediaFilePanel error state
Change-Id: I318ef59fb97478ffee16dff594022b2b9029964a
Jira: STUDIO-5638
* FIX: sync whole preset vendor directory
Change-Id: I191dbe979a87ff35d38cab1149b7975664344838
Jira: STUDIO-5534
* ENH: support turn off liveview auto retry
Change-Id: I24b39f74e0a40a13277d6eae3830c95c5c9de333
Jira: none
(cherry picked from commit f6ceb3fb8e4df3f876c50a1c4ba96b4a1be60190)
* FIX: SwitchButton auto scale font
Change-Id: If4004c0963cc8bb2f41e8e71c304d5239bf252ab
Jira: STUDIO-4969 STUDIO-4921
* FIX: set WEBKIT_DISABLE_COMPOSITING_MODE=1 for linux gtk
Change-Id: I8a500585ca815948bab1210578ba5c45858ed78e
Jira: STUDIO-5199
* FIX: Prefer old selection when sync AMS not compatible
Change-Id: I6b18db51887132a997cf78d70fff9a92e23bc44a
Jira: STUDIO-5416
* ENH: show liveview stat
Change-Id: I70d1f458aa2ed379ad7fe07dee76fbe035316420
Jira: none
* NEW:remember custom color
Jira: STUDIO-5635
Change-Id: I439080f6a8ddb6fde3899cffbabc3b6e66afbd96
* FIX: copy live555 dll
Change-Id: Idf727b8e26107e93aa9934299e87dc71531d1c63
Jira: STUDIO-4480
* FIX: optimize batch update object list on macOS
Change-Id: I92e24cc53c0b3bf0658d15abc64292f0e17c0a82
Jira: STUDIO-5440 STUDIO-5515
* FIX: network plugins tip disappear on dark mode
Change-Id: I422ab63f71158a49920438f01dd9c39774c27744
Jira: STUDIO-4891
* FIX: Display inconsistence in parameter table
JIra: STUDIO-3716
Signed-off-by: wenjie.guo <wenjie.guo@bambulab.com>
Change-Id: I986473bcbb3efff4abd9c5917926d9e888a4f28c
* FIX: Incomplete copy display in Transfer or discard dialog
Jira: 5569 5549
Change-Id: I757b636259d7e1a222b9fc09276c12235360fd57
* FIX: Limit the max length of k when calibrating
Jira: STUDIO-4291
Signed-off-by: wenjie.guo <wenjie.guo@bambulab.com>
Change-Id: Ie7cff086cf2a3c744213525d5d83f9ac4b55333d
* fix build break
* FIX: delete sdcard file crash
Change-Id: I814fd4b557fa92ac4060cbeb18a53f5616e49662
Jira: STUDIO-5977
* FIX: Yield when join media thread
Change-Id: I746d7df88a0de8363da7d9507cb63c9e0ffe970a
Jira: STUDIO-5952
* FIX: Guide page can't show in screen with mainframe
Jira: STUDIO-4911
Change-Id: I7e89614e0f1585263456c847a1b38dcfd0ad59e6
* FIX: filament combox has blank line
Change-Id: Ia39ddb564b3c9cc943d0ea4c0cf7cc4d24bef799
* FIX: load 3mf crash when studio has no base filament
Jira: none
Change-Id: I4387f425f60e6a53a53cf68addb1ab2d6f8f8901
Signed-off-by: maosheng.wei <maosheng.wei@bambulab.com>
* FIX:add resume button
JIRA:github:2860
Change-Id: I39035d929876ab3c84c5f5c3494376967300938c
* FIX: CLI: fix an arrange issue when duplicate failed
restore the wipe_tower position to original when duplicate fail
JIRA: MAK-2638
Change-Id: I355056f1d87648cc1f6aafa15a98ff569359b44f
* FIX: fix printer list without nozzle such as 0.35 or 0.75
Jira: 5409
Change-Id: I1a258fd10bcc03e297b791256880f2518d602905
* ENH:The first object should locate at plate center
Jira: STUDIO-6023
Change-Id: If4284136fe63ca576463445f3ab16b6e18ead30f
* FIX: Colored filament is not matched against.
github: #2190
Colored filament is not matched against the same color in AMS slot.
Signed-off-by: Kunlong Ma <kunlong.ma@bambulab.com>
Change-Id: Id4588fc9c8115a46881e2f5d198d79fe831f4371
* FIX: Revert "[STUDIO-4284] not set max height of liveview window"
This reverts commit 0312aee4d9b92e23884be8802da9801ff3b9fe93.
Reason for revert: STUDIO-5653
Jira: STUDIO-5653
Change-Id: If9d5f3e63968a0a54f9af1a2dae8f95f7f1f3f80
* ENH:modify file name rules when export stl
Jira: STUDIO-6091
Change-Id: Ic27e4e341cc09099e98a5eab7dfd48416f2922ae
* FIX: Flow calibration stage incorrect when switching printers
Jira: 6093
Change-Id: I41f1ac10ac9422ac808eab3254f32ea14a0d3b76
* FIX: UserGuide Can not Click When Computer User name has chinese
JIRA: None
Change-Id: If50baa8c6a13eb501918fd5cdaf0ea3da7c788ef
(cherry picked from commit 4e5ccc9f2de5ac429af6541c6a8bd412848801d0)
* ENH: Little Optimize JS Code Execute Progress
JIRA: STUDIO-5792
Change-Id: I12b03d8b968a9dd8dfce9eb3ef925fa8768e2046
(cherry picked from commit 2bf861092c9e306e1311eda8ac36fd981e73b6c2)
* FIX: Delete Test Code
JIRA: NONE
Change-Id: I838a348edb22e09d2b1d5c41600c6fade535d184
(cherry picked from commit 51e664da0209ae8a3de5cbf30a72505c0b5bd028)
* FIX: the object list order changed after clone
github: 2798
Change-Id: I10a05ee7e00b05cb1255cfb708876ed784cabac7
* ENH: add alias for custom Filament preset
Jira: XXXX
Change-Id: I2fecc8b2bdb63618155e3d21f9db374a6119e416
* FIX: [5779] fix show alias logic when load preset
Jira: 5779
Change-Id: I4fefe3c1ffbca9bd8296f1b3fdd5de48c6a36a28
* ENH: Optimize the logic for deleting third-party printers
Mark the Filament and Process presets to be deleted first
then delete the child presets first and then the parent presets.
Jira: none
Change-Id: I100b873baae96c6ba27af258e708e6ab8e6ee4ab
* ENH:default selection of virtual tray
jira:[for def selected]
Change-Id: I0661f179f8e4bcac33ae12fbbeaeaf95c5b7c110
* ENH:add protection when no thumbnail data
jira:[for protection]
Change-Id: I3834a5ffde11ff54567dd854271184f06f94547f
* FIX:fixed issue with chinese path
jira:[Fixed the issue of failed loading of configuration files under Chinese path]
Change-Id: I9badd8fc158fcf49f46411ac4e5f72d58823eeb2
* NEW:add new msg notification for hms
jira:[STUDIO-6154]
Change-Id: If1aa33030a99550d0c859d594a2711aea4dcea4a
* NEW:using new humidity display ui
jira:[STUDIO-5967]
Change-Id: I13be4212e6b97f646d21e0af64cbc5006753fdeb
* NEW:Dye materials above grade 10 with shortcut keys
JIRA:STUDIO-5827
Change-Id: I002ecdd19167fb36772e4b4e9e2f7760e21079db
* NEW:update automatically when inserting materials
JIRA: STUDIO-6157
Change-Id: I2cefbb7b330ca4f13e841066548992b3fb3740f1
* FIX: check sdcard exists for file connect
Change-Id: I69199a29294c04d1fe46ee66682085b1f1d1d049
Jira: none
* FIX: not load printer files when it's busy
Change-Id: Ie5a58befcfc0d7fa0d4e587e8429c0b1bfeff72a
Jira: STUDIO-6105
* ENH: save video ctrl size to reduce layout change
Change-Id: I470f29d7f029d304c9badeeb8f94bed281080b29
Jira: STUDIO-6141
* ENH: stop liveview track record
Change-Id: Id4f236b239740bd919f2aa2f2892c1e63ce233bd
Jira: STUDIO-6131
* FIX: thread safe of http extra headers
Change-Id: I6ffa424be7ccb6abd78a66cc8be535f038b05469
Jira: none
* optimize MeshBoolean
* FIX: parse printer_model_id from 3mf
Change-Id: Ib149c986885ee6412898f1f51dd5a4aaad0a596d
Jira: none
* ENH: find grid empty cells for fill bed if the item is too small
jira: STUDIO-6015
Change-Id: I4e5eafdadd77482a27a8903d32bb83325283088d
(cherry picked from commit 8df4da4a863cdc42c790a9d5da37f8633423e406)
* ENH: always return product for firmware and lifycycle
JIRA: STUDIO-6282
Change-Id: I1f942babdcb7afee2c9a9076ac539063c5406ad7
Signed-off-by: Stone Li <stone.li@bambulab.com>
* ENH:STL tracking restricted area
jira:[STUDIO-6155]
Change-Id: I289c8b8aa8f62f0e5cc7004fb60437aa3337ca85
* NEW:add nozzle settings
jira:[STUDIO-6226]
Change-Id: I0db8333e5b5c8195add111fdcfa2e92387997815
* ENH:display the current humidity of AMS
jira:[ENH]
Change-Id: I98bdd6d70cd173ed640f0d96692fcb6836416bb8
* FIX: [6123] create printer for exist printer can not into next page
Jira: 6123
Change-Id: I338ac0fde4f69b6f312f20e53851d91339e8156f
* ENH: Display value of flushing volumes
JIRA:STUDIO-6139
Signed-off-by: Kunlong Ma <kunlong.ma@bambulab.com>
Change-Id: I273fb22b0d378a839c34e9e0e9c414f0e5134799
* FIX: show printer file path & title
Change-Id: Ie5eff188c3039deeca5da96b54407194bf8910a0
Jira: STUDIO-6268
* FIX: liveview error message
Change-Id: Ie437e07916d7b6feae2dbcfa166c4e73bdcf31a1
Jira: STUDIO-6107
* FIX: file proto error message
Change-Id: I2c4117961c615e424780fb3830441e6a93c50bcc
Jira: none
* ENH: earse sensitive fields when export configs
Jira: None
Change-Id: Id9ca0637240b80773f39d2308192f8c78a5de3c6
* fix build errors
* FIX: unexpected layers in multi color print
github: 3131
Change-Id: I2a42e3bbd2247fbc0957022e1baae43c9375a8fb
* ENH: Add "New" button for PA cali
Jira: XXXX
Change-Id: Ic39f2508f2f9d390c2b9246fb3d3e281cde9b064
* NEW:add printer compatible check from sd card view
jira:[STUDIO-5969]
Change-Id: I86d10ebe2e9bc77e6350e26aeed6b4f0f9fdcecb
* NEW:enable loadl/unload when printing pause
jira:[STUDIO-5968]
Change-Id: Ieb3ef2423378e44b81a61a2b18c16f68aa335922
* FIX:fixed HMS message not cleared
jira:[STUDIO-6296]
Change-Id: Ic7692ce337fd00ece4ab8d65214a8c406f8543f8
* ENH:error code setting default value
jira:[for error code]
Change-Id: Ica61344c8217d41adb2947a40f633dc8d19a197a
* ENH:display conflict information
jira:[STUDIO-6297]
Change-Id: Ie1501323a7e8d9ceb4060ae6c0b4eab20f8b088a
* ENH: refresh printer file list
Change-Id: Ic86942d2b0b2e8383ef0f06311164aad59e837ad
Github: 3383
* FIX: Unnecessary prime tower error prompts
Custom gcode on other plate causes unnecessary prime tower error prompts
Jira: 6305
Change-Id: If499659b364a6b6898db1587b7b2aeed03758667
* FIX:multi colour displayed as gradient color on AMS
JIRA:5925
Change-Id: Ic7a925dda2e3bde066ba40ba27002569040f9518
* NEW:Color painting shortcut keys 10~16
JIRA:STUDIO-6238
Change-Id: I3cce838fad5e73d41f109b32f2e563716fd5b0da
* ENH: Print when unnamed project, task named as object names
github: #2286
Change-Id: I9be3fd25d16a00b78326ec43db9afcf3645d90f1
* ENH:reset user access code
jira:[for lan mode]
Change-Id: I2d0ed48411d683c3f20b2febc0d54747287870a7
* FIX:fixed crash when selecting new printer
jira:[fix]
Change-Id: I6a81186e822eb6bf6ce7aa70561dfae35d4de0e7
* FIX: not show printer's camera error when updating
Jira: STUDIO-6232
Change-Id: I985d75b3772849e07100799c4f13db5d4cbafde3
* FIX: clear error after reload file list ok
Change-Id: I5d5e4f2870302b198d3a9d40603a6fa8010b7e76
Jira: STUDIO-6306
* ENH: custom filament sync with printer
1. prompt sync user presets when create custom filament
2. Fix the issue of not displaying printers when creating custom Filaments based on presets when selecting PLA Aero Type.
3. Optimizing the traversal logic during AMS Setting Pop up reduces time complexity and allows for quick pop ups. Additionally, using nozzle calibers for retrieval and repairing custom materials may result in inaccurate retrieval.
4. Implement synchronization logic with the printer
-a. Received slot information, reset the slot when the "filament_id" in the information does not exist in Studio
-b. Received slot information, the nozzle temperature in the information is different from the preset nozzle temperature in Studio, reset the current temperature.
Jira: none
Change-Id: I511dc82563ec77a341839671d398607048ce1985
Signed-off-by: maosheng.wei <maosheng.wei@bambulab.com>
* NEW: add api of "toggle_selected_volume_visibility"
Jira: STUDIO-6166
Change-Id: I77eb988a3ea43cd37d50888d1753b973795d8b36
* FIX: No data in the drop-down menu of the AMS settings page
Jira: 6342 6343
Change-Id: I6938fb4a7ae2816a4675d8d739622e25f219f469
* fix build error
* FIX: label wrap all & ping test for liveview
Change-Id: I7767ed0740e20bb578b6ef9f5e9873c8c79d172a
Jira: STUDIO-5821
* ENH: reuse controls in param Field
Change-Id: I42bb4da01e1e9b64c343b7fda4357a9553cf8684
Jira: STUDIO-5983
* FIX: use wide path to create camera process
Change-Id: I5de31fce0dea14df9a0ad363f3cb16dc40c275bc
Jira: STUDIO-4946
* ENH: optimize the get_tool_order func
Use Dp to refine performance
jira:[NEW]
Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: I38b0c875e4deee9d9fbe926087fb5b2e274f8f90
(cherry picked from commit 9b7b66dc7a1f5e3efa318227ae7694bec5ec1216)
* Fix build errors
* ENH: add customize other layers print sequence
Jira: 6338
Change-Id: Ic14b2671ade37ab37583b81c5b509447b6c0d8f8
* ENH: [#3236] Unsaved changes to interface copy adjustment
github: #3236
Change-Id: I53931859bdcdfedfa9f63f6239d0fd2fd6d2766c
* NEW: support to adjust other layers print sequence
Jira: 6338
Change-Id: I5e6aef71aa9e6e97c1859aaaeb9ada5f1340414a
* FIX: imgui support toolbar window text wrapping issue
jira: STUDIO-5821
Change-Id: I57ee984baffbb2f00a7ecc5d5c8061074b06aff6
* FIX: updater: fix force upgrade logic
JIRA: STUDIO-6393
Change-Id: I46c51e09e7390e5ab0de40215911aac9635ab476
(cherry picked from commit 673ba6ff4ebda039d71dcbfdaa28c1252f5b8821)
* FIX:final step of slicing is to execute post-processing script
JIRA: STUDIO-5828
Change-Id: I8c33e2a66ac5c692244c778586040663b7b54bd7
* NEW:enable 3dMouse detect in .conf
JIRA: 5830
Change-Id: I8731e0244d2f551130c84bcfbbb46967ae6b19cd
* FIX:finish init "return" icon and hide it
Jira: STUDIO-6350
Change-Id: I0f1efd4a64ea204daeac7de822602ef6dfa3e4a5
* FIX: seq_print: fix an invalid warning caused by sinking
github: https://github.com/bambulab/BambuStudio/issues/3007
Change-Id: I1111910f2c625d5a871ea01b37dbfa7b04a849ee
(cherry picked from commit a3db95bb0940d5afe07ef0bb07113cc2acd7cd0a)
* ENH: plater: optimize the loading time of 3mf with large objects
JIRA: STUDIO-6021
Change-Id: Ia97f681041bb553c5c4b5b1d9109e5e5c42daf6b
* FIX:Fixed HMS issue
jira:[STUDIO-6344 STUDIO-6310 STUDIO-6356 STUDIO-6348]
Change-Id: I9d6660e7c349775004b69bfe41b651bfa8b359b7
* ENH:handling dirty data after nozzle settings
jira:[STUDIO-6332]
Change-Id: I00d6d1324376f973ec3cf9f2154ae83ef3302705
* ENH: use Bambu_StartStreamEx for agora tunnel
Change-Id: I5c28dea49d267bf7ff967d0982dd83555899c8c4
Jira: none
* FIX: use safe language code for http
Change-Id: Id1f4927308350ee35b891a5352cbf1e2d0c2577e
Github: 3655
* FIX: add cli_id, cli_ver to bambu url
Change-Id: Ic527d1497c6dee0c723d7b4629f0be825a8f7545
Jira: none
* FIX: not throw when _add_auxiliary_dir_to_archive
Change-Id: Idf54bbbd0ef557ec5e1a8e51ed669a1eb1fb4261
Jira: STUDIO-6339
* NEW: vase mode can be applied to one plate
jira: STUDIO-5838
Change-Id: Ifb315f7d79b570aeb7ee31d3495b4d465e3af0c6
* fix crashes
* ENH: update overhang degree method on calssic mode
Jira: none
Signed-off-by: qing.zhang <qing.zhang@bambulab.com>
Change-Id: I90f6e4c2ef618fdaef00bdaf1ca309893f484c1e
* FIX: auto-arranging unprintable items may crash
github: #3676
Change-Id: I68eb87c73ad2c0c269f60e661136fd1a72ee5e2f
(cherry picked from commit 7e3c57eaa811424935fe8db6a4e77dd142ee2b58)
* FIX: use old slicer_uuid for client_id
Change-Id: I6c45e83213d613fc28eef04115f9cfb19dea703e
Jira: none
* ci: update network module based on commit 542ced8
Change-Id: I3ad5032cc56a99d1c3a687b2891d147b13af066d
* NEW:Support OLTP file
Jira: STUDIO-6421
Change-Id: I58bc94e978e6d2dd136ea370fb01f6ec80e14b23
* ENH: detect in_head_wrap_zone more precisly
1.Union first layer convex hull with object's bbox to detect whether
model enter head_wrap_detect_zone
jira:NEW
Signed-off-by: XunZhangBambu <xun.zhang@bambulab.com>
Change-Id: I11f26967d7421f41e9c824e62794c96591e6ae71
* FIX: fix the plate cannot be searched
JIRA: STUDIO-6283
Signed-off-by: Kunlong Ma <kunlong.ma@bambulab.com>
Change-Id: I88206c91ea24c6a41a0bd06f05f0f3c2fdc58a36
* NEW:hms error code
JIRA: STUDIO-6302
Change-Id: Ia33511f4c636c8ada39ed5a4e52d9b185da9c00b
* FIX:Color adaptation for numpad
JIRA:STUDIO-6410
Change-Id: If6e49638af8616fd349367073883592e6bebb503
* FIX: error overhang degree mapping
Jira: none
Signed-off-by: qing.zhang <qing.zhang@bambulab.com>
Change-Id: Ifa24aa0cad0a06b09ee62a8be8781188a765d1d0
* FIX:display correct humidity
jira:[fix]
Change-Id: I27aae54a8355911b5d88ed45be320d3c9178081c
* ENH:Hide confirmation button when unable to send print
jira:[STUDIO-6355, STUDIO-6332]
Change-Id: I8f9c0edea4d5ee70e9fef1e9d42838d598dc32c4
* NEW: new type for Custom Filament
Type: "PE", "PP", "EVA", "PHA", "BVOH", "PE-CF", "PP-CF", "PP-GF"
Github: 3205 3169 3127
Change-Id: I8a30dd806c35460d9dae0f808190ce013b125d51
Signed-off-by: maosheng.wei <maosheng.wei@bambulab.com>
* FIX:fixed filament settings page display error in French
jira:[STUDIO-5821]
Change-Id: I6cc6dd9b83c7570688c2adc55efe2407cbcb4390
* FIX:fixed thumbnail not updating when using multiple plates
jira:[STUDIO-6313]
Change-Id: If49daa5b38b9a580ae226ff00a1e0085d167c15c
* FIX: Color Bleed in slicer
github: 3681 jira: 6450
Change-Id: Icb6274f7ddb238c238c133b95167310b1af905f7
* ci: update network module based on commit 8befd46
Change-Id: I3a6420684f106bdde5897a50d27dfec69e0aa37f
* ci: update network module based on commit e411785
Change-Id: I3a9c7bfa5ac5a942f339ad0194a24d9170847371
* FIX:reload paint after background process apply
Jira: STUDIO-6493
Change-Id: I9a1986152f05163f236f58bb24210b690ca3d562
* FIX: use object name of plate when send task in untitled project
Jira: 6430
Change-Id: I78ec811fab1cf028c0d5f81ac7738abdbeb6145f
* FIX: auto arranging spacing can't be adjusted correctly
jira: none
Change-Id: Ibddfe85aab9f3fad6a1612e8db437e52c40e20a3
(cherry picked from commit 136bca01f45e62042bd699a9a0a9f6d13519712c)
* FIX: fix change nozzle temp in Studio but printer not change
Jira: 6510
Change-Id: Ia0e1ac586ff41ddbabdac0845415e70774299387
Signed-off-by: maosheng.wei <maosheng.wei@bambulab.com>
* ENH:rename some img files
jira:[STUDIO-6512]
Change-Id: I69872533cccda37b94384bc219cc35c5dec9310b
* ENH:PEI bed is no longer unchecked by default
jira:[STUDIO-6508]
Change-Id: Ic9ca99860d46c27ca4c36a735df3f57fe71417df
* FIX:fix the load status of vtray
jira:[STUDIO-6435]
Change-Id: I8cafcc0b6caf19492aae6c153fb509f470dc7e83
* FIX: Supports automatic calibration of textured PEI
jira: 6504
Change-Id: I3234fb555b9bf0ea97e73387651874733e761ee7
* ENH:add tooltip for search item
JIRA: STUDIO-6459
Signed-off-by: Kunlong Ma <kunlong.ma@bambulab.com>
Change-Id: I7602a32159d21de8f37ea0208dd6a9f59b90dcce
* ENH: CLI: add version check logic
add option allow_newer_file
Change-Id: I8e8e4a45f77ebdd6dae6189841e4a9952e95ca82
* ci: update build version to 01.09.00.52
Change-Id: Id6e32b5afcf5eaabce9c0c7ab2c422e97b00e632
* NEW: switch to object panel if double click on object
jira: none
switch to object panel if double click on object,
otherwise switch to global panel if double click on background.
Change-Id: I6e54d7957aa19f1ebb1f993bc38125bbee8a1c98
(cherry picked from commit cc2e07bc9489c76a7d767acff0406c83c996504c)
* FIX:fixed loading img resource failure
jira:[for fix img load]
Change-Id: Ifb26b2ca23029abeda000322bf2ef7d2b3cda3b4
* FIX: Project Title can Click
JIRA: none
Change-Id: I614c60e76efe04875e36e3a8ef7a10acd3ef9ecf
* FIX:Prioritize selecting filament with smaller serial numbers in AMS
JIRA: 5909
Change-Id: If3030d4dd8d59af36bc1ae1801be1b89b0027a71
* NEW:material adaptation in select machine dialog
JIRA:xxxx
Change-Id: I625eac75c88cad804dd3741f750c5ea68a975421
* FIX:mac ams setting display
JIRA: STUDIO-6228\6409
Change-Id: I432a3aa96601a8e223b5949bc0ad5234c1374dca
* FIX: Image Scale Mode and Online Display
JIRA: none
Change-Id: I528f16e93b82748d86dc93e2dd3d85f317babaa7
* FIX: sequential_print_clearance_valid not working
not working correctly with short objects
jira: STUDIO-6489
Change-Id: I33e1a165f448e1c3e272d4045934c63ad345db2f
(cherry picked from commit 9348eaa22a056db5384a38ea966cec9ba4a533a7)
* NEW: add nozzle_height to machine profile and do not detect conflict
Jira: request from 1.9
1. add nozzle_height to machine profile
2. auto arranging and sequential_print_clearance_valid don't consider objects conflicting if they are all shorter than nozzle_height and close.
3. do not detect conflict when all models are short.
Change-Id: I8d1eebb15d5bfa8c40d7491e033149e360531b89
(cherry picked from commit 6b4b52653db5f08d724a556c5c766c0bfa00f34d)
* FIX: sequential_print_clearance_valid not working
not working correctly with short objects
jira: STUDIO-6489
Change-Id: I33e1a165f448e1c3e272d4045934c63ad345db2f
(cherry picked from commit 9348eaa22a056db5384a38ea966cec9ba4a533a7)
* FIX: [6510] set nozzle temp incorrectly when popup AMS Setting
Change-Id: I898f0b94794a3d67017b1917ce196c4019f5eb4a
* FIX: auto-calculate flushing volumes
JIRA: STUDIO-6547
FIX the first modification of consumable color after synchronizing filaments, without automatically calculating the flushing volumes
Signed-off-by: Kunlong Ma <kunlong.ma@bambulab.com>
Change-Id: I2bc76a29afde5241d100cc42a5161db0f9b901c4
* FIX: custom layer sequence from End to End comboBox display issue
jira: new
Change-Id: I413cd5896d7e921f2c7c03b91b08788fefb9a4f3
* FIX:fix the v tray's filament unload logic
jira:[STUDIO-6627]
Change-Id: I34420bc4d1d27b6b36defb9852bba2eaf77fdcf2
* NEW:reducing purge through retracting filament
1.reducing purge through retracting filament.Currently only
applicable to X&P series
github: PR#3100
Signed-off-by: XunZhangBambu <xun.zhang@bambulab.com>
Change-Id: Ie328039872e50e699dc5e5082fa99f68ac5f5fd1
* FIX: wrong role cache in wipe tower
1. Add wipe tower role cache in GCodeProcessor result
2. Add wiki link for prime tower
jira:NEW
Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: Ia766c7218df68fb1ffba567af193d6bfecacf588
* Fix plate settng icon
* NEW:revert hms error code
Change-Id: Ib5cc8bb8b8ced0f70d5bbe4751a1f97258218c6f
* FIX: calibration page button broken display issue
jira: STUDIO-3913
Change-Id: I2fd488e829d898b7d81d09db814ed6518f0c54a8
* FIX: do not check spiral vase mode config if an object is loaded
jira: STUDIO-6514
Change-Id: Ib44ec8322ff178b5765f7fe94b588aa38339691d
* FIX: implicitly set spiral vase config for objects just loading
jira: 6514
Change-Id: I04bb2b1abeb62d4dfff4e526b723b1cf1bd5fd7f
* FIX: filling bed fails if the bed is already full
JIRA: STUDIO-6490
Signed-off-by: Kunlong Ma <kunlong.ma@bambulab.com>
Change-Id: I71b5a01a95cdffef7c0750e6347fa8911dcd781d
* ci: update network module based on commit 868f5d7
Change-Id: I5584e4441e1f2ab400addaa87ee8013927fb9e15
* FIX: add query_real_volume_idx_from_other_view api
Jira: STUDIO-6545
Change-Id: Ib8216981c5d2945a0221a5caa1fbc14ed74e930b
* FIX: Can't edit text
github: 3750
Change-Id: I1caecaa968e60cadcdbe9f7aa67cba141bb88230
* FIX: Slicer creates invalid color pattern
github: 3749
Change-Id: I3fd74a9ca59b75873fcbca4437e4858c749ee853
* ENH: hide tuck did
Change-Id: I9021d3f51c9a73bc9208b479f96b1ddbe7a2f8f8
Jira: none
* FIX: PrinterFileSystem: retry connect on user action
Change-Id: I3e8902298385ed2e5906fd15d1817b6e33522a76
Jira: STUDIO-6354
* FIX: Remove user ID and other information
Jira: XXXX
Change-Id: Ia63ec88a335d88fd40a29952abe6d40d8991efee
* ENH: refine retraction before cut
1. Add filament retraction before cut control
jira:NEW
Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: Ifcb087c9791c0461b793ef811b21ebd4c007d880
* FIX: enable resumed read only Field
Change-Id: Id09e671932458699c020f0a061d8cfc11a6958ab
Jira: STUDIO-6641
* ENH: add precise_z_height
jira: none
Change-Id: Idb9fcf0063e773f1531a49961478460b91ded10f
* ENH: modify the multi-material segmentation and voronoi
This patch is cherry pick from Prusa, thanks to Prusa
Rework multi-material segmentation to work directly on the Voronoi diagram without creating a copy of it.
Previous algorithms assume that they can get an invalid Voronoi diagram. Because of that, during the multi-material segmentation, a copy of the Voronoi diagram was created, and there were several attempts to fix missing vertices and edges. But as it shows, this wasn't a good enough approach and sometimes led to several issues like bleeding layers.
After generalization, our approach for detection and repairs of invalid Voronoi diagrams from Arachne, we could assume that multi-material segmentation gets non-invalid Voronoi diagrams.
With this assumption, we reimplement multi-materials segmentation to work directly on the Voronoi diagram. That should make multi-material segmentation more stable.
So, this should fix several issues like bleeding layers. Also, memory consumption should decrease by a lot. Also, there should be some speedup of multi-materials segmentation.
Jira: none
Change-Id: I72aa6e1f9634d9ee8759aa469a0b39a36ace62f5
* FIX: infill speed not work on region level
Jira: none
Signed-off-by: qing.zhang <qing.zhang@bambulab.com>
Change-Id: Ie3d17c5e3cbf91a8854e3b4cd80babeb2b1bd121
* ENH: support saving PA calibration results for P series
Jira: none
Change-Id: I9402b8bcce7b48a63d0e97e0708080701d065e7a
* ENH: refine long retraction ui
1. associate button display logic
2. Add valid range tip
3. seperate the printer into three types
jira:NEW
Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: Ie14c8746eb20456dacd5c129a5449c1e7c7db372
* FIX:height range cut = volume_count * 2
Jira: none
Change-Id: I539c2f9cda7985b4b3c318ca8aa1eb7c52fdce82
* FIX: auto arranging gets wrong object height
obj->bounding_box().size() is not the real object size if the object has been rotated.
jira: STUDIO-5999
Change-Id: I6553d4c990696efd674e3e57063802127d5d5282
(cherry picked from commit 479ea9fb02f55d24f27c94633f3d852bd5c62c83)
* ENH: seperate support weight from model
jira:NEW
Signed-off-by: XunZhangBambu <xun.zhang@bambulab.com>
Change-Id: I86bb34941269bf1aa29436a94ebbdff675497e85
* ENH: add support for gcodeviewer statistics
jira: new
Change-Id: Ied6d61e8c48ac82daf16579d9caed9723cf8e29d
* FIX: invalid support weight per extruder
jira:NEW
Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: I0e4b857c9c758ab7c54ef13aee1bf596f975640b
* FIX: do not need reset bed_type for pa calibration
jira: none
Change-Id: I411064cf14d94a9bd1f0f6668ee23aa10d372f3d
* FIX: P1P/S can not modify the k value in old version
jira: 6745
Change-Id: I5c9dffe8e998213e6af6e1d01a6b0ae82521e8db
* Add rotation support for 3D Honeycomb
Ported from BS
* ENH: add default params for long retraction
1. Only auto calculate flush when enabled
2. Add default params for long retraction
3. Disable filament override for unsupport machines
jira:NEW
Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: Ib5d51505b58101839527e944f9a237483951f9fe
* misc fixes
* ENH: remove long retraction warning
jira:NEW
Signed-off-by: tao wang <tao.wang@bambulab.com>
Change-Id: If60236b3282991a2d94df7d125427cff86899536
* avoid zero length path
* FIX: check recommended nozzle temperature
Jira: XXXX
Change-Id: I4dbb274cf27ef9c6d20a8479b29af1069652b2bc
* FIX: fix not popping up a prompt when the temperature is set to 0
Jira: 6497
Change-Id: I6498fc6962e7da376d4c652dab0a99a161932eef
Signed-off-by: maosheng.wei <maosheng.wei@bambulab.com>
* ENH: When creating a custom Filament, use the system Filament type.
Jira: 6301
Change-Id: I1bfddcf43d2ebaebca4eb494d1f64165c3d59e9e
Signed-off-by: maosheng.wei <maosheng.wei@bambulab.com>
* FIX: seam and unretarct pos error on smooth vase
casused by invalid path of smooth vase mode
Signed-off-by: qing.zhang <qing.zhang@bambulab.com>
Change-Id: Ib597e8c05760886aae2c42e42e8d46e82b844578
* FIX: unable to map if filament not used in model
1.Fix filament can not map if it's not used in model body
jira:NEW
Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: Ibd2685ffd198b2e17dbf44289d0144b5b7c25788
* NEW:Update data only on device pages
jira:[STUDIO-6776]
Change-Id: I33b0c9f35c1dc6df2db3b6bd4f446f46b31ecf6c
* set(SLIC3R_VERSION "01.09.00.70")
* update BBL machine profile 01.09.00.04
* scarf clip start and end
Ported from BambuStudio
* fix linux build error
---------
Co-authored-by: Arthur <arthur.tang@bambulab.com>
Co-authored-by: zhou.xu <zhou.xu@bambulab.com>
Co-authored-by: wenjie.guo <wenjie.guo@bambulab.com>
Co-authored-by: chunmao.guo <chunmao.guo@bambulab.com>
Co-authored-by: maosheng.wei <maosheng.wei@bambulab.com>
Co-authored-by: hu.wang <hu.wang@bambulab.com>
Co-authored-by: lane.wei <lane.wei@bambulab.com>
Co-authored-by: Kunlong Ma <kunlong.ma@bambulab.com>
Co-authored-by: zhimin.zeng <zhimin.zeng@bambulab.com>
Co-authored-by: zorro.zhang <zorro.zhang@bambulab.com>
Co-authored-by: tao wang <tao.wang@bambulab.com>
Co-authored-by: Stone Li <stone.li@bambulab.com>
Co-authored-by: xun.zhang <xun.zhang@bambulab.com>
Co-authored-by: liz.li <liz.li@bambulab.com>
Co-authored-by: qing.zhang <qing.zhang@bambulab.com>
Co-authored-by: gerrit <gerrit@bambulab.com>
Co-authored-by: Leon Fisher-Skipper <47602359+LeonFisherSkipper@users.noreply.github.com>
Co-authored-by: Lukas Matena <lukasmatena@seznam.cz>
Co-authored-by: jianjia.ma <jianjia.ma@bambulab.com>
gui: fix zoom-to-mouse
Plater disappeared when zoom-to-mouse enabled and user tries to zoom
with a side view enabled (Ctrl+<3..6>).
Mouse/screen center position estimation in 3D is made by calculating
intersection of a mouse vector which comes 'through' the screen with an
XY plane. However, when screen is parallel to Z axis, intersection point
located at infinite which results in infinite camera translation vector.
This change switches mouse position estimation to use of projection
matrix like its done for camera panning.
* rework of Linux build scripts
* change to ninja build system
* distribution specific logic broken out
* n/9 progress entries make no sense, removing
* {}'ing all variables
* sorting help output
* sorting package lists
* project doesn't use submodules, removing logic
Signed-off-by: Jamin W. Collins <jamin.collins@gmail.com>
* drop gtk-2
Signed-off-by: Jamin W. Collins <jamin.collins@gmail.com>
* further refinements of BuildLinux.sh
Signed-off-by: Jamin W. Collins <jamin.collins@gmail.com>
---------
Signed-off-by: Jamin W. Collins <jamin.collins@gmail.com>
* e3v3se: disable m73 as not supported in FW
* e3v3se: remove thumbnails
Remove thumbnails generation to not confuse users.
Currently event CrealityPrint does not generate thumbnails for the E3 V3 SE.
* e3v3se: update motion capabilities
Update motion parameters for the Ender 3 V3 SE profiles:
- max acceleration on all axis to 2500 as per product spec
- max X and Y speeds to 250 as per product spec
- max Z speed to 5 as set in factory defaults (M502, M503)
- max E speed to 40 as presented in recommended print parameters on the
product page
Product spec sheet:
https://wiki.creality.com/en/ender-series/ender-3-v3-se/quick-start-guide/user-manual
* fix: replace extruder_clearance_max_radius with extruder_clearance_radius
* fix: add if m_plater before accessing preset_bundle
* fix: generate thumbnail only when callback is defined
* fix: change default gcode thumbnail format to png
* Fix model load in debug build
Debug build exit with error on model load due to failed assertion (file
path redacted):
orca-slicer: <...>/OrcaSlicer/src/libslic3r/Model.cpp:1361: void Slic3r::ModelObject::update_min_max_z(): Assertion `! this->instances.empty()' failed.
Assertion failed due to model->ensure_on_bed() being called for object
which yet to be load from file.
Do not call ensure_on_bed() for models read from file since they may be
read with no default instance.
ensure_on_bed() called later within withing Plater::load_model_objects()
for each object added.
* Rework according to code review comment
* gui: camera navigation style option
Add camera navigation style config option as a preparation for
introduction of touchpad style navigation
* gui: touchpa-friently 3d navigation
Implement FreeCAD-inspired touchpad-friendly camera operation mode:
- Shift+move: panning
- Alt+move: rotation
Set "Camera mode" to "Touchpad" in settings menu to activate this mode.
* cache current navigation style in class member variable
Cache current navigation style on canvas focus, do not
request settings value each mouse event.
* force focuse 3d preview on preferences window close
Explicitly force focus 3D preview pane on closing preferences window.
This allows preferences be updated only once without checking current
value each input event.
Another benefit is to have 3D view in focus is that user could
immediatelly use 3d-view shortcuts like Ctrl+<1..7> without clicking to
the 3D view first.
* Update OrcaSlicer_es.po
* Merge remote-tracking branch 'upstream/main' into Spanish_Translation
* Merge remote-tracking branch 'upstream/main' into Spanish_Translation
* some changes
* Merge remote-tracking branch 'upstream/main' into Spanish_Translation
* Some fixes
* More fixes
* More fixes and improves
* More fixes
* Add Creality Ender-3 S1 Plus
* Misc
* Fix nozzle_diameter
* Add printer_variant value
* Change build plate model/texture to use Ender-3 V3 SE
* Enable mesh leveling
* Up max travel acceleration to 5000
* Enable infill_combination
* Add Draft profiles
* Change buildplate model/texture
* Fix build plate model
* Add retraction & detraction speed & change retraction length
* Add filament_ to the beginning
* Revert retraction & detraction speed & retraction length
* Tests
Trying to change retract and detract speed as well as retraction length
Also trying to have Z-hop only happen on top layers
* Apply new values to other nozzles
* disable z_hop
* Lower build plate model
* Resolve merge conflicts
* temporarily remove Ender-3 S1 Plus
* Re-add Ender-3 S1 Plus
* Add CR-10 SE and standard profiles
* Misc
Add more perimeters to CR-10 SE profiles
Add printer to filament profiles
Link everything in Creality.json
* Fix two bugs
* Forgot this
* New Italian Translation
Translated new strings introduced
* Italian Translations concerning scarf joint
Translated all sentences regarding scarf joint
* Update OrcaSlicer_it.po
Corrected some typos
* Fixed some Italian Translation
Changed E' to È
Changed E' to Indica
Fixed Word Brim Ears to Brim a ORecchie
* Fixed some italian translations
Changed HOT BED from "Letto caldo" to "Piano Riscaldato"
Changed Build Plate from "Piatto di Costruzione" to "Piatto di Stampa"
* Substantial changes to the Italian language
Make substantial changes to the Italian language via POEDIT.
Partially eliminated errors in POEDIT concerning missing or excess spaces
Replaced the words UGELLO with NOZZLE
* gui: fix media eject on linux (#4700)
Removable media is not ejected on linux platform
Make get_removable_drive_from_path() check if path is a dir or not.
Trim last component in latter case only.
* Revert unnecessary style changes
* Fixes#2992 - emboss numbers for 290-305
The existing temperature tower model had the numbers, but they were not
embossed for:
* 290
* 295
* 300
* 305
Signed-off-by: Jamin W. Collins <jamin.collins@gmail.com>
* Add Ender-3 V3 SE .2, .6, .8 and fix small Ender-3 Pro bug
* Forgot to remove these
* Fix error
* Remove these...
* Why did I delete this?
* Revert deletion
* Add missing profiles
* Create 0.24mm Draft @Creality Ender3V3KE.json
* Apply new nozzle sizes to generic filament
* Maybe this will do it
* Revert 0.4 renames & add to Generic ABS
* Add M420 S1; Enable mesh leveling
* Fix wring nozzle_diameter
* Potentially fix the issue of printer not being added after selected
* New Italian Translation
Translated new strings introduced
* Italian Translations concerning scarf joint
Translated all sentences regarding scarf joint
* Update OrcaSlicer_it.po
Corrected some typos
* Fixed some Italian Translation
Changed E' to È
Changed E' to Indica
Fixed Word Brim Ears to Brim a ORecchie
* Fixed some italian translations
Changed HOT BED from "Letto caldo" to "Piano Riscaldato"
Changed Build Plate from "Piatto di Costruzione" to "Piatto di Stampa"
* Update_list.txt+OrcaSlicer.pot
I have added missing files for gettext. These files fill in the missing translation strings for Connection / Physical Printer (Obico, SimplyPrint, Flashforge)
src/slic3r/Utils/Obico.cpp
src/slic3r/Utils/SimplyPrint.cpp
src/slic3r/Utils/Flashforge.cpp
src/slic3r/Utils/NetworkAgent.cpp
src/slic3r/GUI/Jobs/OAuthJob.cpp
src/slic3r/GUI/BackgroundSlicingProcess.cpp
* Update Polish translations
* Update OrcaSlicer_pl.po
* Fixing a string_update PrintConfig.cpp
Fixing a string in the PrintConfig.cpp file
The string that hasn't been translated in printer settings
"Disable generating of the M73: Set remaining print time in the final gcode"
* fix_upd
* update_OrcaSlicer_pl.po
2024-03-25 22:25:37 +08:00
16994 changed files with 2609923 additions and 428359 deletions
- Current git diff (staged and unstaged changes): !`git diff HEAD`
- Current branch: !`git branch --show-current`
## Your task
Based on the above changes:
1. Create a new branch if on main
2. Create a single commit with an appropriate message
3. Push the branch to origin
4. Create a pull request using `gh pr create`
5. You have the capability to call multiple tools in a single response. You MUST do all of the above in a single message. Do not use any other tools or do anything else. Do not send any other text or messages besides these tool calls.
Find up to 3 likely duplicate issues for a given GitHub issue.
To do this, follow these steps precisely:
1. Use an agent to check if the Github issue (a) is closed, (b) does not need to be deduped (eg. because it is broad product feedback without a specific solution, or positive feedback), or (c) already has a duplicates comment that you made earlier. If so, do not proceed.
2. Use an agent to view a Github issue, and ask the agent to return a summary of the issue
3. Then, launch 5 parallel agents to search Github for duplicates of this issue, using diverse keywords and search approaches, using the summary from #1
4. Next, feed the results from #1 and #2 into another agent, so that it can filter out false positives, that are likely not actually duplicates of the original issue. If there are no duplicates remaining, do not proceed.
5. Finally, comment back on the issue with a list of up to three duplicate issues (or zero, if there are no likely duplicates)
Notes (be sure to tell this to your agents, too):
- Use `gh` to interact with Github, rather than web fetch
- Do not use other tools, beyond `gh` (eg. don't use other MCP servers, file edit, etc.)
- Make a todo list first
- For your comment, follow the following format precisely (assuming for this example that you found 3 suspected duplicates):
---
Found 3 possible duplicate issues:
1. <link to issue>
2. <link to issue>
3. <link to issue>
This issue will be automatically closed as a duplicate in 3 days.
- If your issue is a duplicate, please close it and 👍 the existing issue instead
- To prevent auto-closure, add a comment or 👎 this comment
description: Triage GitHub issues and label critical ones for oncall
---
You're an oncall triage assistant for GitHub issues. Your task is to identify critical issues that require immediate oncall attention and apply the "oncall" label.
Repository: OrcaSlicer/OrcaSlicer
Task overview:
1. First, get all open bugs updated in the last 3 days with at least 50 engagements:
**Thank you for using Orca Slicer and wanting to report a bug.**
Please note that this is not the place to make feature requests or ask for help.
For this, please use the [Feature request](https://github.com/SoftFever/OrcaSlicer/issues/new?assignees=&labels=&projects=&template=feature_request.yml) issue type or you can discuss your idea on our [Discord server](https://discord.gg/P4VE9UY9gJ) with others.
For this, please use the [Feature request](https://github.com/OrcaSlicer/OrcaSlicer/issues/new?assignees=&labels=&projects=&template=feature_request.yml) issue type or you can discuss your idea on our [Discord server](https://discord.gg/P4VE9UY9gJ) with others.
Before filing, please check if the issue already exists (either open or closed) by using the search bar on the issues page. If it does, comment there. Even if it's closed, we can reopen it based on your comment.
- type:checkboxes
attributes:
label:Is this issue reproducible in the latest nightly build?
description:>
Please verify this issue still happens in the latest nightly build first. It may already be fixed there:
underscore-arch:${{ inputs.os == 'macos-12' && '_' || ''}}${{ inputs.os == 'macos-12' && inputs.arch || '' }}# if is macos, make a string that does "_{arch}", else output nothing
dash-arch:${{ inputs.os == 'macos-12' && '-' || ''}}${{ inputs.os == 'macos-12' && inputs.arch || '' }}# if is macos, make a string that does "-{arch}", else output nothing
option(SLIC3R_STATIC"Compile OrcaSlicer with static libraries (Boost, TBB, glew)"${SLIC3R_STATIC_INITIAL})
if(DEFINEDENV{SLIC3R_STATIC})
set(SLIC3R_STATIC_INITIAL$ENV{SLIC3R_STATIC})
else()
set(SLIC3R_STATIC_INITIAL1)
endif()
option(SLIC3R_STATIC"Compile OrcaSlicer with static libraries (Boost, TBB)"${SLIC3R_STATIC_INITIAL})
option(SLIC3R_GUI"Compile OrcaSlicer with GUI components (OpenGL, wxWidgets)"1)
option(SLIC3R_FHS"Assume OrcaSlicer is to be installed in a FHS directory structure"0)
option(SLIC3R_WX_STABLE"Build against wxWidgets stable (3.0) as oppsed to dev (3.1) on Linux"0)
option(SLIC3R_PROFILE"Compile OrcaSlicer with an invasive Shiny profiler"0)
option(SLIC3R_PCH"Use precompiled headers"1)
option(SLIC3R_MSVC_COMPILE_PARALLEL"Compile on Visual Studio in parallel"1)
option(SLIC3R_MSVC_PDB"Generate PDB files on MSVC in Release mode"1)
option(SLIC3R_PERL_XS"Compile XS Perl module and enable Perl unit and integration tests"0)
option(SLIC3R_ASAN"Enable ASan on Clang and GCC"0)
# If SLIC3R_FHS is 1 -> SLIC3R_DESKTOP_INTEGRATION is always 0, othrewise variable.
CMAKE_DEPENDENT_OPTION(SLIC3R_DESKTOP_INTEGRATION"Allow perfoming desktop integration during runtime"1"NOT SLIC3R_FHS"0)
CMAKE_DEPENDENT_OPTION(SLIC3R_DESKTOP_INTEGRATION"Allow performing desktop integration during runtime"1"NOT SLIC3R_FHS"0)
set(OPENVDB_FIND_MODULE_PATH""CACHEPATH"Path to OpenVDB installation's find modules.")
set(SLIC3R_GTK"2"CACHESTRING"GTK version to use with wxWidgets on Linux")
set(SLIC3R_GTK"3"CACHESTRING"GTK version to use with wxWidgets on Linux")
set(IS_CROSS_COMPILEFALSE)
option(COLORED_OUTPUT"Always produce ANSI-colored output (GNU/Clang only)."OFF)
if(${COLORED_OUTPUT})
if("${CMAKE_CXX_COMPILER_ID}"STREQUAL"GNU")
add_compile_options(-fdiagnostics-color=always)
elseif("${CMAKE_CXX_COMPILER_ID}"STREQUAL"Clang")
add_compile_options(-fcolor-diagnostics)
endif()
endif()
if(APPLE)
list(LENGTHCMAKE_OSX_ARCHITECTURES_arch_len)
if(_arch_lenGREATER1)
message(FATAL_ERROR"OrcaSlicer only supports building for one architecture at a time. Please make sure only one architecture is specified in CMAKE_OSX_ARCHITECTURES")
set(CMAKE_PREFIX_PATH"${DEP_BUILD_DIR}/OrcaSlicer_dep/usr/local"CACHEPATH"Path to dependencies install directory"FORCE)
message(STATUS"CMAKE_PREFIX_PATH: ${CMAKE_PREFIX_PATH} (generated automatically and saved to cache)")
set(AUTOGENERATED_PREFIX_PATH${CMAKE_PREFIX_PATH}CACHESTRING"Provides the last autogenerated CMAKE_PREFIX_PATH"FORCE)
unset(REGEN_DESTDIRCACHE)
else()
message(STATUS"CMAKE_PREFIX_PATH: ${CMAKE_PREFIX_PATH} (from cache or command line)")
endif()
set(PREFIX_PATH_CHECK${CMAKE_PREFIX_PATH})
# the CMAKE_PREFIX_PATH environment variable is separate from the CMAKE_PREFIX_PATH cache variable and provides additional paths to search for libraries.
Several clickbait and malicious websites, such as <b>orca-slicer[.]com</b> and <b>orcaslicer[.]net</b>, are pretending to be the official OrcaSlicer site. These sites may redirect you to dangerous downloads or contain misleading information.<br>
<b>Our only official website is <a href="https://www.orcaslicer.com/">www.orcaslicer.com</a>.</b><br><br>
If you come across any of these in search results, please <b>report them</b> as unsafe or phishing to help keep the community secure with:<br>
Comprehensive suite: temperature towers, flow rate, retraction & more for optimal performance.
- **[Precise Wall](https://www.orcaslicer.com/wiki/quality_settings_precision#precise-wall) and [Seam Control](https://www.orcaslicer.com/wiki/quality_settings_seam)**
Adjust outer wall spacing and apply scarf seams to enhance print accuracy.
- **[Sandwich Mode](https://www.orcaslicer.com/wiki/quality_settings_wall_and_surfaces#innerouterinner) and [Polyholes](https://www.orcaslicer.com/wiki/quality_settings_precision#polyholes) Support**
Use varied infill [patterns](https://www.orcaslicer.com/wiki/strength_settings_patterns) and accurate hole shapes for improved clarity.
- **[Overhang](https://www.orcaslicer.com/wiki/quality_settings_overhangs) and [Support Optimization](https://www.orcaslicer.com/wiki#support-settings)**
Modify geometry for printable overhangs with precise support placement.
- **[Granular Controls and Customization](https://www.orcaslicer.com/wiki#process-settings)**
Fine-tune print speed, layer height, pressure, and temperature with precision.
- **Network Printer Support**
Seamless integration with Klipper, PrusaLink, and OctoPrint for remote control.
- **[Mouse Ear Brims](https://www.orcaslicer.com/wiki/others_settings_brim) & [Adaptive Bed Mesh](https://www.orcaslicer.com/wiki/printer_basic_information_adaptive_bed_mesh)**
Automatic brims and adaptive mesh calibration ensure consistent adhesion.
- **User-Friendly Interface**
Intuitive drag-and-drop design with pre-made profiles for popular printers.
Regular updates fueled by continuous community contributions.
- **Wide Printer Compatibility**
Supports a broad range of printers: Bambu Lab, Prusa, Creality, Voron, and more.
- Additional features can be found in the [change notes](https://github.com/OrcaSlicer/OrcaSlicer/releases/).
# Wiki
The [wiki](https://www.orcaslicer.com/wiki) aims to provide a detailed explanation of the slicer settings, including how to maximize their use and how to calibrate and set up your printer.
- **[Access the wiki here](https://www.orcaslicer.com/wiki)**
- **[Contribute to the wiki](https://www.orcaslicer.com/wiki/how_to_wiki)**
# Download
### Stable Release
📥 **[Download the Latest Stable Release](https://github.com/SoftFever/OrcaSlicer/releases/latest)**
Visit our GitHub Releases page for the latest stable version of Orca Slicer, recommended for most users.
## Stable Release
### Nightly Builds
🌙 **[Download the Latest Nightly Build](https://github.com/SoftFever/OrcaSlicer/releases/tag/nightly-builds)**
Explore the latest developments in Orca Slicer with our nightly builds. Feedback on these versions is highly appreciated.
📥 **[Download the Latest Stable Release](https://github.com/OrcaSlicer/OrcaSlicer/releases/latest)**
Visit our GitHub Releases page for the latest stable version of OrcaSlicer, recommended for most users.
## Nightly Builds
🌙 **[Download the Latest Nightly Build](https://github.com/OrcaSlicer/OrcaSlicer/releases/tag/nightly-builds)**
Explore the latest developments in OrcaSlicer with our nightly builds. Feedback on these versions is highly appreciated.
# How to install
**Windows**:
1. Download the installer for your preferred version from the [releases page](https://github.com/SoftFever/OrcaSlicer/releases).
- *For convenience there is also a portable build available.*
- *If you have troubles to run the build, you might need to install following runtimes:*
- [Alternative Download Link Hosted by Microsoft](https://aka.ms/vs/17/release/vc_redist.x64.exe)
- This file may already be available on your computer if you've installed visual studio. Check the following location: `%VCINSTALLDIR%Redist\MSVC\v142`
**Mac**:
1. Download the DMG for your computer: `arm64` version for Apple Silicon and `x86_64` for Intel CPU.
2. Drag OrcaSlicer.app to Application folder.
3.*If you want to run a build from a PR, you also need following instructions below*
<details quarantine>
## Windows
Download the **Windows Installer exe** for your preferred version from the [releases page](https://github.com/OrcaSlicer/OrcaSlicer/releases).
- *For convenience there is also a portable build available.*
<details>
<summary>Troubleshooting</summary>
- *If you have troubles to run the build, you might need to install following runtimes:*
- [Alternative Download Link Hosted by Microsoft](https://aka.ms/vs/17/release/vc_redist.x64.exe)
- This file may already be available on your computer if you've installed visual studio. Check the following location: `%VCINSTALLDIR%Redist\MSVC\v142`
</details>
Windows Package Manager
```shell
winget install --id=SoftFever.OrcaSlicer -e
```
## Mac
1. Download the DMG for your computer: `arm64` version for Apple Silicon and `x86_64` for Intel CPU.
2. Drag OrcaSlicer.app to Application folder.
3.*If you want to run a build from a PR, you also need to follow the instructions below:*
<details>
<summary>Quarantine</summary>
- Option 1 (You only need to do this once. After that the app can be opened normally.):
- Step 1: Hold _cmd_ and right click the app, from the context menu choose **Open**.
- Step 2: A warning window will pop up, click _Open_
- Option 2:
Execute this command in terminal:`xattr -dr com.apple.quarantine /Applications/OrcaSlicer.app`
- You can install most of them by running `brew install cmake gettext libtool automake autoconf texinfo`
- run `build_release_macos.sh`
- To build and debug in XCode:
- run `XCode.app`
- open ``build_`arch`/OrcaSlicer.xcodeproj``
- menu bar: Product => Scheme => OrcaSlicer
- menu bar: Product => Scheme => Edit Scheme...
- Run => Info tab => Build Configuration: `RelWithDebInfo`
- Run => Options tab => Document Versions: uncheck `Allow debugging when browsing versions`
- menu bar: Product => Run
## Linux
- Ubuntu
- Dependencies **Will be auto installed with the shell script**: `libmspack-dev libgstreamerd-3-dev libsecret-1-dev libwebkit2gtk-4.0-dev libosmesa6-dev libssl-dev libcurl4-openssl-dev eglexternalplatform-dev libudev-dev libdbus-1-dev extra-cmake-modules libgtk2.0-dev libglew-dev libudev-dev libdbus-1-dev cmake git texinfo`
- run 'sudo ./BuildLinux.sh -u'
- run './BuildLinux.sh -dsir'
### Flathub (Recommended)
OrcaSlicer is available through FlatHub:
<a href='https://flathub.org/apps/com.orcaslicer.OrcaSlicer'><img width='240' alt='Download on Flathub' src='https://dl.flathub.org/assets/badges/flathub-badge-en.png'/></a>
# Note:
If you're running Klipper, it's recommended to add the following configuration to your `printer.cfg` file.
Install from the command line:
```shell
flatpak install flathub com.orcaslicer.OrcaSlicer
flatpak run com.orcaslicer.OrcaSlicer
```
It can also be installed through graphical software managers (KDE Discover, GNOME Software, etc.) when Flathub is enabled. Search for **OrcaSlicer** in your software center.
### AppImage
1. Download App image from the [releases page](https://github.com/OrcaSlicer/OrcaSlicer/releases).
2. Double click the downloaded file to run it.
3. If you run into trouble executing it, try this command in the terminal:
All updated build instructions for Windows, macOS, and Linux are now available on the official [OrcaSlicer Wiki - How to build](https://www.orcaslicer.com/wiki/how_to_build) page.
Please refer to the wiki to ensure you're following the latest and most accurate steps for your platform.
# Klipper Note
If you're running Klipper, it's recommended to add the following configuration to your `printer.cfg` file.
```gcode
# Enable object exclusion
[exclude_object]
@@ -101,57 +180,48 @@ resolution: 0.1
```
# Supports
**Orca Slicer** is an open-source project, and I'm deeply grateful to all my sponsors and backers.
Their generous support enables me to purchase filaments and other essential 3D printing materials for the project.
**OrcaSlicer** is an open-source project and I'm deeply grateful to all my sponsors and backers.
Their generous support enables me to purchase filaments and other essential 3D printing materials for the project.
OrcaSlicer is originaly forked from Bambu Studio, it was previously known as BambuStudio-SoftFever.
## Support me
Bambu Studio is forked from [PrusaSlicer](https://github.com/prusa3d/PrusaSlicer) by Prusa Research, which is from [Slic3r](https://github.com/Slic3r/Slic3r) by Alessandro Ranellucci and the RepRap community.
Orca Slicer incorporates a lot of features from SuperSlicer by @supermerill
Orca Slicer's logo is designed by community member Justin Levine(@freejstnalxndr)
Open-source slicing has always been built on a tradition of collaboration and attribution. [Slic3r](https://github.com/Slic3r/Slic3r), created by Alessandro Ranellucci and the RepRap community, laid the foundation. [PrusaSlicer](https://github.com/prusa3d/PrusaSlicer) by Prusa Research built on Slic3r and acknowledged that heritage. [Bambu Studio](https://github.com/bambulab/BambuStudio) in turn forked from PrusaSlicer, and [SuperSlicer](https://github.com/supermerill/SuperSlicer) by @supermerill extended PrusaSlicer with community-driven enhancements. Each project carried the work of its predecessors forward, crediting those who came before.
OrcaSlicer began in that same spirit, drawing from BambuStudio, PrusaSlicer, and ideas inspired by CuraSlicer and SuperSlicer. But it has since grown far beyond its origins. Through relentless innovation — introducing advanced calibration tools, precise wall and seam control, tree supports, adaptive slicing, and hundreds of other features — OrcaSlicer has become the most widely used and actively developed open-source slicer in the 3D printing community. Many of its innovations have been adopted by other slicers, making it a driving force for the entire industry.
The OrcaSlicer logo was designed by community member Justin Levine (@freejstnalxndr).
# License
OrcaSlicer is licensed under the GNU Affero General Public License, version 3. Orca Slicer is based on Bambu Studio by BambuLab.
Bambu Studio is licensed under the GNU Affero General Public License, version 3. Bambu Studio is based on PrusaSlicer by PrusaResearch.
PrusaSlicer is licensed under the GNU Affero General Public License, version 3. PrusaSlicer is owned by Prusa Research. PrusaSlicer is originally based on Slic3r by Alessandro Ranellucci.
Slic3r is licensed under the GNU Affero General Public License, version 3. Slic3r was created by Alessandro Ranellucci with the help of many other contributors.
The GNU Affero General Public License, version 3 ensures that if you use any part of this software in any way (even behind a web server), your software must be released under the same license.
Orca Slicer includes a pressure advance calibration pattern test adapted from Andrew Ellis' generator, which is licensed under GNU General Public License, version 3. Ellis' generator is itself adapted from a generator developed by Sineos for Marlin, which is licensed under GNU General Public License, version 3.
The bambu networking plugin is based on non-free libraries from Bambulab. It is optional to the Orca Slicer and provides extended functionalities for Bambulab printer users.
- **OrcaSlicer** is licensed under the GNU Affero General Public License, version 3.
- The **GNU Affero General Public License**, version 3 ensures that if you use any part of this software in any way (even behind a web server), your software must be released under the same license.
- OrcaSlicer includes a **pressure advance calibration pattern test** adapted from Andrew Ellis' generator, which is licensed under GNU General Public License, version 3. Ellis' generator is itself adapted from a generator developed by Sineos for Marlin, which is licensed under GNU General Public License, version 3.
- The **Bambu networking plugin** is based on non-free libraries from BambuLab. It is optional to the OrcaSlicer and provides extended functionalities for Bambulab printer users.
POLICY: Our security policy is to avoid leaving the ecosystem worse than we found it. Meaning we are not planning to introduce vulnerabilities into the ecosystem.
The OrcaSlicer team and community take all security bugs in OrcaSlicer seriously. Thank you for improving the security of OrcaSlicer. We appreciate your efforts to disclose the issue responsibly, and will make every effort to acknowledge your contributions.
# Security Policy
Report security bugs by emailing the lead maintainer at softfeverever@gmail.com and include the word "SECURITY" in the subject line.
At OrcaSlicer, we are committed to maintaining the security of our ecosystem. Our policy is to ensure that we do not introduce vulnerabilities and that any security issues are addressed promptly and responsibly. We appreciate your help in improving the security of OrcaSlicer and thank you for your responsible disclosure.
Reporting Security Bugs
The lead maintainer will acknowledge your email within a week (7 days), and will send a more detailed response up to 48 hours after that indicating the next steps in handling your report. After the initial reply to your report, the security team will endeavor to keep you informed of the progress towards a fix and an announcement. We may ask for additional information or guidance.
## To report a security bug, please follow these guidelines:
OrcaSlicer will confirm the problem and determine the affected versions.
OrcaSlicer will audit code to find any similar problems.
OrcaSlicer will prepare fixes for all releases still under maintenance. These fixes will be released as fast as possible.
Report security bugs in third-party modules to the person or team maintaining the module.
* Email Security Bugs:
Send an email to the lead maintainer at softfeverever@gmail.com.
Include the word "SECURITY" in the subject line of your email.
SECURITY DISCLOSURE: Your responsibility is to report vulnerabilities to us using the guidelines outlined below.
Please give detailed steps on how to disclose the vulnerability. Keep these OWASP guidelines in mind ( https://www.owasp.org/index.php/Vulnerability_Disclosure_Cheat_Sheet ) when creating your disclosure policy.
* Response Times:
The lead maintainer will acknowledge receipt of your email within one week (7 days).
A detailed response will follow within 48 hours, outlining the next steps for handling your report.
After the initial reply, the security team will keep you informed about the progress toward a fix and any announcements.
Below are some recommendations for security disclosures:
* Information and Collaboration:
We may request additional information or guidance as we work on addressing the issue.
When disclosing vulnerabilities please do the following:
Your name and affiliation (if any).
Include scope of vulnerability. Let us know who could use this exploit.
Document steps to identify the vulnerability. It is important that we can reproduce your findings.
Show how to exploit vulnerability, give us an attack scenario.
OrcaSlicer Checklist: Security Recommendations
Follow these steps to improve security when using OrcaSlicer.
* Handling the Report:
OrcaSlicer will confirm the problem and determine the affected versions.
We will audit the code to find any similar issues and prepare fixes for all releases still under maintenance.
Fixes will be released as quickly as possible.
...SEE SOMETHING
...SAY SOMETHING
1)...SEE SOMETHING
We suggest you goto #2 if this happens.
* Third-Party Modules:
Report security issues in third-party modules to the respective maintainer of those modules.
Why? Through experience we have found it is best to goto #2 in this situation.
## Security Disclosure Guidelines
When disclosing a vulnerability, please follow these steps to ensure your report is clear and actionable:
* Provide Detailed Information:
Scope: Clearly define the scope of the vulnerability.
Potential Impact: Let us know who could be affected by this exploit.
Reproduction Steps: Document detailed steps to reproduce the vulnerability.
Reference OWASP Guidelines:
Follow the <a href="https://cheatsheetseries.owasp.org/cheatsheets/Vulnerability_Disclosure_Cheat_Sheet.html">OWASP Vulnerability Disclosure Cheat Sheet</a> for best practices in vulnerability disclosure.
## Security Recommendations
To enhance security when using OrcaSlicer, we recommend following these steps:
* SEE SOMETHING: If you notice anything suspicious or have concerns, please report it.
* SAY SOMETHING: If you have any doubts or need assistance, do not hesitate to contact us.
### Thank you for your commitment to the security of OrcaSlicer. Your efforts help us maintain a safe and reliable ecosystem.
echo" -u: install system dependencies (asks for sudo password; build prerequisite)"
echo" -l: use Clang instead of GCC (default: GCC)"
echo" -L: use ld.lld as linker (if available)"
echo"For a first use, you want to './${SCRIPT_NAME} -u'"
echo" and then './${SCRIPT_NAME} -dsi'"
echo"For a GitHub Actions-like Linux build locally, use './${SCRIPT_NAME} -g -istrlL'"
echo"Use './${SCRIPT_NAME} -gF -istrlL' to rebuild the cached runner image first."
echo"Set ORCA_CONTAINER_CLI, ORCA_DOCKER_IMAGE, ORCA_DOCKER_BASE_IMAGE, or ORCA_DOCKER_CMAKE_VERSION to override the container runtime, cached image tag, base image, or CMake version."
if ! curl -fsSL "https://github.com/Kitware/CMake/releases/download/v${CMAKE_VERSION}/cmake-${CMAKE_VERSION}-linux-${cmake_arch}.tar.gz" | tar -xz -C /opt ; then \
echo "Warning: failed to install CMake ${CMAKE_VERSION}; falling back to the distro cmake package." ; \
option(DEP_DEBUG"Build debug variants (only applicable on Windows)"OFF)
option(ORCA_INCLUDE_DEBUG_INFO"Includes debug information in a release build (like RelWithDebInfo) in a way that works with multi-configuration generators and incompatible dependencies. DEP_DEBUG option takes priority over this."OFF)
option(AUTO_DEBUG_WORKAROUND"Automatically sets DEP_DEBUG and ORCA_INCLUDE_DEBUG_INFO based on CMAKE_BUILD_TYPE"ON)
if(AUTO_DEBUG_WORKAROUND)
set(DEP_DEBUGOFF)
set(ORCA_INCLUDE_DEBUG_INFOOFF)
if(CMAKE_BUILD_TYPESTREQUAL"Debug")
set(DEP_DEBUGON)
message(STATUS"DEP_DEBUG has been automatically turned ON due to CMAKE_BUILD_TYPE being set to Debug")
elseif(CMAKE_BUILD_TYPESTREQUAL"RelWithDebInfo")
set(ORCA_INCLUDE_DEBUG_INFOON)
message(STATUS"ORCA_INCLUDE_DEBUG_INFO has been automatically turned ON due to CMAKE_BUILD_TYPE being set to RelWithDebInfo")
endif()
endif()
endif()
if(CMAKE_SYSTEM_NAMESTREQUAL"Linux")
option(DEP_WX_GTK3"Build wxWidgets against GTK3"OFF)
else()
if(POLICYCMP0135)# DOWNLOAD_EXTRACT_TIMESTAMP
cmake_policy(SETCMP0135NEW)
endif()
option(DEP_WX_GTK3"Build wxWidgets against GTK3"ON)
endif()
set(IS_CROSS_COMPILEFALSE)
if(APPLE)
list(LENGTHCMAKE_OSX_ARCHITECTURES_arch_len)
if(_arch_lenGREATER1)
message(FATAL_ERROR"OrcaSlicer only supports building for one architecture at a time. Please make sure only one architecture is specified in CMAKE_OSX_ARCHITECTURES")
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.