Compare commits

...

63 Commits

Author SHA1 Message Date
Mitchell Mashburn
af9fd10d7a re:3D profile updates. (#15169)
* re:3D profile updates.

- Replace vendor-specific "re3D Greengate rPETG" filament with a generic "re3D rPETG" (base + @0.8/@1.75 nozzle variants), matching the naming convention used for rPLA/rPETG elsewhere in the re:3D vendor
  pack.
- Add fdm_filament_pp as a proper filament-type parent and switch re3D rPP to inherit from it instead of overriding filament_type on top of fdm_filament_pet.
- Added filament_type to the specific printer JSON file and removed from the base printer JSON file [fixes Issue#14693]
- Updates to speeds and accelerations for re:3D profiles, moved from common to machine processes [closed: PR#14259]
- Updates to fdm profile filename format so that it lists the filename and extruder number in the sliced .gcode file

* Fix setting IDs

* Add rename from for changed material names.
2026-08-08 01:07:03 +08:00
Kris Austin
74aed7a2bb test: finish the temp-file cleanup (#14976)
Follow-up to #14785. Routes the tests that still hand-rolled temp paths through
the shared helpers and unifies the temp guards.

- Add ScopedTemporaryDir and a shared ScopedTemporaryPath base under it and
  ScopedTemporaryFile.
- Move test_3mf's round-trip .3mf output out of the TEST_DATA_DIR source tree
  (a fixed-name leak) and test_toolordering's fixed-name temp .gcode (a sharding
  collision) onto ScopedTemporaryFile.
- Move test_config, test_slicing_pipeline_bindings, the test_3mf backup dirs, and
  test_preset_bundle_loading onto the guards.
- Make slic3rutils ScopedDataDir compose ScopedTemporaryDir; dedupe
  test_network_versions' fixture and delete test_plugin_lifecycle's duplicate.
2026-08-07 13:33:37 -03:00
Kris Austin
8bff9aaf32 fix(GUI): honor "Ignore" when layer height exceeds the configured maximum (#14369)
* fix(GUI): honor "Ignore" when layer height exceeds the configured maximum

Entering a layer height above the printer's max_layer_height on the Print
Settings tab fired two guards in sequence. Tab::on_value_change prompts
"...Adjust to the set range automatically?" with an Adjust/Ignore choice, and
ConfigManipulation::update_print_fff_config then showed an OK-only "Too large
layer height. Reset to X" dialog whose result was never checked, so it always
reset the value. The second guard overrode the user's "Ignore", resetting the
layer height regardless.

Changes:
- Extract the shared Adjust/Ignore dialog into
  ConfigManipulation::layer_height_out_of_range_dialog, reused by the tab
  (Tab::on_value_change) and the per-object/part settings panels. The dialog now
  names the value it will clamp to and reads correctly for too-low as well as
  too-high.
- The tab/plate path is already covered by Tab::on_value_change, so the
  duplicate reset is dropped from update_print_fff_config.
- The per-object/part panels have no on_value_change hook, so add
  ConfigManipulation::check_object_layer_height and call it from the object
  settings update paths, gated on the edited option (changed_opt_key ==
  "layer_height"). It prompts once per layer-height edit and does not re-prompt
  when unrelated object settings change after the user chose "Ignore".

Fixes #14214

* refactor(GUI): unify the layer-height range check across tab and object panels

Copilot review of #14369 noted that the per-object check only guarded the
max at extruder 0 and skipped the too-low case, diverging from the tab.

Move the whole range check into ConfigManipulation::check_layer_height,
used by both Tab::on_value_change and the per-object/part panels. It takes
the widest [min, max] window across the printer's extruders, offers
Adjust/Ignore in both directions, and resets a near-zero value. The tab's
inline block collapses to one call, dropping the duplicated limit logic.

* fix(GUI): only enforce layer-height limits that are actually set

max_layer_height defaults to 0 (unset), so the unconditional range check
offered to clamp any layer height to 0 on presets that don't define it.
Guard each branch (near-zero, too-high, too-low) so an unset limit disables
that direction; the slice-time nozzle-diameter check still applies.

Also run check_layer_height before update_print_fff_config in the object
panels so a near-zero per-object value prompts the same way the tab does,
with update_print_fff_config's fallback still covering the no-minimum case.
2026-08-07 13:31:04 -03:00
Kris Austin
83723e2a7b fix: Slice all crash on a multi-plate project with an uninitialized toolbar (#15117)
_update_select_plate_toolbar_stats_item(true) runs from
on_action_slice_all before the select-plate toolbar has necessarily been
initialized. m_all_plates_stats_item is only assigned in
_init_select_plate_toolbar, so slicing a multi-plate project shortly
after startup (before the Preview tab has rendered) leaves the pointer
null while show_stats_item is true, and the branch dereferences it,
crashing with SIGSEGV.

Every other dereference of this pointer already null-checks it. Add the
same check here so the all-plates stats item is left unselected until the
toolbar is initialized instead of crashing.

Fixes #15116
2026-08-07 13:28:54 -03:00
Kris Austin
e2fd46f82c fix: default-initialize WallToolPathsParams fields (#15138)
min_length_factor and is_top_or_bottom_layer had no default initializers, and the FillConcentric/FillConcentricInternal callers never set them, so WallToolPaths::removeSmallLines() thresholded on stack garbage. Which short extrusion lines it dropped then depended on memory layout, so concentric solid-infill output was nondeterministic between runs and across machines. Give every member a default, matching the adjacent FillParams. The perimeter path was already fine because it builds the struct via make_paths_params().
2026-08-07 13:22:26 -03:00
TheLegendTubaGuy
b216813bf0 Add the Qidi Plus 5 (#15163)
* Add the Qidi Plus 5

* Remove ignored profiles

Qidi didn't register these, so they are essentially dead weight.

* Set Qidi profile version to 02.04.00.10
2026-08-07 13:07:27 -03:00
Felix14_v2
b3296fa199 Review AI changes in Russian localization (#15092)
* Review AI changes

* Part 2

* Part 3

* Part 4

God bless Ian Alexis

* Part 5

* Final part!

* Catches by Gemma

This 6-minute check probably saved me a week

* Tweak

* Update OrcaSlicer_ru.po
2026-08-07 12:03:53 -03:00
Surfoo
6d9a9eeb04 i18n(fr): improve French localization quality and consistency. (#15106) 2026-08-07 09:31:57 -03:00
Clifford
8e243faa3a Fix Linux unit test failure in the wipe tower temperature trace comparison (#15161)
## Problem

`Toolchange temperature commands are unchanged when the wipe tower wait
is off`
(added in #15144) fails on both Linux runners and passes on Windows and
macOS.
It is the only failing test in the suite, and it has been failing on
main since
that PR merged.

| Job | Result |
| --- | --- |
| Windows x64 / Unit Tests | pass |
| Windows arm64 / Unit Tests | pass |
| macOS arm64 / Unit Tests | pass |
| Linux x86_64 / Unit Tests | **fail** |
| Linux aarch64 / Unit Tests | **fail** |

From the merge commit
([Linux
x86_64](https://github.com/OrcaSlicer/OrcaSlicer/actions/runs/31072382258/job/92531704095),
[Linux
aarch64](https://github.com/OrcaSlicer/OrcaSlicer/actions/runs/31072382258/job/92531704075)),
still reproducing on current main:

```
first difference at trace entry 29
  main:   M104 S240 T0 ; preheat T0 time: 31s	lead 30.9s
  branch: M104 S240 T0 ; preheat T0 time: 30s	lead 30.3s
```

## Cause

Each preheat entry records the same quantity twice: `lead` at one
decimal, and
`time:` inside the command text as that value rounded to a whole second.

`split_lead` already compares `lead` with a 0.5s tolerance and explains
why the
estimate moves. `time:` sits in the exactly-compared command text, so it
never
got that tolerance — and being rounded, it flips on a drift far below
0.5s
(30.4 and 30.6 render as `30s` and `31s`). Entry 29 is the only entry in
the
163-entry golden whose lead rounds up; every other preheat sits at
30.0–30.4 and
rounds down, which is why it is the only one that fails.

The variation is per-toolchain, not run to run. Both Linux arches
produce
exactly `lead 30.3s`; Windows x64/arm64 and macOS arm64 all produce
exactly
`30.9s`. Repeated local runs are byte-identical. macOS arm64 passing
while Linux
aarch64 fails rules out the ISA — it is floating-point accumulation over
a few
thousand move durations under GCC vs Clang vs MSVC.

The mechanism makes it discrete rather than gradual: the backtrace parks
the
preheat at the first exported line at least `preheat_time` before the
tool
change, so `lead` is `preheat_time` plus the leftover of whichever move
that
landed on. A sub-tenth difference selects the neighbouring move and
`lead` steps
by that move's whole duration.

Entries 1–28 match exactly, including five earlier preheats whose leads
fall
inside the existing tolerance, so the toolpaths themselves are
identical. I also
reverted the two prime-tower commits that landed between the golden's
capture
point and now, rebuilt, and got a byte-identical trace — this is not
behavioural
drift.

That also rules out regenerating the golden: no single capture satisfies
all
three toolchains, and recapturing on Linux would turn the three
currently-green
runners red.

## Fix

Test-only.

- `lead` keeps a tolerance, widened to 1.5s (measured drift 0.6s; a
preheat
actually leaving its backtrace position would move by tens of seconds).
- `time:` is **not** compared across runs at all. Being a rounding of
`lead`, it
carries nothing the tolerance does not already cover, and comparing it
across
runs can only reproduce the flake. It is instead checked against its own
  entry's `lead` — a correct rounding keeps `|time - lead| <= 0.5`.

That second point matters: simply tolerating `time:` numerically would
have made
the test blind to a real change, because drift and a wrong rounding both
move it
by 1. The self-consistency check keeps that coverage. I verified it by
changing
`(int) std::round(time_diffs[0])` to `(int) time_diffs[0]` in
`GCodeProcessor::export_lines` — the test fails with
`"time:" is not its entry's "lead" rounded to a whole second`, where a
plain
tolerance would have passed silently.

Everything else is still compared exactly: all M104/M109 values, tool
ids,
block markers, ordering, entry count, and the annotation text including
its
trailing `s`. The other 138 entries remain byte-exact.

No production code, no golden regeneration. The golden file and these
helpers
are used by this one test and nothing else, and the tolerance only
widens, so
Windows and macOS keep passing unchanged. A note is added to the
golden's header
so the next mismatch in those fields is not "fixed" by recapturing.

## How to verify

Before, on Linux:

```bash
git checkout main && ./build_linux.sh -t
ctest --test-dir build/tests -R "Toolchange temperature commands are unchanged" --output-on-failure
# fails at trace entry 29
```

After:

```bash
cmake --build build --config Release --target fff_print_tests
ctest --test-dir build/tests --output-on-failure     # 463/463
```
2026-08-07 20:26:18 +08:00
Alexandre Folle de Menezes
b5412221b6 Verify and improve AI pt_BR translations (#15080) 2026-08-07 09:22:42 -03:00
Kiss Lorand
f444176df8 Fix Windows crash after using "Replace all with 3D files" (#15102)
Fix Windows crash in Replace all with 3D file

Keep the replacement result message as wxString and substitute the volume
name directly.

On Windows, wxString::ToStdString() cannot encode the Unicode status icon
through the active ANSI code page and returns an empty string. Passing that
empty string to boost::format with a volume-name argument throws
boost::too_many_args and exits OrcaSlicer.
2026-08-07 17:13:25 +08:00
Ian Bassi
a684c6daf6 Bump Creality (#15157)
To apply https://github.com/OrcaSlicer/OrcaSlicer/pull/14654
2026-08-06 18:44:40 -03:00
TheLegendTubaGuy
7f10c73dce Fix redundant QIDI startup tool changes (#15096)
* Fix redundant QIDI startup tool changes

Guard Q2, X-Max 4, and X-Plus 4 filament-change G-code so same-tool startup selections do not run the full cut, unload, and purge sequence.

* Guard Q2C against redundant startup tool changes

Skip the complete filament-change sequence when the requested tool is already selected during startup.

* Bump Qidi profile version
2026-08-06 18:26:42 -03:00
yw4z
945520b827 QOL Add parent preset information next to detach preset checkbox and match checkbox style on Save Preset dialog (#15076)
init
2026-08-06 22:58:39 +08:00
Kiss Lorand
b281c91b99 Fix ignored filament-specific ironing speed override (#15082)
Fix overridden ironing speed

Use filament_ironing_speed for the active filament when configured, falling back to the process setting when unset.
2026-08-06 22:54:11 +08:00
Ian Bassi
b57d7a67e2 Regression version for Bug report (#15139) 2026-08-06 22:43:37 +08:00
SoftFever
18ca06ec6b Size the prime tower from the actual flush volumes (#15149)
# 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?
-->

The prime tower reserved its footprint from the prime volume alone,
ignoring the flush volumes it actually has to hold, so on a multi-colour
print the tower shown in Prepare and the space kept clear for it during
arrange could be far smaller than the tower that gets sliced — leaving
it overlapping objects or running off the plate. This sizes the estimate
from the configured flush volumes instead, for rib walls as well as
rectangle and cone, applies the same height-based minimum depth the
prime-volume estimate already used, and reads the flush matrix correctly
on multi-nozzle printers, where it holds one block per nozzle.

Only the pre-slice estimate changes: the generated tower is untouched,
and prints that do not purge into the prime tower keep their existing
size.

# 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.
-->

<!--
> 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)
2026-08-06 18:17:05 +08:00
SoftFever
32a4e0fb37 Size the prime tower from the actual flush volumes
Prime towers reserved depth from the prime volume alone, ignoring the flush
matrix: rib-wall towers in both the engine and the preview, and rectangle and
cone towers in the preview, which never carried the flush-aware estimate the
engine already used. The preview also read the print preset, which does not
carry the printer- and filament-scope keys the estimate needs and so silently
fell back to defaults. On multi-nozzle printers the flush matrix, which holds
one block per nozzle, was additionally read as a single block. The tower could
come out too small for the purge it has to hold.

The flush-based estimate also skipped the height-based minimum depth that the
prime-volume one applies, so low-flush prints could estimate a tower shallower
than the one that actually gets built.
2026-08-06 17:58:41 +08:00
SoftFever
f9ed5843c0 Keep the prime tower and its approach travel on non-rectangular beds (#15146)
# 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?
-->

On delta, circular and custom bed shapes — and on multi-nozzle printers
where each carriage only reaches part of the plate — the prime tower was
positioned and clamped against the bed's bounding box, so it could be
parked in a corner the bed does not actually have. Neither the default
placement nor dragging the tower would pull it back onto the bed, and
slicing went ahead without complaint. The tower's default position, its
drag clamp and the slice-time validation now all follow the real
printable outline, and a tower that genuinely does not fit is reported
as "Prime Tower is partially outside the printable area" instead of
being sliced into a print that cannot be produced.

The travel that approaches the tower is planned against that same
outline. Previously the router gave up whenever its clearance box fell
outside the bed and drove the nozzle straight across the tower; a tower
parked near the bed edge now keeps its detour and enters through the
wall opening as intended.

This also corrects the footprint the prime tower validation uses for a
rotated tower, which was being rotated by the wrong amount and about the
wrong point, so proximity warnings and exclusion-area errors for rotated
towers were being computed against the wrong shape.

Prime tower placement on rectangular beds is unchanged. The new
printable-area validation and the tower-approach routing fix apply to
every bed shape.

# 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 unit coverage for the placement clamp against a non-rectangular
outline (a regular hexagon standing in for the shipped delta beds),
covering the rectangular-bed path, single-axis clamping while dragging,
a footprint already inside the outline, one sitting in the bounding-box
corner but off the bed, an unresolved auto brim width arriving as a
negative margin, and a footprint too large for the bed. The `fff_print`
suite passes.

<!--
> 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)
2026-08-06 16:09:56 +08:00
SoftFever
7c73739e1a Keep the prime tower and its approach travel on non-rectangular beds
The placement clamps and the tower-approach router both stood in the bed's
bounding box for the bed itself, so on a delta or hexagonal bed the prime tower
could be parked in a corner that does not exist and the nozzle could be routed
across it. Both now test the real printable outline, slicing reports a tower
that does not fit instead of printing it off the bed, and a tower parked near an
edge is routed along the clamped side rather than falling back to a straight
line across the tower.

Also fixes the placement validation rotating the tower hull by degrees read as
radians about the plate origin, and never rotating the generated tower footprint
at all.
2026-08-06 15:48:40 +08:00
SoftFever
aa4e28b2b5 Feature: Wait for the toolchange temperature on the wipe tower (#15144)
# 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?
-->

Adds **Wait for temperature on wipe tower**, a printer option for
multi-extruder
machines using a Type 2 wipe tower. With it on, the new tool is picked
up without a
blocking temperature wait; the printer travels to the wipe tower and
waits there
right before purging, parked beside the tower so the ooze from the
heat-up lands
next to it rather than on the model. The incoming filament's target is
raised ahead
of the tool change, so the heat-up overlaps both the change itself and
the travel to
the tower.

The benefit is less oozing and less dead time. The tool no longer sits
at full print
temperature while it waits to be picked up or right after it undocks —
it heats on
the move and only reaches temperature once it is over the tower, so
there is far less
hot-and-idle time, and what does ooze ends up beside the tower. This
matters most on
tool changer printers with long docking and attaching cycles, such as
Tapchanger and
StealthChanger machines, where that wait is otherwise pure stall time
spent dripping.

The firmware or tool change macro must not wait for the temperature
itself. The
option is off by default and only shown for multi-extruder printers on a
Type 2 wipe
tower, and it is enabled by default for the generic toolchanger profile.

# 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.
-->

New Catch2 cases in `tests/fff_print/test_multifilament.cpp`: the wait
moves to the
tower when enabled, priming pre-heats to the first layer temperature,
the park side
is regenerated when the tower is moved or rotated, and a regression test
pinning the
unchanged (option-off) toolchange temperature commands against a
recorded trace
(`tests/data/wipe_tower_temperature_trace_main.txt`).

<!--
> 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)
2026-08-06 13:32:35 +08:00
SoftFever
408db4b3b0 Wait for the toolchange temperature on the wipe tower
Adds a printer option that picks up the new tool without a blocking temperature
wait, travels to the wipe tower, and waits there right before purging, parked
beside the tower so the ooze from the heat-up lands next to it rather than on the
model. The incoming filament's target is raised ahead of the tool change, so the
heat-up overlaps both the change itself and the travel to the tower.

Off by default, and only offered for multi-extruder printers using a Type 2 wipe
tower; the generic toolchanger profile enables it.
2026-08-06 12:24:00 +08:00
Alexander Haibl
b97ca3c0ac disable arc_fitting for K1 potato mcu (#14654) 2026-08-05 16:25:34 -03:00
Dipl.-Ing. Raoul Rubien, BSc
f73566dd2b Fixes 1 Technical Debt and 3 Compiler Warnings [-Wclass-memaccess] (#10707)
* fixes: memcpy(...) writing to an object of type OrientParams with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess]

* review result: replaces anonymous namespace with static
2026-08-05 21:45:48 +08:00
Dipl.-Ing. Raoul Rubien, BSc
7fbfb7ba87 Fixes 14 Compiler Warnings [-Wmaybe-uninitialized] (#10778)
* fixes: may be used uninitialized [-Wmaybe-uninitialized]

* fixes: may be used uninitialized [-Wmaybe-uninitialized]

* fixes: may be used uninitialized [-Wmaybe-uninitialized]

* fixes: may be used uninitialized [-Wmaybe-uninitialized]

* reverts {} initializer to = to keep code style consistent
2026-08-05 21:42:15 +08:00
Dipl.-Ing. Raoul Rubien, BSc
23bd320076 Fixes 2 Bugs and 13 Compiler Warnings (#10670)
* fixes: %g directive writing between 1 and 13 bytes into a region of size between 6 and 18 [-Wformat-overflow=]

* fixes: %5s directive writing between 5 and 63 bytes into a region of size 58 [-Wformat-overflow=]

* fixes: catching polymorphic type by value [-Wcatch-value=]

* fixes: [-Wcomment]; removes whitespaces

* increases buffer size from 71B to 90B to avoid potential ovfl.
2026-08-05 21:41:04 +08:00
SoftFever
a10d9e77cf Make the wipe tower's planner flush and dwell work on Klipper (#15133)
# Description

On Klipper the wipe tower's motion-queue synchronization silently did
nothing. Klipper acts on commands the moment it parses them, and its
`G4` reads only `P` in milliseconds — it ignores `S` — so the `G4 S0`
the tower used to flush the queue before a temperature change never
synchronized anything, and the cooling delay after a filament's cooling
moves passed instantly instead of waiting. The tower now emits `M400`
for the flush and `G4 P<ms>` for the dwell when the flavor is Klipper.

Only `gcode_flavor = klipper` is affected; G-code for every other flavor
is byte-identical, so no shipped profile or existing project file
changes.

# 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.
-->

<!--
> 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)
2026-08-05 18:21:05 +08:00
SoftFever
1d023216f2 clean up 2026-08-05 18:09:36 +08:00
SoftFever
dc2796209f feat: printer agent UI (#15111)
# Description

Changes the device tab to render native wxWidgets UI and route the UI
via printer agents.

When the flag introduced in #15110 is enabled, the tab bar will show
both the native wxWidgets device tab and webview tab under the name
device (legacy)

This is a prerequisite for implementing the printer agent workflow.

<img width="3377" height="1378" alt="image"
src="https://github.com/user-attachments/assets/d72b646b-e6c6-4e10-b5d4-fc989debfca8"
/>
<img width="3377" height="1378" alt="image"
src="https://github.com/user-attachments/assets/2356c0f8-bffe-4cd5-bf4d-31f4b5c7706e"
/>

<!--
> 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)
2026-08-05 17:25:23 +08:00
SoftFever
194ef34080 Wait in the wipe tower with a millisecond dwell on Klipper
The wipe tower's "Delay after unloading" never happened on Klipper. It was
emitted as G4 S<seconds>, and Klipper's G4 reads only the P parameter, in
milliseconds, so the pause was silently skipped. The option now produces a
dwell Klipper actually performs.

Also corrects the planner flush rationale, which cited an extruder position
reset that Klipper resolves at parse time and does not need synchronized, and
adds end-to-end coverage that slices a two-filament print and checks the
emitted wipe tower G-code on both a Klipper and a non-Klipper flavor.

No change to any other firmware flavor's output, and no shipped profile sets a
non-zero delay, so no shipped profile's output moves either.
2026-08-05 17:15:35 +08:00
SoftFever
4e1caa39eb Flush the wipe tower planner queue with M400 on Klipper
The wipe tower emitted G4 S0 to make the firmware finish its queued moves
before commands that must not take effect early. Klipper's G4 reads only the
P parameter, so that flush never happened there and a temperature change could
land seconds ahead of the moves it was meant to follow. Klipper now gets M400
instead, through one helper shared by both wipe tower implementations.

No change to any other firmware flavor's output, so no shipped profile or saved
project is affected.
2026-08-05 17:15:35 +08:00
Ian Chua
38f5c84e7f fix: regression error 2026-08-05 16:20:58 +08:00
Ian Chua
4d8ce0e8a7 Merge branch 'main' into feat/printer-agent-ui 2026-08-05 13:40:20 +08:00
Ian Chua
38cb1ae8d1 Add developer flag for printer agents (#15110) 2026-08-05 13:40:05 +08:00
Ian Chua
32f82b64e7 fix: enable both device tabs 2026-08-05 13:07:32 +08:00
Ian Chua
e56d7aeb80 Merge branch 'feat/printer-agent-ui' of https://github.com/OrcaSlicer/OrcaSlicer into feat/printer-agent-ui 2026-08-05 13:07:08 +08:00
Ian Chua
4758dc6c68 Merge branch 'main' into feat/printer-agent-ui 2026-08-05 13:06:47 +08:00
Ian Chua
596cbb8b2d Keep printer-agent error codes available to UI workflow 2026-08-05 11:39:37 +08:00
SoftFever
6312caaf13 Add filament_retract_length_toolchange/filament_retract_restart_extra_toolchange config and update tool changer printer's profiles (#15039)
* update snapmaker profiles. largely ported for Snapmaker Orca fork

* update prime volume

* set precise_outer_wall to 1

* Update per-material multi-tool ramming to the filament library

* Add per-filament overrides for toolchange retraction

* Set toolchange retraction per filament for Snapmaker U1

* set default support type to tree

* format snapmaker profiles
2026-08-05 00:13:27 +08:00
SoftFever
0051768206 Smooth out the spiral lift when arc fitting is disabled (#15118)
The linear approximation used a heuristic segment count clamped to 4..16, so the
lift ran as a coarse polygon. Every vertex is a direction change large enough to
hit the firmware's jerk limit, forcing a decelerate/accelerate at each corner —
the lift micro-stutters instead of running at speed. The segment count now comes
from the chord deviation against the slicing resolution, reusing
Geometry::ArcWelder::arc_discretization_steps, which keeps the turn at each
vertex shallow enough for the firmware to carry speed through the whole move.

Points are emitted through GCodeG1Formatter so they carry the same quantization
as the rest of the G-code, and the move comment now trails the feedrate line to
match _travel_to_z and the G2/G3 branch. No change when arc fitting is enabled.
2026-08-05 00:09:46 +08:00
Ian Bassi
1d078e005a Mouse ear Wiki redirect (#15115)
Based in https://github.com/OrcaSlicer/OrcaSlicer/pull/15015 and https://github.com/OrcaSlicer/OrcaSlicer_WIKI/pull/323
2026-08-04 11:37:05 -03:00
Kris Austin
82759d3899 fix: make the error dialog caret point at the character it's blaming (#14886)
* fix: make the error dialog caret point at the character it's blaming

Custom G-code parse errors print the offending line with a '^' under the
character that broke, positioned with spaces so it only lines up in a
fixed-width font. Since v2.3.2 these dialogs rendered entirely in the
proportional UI font, so the caret drifted left of its column and landed
on unrelated text.

Render only the code excerpts (the offending source line and its caret) in
the fixed-width face, leaving the surrounding prose in the UI font, and
reserve the horizontal scrollbar's height so a long line does not clip.
Rename the flag to has_code_excerpts to match what it now means.

Fixes #14869

* refactor(GUI): use <code> instead of <tt> for error excerpts

wxHTML maps <tt>, <code>, <kbd> and <samp> to the same fixed-width
handler, so this renders identically. <code> is the non-deprecated
tag and matches what the original code used.

* fix(GUI): align the error caret with real spaces, not &nbsp;

The caret line was padded with &nbsp; so its spaces would survive inline
HTML. wxHTML measures every glyph by its font extent, so where the fixed
font lacks a U+00A0 glyph the fallback renders it about twice as wide, and
the all-&nbsp; caret line outran the source, drifting the ^ to the right.

Wrap the excerpts in a small <excerpt> tag, registered on the dialog's own
parser, that switches on wxHTML literal-whitespace mode so the caret uses
real spaces that match the source column in any font. It sits inside <code>
for the fixed face; <pre> would do both but forces a blank line above it.

---------

Co-authored-by: Noisyfox <timemanager.rick@gmail.com>
2026-08-04 22:01:45 +08:00
Ian Bassi
59155f26ac Build Arch Fix (#15107)
Arch Fix
2026-08-04 21:56:15 +08:00
Ian Chua
79dcace1ac Add unsupported-command feedback to the device UI 2026-08-04 21:26:50 +08:00
Andrew
8dfc7a14b9 Gate agent mode behind use_printer_agents toggle
Replace per-printer auto-activation
(is_current_printer_agent_plugin)
with a global experimental AppConfig
toggle, default off: legacy
print-host behavior is unchanged
until the user opts in. The toggle
drives device-tab routing, print
button defaults, connect-button
visibility and sidebar layout, and
dedups machine-select dialog opens.
2026-08-04 18:12:11 +08:00
Andrew
1534268183 Reset device selection on agent swap or unload (#124)
set_live_printer_agent centralizes
the swap: deselect the machine,
clear stale sidebar state and the
previous agent's Other Devices, then
install the new agent (or null when
its provider vanished). Plugin
load/unload callbacks refresh the
dropdown and re-run agent selection.
load_last_machine no longer falls
back to the first available machine.
2026-08-04 18:12:11 +08:00
Andrew
501af81ba9 Replace fake-enum printer agent dropdown (#121)
A dedicated PrinterAgentChoice field
reads rows straight from the live
agent registry and stores the agent
id string, replacing the fake-coEnum
index mapping. The field moves to
TabPrinter and registers with the
searcher so UnsavedChanges renders
it; the PhysicalPrinterDialog copy
and its update hook are removed
(#125). switch_printer_agent now
resolves ids via
resolve_printer_agent_id.
2026-08-04 18:12:10 +08:00
Ian Chua
16c44940d2 Add developer flag for printer agents 2026-08-04 18:12:10 +08:00
yw4z
40eab797c6 match em_unit value for on_dpi_change for linux (#15043)
* Update GUI_Utils.hpp

* Update GUI_Utils.hpp
2026-08-04 08:45:31 +08:00
Kiss Lorand
ca7fbfb007 Fix missing overhang wall when no partial counterbore bridge is generated (#15100) 2026-08-03 18:02:48 -03:00
Mikhail f. Shiryaev
7b404596e9 Add Skip G-code config block to exclude the config comments from G-code files (#12455)
Add feature to skip CONFIG_BLOCK in G-code files
2026-08-03 15:10:01 -03:00
Kris Austin
06ef58bad8 test: replace the disabled convex_hull_2d test (#14892)
test(libslic3r): replace the disabled convex_hull_2d test, closing #11269

The last "failing libslic3r test" from #11269 was the disabled
SCENARIO("2D convex hull of sinking object", "[3mf][.]") in test_3mf.cpp.
It checked ModelObject::convex_hull_2d for a sinking object against
PrusaSlicer's reference hull, but Orca's convex_hull_2d does not clip
geometry below the bed the way PrusaSlicer's its_convex_hull_2d_above does,
so the reference never matched. The test also wrote a debug mesh to a
hardcoded /tmp path and its comparison loop was inverted.

Remove it and add tests/libslic3r/test_model.cpp characterizing
convex_hull_2d on non-sinking transforms (identity and scale+offset),
where the projected footprint is unambiguous. Homed in a Model test file
since it exercises ModelObject, not 3MF.
2026-08-03 22:29:00 +08:00
SoftFever
74c4a7e450 Support printer specific filament profiles in the OrcaFilamentLibrary (#15101)
* Support printer specific filament profiles in the Orca Filament Library
2026-08-03 22:25:50 +08:00
Noisyfox
dbb991bf07 Fix gizmo being closed after releasing mouse outside the gizmo floating window (#15095)
* Fix gizmo being closed after releasing mouse outside the gizmo floating window

The left up event of a drag started on the gizmo floating window (e.g.
selecting text in an input field) and released over the bed was treated
as a click on the plate, which deselected the objects and closed the
active gizmo. Add the ignore_left_up guard to the plate select branch,
matching the deselect branch above.

Co-Authored-By: Claude <noreply@anthropic.com>

* Fix Emboss gizmo being closed after releasing mouse outside its floating window

The Emboss gizmo has its own close-on-click-away handler
(on_mouse_change_selection) that was not protected against left up events
originating from ImGui windows, so the gizmo was still closed when a drag
started on its floating window (e.g. selecting text in the input field)
ended over the 3D scene. Expose the canvas's ignore_left_up state to
gizmos and skip the close check for such releases.

Co-Authored-By: Claude <noreply@anthropic.com>

---------

Co-authored-by: Claude <noreply@anthropic.com>
2026-08-03 18:34:15 +08:00
Noisyfox
66d3f3f9c3 imgui: Clamp mouse y-coordinate in multi-line click/drag to text bounds (#15052)
* imgui: Clamp mouse y-coordinate in multi-line click/drag to text bounds

In single-line mode, click and drag already clamped y to the line's
y-coordinate so the cursor would continue to follow the x-position when
the mouse went off the top or bottom of the text.  Multi-line mode did
not clamp, so stb_text_locate_coord() would return 0 (above) or n
(below), snapping the cursor to the very start or end of text and
ignoring the x-coordinate entirely.

Now both modes walk the row layout to compute the top of the first row
(y_min) and bottom of the last row (y_max, minus half a line height to
add tolerance for rounding), then clamp y to that range before passing
it to stb_text_locate_coord().  This means dragging or clicking above
the text now places the cursor on the first line at the x-coordinate,
and dragging/clicking below places it on the last line at the
x-coordinate, matching the single-line precedent.

* Fix issue that cursor cannot be placed at the last empty line
2026-08-03 18:34:05 +08:00
Ryan Hartman
6b5c8af1c8 Pin OpenSSL libdir so the bundled Python finds it (#15047)
On Linux the bundled CPython silently links the system OpenSSL instead of
the one built in deps/, and the dependency build then fails:

  install: cannot stat 'Modules/_ssl.cpython-312-x86_64-linux-gnu.so':
           No such file or directory

The chain:

  * OpenSSL's linux-x86_64 target sets multilib=64, so 'make install_sw'
    installs the static libs to <prefix>/lib64 while every other dependency
    in the prefix uses <prefix>/lib.
  * CPython's --with-openssl=<dir> only ever emits -L<dir>/lib. It does not
    look in lib64, so -lssl resolves to the system OpenSSL.
  * gcc -shared does not error on unresolved symbols, so the link appears to
    succeed. _ssl.c was compiled against the bundled 1.1.1w headers, which
    map SSL_get1_peer_certificate onto the pre-3.0 SSL_get_peer_certificate
    -- a symbol OpenSSL 3.x removed. The module then fails to import:

      _ssl failed to import: undefined symbol: SSL_get_peer_certificate
      Could not build the ssl module!

  * With no _ssl built, 'make install' cannot stat it and the build stops.

Passing --libdir=lib keeps the prefix single-layout, so CPython's -L<dir>/lib
finds the bundled static libraries and links against the headers it was
compiled with.

CMake-based dependencies were unaffected throughout, because CMake's
FindOpenSSL searches lib64 on its own; only CPython's autoconf path is
sensitive to this.

Affects any distribution where OpenSSL selects the lib64 layout, which is the
Fedora, openSUSE and Arch families. Debian and Ubuntu are unaffected, which is
why CI has not seen it.

Verified on Arch (GCC 16.1.1, CMake 4.4.2): the dependency build completes and
the bundled interpreter reports the bundled OpenSSL rather than the system one:

  $ deps/build/OrcaSlicer_dep/usr/local/libpython/bin/python3.12 \
      -c 'import ssl; print(ssl.OPENSSL_VERSION)'
  OpenSSL 1.1.1w  11 Sep 2023

Not verified on macOS or Windows. The flag is accepted by OpenSSL's Configure
on all platforms and Darwin targets do not set multilib, so it should be a
no-op there, but CI is the check.
2026-08-03 11:03:59 +08:00
yw4z
e72a3a65b2 QOL Continue to capture mouse position while dragging ImGui controls and mouse position goes to outside of window (#14999)
* Update GLCanvas3D.cpp

* support navigation cube

* capture events for transform widgets

* camera rotation and pan

* selection frame

* object drag

* fix navigation cube stealing drag events

* fix lag on navigation cuve

* variable layer height

* fix plates toolbar scrollbar

* Update GLCanvas3D.cpp

* Fix issue that mouse button state is wrong in certain macOS mouse events

---------

Co-authored-by: Noisyfox <timemanager.rick@gmail.com>
2026-08-02 18:59:53 +08:00
Misterff1
1b71835337 Fixed some desktop environments showing title bar on splash screen when running on Wayland (#15019)
* Remove titlebar from splash screen on Wayland

* Broadly check for window decorations and added explanatory description

* Fixed hiding title bar on Wayland for all desktop environments

* Update format

---------

Co-authored-by: noisyfox <timemanager.rick@gmail.com>
2026-08-02 18:58:49 +08:00
Dipl.-Ing. Raoul Rubien, BSc
f9fa1c117f Define WXINSPECTOR_DISABLE globally to prevent include-order-dependent class layout (#15063)
fix: define WXINSPECTOR_DISABLE globally to prevent include-order-dependent class layouts
2026-08-02 18:20:35 +08:00
Kiss Lorand
6f3ca7d1b9 Fix preview speeds and time estimates after firmware retract commands (#15066) 2026-08-02 00:01:19 -03:00
maddavo
13ae3a1c90 Add outer-only mouse ears and align ear radius controls (#15015)
Improve mouse ear brim controls
2026-08-02 10:54:16 +08:00
Valerii Bokhan
fb36d5e73b Feature: Smooth Factor for the Hilbert Curve sparse infill (#14969) 2026-08-01 17:58:04 -03:00
GlauTech
abb2ab8d3f Update OrcaSlicer_tr.po (#15060) 2026-08-01 23:26:26 +03:00
698 changed files with 26209 additions and 4241 deletions

View File

@@ -32,9 +32,17 @@ body:
attributes: attributes:
label: OrcaSlicer Version label: OrcaSlicer Version
description: Which version of Orca Slicer are you running? You can see the full version in `Help` -> `About Orca Slicer`. description: Which version of Orca Slicer are you running? You can see the full version in `Help` -> `About Orca Slicer`.
placeholder: e.g. 1.9.0 placeholder: e.g. 2.5.0
validations: validations:
required: true required: true
- type: input
id: working_version
attributes:
label: Regression compared to a previous version
description: Did it work in a previous version?
placeholder: e.g. 2.3.2
validations:
required: false
- type: dropdown - type: dropdown
id: os_type id: os_type
attributes: attributes:

View File

@@ -80,8 +80,12 @@ endif()
if (DEFINED BBL_RELEASE_TO_PUBLIC) if (DEFINED BBL_RELEASE_TO_PUBLIC)
add_compile_definitions("BBL_RELEASE_TO_PUBLIC=${BBL_RELEASE_TO_PUBLIC}") add_compile_definitions("BBL_RELEASE_TO_PUBLIC=${BBL_RELEASE_TO_PUBLIC}")
if (BBL_RELEASE_TO_PUBLIC)
add_compile_definitions(WXINSPECTOR_DISABLE)
endif ()
else () else ()
add_compile_definitions("BBL_RELEASE_TO_PUBLIC=$<CONFIG:Release>") add_compile_definitions("BBL_RELEASE_TO_PUBLIC=$<CONFIG:Release>")
add_compile_definitions("$<$<CONFIG:Release>:WXINSPECTOR_DISABLE>")
endif () endif ()
find_package(Git) find_package(Git)

View File

@@ -52,6 +52,14 @@ ExternalProject_Add(dep_OpenSSL
CONFIGURE_COMMAND ${_conf_cmd} ${_cross_arch} CONFIGURE_COMMAND ${_conf_cmd} ${_cross_arch}
"--openssldir=${DESTDIR}" "--openssldir=${DESTDIR}"
"--prefix=${DESTDIR}" "--prefix=${DESTDIR}"
# OpenSSL's linux-x86_64 target sets multilib=64, so it installs to
# <prefix>/lib64 while every other dep uses <prefix>/lib. CPython's
# --with-openssl only ever emits -L<dir>/lib, so it misses the bundled
# static libs and silently links the system OpenSSL instead -- which,
# against 1.1.1w headers, leaves _ssl.so with an undefined
# SSL_get_peer_certificate (removed in OpenSSL 3.x). Pin libdir so the
# prefix stays single-layout.
"--libdir=lib"
${_cross_comp_prefix_line} ${_cross_comp_prefix_line}
no-shared no-shared
no-asm no-asm

View File

@@ -465,6 +465,57 @@ static void stb_textedit_click(STB_TEXTEDIT_STRING *str, STB_TexteditState *stat
STB_TEXTEDIT_LAYOUTROW(&r, str, 0); STB_TEXTEDIT_LAYOUTROW(&r, str, 0);
y = r.ymin; y = r.ymin;
} }
else
{
// In multi-line mode, clamp y to stay within the text vertical bounds.
// This lets the click still land at a valid location if the mouse is slightly
// above or below the text.
StbTexteditRow r;
int n = STB_TEXTEDIT_STRINGLEN(str);
int i = 0;
float base_y = 0, y_min, y_max;
// Get the first row to establish y_min and start the iteration
STB_TEXTEDIT_LAYOUTROW(&r, str, 0);
if (r.num_chars <= 0)
{
state->cursor = 0;
state->select_start = state->cursor;
state->select_end = state->cursor;
state->has_preferred_x = 0;
return;
}
y_min = r.ymin;
y_max = base_y + r.ymax;
i = r.num_chars;
base_y += r.baseline_y_delta;
// Walk the remaining rows to find the bottom of the last row
while (i < n)
{
STB_TEXTEDIT_LAYOUTROW(&r, str, i);
if (r.num_chars <= 0)
break;
y_max = base_y + r.ymax;
i += r.num_chars;
base_y += r.baseline_y_delta;
}
// If the text ends with a newline, account for the empty trailing line
// so the cursor can be placed on it
if (n > 0 && STB_TEXTEDIT_GETCHAR(str, n - 1) == STB_TEXTEDIT_NEWLINE)
{
STB_TEXTEDIT_LAYOUTROW(&r, str, n);
y_max = base_y + r.ymax;
}
// Subtract half the last line height to avoid rounding issues when the mouse
// is just barely below the last line (keep cursor on the last line, not after the text)
y_max -= (r.ymax - r.ymin) * 0.5f;
if (y < y_min) y = y_min;
if (y > y_max) y = y_max;
}
state->cursor = stb_text_locate_coord(str, x, y); state->cursor = stb_text_locate_coord(str, x, y);
state->select_start = state->cursor; state->select_start = state->cursor;
@@ -485,6 +536,50 @@ static void stb_textedit_drag(STB_TEXTEDIT_STRING *str, STB_TexteditState *state
STB_TEXTEDIT_LAYOUTROW(&r, str, 0); STB_TEXTEDIT_LAYOUTROW(&r, str, 0);
y = r.ymin; y = r.ymin;
} }
else
{
// In multi-line mode, clamp y to stay within the text vertical bounds.
// This lets the drag keep working if the mouse goes off the top or bottom of the text.
StbTexteditRow r;
int n = STB_TEXTEDIT_STRINGLEN(str);
int i = 0;
float base_y = 0, y_min, y_max;
// Get the first row to establish y_min and start the iteration
STB_TEXTEDIT_LAYOUTROW(&r, str, 0);
if (r.num_chars <= 0)
return;
y_min = r.ymin;
y_max = base_y + r.ymax;
i = r.num_chars;
base_y += r.baseline_y_delta;
// Walk the remaining rows to find the bottom of the last row
while (i < n)
{
STB_TEXTEDIT_LAYOUTROW(&r, str, i);
if (r.num_chars <= 0)
break;
y_max = base_y + r.ymax;
i += r.num_chars;
base_y += r.baseline_y_delta;
}
// If the text ends with a newline, account for the empty trailing line
// so the cursor can be placed on it
if (n > 0 && STB_TEXTEDIT_GETCHAR(str, n - 1) == STB_TEXTEDIT_NEWLINE)
{
STB_TEXTEDIT_LAYOUTROW(&r, str, n);
y_max = base_y + r.ymax;
}
// Subtract half the last line height to avoid rounding issues when the mouse
// is just barely below the last line (keep cursor on the last line, not after the text)
y_max -= (r.ymax - r.ymin) * 0.5f;
if (y < y_min) y = y_min;
if (y > y_max) y = y_max;
}
if (state->select_start == state->select_end) if (state->select_start == state->select_end)
state->select_start = state->cursor; state->select_start = state->cursor;

View File

@@ -7781,19 +7781,19 @@ msgid "Replaced with 3D files from directory:\n"
msgstr "" msgstr ""
#, possible-boost-format #, possible-boost-format
msgid "✖ Skipped %1%: same file.\n" msgid "✖ Skipped %s: same file.\n"
msgstr "" msgstr ""
#, possible-boost-format #, possible-boost-format
msgid "✖ Skipped %1%: file does not exist.\n" msgid "✖ Skipped %s: file does not exist.\n"
msgstr "" msgstr ""
#, possible-boost-format #, possible-boost-format
msgid "✖ Skipped %1%: failed to replace.\n" msgid "✖ Skipped %s: failed to replace.\n"
msgstr "" msgstr ""
#, possible-boost-format #, possible-boost-format
msgid "✔ Replaced %1%.\n" msgid "✔ Replaced %s.\n"
msgstr "" msgstr ""
msgid "Replaced volumes" msgid "Replaced volumes"

View File

@@ -8361,21 +8361,21 @@ msgstr "No s'ha seleccionat el directori per a la substitució"
msgid "Replaced with 3D files from directory:\n" msgid "Replaced with 3D files from directory:\n"
msgstr "Substituït amb fitxers 3D del directori:\n" msgstr "Substituït amb fitxers 3D del directori:\n"
#, boost-format #, c-format
msgid "✖ Skipped %1%: same file.\n" msgid "✖ Skipped %s: same file.\n"
msgstr "✖ Omès %1%: mateix fitxer.\n" msgstr "✖ Omès %s: mateix fitxer.\n"
#, boost-format #, c-format
msgid "✖ Skipped %1%: file does not exist.\n" msgid "✖ Skipped %s: file does not exist.\n"
msgstr "✖ Omès %1%: el fitxer no existeix.\n" msgstr "✖ Omès %s: el fitxer no existeix.\n"
#, boost-format #, c-format
msgid "✖ Skipped %1%: failed to replace.\n" msgid "✖ Skipped %s: failed to replace.\n"
msgstr "✖ Omès %1%: la substitució ha fallat.\n" msgstr "✖ Omès %s: la substitució ha fallat.\n"
#, boost-format #, c-format
msgid "✔ Replaced %1%.\n" msgid "✔ Replaced %s.\n"
msgstr "✔ Substituït %1%.\n" msgstr "✔ Substituït %s.\n"
msgid "Replaced volumes" msgid "Replaced volumes"
msgstr "Volums substituïts" msgstr "Volums substituïts"

View File

@@ -8320,21 +8320,21 @@ msgstr "Nebyla vybrána složka pro nahrazení"
msgid "Replaced with 3D files from directory:\n" msgid "Replaced with 3D files from directory:\n"
msgstr "Nahrazeno 3D soubory ze složky:\n" msgstr "Nahrazeno 3D soubory ze složky:\n"
#, boost-format #, c-format
msgid "✖ Skipped %1%: same file.\n" msgid "✖ Skipped %s: same file.\n"
msgstr "✖ Přeskočeno %1%: stejný soubor.\n" msgstr "✖ Přeskočeno %s: stejný soubor.\n"
#, boost-format #, c-format
msgid "✖ Skipped %1%: file does not exist.\n" msgid "✖ Skipped %s: file does not exist.\n"
msgstr "✖ Přeskočeno %1%: soubor neexistuje.\n" msgstr "✖ Přeskočeno %s: soubor neexistuje.\n"
#, boost-format #, c-format
msgid "✖ Skipped %1%: failed to replace.\n" msgid "✖ Skipped %s: failed to replace.\n"
msgstr "✖ Přeskočeno %1%: nahrazení se nezdařilo.\n" msgstr "✖ Přeskočeno %s: nahrazení se nezdařilo.\n"
#, boost-format #, c-format
msgid "✔ Replaced %1%.\n" msgid "✔ Replaced %s.\n"
msgstr "✔ Nahrazeno %1%.\n" msgstr "✔ Nahrazeno %s.\n"
msgid "Replaced volumes" msgid "Replaced volumes"
msgstr "Nahrazené objemy" msgstr "Nahrazené objemy"

View File

@@ -8191,21 +8191,21 @@ msgstr "Verzeichnis um daraus zu ersetzen wurde nicht ausgewählt"
msgid "Replaced with 3D files from directory:\n" msgid "Replaced with 3D files from directory:\n"
msgstr "Ersetzt durch 3D-Dateien aus Verzeichnis:\n" msgstr "Ersetzt durch 3D-Dateien aus Verzeichnis:\n"
#, boost-format #, c-format
msgid "✖ Skipped %1%: same file.\n" msgid "✖ Skipped %s: same file.\n"
msgstr "✖ Übersprungen %1%: gleiche Datei.\n" msgstr "✖ Übersprungen %s: gleiche Datei.\n"
#, boost-format #, c-format
msgid "✖ Skipped %1%: file does not exist.\n" msgid "✖ Skipped %s: file does not exist.\n"
msgstr "✖ Übersprungen %1%: Datei existiert nicht.\n" msgstr "✖ Übersprungen %s: Datei existiert nicht.\n"
#, boost-format #, c-format
msgid "✖ Skipped %1%: failed to replace.\n" msgid "✖ Skipped %s: failed to replace.\n"
msgstr "✖ Übersprungen %1%: Ersetzen fehlgeschlagen.\n" msgstr "✖ Übersprungen %s: Ersetzen fehlgeschlagen.\n"
#, boost-format #, c-format
msgid "✔ Replaced %1%.\n" msgid "✔ Replaced %s.\n"
msgstr "✔ Ersetzt %1%.\n" msgstr "✔ Ersetzt %s.\n"
msgid "Replaced volumes" msgid "Replaced volumes"
msgstr "Ersetzte Volumen" msgstr "Ersetzte Volumen"

View File

@@ -7776,20 +7776,20 @@ msgstr ""
msgid "Replaced with 3D files from directory:\n" msgid "Replaced with 3D files from directory:\n"
msgstr "" msgstr ""
#, boost-format #, c-format
msgid "✖ Skipped %1%: same file.\n" msgid "✖ Skipped %s: same file.\n"
msgstr "" msgstr ""
#, boost-format #, c-format
msgid "✖ Skipped %1%: file does not exist.\n" msgid "✖ Skipped %s: file does not exist.\n"
msgstr "" msgstr ""
#, boost-format #, c-format
msgid "✖ Skipped %1%: failed to replace.\n" msgid "✖ Skipped %s: failed to replace.\n"
msgstr "" msgstr ""
#, boost-format #, c-format
msgid "✔ Replaced %1%.\n" msgid "✔ Replaced %s.\n"
msgstr "" msgstr ""
msgid "Replaced volumes" msgid "Replaced volumes"

View File

@@ -7997,21 +7997,21 @@ msgstr "No se seleccionó el directorio para el reemplazo"
msgid "Replaced with 3D files from directory:\n" msgid "Replaced with 3D files from directory:\n"
msgstr "Reemplazado con archivos 3D desde el directorio:\n" msgstr "Reemplazado con archivos 3D desde el directorio:\n"
#, boost-format #, c-format
msgid "✖ Skipped %1%: same file.\n" msgid "✖ Skipped %s: same file.\n"
msgstr "✖ Omitido %1%: mismo archivo.\n" msgstr "✖ Omitido %s: mismo archivo.\n"
#, boost-format #, c-format
msgid "✖ Skipped %1%: file does not exist.\n" msgid "✖ Skipped %s: file does not exist.\n"
msgstr "✖ Omitido %1%: el archivo no existe.\n" msgstr "✖ Omitido %s: el archivo no existe.\n"
#, boost-format #, c-format
msgid "✖ Skipped %1%: failed to replace.\n" msgid "✖ Skipped %s: failed to replace.\n"
msgstr "✖ Omitido %1%: fallo al reemplazar.\n" msgstr "✖ Omitido %s: fallo al reemplazar.\n"
#, boost-format #, c-format
msgid "✔ Replaced %1%.\n" msgid "✔ Replaced %s.\n"
msgstr "✔ Reemplazado %1%.\n" msgstr "✔ Reemplazado %s.\n"
msgid "Replaced volumes" msgid "Replaced volumes"
msgstr "Volúmenes reemplazados" msgstr "Volúmenes reemplazados"

View File

@@ -8064,21 +8064,21 @@ msgstr "Ez da ordezkatzeko direktoriorik hautatu"
msgid "Replaced with 3D files from directory:\n" msgid "Replaced with 3D files from directory:\n"
msgstr "Direktorio honetako 3D fitxategiekin ordeztuta:\n" msgstr "Direktorio honetako 3D fitxategiekin ordeztuta:\n"
#, boost-format #, c-format
msgid "✖ Skipped %1%: same file.\n" msgid "✖ Skipped %s: same file.\n"
msgstr "✖ %1% saltatu da: fitxategi bera.\n" msgstr "✖ %s saltatu da: fitxategi bera.\n"
#, boost-format #, c-format
msgid "✖ Skipped %1%: file does not exist.\n" msgid "✖ Skipped %s: file does not exist.\n"
msgstr "✖ %1% saltatu da: fitxategia ez da existitzen.\n" msgstr "✖ %s saltatu da: fitxategia ez da existitzen.\n"
#, boost-format #, c-format
msgid "✖ Skipped %1%: failed to replace.\n" msgid "✖ Skipped %s: failed to replace.\n"
msgstr "✖ %1% saltatu da: ezin izan da ordeztu.\n" msgstr "✖ %s saltatu da: ezin izan da ordeztu.\n"
#, boost-format #, c-format
msgid "✔ Replaced %1%.\n" msgid "✔ Replaced %s.\n"
msgstr "✔ %1% ordezkatu da.\n" msgstr "✔ %s ordezkatu da.\n"
msgid "Replaced volumes" msgid "Replaced volumes"
msgstr "Ordeztutako bolumenak" msgstr "Ordeztutako bolumenak"

View File

@@ -8120,21 +8120,21 @@ msgstr "Le répertoire pour le remplacement n'a pas été sélectionné"
msgid "Replaced with 3D files from directory:\n" msgid "Replaced with 3D files from directory:\n"
msgstr "Remplacé par des fichiers 3D depuis le répertoire :\n" msgstr "Remplacé par des fichiers 3D depuis le répertoire :\n"
#, boost-format #, c-format
msgid "✖ Skipped %1%: same file.\n" msgid "✖ Skipped %s: same file.\n"
msgstr "✖ Ignoré %1% : même fichier.\n" msgstr "✖ Ignoré %s : même fichier.\n"
#, boost-format #, c-format
msgid "✖ Skipped %1%: file does not exist.\n" msgid "✖ Skipped %s: file does not exist.\n"
msgstr "✖ Ignoré %1% : le fichier n'existe pas.\n" msgstr "✖ Ignoré %s : le fichier n'existe pas.\n"
#, boost-format #, c-format
msgid "✖ Skipped %1%: failed to replace.\n" msgid "✖ Skipped %s: failed to replace.\n"
msgstr "✖ Ignoré %1% : échec du remplacement.\n" msgstr "✖ Ignoré %s : échec du remplacement.\n"
#, boost-format #, c-format
msgid "✔ Replaced %1%.\n" msgid "✔ Replaced %s.\n"
msgstr "✔ Remplacé %1%.\n" msgstr "✔ Remplacé %s.\n"
msgid "Replaced volumes" msgid "Replaced volumes"
msgstr "Volumes remplacés" msgstr "Volumes remplacés"
@@ -9283,22 +9283,22 @@ msgid "DEV host: api-dev.bambu-lab.com/v1"
msgstr "Hôte DEV : api-dev.bambu-lab.com/v1" msgstr "Hôte DEV : api-dev.bambu-lab.com/v1"
msgid "QA host: api-qa.bambu-lab.com/v1" msgid "QA host: api-qa.bambu-lab.com/v1"
msgstr "Hôte AQ : api-qa.bambu-lab.com/v1" msgstr "Hôte QA : api-qa.bambu-lab.com/v1"
msgid "PRE host: api-pre.bambu-lab.com/v1" msgid "PRE host: api-pre.bambu-lab.com/v1"
msgstr "Hébergeur PRE : api-pre.bambu-lab.com/v1" msgstr "Hôte PRE : api-pre.bambu-lab.com/v1"
msgid "Product host" msgid "Product host"
msgstr "Hôte du produit" msgstr "Hôte du produit"
msgid "Debug save button" msgid "Debug save button"
msgstr "bouton d'enregistrement de débogage" msgstr "Bouton d'enregistrement de debugage"
msgid "Save debug settings" msgid "Save debug settings"
msgstr "enregistrer les paramètres de débogage" msgstr "Enregistrer les paramètres de debugage"
msgid "Debug settings have been saved successfully!" msgid "Debug settings have been saved successfully!"
msgstr "Les paramètres DEBUG ont été enregistrés avec succès !" msgstr "Les paramètres de debug ont été enregistrés avec succès !"
msgid "Cloud environment switched; please login again!" msgid "Cloud environment switched; please login again!"
msgstr "L'environnement Cloud a changé, veuillez vous reconnecter !" msgstr "L'environnement Cloud a changé, veuillez vous reconnecter !"

View File

@@ -8244,21 +8244,21 @@ msgstr "A cseréhez nem lett mappa kiválasztva"
msgid "Replaced with 3D files from directory:\n" msgid "Replaced with 3D files from directory:\n"
msgstr "Cserélve a mappából származó 3D fájlokra:\n" msgstr "Cserélve a mappából származó 3D fájlokra:\n"
#, boost-format #, c-format
msgid "✖ Skipped %1%: same file.\n" msgid "✖ Skipped %s: same file.\n"
msgstr "✖ Kihagyva %1%: azonos fájl.\n" msgstr "✖ %s kihagyva: azonos fájl.\n"
#, boost-format #, c-format
msgid "✖ Skipped %1%: file does not exist.\n" msgid "✖ Skipped %s: file does not exist.\n"
msgstr "✖ Kihagyva %1%: a fájl nem létezik.\n" msgstr "✖ %s kihagyva: a fájl nem létezik.\n"
#, boost-format #, c-format
msgid "✖ Skipped %1%: failed to replace.\n" msgid "✖ Skipped %s: failed to replace.\n"
msgstr "✖ Kihagyva %1%: a csere sikertelen.\n" msgstr "✖ %s kihagyva: a csere sikertelen.\n"
#, boost-format #, c-format
msgid "✔ Replaced %1%.\n" msgid "✔ Replaced %s.\n"
msgstr "✔ Lecserélve: %1%.\n" msgstr "✔%s lecserélve.\n"
msgid "Replaced volumes" msgid "Replaced volumes"
msgstr "Lecserélt térfogatok" msgstr "Lecserélt térfogatok"

View File

@@ -8244,21 +8244,21 @@ msgstr "La directory per la sostituzione non è stata selezionata"
msgid "Replaced with 3D files from directory:\n" msgid "Replaced with 3D files from directory:\n"
msgstr "Sostituito con file 3D dalla directory:\n" msgstr "Sostituito con file 3D dalla directory:\n"
#, boost-format #, c-format
msgid "✖ Skipped %1%: same file.\n" msgid "✖ Skipped %s: same file.\n"
msgstr "✖ Saltato %1%: stesso file.\n" msgstr "✖ Saltato %s: stesso file.\n"
#, boost-format #, c-format
msgid "✖ Skipped %1%: file does not exist.\n" msgid "✖ Skipped %s: file does not exist.\n"
msgstr "✖ Saltato %1%: il file non esiste.\n" msgstr "✖ Saltato %s: il file non esiste.\n"
#, boost-format #, c-format
msgid "✖ Skipped %1%: failed to replace.\n" msgid "✖ Skipped %s: failed to replace.\n"
msgstr "✖ Saltato %1%: sostituzione fallita.\n" msgstr "✖ Saltato %s: sostituzione fallita.\n"
#, boost-format #, c-format
msgid "✔ Replaced %1%.\n" msgid "✔ Replaced %s.\n"
msgstr "✔ Sostituito %1%.\n" msgstr "✔ Sostituito %s.\n"
msgid "Replaced volumes" msgid "Replaced volumes"
msgstr "Volumi sostituiti" msgstr "Volumi sostituiti"

View File

@@ -8262,21 +8262,21 @@ msgstr "置換用のディレクトリが選択されていません"
msgid "Replaced with 3D files from directory:\n" msgid "Replaced with 3D files from directory:\n"
msgstr "ディレクトリの3Dファイルで置換しました:\n" msgstr "ディレクトリの3Dファイルで置換しました:\n"
#, boost-format #, c-format
msgid "✖ Skipped %1%: same file.\n" msgid "✖ Skipped %s: same file.\n"
msgstr "✖ スキップ %1%: 同一ファイル。\n" msgstr "✖ スキップ %s: 同一ファイル。\n"
#, boost-format #, c-format
msgid "✖ Skipped %1%: file does not exist.\n" msgid "✖ Skipped %s: file does not exist.\n"
msgstr "✖ スキップ %1%: ファイルが存在しません。\n" msgstr "✖ スキップ %s: ファイルが存在しません。\n"
#, boost-format #, c-format
msgid "✖ Skipped %1%: failed to replace.\n" msgid "✖ Skipped %s: failed to replace.\n"
msgstr "✖ スキップ %1%: 置換に失敗しました。\n" msgstr "✖ スキップ %s: 置換に失敗しました。\n"
#, boost-format #, c-format
msgid "✔ Replaced %1%.\n" msgid "✔ Replaced %s.\n"
msgstr "✔ 置換しました %1%。\n" msgstr "✔ 置換しました %s。\n"
msgid "Replaced volumes" msgid "Replaced volumes"
msgstr "置換されたボリューム" msgstr "置換されたボリューム"

View File

@@ -8288,24 +8288,24 @@ msgid "Replaced with 3D files from directory:\n"
msgstr "다음 디렉터리의 3D 파일로 교체했습니다:\n" msgstr "다음 디렉터리의 3D 파일로 교체했습니다:\n"
# AI Translated # AI Translated
#, boost-format #, c-format
msgid "✖ Skipped %1%: same file.\n" msgid "✖ Skipped %s: same file.\n"
msgstr "✖ 건너뜀 %1%: 동일한 파일입니다.\n" msgstr "✖ 건너뜀 %s: 동일한 파일입니다.\n"
# AI Translated # AI Translated
#, boost-format #, c-format
msgid "✖ Skipped %1%: file does not exist.\n" msgid "✖ Skipped %s: file does not exist.\n"
msgstr "✖ 건너뜀 %1%: 파일이 존재하지 않습니다.\n" msgstr "✖ 건너뜀 %s: 파일이 존재하지 않습니다.\n"
# AI Translated # AI Translated
#, boost-format #, c-format
msgid "✖ Skipped %1%: failed to replace.\n" msgid "✖ Skipped %s: failed to replace.\n"
msgstr "✖ 건너뜀 %1%: 교체하지 못했습니다.\n" msgstr "✖ 건너뜀 %s: 교체하지 못했습니다.\n"
# AI Translated # AI Translated
#, boost-format #, c-format
msgid "✔ Replaced %1%.\n" msgid "✔ Replaced %s.\n"
msgstr "✔ %1%을(를) 교체했습니다.\n" msgstr "✔ %s을(를) 교체했습니다.\n"
# AI Translated # AI Translated
msgid "Replaced volumes" msgid "Replaced volumes"

View File

@@ -8239,21 +8239,21 @@ msgstr ""
"Pakeista 3D failais iš katalogo:\n" "Pakeista 3D failais iš katalogo:\n"
"\n" "\n"
#, boost-format #, c-format
msgid "✖ Skipped %1%: same file.\n" msgid "✖ Skipped %s: same file.\n"
msgstr "✖ Praleistas %1%: tas pats failas.\n" msgstr "✖ Praleistas %s: tas pats failas.\n"
#, boost-format #, c-format
msgid "✖ Skipped %1%: file does not exist.\n" msgid "✖ Skipped %s: file does not exist.\n"
msgstr "✖ Praleistas %1%: failas neegzistuoja.\n" msgstr "✖ Praleistas %s: failas neegzistuoja.\n"
#, boost-format #, c-format
msgid "✖ Skipped %1%: failed to replace.\n" msgid "✖ Skipped %s: failed to replace.\n"
msgstr "✖ Praleistas %1%: nepavyko pakeisti.\n" msgstr "✖ Praleistas %s: nepavyko pakeisti.\n"
#, boost-format #, c-format
msgid "✔ Replaced %1%.\n" msgid "✔ Replaced %s.\n"
msgstr "✔ Pakeistas %1%.\n" msgstr "✔ Pakeistas %s.\n"
msgid "Replaced volumes" msgid "Replaced volumes"
msgstr "Pakeisti tūriai" msgstr "Pakeisti tūriai"

View File

@@ -8999,24 +8999,24 @@ msgid "Replaced with 3D files from directory:\n"
msgstr "Vervangen door 3D-bestanden uit de map:\n" msgstr "Vervangen door 3D-bestanden uit de map:\n"
# AI Translated # AI Translated
#, boost-format #, c-format
msgid "✖ Skipped %1%: same file.\n" msgid "✖ Skipped %s: same file.\n"
msgstr "✖ Overgeslagen %1%: hetzelfde bestand.\n" msgstr "✖ Overgeslagen %s: hetzelfde bestand.\n"
# AI Translated # AI Translated
#, boost-format #, c-format
msgid "✖ Skipped %1%: file does not exist.\n" msgid "✖ Skipped %s: file does not exist.\n"
msgstr "✖ Overgeslagen %1%: bestand bestaat niet.\n" msgstr "✖ Overgeslagen %s: bestand bestaat niet.\n"
# AI Translated # AI Translated
#, boost-format #, c-format
msgid "✖ Skipped %1%: failed to replace.\n" msgid "✖ Skipped %s: failed to replace.\n"
msgstr "✖ Overgeslagen %1%: vervangen is mislukt.\n" msgstr "✖ Overgeslagen %s: vervangen is mislukt.\n"
# AI Translated # AI Translated
#, boost-format #, c-format
msgid "✔ Replaced %1%.\n" msgid "✔ Replaced %s.\n"
msgstr "✔ Vervangen %1%.\n" msgstr "✔ Vervangen %s.\n"
# AI Translated # AI Translated
msgid "Replaced volumes" msgid "Replaced volumes"

View File

@@ -8444,24 +8444,24 @@ msgid "Replaced with 3D files from directory:\n"
msgstr "Zastąpiono plikami 3D z katalogu:\n" msgstr "Zastąpiono plikami 3D z katalogu:\n"
# AI Translated # AI Translated
#, boost-format #, c-format
msgid "✖ Skipped %1%: same file.\n" msgid "✖ Skipped %s: same file.\n"
msgstr "✖ Pominięto %1%: ten sam plik.\n" msgstr "✖ Pominięto %s: ten sam plik.\n"
# AI Translated # AI Translated
#, boost-format #, c-format
msgid "✖ Skipped %1%: file does not exist.\n" msgid "✖ Skipped %s: file does not exist.\n"
msgstr "✖ Pominięto %1%: plik nie istnieje.\n" msgstr "✖ Pominięto %s: plik nie istnieje.\n"
# AI Translated # AI Translated
#, boost-format #, c-format
msgid "✖ Skipped %1%: failed to replace.\n" msgid "✖ Skipped %s: failed to replace.\n"
msgstr "✖ Pominięto %1%: nie udało się zastąpić.\n" msgstr "✖ Pominięto %s: nie udało się zastąpić.\n"
# AI Translated # AI Translated
#, boost-format #, c-format
msgid "✔ Replaced %1%.\n" msgid "✔ Replaced %s.\n"
msgstr "✔ Zastąpiono %1%.\n" msgstr "✔ Zastąpiono %s.\n"
# AI Translated # AI Translated
msgid "Replaced volumes" msgid "Replaced volumes"

View File

@@ -8026,21 +8026,21 @@ msgstr "Diretório para substituição não foi selecionado"
msgid "Replaced with 3D files from directory:\n" msgid "Replaced with 3D files from directory:\n"
msgstr "Substituído por arquivos 3D do diretório:\n" msgstr "Substituído por arquivos 3D do diretório:\n"
#, boost-format #, c-format
msgid "✖ Skipped %1%: same file.\n" msgid "✖ Skipped %s: same file.\n"
msgstr "✖ %1% Ignorados: mesmo arquivo.\n" msgstr "✖ %s Ignorados: mesmo arquivo.\n"
#, boost-format #, c-format
msgid "✖ Skipped %1%: file does not exist.\n" msgid "✖ Skipped %s: file does not exist.\n"
msgstr "✖ %1% Ignorados: arquivo não existe.\n" msgstr "✖ %s Ignorados: arquivo não existe.\n"
#, boost-format #, c-format
msgid "✖ Skipped %1%: failed to replace.\n" msgid "✖ Skipped %s: failed to replace.\n"
msgstr "✖ %1% Ignorados: falha ao substituir.\n" msgstr "✖ %s Ignorados: falha ao substituir.\n"
#, boost-format #, c-format
msgid "✔ Replaced %1%.\n" msgid "✔ Replaced %s.\n"
msgstr "✔ %1% Substituídos.\n" msgstr "✔ %s Substituídos.\n"
msgid "Replaced volumes" msgid "Replaced volumes"
msgstr "Volumes substiruídos" msgstr "Volumes substiruídos"
@@ -17130,15 +17130,12 @@ msgstr "Quando este valor de retração for modificado, ele será usado como a q
msgid "Support fast purge mode" msgid "Support fast purge mode"
msgstr "Suporte ao modo de purga rápida" msgstr "Suporte ao modo de purga rápida"
# AI Translated
msgid "Whether this printer supports fast purge mode with optimized temperature and multiplier." msgid "Whether this printer supports fast purge mode with optimized temperature and multiplier."
msgstr "Se esta impressora suporta o modo de purga rápida com temperatura e multiplicador otimizados." msgstr "Se esta impressora suporta o modo de purga rápida com temperatura e multiplicador otimizados."
# AI Translated
msgid "Filament change" msgid "Filament change"
msgstr "Troca de filamento" msgstr "Troca de filamento"
# AI Translated
msgid "The volume of material required to prime the extruder on the tower, excluding a hotend change." msgid "The volume of material required to prime the extruder on the tower, excluding a hotend change."
msgstr "O volume de material necessário para preparar a extrusora na torre, excluindo uma troca de hotend." msgstr "O volume de material necessário para preparar a extrusora na torre, excluindo uma troca de hotend."
@@ -18323,11 +18320,9 @@ msgstr ""
"Há vários endereços IP resolvendo para o nome do host %1%.\n" "Há vários endereços IP resolvendo para o nome do host %1%.\n"
"Por favor, selecione um que deve ser usado." "Por favor, selecione um que deve ser usado."
# AI Translated
msgid "Auto-scale for nozzle" msgid "Auto-scale for nozzle"
msgstr "Escala automática para o bico" msgstr "Escala automática para o bico"
# AI Translated
msgid "" msgid ""
"This model is designed around a 0.4 mm nozzle with a 0.2 mm layer height. \n" "This model is designed around a 0.4 mm nozzle with a 0.2 mm layer height. \n"
"When the scaling option is enabled (recommended), it dynamically resizes to match your current nozzle diameter and an appropriate layer height, making the test both accurate and easy to read.\n" "When the scaling option is enabled (recommended), it dynamically resizes to match your current nozzle diameter and an appropriate layer height, making the test both accurate and easy to read.\n"
@@ -18473,11 +18468,9 @@ msgstr "Velocidade Inicial: "
msgid "End speed: " msgid "End speed: "
msgstr "Velocidade Final: " msgstr "Velocidade Final: "
# AI Translated
msgid "Auto-adjust to max volumetric speed" msgid "Auto-adjust to max volumetric speed"
msgstr "Ajuste automático à velocidade volumétrica máxima" msgstr "Ajuste automático à velocidade volumétrica máxima"
# AI Translated
msgid "If the end speed would exceed the filament's maximum volumetric speed, automatically lower the layer height (keeping standard values and staying within the machine's limits) to reach it. If even the minimum layer height is not enough, lower the end speed instead." msgid "If the end speed would exceed the filament's maximum volumetric speed, automatically lower the layer height (keeping standard values and staying within the machine's limits) to reach it. If even the minimum layer height is not enough, lower the end speed instead."
msgstr "Se a velocidade final ultrapassar a velocidade volumétrica máxima do filamento, reduz automaticamente a altura de camada (mantendo valores padrão e respeitando os limites da máquina) para alcançá-la. Se nem mesmo a altura de camada mínima for suficiente, reduz a velocidade final." msgstr "Se a velocidade final ultrapassar a velocidade volumétrica máxima do filamento, reduz automaticamente a altura de camada (mantendo valores padrão e respeitando os limites da máquina) para alcançá-la. Se nem mesmo a altura de camada mínima for suficiente, reduz a velocidade final."
@@ -18492,7 +18485,6 @@ msgstr ""
"passo >= 0\n" "passo >= 0\n"
"fim > início + passo" "fim > início + passo"
# AI Translated
#, c-format, boost-format #, c-format, boost-format
msgid "" msgid ""
"The end speed (%.0f mm/s) exceeds the filament's maximum volumetric speed (%.1f mm³/s), which limits the outer wall to about %.0f mm/s at this line width and layer height.\n" "The end speed (%.0f mm/s) exceeds the filament's maximum volumetric speed (%.1f mm³/s), which limits the outer wall to about %.0f mm/s at this line width and layer height.\n"
@@ -18500,12 +18492,11 @@ msgid ""
"\n" "\n"
"%s" "%s"
msgstr "" msgstr ""
"A velocidade final (%.0f mm/s) ultrapassa a velocidade volumétrica máxima do filamento (%.1f mm³/s), o que limita a parede externa a cerca de %.0f mm/s com esta largura de linha e altura de camada.\n" "A velocidade final (%.0f mm/s) excede a velocidade volumétrica máxima do filamento (%.1f mm³/s), o que limita a parede externa a cerca de %.0f mm/s com esta largura de linha e altura de camada.\n"
" Velocidades acima disso serão limitadas, portanto os blocos superiores da torre não serão impressos na velocidade solicitada.\n" " Velocidades acima disso serão limitadas, portanto os blocos superiores da torre não serão impressos na velocidade solicitada.\n"
"\n" "\n"
"%s" "%s"
# AI Translated
#, c-format, boost-format #, c-format, boost-format
msgid "" msgid ""
"The end speed (%.0f mm/s) exceeds the filament's maximum volumetric speed (%.1f mm³/s) at the default layer height (%.2f mm).\n" "The end speed (%.0f mm/s) exceeds the filament's maximum volumetric speed (%.1f mm³/s) at the default layer height (%.2f mm).\n"
@@ -18516,7 +18507,6 @@ msgstr ""
"\n" "\n"
"A altura de camada foi reduzida para %.2f mm (um valor usado pelos perfis desta impressora) para que a torre possa atingir a velocidade solicitada." "A altura de camada foi reduzida para %.2f mm (um valor usado pelos perfis desta impressora) para que a torre possa atingir a velocidade solicitada."
# AI Translated
#, c-format, boost-format #, c-format, boost-format
msgid "" msgid ""
"Even at the smallest layer height used by this printer's profiles (%.2f mm) the end speed (%.0f mm/s) exceeds the filament's maximum volumetric speed (%.1f mm³/s).\n" "Even at the smallest layer height used by this printer's profiles (%.2f mm) the end speed (%.0f mm/s) exceeds the filament's maximum volumetric speed (%.1f mm³/s).\n"
@@ -18531,15 +18521,12 @@ msgstr ""
"\n" "\n"
"Continuar?" "Continuar?"
# AI Translated
msgid "Continue anyway?" msgid "Continue anyway?"
msgstr "Continuar mesmo assim?" msgstr "Continuar mesmo assim?"
# AI Translated
msgid "Enable \"Auto-adjust\" to fix this automatically, or continue anyway?" msgid "Enable \"Auto-adjust\" to fix this automatically, or continue anyway?"
msgstr "Ativar \"Ajuste automático\" para corrigir isso automaticamente ou continuar mesmo assim?" msgstr "Ativar \"Ajuste automático\" para corrigir isso automaticamente ou continuar mesmo assim?"
# AI Translated
msgid "Enable \"Auto-scale for nozzle\" and \"Auto-adjust\" to fix this automatically, or continue anyway?" msgid "Enable \"Auto-scale for nozzle\" and \"Auto-adjust\" to fix this automatically, or continue anyway?"
msgstr "Ativar \"Escala automática para o bico\" e \"Ajuste automático\" para corrigir isso automaticamente ou continuar mesmo assim?" msgstr "Ativar \"Escala automática para o bico\" e \"Ajuste automático\" para corrigir isso automaticamente ou continuar mesmo assim?"
@@ -19644,9 +19631,8 @@ msgstr "Não foi possível decifrar a resposta do servidor."
msgid "Error saving session to file" msgid "Error saving session to file"
msgstr "Erro salvando sessão para arquivo" msgstr "Erro salvando sessão para arquivo"
# AI Translated
msgid "Error session check" msgid "Error session check"
msgstr "Verificação de sessão de erro" msgstr "Erro na verificação de sessão"
msgid "Error during file upload" msgid "Error during file upload"
msgstr "Erro durante a subida do arquivo" msgstr "Erro durante a subida do arquivo"
@@ -20079,9 +20065,8 @@ msgstr "Impressão Falhou"
msgid "Removed" msgid "Removed"
msgstr "Removido" msgstr "Removido"
# AI Translated
msgid "Enable smart filament assign: Assign one filament to multiple nozzles to maximize savings" msgid "Enable smart filament assign: Assign one filament to multiple nozzles to maximize savings"
msgstr "Ativar atribuição inteligente de filamento: atribui um filamento a vários bicos para maximizar a economia" msgstr "Ativar atribuição inteligente de filamento: Atribui um filamento a vários bicos para maximizar a economia"
msgid "Fila Saving" msgid "Fila Saving"
msgstr "Econo Filamento" msgstr "Econo Filamento"
@@ -20119,7 +20104,6 @@ msgstr "Tutorial em vídeo"
msgid "(Sync with printer)" msgid "(Sync with printer)"
msgstr "(Sinc. com impressora)" msgstr "(Sinc. com impressora)"
# AI Translated
#, c-format, boost-format #, c-format, boost-format
msgid "Error: %s extruder has no available %s nozzle, current group result is invalid." msgid "Error: %s extruder has no available %s nozzle, current group result is invalid."
msgstr "Erro: a extrusora %s não tem nenhum bico %s disponível, o resultado do grupo atual é inválido." msgstr "Erro: a extrusora %s não tem nenhum bico %s disponível, o resultado do grupo atual é inválido."
@@ -20130,17 +20114,14 @@ msgstr "Vamos fatiar de acordo com este método de agrupamento:"
msgid "Tip: You can drag the filaments to reassign them to different nozzles." msgid "Tip: You can drag the filaments to reassign them to different nozzles."
msgstr "Dica: Você pode arrastar os filamentos para reatribuí-los a diferentes bicos." msgstr "Dica: Você pode arrastar os filamentos para reatribuí-los a diferentes bicos."
# AI Translated
msgid "Please adjust your grouping or click " msgid "Please adjust your grouping or click "
msgstr "Por favor, ajuste seu agrupamento ou clique em " msgstr "Por favor, ajuste seu agrupamento ou clique em "
# AI Translated
msgid " to set nozzle count" msgid " to set nozzle count"
msgstr " para definir o número de bicos" msgstr " para definir o número de bicos"
# AI Translated
msgid "Set the physical nozzle count..." msgid "Set the physical nozzle count..."
msgstr "Definir o número físico de bicos..." msgstr "Definir o número de bicos físicos"
msgid "The filament grouping method for current plate is determined by the dropdown option at the slicing plate button." msgid "The filament grouping method for current plate is determined by the dropdown option at the slicing plate button."
msgstr "O método de agrupamento de filamentos para a placa atual é determinado pela opção no botão de fatiamento da placa." msgstr "O método de agrupamento de filamentos para a placa atual é determinado pela opção no botão de fatiamento da placa."
@@ -20480,99 +20461,75 @@ msgstr "Numero de facetas triangulares"
msgid "Calculating, please wait..." msgid "Calculating, please wait..."
msgstr "Calculando, por favor aguarde…" msgstr "Calculando, por favor aguarde…"
# AI Translated
msgid "Save these settings as default" msgid "Save these settings as default"
msgstr "Salvar estas configurações como padrão" msgstr "Salvar estas configurações como padrão"
# AI Translated
msgid "If enabled, the values above are stored as the defaults used for future STEP imports (and shown in Preferences)." msgid "If enabled, the values above are stored as the defaults used for future STEP imports (and shown in Preferences)."
msgstr "Se ativado, os valores acima são armazenados como os padrões usados para futuras importações STEP (e mostrados nas Preferências)." msgstr "Se ativado, os valores acima são armazenados como os padrões usados para futuras importações STEP (e mostrados nas Preferências)."
# AI Translated
msgid "PresetBundle" msgid "PresetBundle"
msgstr "PresetBundle" msgstr "PresetBundle"
# AI Translated
msgid "Bundle folder does not exist." msgid "Bundle folder does not exist."
msgstr "A pasta do pacote não existe." msgstr "A pasta do pacote não existe."
# AI Translated
msgid "Failed to open folder." msgid "Failed to open folder."
msgstr "Falha ao abrir a pasta." msgstr "Falha ao abrir a pasta."
# AI Translated
msgid "Delete selected bundle from folder and all presets loaded from it?" msgid "Delete selected bundle from folder and all presets loaded from it?"
msgstr "Excluir o pacote selecionado da pasta e todas as predefinições carregadas a partir dele?" msgstr "Excluir o pacote selecionado da pasta e todas as predefinições carregadas a partir dele?"
# AI Translated
msgid "Delete Bundle" msgid "Delete Bundle"
msgstr "Excluir pacote" msgstr "Excluir Pacote"
# AI Translated
msgid "Failed to remove bundle." msgid "Failed to remove bundle."
msgstr "Falha ao remover o pacote." msgstr "Falha ao remover o pacote."
# AI Translated
msgid "Remove Bundle" msgid "Remove Bundle"
msgstr "Remover pacote" msgstr "Remover pacote"
# AI Translated
msgid "Unsubscribe bundle?" msgid "Unsubscribe bundle?"
msgstr "Cancelar a inscrição do pacote?" msgstr "Cancelar a inscrição do pacote?"
# AI Translated
msgid "UnsubscribeBundle" msgid "UnsubscribeBundle"
msgstr "UnsubscribeBundle" msgstr "UnsubscribeBundle"
# AI Translated
msgid "Failed to unsubscribe bundle." msgid "Failed to unsubscribe bundle."
msgstr "Falha ao cancelar a inscrição do pacote." msgstr "Falha ao cancelar a inscrição do pacote."
# AI Translated
msgid "Unsubscribe Bundle" msgid "Unsubscribe Bundle"
msgstr "Cancelar inscrição do pacote" msgstr "Cancelar inscrição do Pacote"
# AI Translated
msgid "ExportPresetBundle" msgid "ExportPresetBundle"
msgstr "ExportPresetBundle" msgstr "ExportPresetBundle"
# AI Translated
msgid "Save preset bundle" msgid "Save preset bundle"
msgstr "Salvar pacote de predefinições" msgstr "Salvar pacote de predefinições"
# AI Translated
msgid "Performing desktop integration failed - boost::filesystem::canonical did not return appimage path." msgid "Performing desktop integration failed - boost::filesystem::canonical did not return appimage path."
msgstr "Falha ao realizar a integração com a área de trabalho - boost::filesystem::canonical não retornou o caminho do appimage." msgstr "Falha ao realizar a integração com a área de trabalho - boost::filesystem::canonical não retornou o caminho do appimage."
# AI Translated
msgid "Performing desktop integration failed - Could not find executable." msgid "Performing desktop integration failed - Could not find executable."
msgstr "Falha ao realizar a integração com a área de trabalho - não foi possível encontrar o executável." msgstr "Falha ao realizar a integração com a área de trabalho - não foi possível encontrar o executável."
# AI Translated
msgid "Performing desktop integration failed because the application directory was not found." msgid "Performing desktop integration failed because the application directory was not found."
msgstr "Falha ao realizar a integração com a área de trabalho porque o diretório do aplicativo não foi encontrado." msgstr "Falha ao realizar a integração com a área de trabalho porque o diretório do aplicativo não foi encontrado."
# AI Translated
msgid "Performing desktop integration failed - could not create Gcodeviewer desktop file. OrcaSlicer desktop file was probably created successfully." msgid "Performing desktop integration failed - could not create Gcodeviewer desktop file. OrcaSlicer desktop file was probably created successfully."
msgstr "Falha ao realizar a integração com a área de trabalho - não foi possível criar o arquivo desktop do Gcodeviewer. O arquivo desktop do OrcaSlicer provavelmente foi criado com sucesso." msgstr "Falha ao realizar a integração com a área de trabalho - não foi possível criar o arquivo desktop do Gcodeviewer. O arquivo desktop do OrcaSlicer provavelmente foi criado com sucesso."
# AI Translated
msgid "Performing downloader desktop integration failed - boost::filesystem::canonical did not return appimage path." msgid "Performing downloader desktop integration failed - boost::filesystem::canonical did not return appimage path."
msgstr "Falha ao realizar a integração do downloader com a área de trabalho - boost::filesystem::canonical não retornou o caminho do appimage." msgstr "Falha ao realizar a integração do downloader com a área de trabalho - boost::filesystem::canonical não retornou o caminho do appimage."
# AI Translated
msgid "Performing downloader desktop integration failed - Could not find executable." msgid "Performing downloader desktop integration failed - Could not find executable."
msgstr "Falha ao realizar a integração do downloader com a área de trabalho - não foi possível encontrar o executável." msgstr "Falha ao realizar a integração do downloader com a área de trabalho - não foi possível encontrar o executável."
# AI Translated
msgid "Performing downloader desktop integration failed because the application directory was not found." msgid "Performing downloader desktop integration failed because the application directory was not found."
msgstr "Falha ao realizar a integração do downloader com a área de trabalho porque o diretório do aplicativo não foi encontrado." msgstr "Falha ao realizar a integração do downloader com a área de trabalho porque o diretório do aplicativo não foi encontrado."
# AI Translated
msgid "Desktop Integration" msgid "Desktop Integration"
msgstr "Integração com a área de trabalho" msgstr "Integração com a Área de Trabalho"
# AI Translated
msgid "" msgid ""
"Desktop Integration sets this binary to be searchable by the system.\n" "Desktop Integration sets this binary to be searchable by the system.\n"
"\n" "\n"
@@ -20596,40 +20553,33 @@ msgstr "Arquivar pré-visualização"
msgid "Open File" msgid "Open File"
msgstr "Abrir Arquivo" msgstr "Abrir Arquivo"
# AI Translated
msgid "AMS Dryness Control" msgid "AMS Dryness Control"
msgstr "Controle de secura do AMS" msgstr "Controle de Secura do AMS"
# AI Translated
msgid "Filament Drying Settings" msgid "Filament Drying Settings"
msgstr "Configurações de secagem de filamento" msgstr "Configurações de Secagem de Filamento"
msgid "Stopping" msgid "Stopping"
msgstr "Parando" msgstr "Parando"
# AI Translated
msgid "Unable to dry temporarily due to ..." msgid "Unable to dry temporarily due to ..."
msgstr "Não é possível secar temporariamente devido a ..." msgstr "Não é possível secar temporariamente devido a"
msgid "Drying Error" msgid "Drying Error"
msgstr "Erro de Secagem" msgstr "Erro de Secagem"
# AI Translated
msgid "Please check the Assistant for troubleshooting" msgid "Please check the Assistant for troubleshooting"
msgstr "Por favor, verifique o Assistente para solução de problemas" msgstr "Por favor, verifique o Assistente para solução de problemas"
# AI Translated
msgid "Please remove and store the filament (as shown)." msgid "Please remove and store the filament (as shown)."
msgstr "Por favor, remova e guarde o filamento (como mostrado)." msgstr "Por favor, remova e guarde o filamento (como mostrado)."
# AI Translated
msgid "The AMS can rotate the filament which is properly stored, providing better drying results." msgid "The AMS can rotate the filament which is properly stored, providing better drying results."
msgstr "O AMS pode girar o filamento que está corretamente armazenado, proporcionando melhores resultados de secagem." msgstr "O AMS pode girar o filamento que está corretamente armazenado, proporcionando melhores resultados de secagem."
msgid "Rotate spool when drying" msgid "Rotate spool when drying"
msgstr "Girar o carretel durante a secagem" msgstr "Girar o carretel durante a secagem"
# AI Translated
msgctxt "amsdrying" msgctxt "amsdrying"
msgid "Back" msgid "Back"
msgstr "Voltar" msgstr "Voltar"
@@ -20649,11 +20599,9 @@ msgstr " temperatura mínima de secagem é "
msgid "This filament may not be completely dried." msgid "This filament may not be completely dried."
msgstr "Este filamento pode não estar completamente seco." msgstr "Este filamento pode não estar completamente seco."
# AI Translated
msgid "This AMS is currently printing. To ensure print quality, the drying temperature cannot exceed the recommended drying temperature." msgid "This AMS is currently printing. To ensure print quality, the drying temperature cannot exceed the recommended drying temperature."
msgstr "Este AMS está imprimindo no momento. Para garantir a qualidade da impressão, a temperatura de secagem não pode exceder a temperatura de secagem recomendada." msgstr "Este AMS está imprimindo no momento. Para garantir a qualidade da impressão, a temperatura de secagem não pode exceder a temperatura de secagem recomendada."
# AI Translated
msgid "The temperature shall not exceed the filament's heat distortion temperature" msgid "The temperature shall not exceed the filament's heat distortion temperature"
msgstr "A temperatura não deve exceder a temperatura de distorção térmica do filamento" msgstr "A temperatura não deve exceder a temperatura de distorção térmica do filamento"
@@ -20666,22 +20614,18 @@ msgstr "O valor máximo de tempo não pode ser superior a 24."
msgid "Insufficient power" msgid "Insufficient power"
msgstr "Potência insuficiente" msgstr "Potência insuficiente"
# AI Translated
msgid " Too many AMS drying simultaneously. Please plug in the power or stop other drying processes before starting." msgid " Too many AMS drying simultaneously. Please plug in the power or stop other drying processes before starting."
msgstr " Muitos AMS secando simultaneamente. Por favor, conecte à energia ou pare outros processos de secagem antes de iniciar." msgstr " Muitos AMS secando simultaneamente. Por favor, conecte à energia ou pare outros processos de secagem antes de iniciar."
msgid "AMS is busy" msgid "AMS is busy"
msgstr "O AMS está ocupado" msgstr "O AMS está ocupado"
# AI Translated
msgid " AMS is calibrating | reading RFID | loading/unloading material, please wait." msgid " AMS is calibrating | reading RFID | loading/unloading material, please wait."
msgstr " O AMS está calibrando | lendo RFID | carregando/descarregando material, por favor aguarde." msgstr " O AMS está calibrando | lendo RFID | carregando/descarregando material, por favor aguarde."
# AI Translated
msgid "Filament in AMS outlet" msgid "Filament in AMS outlet"
msgstr "Filamento na saída do AMS" msgstr "Filamento na saída do AMS"
# AI Translated
msgid " The high drying temperature may cause AMS blockage, please unload first." msgid " The high drying temperature may cause AMS blockage, please unload first."
msgstr " A alta temperatura de secagem pode causar bloqueio do AMS, por favor descarregue primeiro." msgstr " A alta temperatura de secagem pode causar bloqueio do AMS, por favor descarregue primeiro."
@@ -20694,18 +20638,15 @@ msgstr "Não suportado no modo 2D"
msgid "Task in progress" msgid "Task in progress"
msgstr "Tarefa em progresso" msgstr "Tarefa em progresso"
# AI Translated
msgid " The AMS might be in use during Task." msgid " The AMS might be in use during Task."
msgstr " O AMS pode estar em uso durante a Tarefa." msgstr " O AMS pode estar em uso durante a Tarefa."
msgid " Firmware update in progress, please wait..." msgid " Firmware update in progress, please wait..."
msgstr " Atualização de firmware em progresso, por favor aguarde..." msgstr " Atualização de firmware em progresso, por favor aguarde"
# AI Translated
msgid " Please plug in the power and then use the drying function." msgid " Please plug in the power and then use the drying function."
msgstr " Por favor, conecte à energia e depois use a função de secagem." msgstr " Por favor, conecte à energia e então use a função de secagem."
# AI Translated
msgid " The high drying temperature may cause AMS blockage. Please unload the filament manually before proceeding." msgid " The high drying temperature may cause AMS blockage. Please unload the filament manually before proceeding."
msgstr " A alta temperatura de secagem pode causar bloqueio do AMS. Por favor, descarregue o filamento manualmente antes de prosseguir." msgstr " A alta temperatura de secagem pode causar bloqueio do AMS. Por favor, descarregue o filamento manualmente antes de prosseguir."
@@ -20713,7 +20654,7 @@ msgid "System is busy"
msgstr "O sistema está ocupado" msgstr "O sistema está ocupado"
msgid " Initiating other drying processes, please wait a few seconds..." msgid " Initiating other drying processes, please wait a few seconds..."
msgstr " Iniciando outros processos de secagem, por favor aguarde alguns segundos..." msgstr " Iniciando outros processos de secagem, por favor aguarde alguns segundos"
msgid "For better drying results, remove the filament and allow it to rotate." msgid "For better drying results, remove the filament and allow it to rotate."
msgstr "Para obter melhores resultados de secagem, remova o filamento e permita que ele gire." msgstr "Para obter melhores resultados de secagem, remova o filamento e permita que ele gire."
@@ -21078,17 +21019,6 @@ msgstr ""
#~ msgid "Rear" #~ msgid "Rear"
#~ msgstr "Traseira" #~ msgstr "Traseira"
# AI Translated
#, boost-format
#~ msgid ""
#~ "Objects(%1%) have duplicated connectors. Some connectors may be missing in slicing result.\n"
#~ "Please report to PrusaSlicer team in which scenario this issue happened.\n"
#~ "Thank you."
#~ msgstr ""
#~ "Os objetos(%1%) têm conectores duplicados. Alguns conectores podem estar faltando no resultado do fatiamento.\n"
#~ "Por favor, informe à equipe do PrusaSlicer em qual cenário esse problema ocorreu.\n"
#~ "Obrigado."
#~ msgid "Skip for Now" #~ msgid "Skip for Now"
#~ msgstr "Pular por Enquanto" #~ msgstr "Pular por Enquanto"

File diff suppressed because it is too large Load Diff

View File

@@ -9088,24 +9088,24 @@ msgid "Replaced with 3D files from directory:\n"
msgstr "Ersatt med 3D-filer från mappen:\n" msgstr "Ersatt med 3D-filer från mappen:\n"
# AI Translated # AI Translated
#, boost-format #, c-format
msgid "✖ Skipped %1%: same file.\n" msgid "✖ Skipped %s: same file.\n"
msgstr "✖ Hoppade över %1%: samma fil.\n" msgstr "✖ Hoppade över %s: samma fil.\n"
# AI Translated # AI Translated
#, boost-format #, c-format
msgid "✖ Skipped %1%: file does not exist.\n" msgid "✖ Skipped %s: file does not exist.\n"
msgstr "✖ Hoppade över %1%: filen finns inte.\n" msgstr "✖ Hoppade över %s: filen finns inte.\n"
# AI Translated # AI Translated
#, boost-format #, c-format
msgid "✖ Skipped %1%: failed to replace.\n" msgid "✖ Skipped %s: failed to replace.\n"
msgstr "✖ Hoppade över %1%: det gick inte att ersätta.\n" msgstr "✖ Hoppade över %s: det gick inte att ersätta.\n"
# AI Translated # AI Translated
#, boost-format #, c-format
msgid "✔ Replaced %1%.\n" msgid "✔ Replaced %s.\n"
msgstr "✔ Ersatte %1%.\n" msgstr "✔ Ersatte %s.\n"
# AI Translated # AI Translated
msgid "Replaced volumes" msgid "Replaced volumes"

View File

@@ -8199,21 +8199,21 @@ msgstr "ไม่ได้เลือกไดเรกทอรีสำหร
msgid "Replaced with 3D files from directory:\n" msgid "Replaced with 3D files from directory:\n"
msgstr "แทนที่ด้วยไฟล์ 3D จากไดเรกทอรี:\n" msgstr "แทนที่ด้วยไฟล์ 3D จากไดเรกทอรี:\n"
#, boost-format #, c-format
msgid "✖ Skipped %1%: same file.\n" msgid "✖ Skipped %s: same file.\n"
msgstr "✖ ข้าม %1%: ไฟล์เดียวกัน\n" msgstr "✖ ข้าม %s: ไฟล์เดียวกัน\n"
#, boost-format #, c-format
msgid "✖ Skipped %1%: file does not exist.\n" msgid "✖ Skipped %s: file does not exist.\n"
msgstr "✖ ข้าม %1%: ไม่มีไฟล์อยู่\n" msgstr "✖ ข้าม %s: ไม่มีไฟล์อยู่\n"
#, boost-format #, c-format
msgid "✖ Skipped %1%: failed to replace.\n" msgid "✖ Skipped %s: failed to replace.\n"
msgstr "✖ ข้าม %1%: ไม่สามารถแทนที่ได้\n" msgstr "✖ ข้าม %s: ไม่สามารถแทนที่ได้\n"
#, boost-format #, c-format
msgid "✔ Replaced %1%.\n" msgid "✔ Replaced %s.\n"
msgstr "✔แทนที่ %1%\n" msgstr "✔แทนที่ %s\n"
msgid "Replaced volumes" msgid "Replaced volumes"
msgstr "ปริมาณที่ถูกแทนที่" msgstr "ปริมาณที่ถูกแทนที่"

File diff suppressed because it is too large Load Diff

View File

@@ -8306,21 +8306,21 @@ msgstr "Каталог для заміни не вибрано"
msgid "Replaced with 3D files from directory:\n" msgid "Replaced with 3D files from directory:\n"
msgstr "Замінено 3D-файлами з каталогу:\n" msgstr "Замінено 3D-файлами з каталогу:\n"
#, boost-format #, c-format
msgid "✖ Skipped %1%: same file.\n" msgid "✖ Skipped %s: same file.\n"
msgstr "✖ Пропущено %1%: той самий файл.\n" msgstr "✖ Пропущено %s: той самий файл.\n"
#, boost-format #, c-format
msgid "✖ Skipped %1%: file does not exist.\n" msgid "✖ Skipped %s: file does not exist.\n"
msgstr "✖ Пропущено %1%: файл не існує.\n" msgstr "✖ Пропущено %s: файл не існує.\n"
#, boost-format #, c-format
msgid "✖ Skipped %1%: failed to replace.\n" msgid "✖ Skipped %s: failed to replace.\n"
msgstr "✖ Пропущено %1%: не вдалося замінити.\n" msgstr "✖ Пропущено %s: не вдалося замінити.\n"
#, boost-format #, c-format
msgid "✔ Replaced %1%.\n" msgid "✔ Replaced %s.\n"
msgstr "✔ Замінено %1%.\n" msgstr "✔ Замінено %s.\n"
msgid "Replaced volumes" msgid "Replaced volumes"
msgstr "Замінені обʼєми" msgstr "Замінені обʼєми"

View File

@@ -8721,24 +8721,24 @@ msgid "Replaced with 3D files from directory:\n"
msgstr "Đã thay thế bằng file 3D từ thư mục:\n" msgstr "Đã thay thế bằng file 3D từ thư mục:\n"
# AI Translated # AI Translated
#, boost-format #, c-format
msgid "✖ Skipped %1%: same file.\n" msgid "✖ Skipped %s: same file.\n"
msgstr "✖ Đã bỏ qua %1%: cùng một file.\n" msgstr "✖ Đã bỏ qua %s: cùng một file.\n"
# AI Translated # AI Translated
#, boost-format #, c-format
msgid "✖ Skipped %1%: file does not exist.\n" msgid "✖ Skipped %s: file does not exist.\n"
msgstr "✖ Đã bỏ qua %1%: file không tồn tại.\n" msgstr "✖ Đã bỏ qua %s: file không tồn tại.\n"
# AI Translated # AI Translated
#, boost-format #, c-format
msgid "✖ Skipped %1%: failed to replace.\n" msgid "✖ Skipped %s: failed to replace.\n"
msgstr "✖ Đã bỏ qua %1%: thay thế thất bại.\n" msgstr "✖ Đã bỏ qua %s: thay thế thất bại.\n"
# AI Translated # AI Translated
#, boost-format #, c-format
msgid "✔ Replaced %1%.\n" msgid "✔ Replaced %s.\n"
msgstr "✔ Đã thay thế %1%.\n" msgstr "✔ Đã thay thế %s.\n"
# AI Translated # AI Translated
msgid "Replaced volumes" msgid "Replaced volumes"

View File

@@ -8028,21 +8028,21 @@ msgstr "未选择替换目录"
msgid "Replaced with 3D files from directory:\n" msgid "Replaced with 3D files from directory:\n"
msgstr "替换为目录中的 3D 文件:\n" msgstr "替换为目录中的 3D 文件:\n"
#, boost-format #, c-format
msgid "✖ Skipped %1%: same file.\n" msgid "✖ Skipped %s: same file.\n"
msgstr "✖ 跳过 %1%:同一文件。\n" msgstr "✖ 跳过 %s:同一文件。\n"
#, boost-format #, c-format
msgid "✖ Skipped %1%: file does not exist.\n" msgid "✖ Skipped %s: file does not exist.\n"
msgstr "✖ 跳过%1%:文件不存在。\n" msgstr "✖ 跳过%s:文件不存在。\n"
#, boost-format #, c-format
msgid "✖ Skipped %1%: failed to replace.\n" msgid "✖ Skipped %s: failed to replace.\n"
msgstr "✖ 跳过%1%:替换失败。\n" msgstr "✖ 跳过%s:替换失败。\n"
#, boost-format #, c-format
msgid "✔ Replaced %1%.\n" msgid "✔ Replaced %s.\n"
msgstr "✔ 替换了 %1%。\n" msgstr "✔ 替换了 %s。\n"
msgid "Replaced volumes" msgid "Replaced volumes"
msgstr "替换的卷" msgstr "替换的卷"

View File

@@ -8193,21 +8193,21 @@ msgstr "未選擇替換的目錄"
msgid "Replaced with 3D files from directory:\n" msgid "Replaced with 3D files from directory:\n"
msgstr "已從目錄替換為 3D 檔案:\n" msgstr "已從目錄替換為 3D 檔案:\n"
#, boost-format #, c-format
msgid "✖ Skipped %1%: same file.\n" msgid "✖ Skipped %s: same file.\n"
msgstr "✖ 已跳過 %1%:相同檔案。\n" msgstr "✖ 已跳過 %s:相同檔案。\n"
#, boost-format #, c-format
msgid "✖ Skipped %1%: file does not exist.\n" msgid "✖ Skipped %s: file does not exist.\n"
msgstr "✖ 已跳過 %1%:檔案不存在。\n" msgstr "✖ 已跳過 %s:檔案不存在。\n"
#, boost-format #, c-format
msgid "✖ Skipped %1%: failed to replace.\n" msgid "✖ Skipped %s: failed to replace.\n"
msgstr "✖ 已跳過 %1%:無法替換。\n" msgstr "✖ 已跳過 %s:無法替換。\n"
#, boost-format #, c-format
msgid "✔ Replaced %1%.\n" msgid "✔ Replaced %s.\n"
msgstr "✔ 已替換 %1%。\n" msgstr "✔ 已替換 %s。\n"
msgid "Replaced volumes" msgid "Replaced volumes"
msgstr "已替換體積" msgstr "已替換體積"

View File

@@ -1,6 +1,6 @@
{ {
"name": "Creality", "name": "Creality",
"version": "02.03.02.75", "version": "02.03.02.76",
"force_update": "0", "force_update": "0",
"description": "Creality configurations", "description": "Creality configurations",
"machine_model_list": [ "machine_model_list": [

View File

@@ -39,7 +39,7 @@
"draft_shield": "disabled", "draft_shield": "disabled",
"elefant_foot_compensation": "0.15", "elefant_foot_compensation": "0.15",
"elefant_foot_compensation_layers": "1", "elefant_foot_compensation_layers": "1",
"enable_arc_fitting": "1", "enable_arc_fitting": "0",
"enable_overhang_speed": "1", "enable_overhang_speed": "1",
"enable_prime_tower": "1", "enable_prime_tower": "1",
"enable_support": "0", "enable_support": "0",

View File

@@ -39,7 +39,7 @@
"draft_shield": "disabled", "draft_shield": "disabled",
"elefant_foot_compensation": "0.15", "elefant_foot_compensation": "0.15",
"elefant_foot_compensation_layers": "1", "elefant_foot_compensation_layers": "1",
"enable_arc_fitting": "1", "enable_arc_fitting": "0",
"enable_overhang_speed": "1", "enable_overhang_speed": "1",
"enable_prime_tower": "1", "enable_prime_tower": "1",
"enable_support": "0", "enable_support": "0",

View File

@@ -39,7 +39,7 @@
"draft_shield": "disabled", "draft_shield": "disabled",
"elefant_foot_compensation": "0.15", "elefant_foot_compensation": "0.15",
"elefant_foot_compensation_layers": "1", "elefant_foot_compensation_layers": "1",
"enable_arc_fitting": "1", "enable_arc_fitting": "0",
"enable_overhang_speed": "1", "enable_overhang_speed": "1",
"enable_prime_tower": "1", "enable_prime_tower": "1",
"enable_support": "0", "enable_support": "0",

View File

@@ -39,7 +39,7 @@
"draft_shield": "disabled", "draft_shield": "disabled",
"elefant_foot_compensation": "0.15", "elefant_foot_compensation": "0.15",
"elefant_foot_compensation_layers": "1", "elefant_foot_compensation_layers": "1",
"enable_arc_fitting": "1", "enable_arc_fitting": "0",
"enable_overhang_speed": "1", "enable_overhang_speed": "1",
"enable_prime_tower": "1", "enable_prime_tower": "1",
"enable_support": "0", "enable_support": "0",

View File

@@ -39,7 +39,7 @@
"draft_shield": "disabled", "draft_shield": "disabled",
"elefant_foot_compensation": "0.15", "elefant_foot_compensation": "0.15",
"elefant_foot_compensation_layers": "1", "elefant_foot_compensation_layers": "1",
"enable_arc_fitting": "1", "enable_arc_fitting": "0",
"enable_overhang_speed": "1", "enable_overhang_speed": "1",
"enable_prime_tower": "1", "enable_prime_tower": "1",
"enable_support": "0", "enable_support": "0",

View File

@@ -39,7 +39,7 @@
"draft_shield": "disabled", "draft_shield": "disabled",
"elefant_foot_compensation": "0.15", "elefant_foot_compensation": "0.15",
"elefant_foot_compensation_layers": "1", "elefant_foot_compensation_layers": "1",
"enable_arc_fitting": "1", "enable_arc_fitting": "0",
"enable_overhang_speed": "1", "enable_overhang_speed": "1",
"enable_prime_tower": "1", "enable_prime_tower": "1",
"enable_support": "0", "enable_support": "0",

View File

@@ -39,7 +39,7 @@
"draft_shield": "disabled", "draft_shield": "disabled",
"elefant_foot_compensation": "0.15", "elefant_foot_compensation": "0.15",
"elefant_foot_compensation_layers": "1", "elefant_foot_compensation_layers": "1",
"enable_arc_fitting": "1", "enable_arc_fitting": "0",
"enable_overhang_speed": "1", "enable_overhang_speed": "1",
"enable_prime_tower": "1", "enable_prime_tower": "1",
"enable_support": "0", "enable_support": "0",

View File

@@ -39,7 +39,7 @@
"draft_shield": "disabled", "draft_shield": "disabled",
"elefant_foot_compensation": "0.15", "elefant_foot_compensation": "0.15",
"elefant_foot_compensation_layers": "1", "elefant_foot_compensation_layers": "1",
"enable_arc_fitting": "1", "enable_arc_fitting": "0",
"enable_overhang_speed": "1", "enable_overhang_speed": "1",
"enable_prime_tower": "1", "enable_prime_tower": "1",
"enable_support": "0", "enable_support": "0",

View File

@@ -38,7 +38,7 @@
"draft_shield": "disabled", "draft_shield": "disabled",
"elefant_foot_compensation": "0.15", "elefant_foot_compensation": "0.15",
"elefant_foot_compensation_layers": "1", "elefant_foot_compensation_layers": "1",
"enable_arc_fitting": "1", "enable_arc_fitting": "0",
"enable_overhang_speed": "1", "enable_overhang_speed": "1",
"enable_prime_tower": "1", "enable_prime_tower": "1",
"enable_support": "0", "enable_support": "0",

View File

@@ -38,7 +38,7 @@
"draft_shield": "disabled", "draft_shield": "disabled",
"elefant_foot_compensation": "0.15", "elefant_foot_compensation": "0.15",
"elefant_foot_compensation_layers": "1", "elefant_foot_compensation_layers": "1",
"enable_arc_fitting": "1", "enable_arc_fitting": "0",
"enable_overhang_speed": "1", "enable_overhang_speed": "1",
"enable_prime_tower": "1", "enable_prime_tower": "1",
"enable_support": "0", "enable_support": "0",

View File

@@ -39,7 +39,7 @@
"draft_shield": "disabled", "draft_shield": "disabled",
"elefant_foot_compensation": "0.15", "elefant_foot_compensation": "0.15",
"elefant_foot_compensation_layers": "1", "elefant_foot_compensation_layers": "1",
"enable_arc_fitting": "1", "enable_arc_fitting": "0",
"enable_overhang_speed": "1", "enable_overhang_speed": "1",
"enable_prime_tower": "1", "enable_prime_tower": "1",
"enable_support": "0", "enable_support": "0",

View File

@@ -39,7 +39,7 @@
"draft_shield": "disabled", "draft_shield": "disabled",
"elefant_foot_compensation": "0.15", "elefant_foot_compensation": "0.15",
"elefant_foot_compensation_layers": "1", "elefant_foot_compensation_layers": "1",
"enable_arc_fitting": "1", "enable_arc_fitting": "0",
"enable_overhang_speed": "1", "enable_overhang_speed": "1",
"enable_prime_tower": "1", "enable_prime_tower": "1",
"enable_support": "0", "enable_support": "0",

View File

@@ -39,7 +39,7 @@
"draft_shield": "disabled", "draft_shield": "disabled",
"elefant_foot_compensation": "0.15", "elefant_foot_compensation": "0.15",
"elefant_foot_compensation_layers": "1", "elefant_foot_compensation_layers": "1",
"enable_arc_fitting": "1", "enable_arc_fitting": "0",
"enable_overhang_speed": "1", "enable_overhang_speed": "1",
"enable_prime_tower": "1", "enable_prime_tower": "1",
"enable_support": "0", "enable_support": "0",

View File

@@ -39,7 +39,7 @@
"draft_shield": "disabled", "draft_shield": "disabled",
"elefant_foot_compensation": "0.15", "elefant_foot_compensation": "0.15",
"elefant_foot_compensation_layers": "1", "elefant_foot_compensation_layers": "1",
"enable_arc_fitting": "1", "enable_arc_fitting": "0",
"enable_overhang_speed": "1", "enable_overhang_speed": "1",
"enable_prime_tower": "1", "enable_prime_tower": "1",
"enable_support": "0", "enable_support": "0",

View File

@@ -128,7 +128,7 @@
"detect_narrow_internal_solid_infill": "1", "detect_narrow_internal_solid_infill": "1",
"dont_filter_internal_bridges": "disabled", "dont_filter_internal_bridges": "disabled",
"elefant_foot_compensation_layers": "1", "elefant_foot_compensation_layers": "1",
"enable_arc_fitting": "1", "enable_arc_fitting": "0",
"enable_overhang_speed": "1", "enable_overhang_speed": "1",
"enforce_support_layers": "0", "enforce_support_layers": "0",
"ensure_vertical_shell_thickness": "ensure_all", "ensure_vertical_shell_thickness": "ensure_all",

View File

@@ -39,7 +39,7 @@
"draft_shield": "disabled", "draft_shield": "disabled",
"elefant_foot_compensation": "0.15", "elefant_foot_compensation": "0.15",
"elefant_foot_compensation_layers": "1", "elefant_foot_compensation_layers": "1",
"enable_arc_fitting": "1", "enable_arc_fitting": "0",
"enable_overhang_speed": "1", "enable_overhang_speed": "1",
"enable_prime_tower": "1", "enable_prime_tower": "1",
"enable_support": "0", "enable_support": "0",

View File

@@ -124,7 +124,7 @@
"detect_narrow_internal_solid_infill": "1", "detect_narrow_internal_solid_infill": "1",
"dont_filter_internal_bridges": "disabled", "dont_filter_internal_bridges": "disabled",
"elefant_foot_compensation_layers": "1", "elefant_foot_compensation_layers": "1",
"enable_arc_fitting": "1", "enable_arc_fitting": "0",
"enable_overhang_speed": "1", "enable_overhang_speed": "1",
"enforce_support_layers": "0", "enforce_support_layers": "0",
"ensure_vertical_shell_thickness": "ensure_all", "ensure_vertical_shell_thickness": "ensure_all",

View File

@@ -38,7 +38,7 @@
"draft_shield": "disabled", "draft_shield": "disabled",
"elefant_foot_compensation": "0.15", "elefant_foot_compensation": "0.15",
"elefant_foot_compensation_layers": "1", "elefant_foot_compensation_layers": "1",
"enable_arc_fitting": "1", "enable_arc_fitting": "0",
"enable_overhang_speed": "1", "enable_overhang_speed": "1",
"enable_prime_tower": "1", "enable_prime_tower": "1",
"enable_support": "0", "enable_support": "0",

View File

@@ -128,7 +128,7 @@
"detect_narrow_internal_solid_infill": "1", "detect_narrow_internal_solid_infill": "1",
"dont_filter_internal_bridges": "disabled", "dont_filter_internal_bridges": "disabled",
"elefant_foot_compensation_layers": "1", "elefant_foot_compensation_layers": "1",
"enable_arc_fitting": "1", "enable_arc_fitting": "0",
"enable_overhang_speed": "1", "enable_overhang_speed": "1",
"enforce_support_layers": "0", "enforce_support_layers": "0",
"ensure_vertical_shell_thickness": "ensure_all", "ensure_vertical_shell_thickness": "ensure_all",

View File

@@ -39,7 +39,7 @@
"draft_shield": "disabled", "draft_shield": "disabled",
"elefant_foot_compensation": "0.15", "elefant_foot_compensation": "0.15",
"elefant_foot_compensation_layers": "1", "elefant_foot_compensation_layers": "1",
"enable_arc_fitting": "1", "enable_arc_fitting": "0",
"enable_overhang_speed": "1", "enable_overhang_speed": "1",
"enable_prime_tower": "1", "enable_prime_tower": "1",
"enable_support": "0", "enable_support": "0",

View File

@@ -128,7 +128,7 @@
"detect_narrow_internal_solid_infill": "1", "detect_narrow_internal_solid_infill": "1",
"dont_filter_internal_bridges": "disabled", "dont_filter_internal_bridges": "disabled",
"elefant_foot_compensation_layers": "1", "elefant_foot_compensation_layers": "1",
"enable_arc_fitting": "1", "enable_arc_fitting": "0",
"enable_overhang_speed": "1", "enable_overhang_speed": "1",
"enforce_support_layers": "0", "enforce_support_layers": "0",
"ensure_vertical_shell_thickness": "ensure_all", "ensure_vertical_shell_thickness": "ensure_all",

View File

@@ -39,7 +39,7 @@
"draft_shield": "disabled", "draft_shield": "disabled",
"elefant_foot_compensation": "0.15", "elefant_foot_compensation": "0.15",
"elefant_foot_compensation_layers": "1", "elefant_foot_compensation_layers": "1",
"enable_arc_fitting": "1", "enable_arc_fitting": "0",
"enable_overhang_speed": "1", "enable_overhang_speed": "1",
"enable_prime_tower": "1", "enable_prime_tower": "1",
"enable_support": "0", "enable_support": "0",

View File

@@ -39,7 +39,7 @@
"draft_shield": "disabled", "draft_shield": "disabled",
"elefant_foot_compensation": "0.15", "elefant_foot_compensation": "0.15",
"elefant_foot_compensation_layers": "1", "elefant_foot_compensation_layers": "1",
"enable_arc_fitting": "1", "enable_arc_fitting": "0",
"enable_overhang_speed": "1", "enable_overhang_speed": "1",
"enable_prime_tower": "1", "enable_prime_tower": "1",
"enable_support": "0", "enable_support": "0",

View File

@@ -39,7 +39,7 @@
"draft_shield": "disabled", "draft_shield": "disabled",
"elefant_foot_compensation": "0.15", "elefant_foot_compensation": "0.15",
"elefant_foot_compensation_layers": "1", "elefant_foot_compensation_layers": "1",
"enable_arc_fitting": "1", "enable_arc_fitting": "0",
"enable_overhang_speed": "1", "enable_overhang_speed": "1",
"enable_prime_tower": "1", "enable_prime_tower": "1",
"enable_support": "0", "enable_support": "0",

View File

@@ -38,7 +38,7 @@
"draft_shield": "disabled", "draft_shield": "disabled",
"elefant_foot_compensation": "0.15", "elefant_foot_compensation": "0.15",
"elefant_foot_compensation_layers": "1", "elefant_foot_compensation_layers": "1",
"enable_arc_fitting": "1", "enable_arc_fitting": "0",
"enable_overhang_speed": "1", "enable_overhang_speed": "1",
"enable_prime_tower": "1", "enable_prime_tower": "1",
"enable_support": "0", "enable_support": "0",

View File

@@ -38,7 +38,7 @@
"draft_shield": "disabled", "draft_shield": "disabled",
"elefant_foot_compensation": "0.15", "elefant_foot_compensation": "0.15",
"elefant_foot_compensation_layers": "1", "elefant_foot_compensation_layers": "1",
"enable_arc_fitting": "1", "enable_arc_fitting": "0",
"enable_overhang_speed": "1", "enable_overhang_speed": "1",
"enable_prime_tower": "1", "enable_prime_tower": "1",
"enable_support": "0", "enable_support": "0",

View File

@@ -39,7 +39,7 @@
"draft_shield": "disabled", "draft_shield": "disabled",
"elefant_foot_compensation": "0.15", "elefant_foot_compensation": "0.15",
"elefant_foot_compensation_layers": "1", "elefant_foot_compensation_layers": "1",
"enable_arc_fitting": "1", "enable_arc_fitting": "0",
"enable_overhang_speed": "1", "enable_overhang_speed": "1",
"enable_prime_tower": "1", "enable_prime_tower": "1",
"enable_support": "0", "enable_support": "0",

View File

@@ -39,7 +39,7 @@
"draft_shield": "disabled", "draft_shield": "disabled",
"elefant_foot_compensation": "0.15", "elefant_foot_compensation": "0.15",
"elefant_foot_compensation_layers": "1", "elefant_foot_compensation_layers": "1",
"enable_arc_fitting": "1", "enable_arc_fitting": "0",
"enable_overhang_speed": "1", "enable_overhang_speed": "1",
"enable_prime_tower": "1", "enable_prime_tower": "1",
"enable_support": "0", "enable_support": "0",

View File

@@ -39,7 +39,7 @@
"draft_shield": "disabled", "draft_shield": "disabled",
"elefant_foot_compensation": "0.15", "elefant_foot_compensation": "0.15",
"elefant_foot_compensation_layers": "1", "elefant_foot_compensation_layers": "1",
"enable_arc_fitting": "1", "enable_arc_fitting": "0",
"enable_overhang_speed": "1", "enable_overhang_speed": "1",
"enable_prime_tower": "1", "enable_prime_tower": "1",
"enable_support": "0", "enable_support": "0",

View File

@@ -39,7 +39,7 @@
"draft_shield": "disabled", "draft_shield": "disabled",
"elefant_foot_compensation": "0.15", "elefant_foot_compensation": "0.15",
"elefant_foot_compensation_layers": "1", "elefant_foot_compensation_layers": "1",
"enable_arc_fitting": "1", "enable_arc_fitting": "0",
"enable_overhang_speed": "1", "enable_overhang_speed": "1",
"enable_prime_tower": "1", "enable_prime_tower": "1",
"enable_support": "0", "enable_support": "0",

View File

@@ -126,7 +126,7 @@
"detect_narrow_internal_solid_infill": "1", "detect_narrow_internal_solid_infill": "1",
"dont_filter_internal_bridges": "disabled", "dont_filter_internal_bridges": "disabled",
"elefant_foot_compensation_layers": "1", "elefant_foot_compensation_layers": "1",
"enable_arc_fitting": "1", "enable_arc_fitting": "0",
"enable_overhang_speed": "1", "enable_overhang_speed": "1",
"enforce_support_layers": "0", "enforce_support_layers": "0",
"ensure_vertical_shell_thickness": "ensure_all", "ensure_vertical_shell_thickness": "ensure_all",

View File

@@ -38,7 +38,7 @@
"draft_shield": "disabled", "draft_shield": "disabled",
"elefant_foot_compensation": "0.15", "elefant_foot_compensation": "0.15",
"elefant_foot_compensation_layers": "1", "elefant_foot_compensation_layers": "1",
"enable_arc_fitting": "1", "enable_arc_fitting": "0",
"enable_overhang_speed": "1", "enable_overhang_speed": "1",
"enable_prime_tower": "0", "enable_prime_tower": "0",
"enable_support": "0", "enable_support": "0",

View File

@@ -126,7 +126,7 @@
"detect_narrow_internal_solid_infill": "1", "detect_narrow_internal_solid_infill": "1",
"dont_filter_internal_bridges": "disabled", "dont_filter_internal_bridges": "disabled",
"elefant_foot_compensation_layers": "1", "elefant_foot_compensation_layers": "1",
"enable_arc_fitting": "1", "enable_arc_fitting": "0",
"enable_overhang_speed": "1", "enable_overhang_speed": "1",
"enforce_support_layers": "0", "enforce_support_layers": "0",
"ensure_vertical_shell_thickness": "ensure_all", "ensure_vertical_shell_thickness": "ensure_all",

View File

@@ -126,7 +126,7 @@
"detect_narrow_internal_solid_infill": "1", "detect_narrow_internal_solid_infill": "1",
"dont_filter_internal_bridges": "disabled", "dont_filter_internal_bridges": "disabled",
"elefant_foot_compensation_layers": "1", "elefant_foot_compensation_layers": "1",
"enable_arc_fitting": "1", "enable_arc_fitting": "0",
"enable_overhang_speed": "1", "enable_overhang_speed": "1",
"enforce_support_layers": "0", "enforce_support_layers": "0",
"ensure_vertical_shell_thickness": "ensure_all", "ensure_vertical_shell_thickness": "ensure_all",

View File

@@ -126,7 +126,7 @@
"detect_narrow_internal_solid_infill": "1", "detect_narrow_internal_solid_infill": "1",
"dont_filter_internal_bridges": "disabled", "dont_filter_internal_bridges": "disabled",
"elefant_foot_compensation_layers": "1", "elefant_foot_compensation_layers": "1",
"enable_arc_fitting": "1", "enable_arc_fitting": "0",
"enable_overhang_speed": "1", "enable_overhang_speed": "1",
"enforce_support_layers": "0", "enforce_support_layers": "0",
"ensure_vertical_shell_thickness": "ensure_all", "ensure_vertical_shell_thickness": "ensure_all",

View File

@@ -126,7 +126,7 @@
"detect_narrow_internal_solid_infill": "1", "detect_narrow_internal_solid_infill": "1",
"dont_filter_internal_bridges": "disabled", "dont_filter_internal_bridges": "disabled",
"elefant_foot_compensation_layers": "1", "elefant_foot_compensation_layers": "1",
"enable_arc_fitting": "1", "enable_arc_fitting": "0",
"enable_overhang_speed": "1", "enable_overhang_speed": "1",
"enforce_support_layers": "0", "enforce_support_layers": "0",
"ensure_vertical_shell_thickness": "ensure_all", "ensure_vertical_shell_thickness": "ensure_all",

View File

@@ -126,7 +126,7 @@
"detect_narrow_internal_solid_infill": "1", "detect_narrow_internal_solid_infill": "1",
"dont_filter_internal_bridges": "disabled", "dont_filter_internal_bridges": "disabled",
"elefant_foot_compensation_layers": "1", "elefant_foot_compensation_layers": "1",
"enable_arc_fitting": "1", "enable_arc_fitting": "0",
"enable_overhang_speed": "1", "enable_overhang_speed": "1",
"enforce_support_layers": "0", "enforce_support_layers": "0",
"ensure_vertical_shell_thickness": "ensure_all", "ensure_vertical_shell_thickness": "ensure_all",

View File

@@ -1,6 +1,6 @@
{ {
"name": "Custom Printer", "name": "Custom Printer",
"version": "02.04.00.01", "version": "02.04.00.03",
"force_update": "0", "force_update": "0",
"description": "My configurations", "description": "My configurations",
"machine_model_list": [ "machine_model_list": [

View File

@@ -24,12 +24,6 @@
"filament_loading_speed_start": [ "filament_loading_speed_start": [
"50" "50"
], ],
"filament_multitool_ramming": [
"1"
],
"filament_multitool_ramming_flow": [
"40"
],
"filament_stamping_distance": [ "filament_stamping_distance": [
"45" "45"
], ],

View File

@@ -24,12 +24,6 @@
"filament_loading_speed_start": [ "filament_loading_speed_start": [
"50" "50"
], ],
"filament_multitool_ramming": [
"1"
],
"filament_multitool_ramming_flow": [
"40"
],
"filament_stamping_distance": [ "filament_stamping_distance": [
"45" "45"
], ],

View File

@@ -24,12 +24,6 @@
"filament_loading_speed_start": [ "filament_loading_speed_start": [
"50" "50"
], ],
"filament_multitool_ramming": [
"1"
],
"filament_multitool_ramming_flow": [
"40"
],
"filament_stamping_distance": [ "filament_stamping_distance": [
"45" "45"
], ],

View File

@@ -24,12 +24,6 @@
"filament_loading_speed_start": [ "filament_loading_speed_start": [
"50" "50"
], ],
"filament_multitool_ramming": [
"1"
],
"filament_multitool_ramming_flow": [
"40"
],
"filament_stamping_distance": [ "filament_stamping_distance": [
"45" "45"
], ],

View File

@@ -25,12 +25,6 @@
"filament_loading_speed_start": [ "filament_loading_speed_start": [
"50" "50"
], ],
"filament_multitool_ramming": [
"1"
],
"filament_multitool_ramming_flow": [
"40"
],
"filament_stamping_distance": [ "filament_stamping_distance": [
"45" "45"
], ],

View File

@@ -25,12 +25,6 @@
"filament_loading_speed_start": [ "filament_loading_speed_start": [
"50" "50"
], ],
"filament_multitool_ramming": [
"1"
],
"filament_multitool_ramming_flow": [
"40"
],
"filament_stamping_distance": [ "filament_stamping_distance": [
"45" "45"
], ],

View File

@@ -25,12 +25,6 @@
"filament_loading_speed_start": [ "filament_loading_speed_start": [
"50" "50"
], ],
"filament_multitool_ramming": [
"1"
],
"filament_multitool_ramming_flow": [
"40"
],
"filament_stamping_distance": [ "filament_stamping_distance": [
"45" "45"
], ],

View File

@@ -25,12 +25,6 @@
"filament_loading_speed_start": [ "filament_loading_speed_start": [
"50" "50"
], ],
"filament_multitool_ramming": [
"1"
],
"filament_multitool_ramming_flow": [
"40"
],
"filament_stamping_distance": [ "filament_stamping_distance": [
"45" "45"
], ],

View File

@@ -25,12 +25,6 @@
"filament_loading_speed_start": [ "filament_loading_speed_start": [
"50" "50"
], ],
"filament_multitool_ramming": [
"1"
],
"filament_multitool_ramming_flow": [
"40"
],
"filament_stamping_distance": [ "filament_stamping_distance": [
"45" "45"
], ],

View File

@@ -116,7 +116,7 @@
"deretraction_speed": [ "deretraction_speed": [
"30" "30"
], ],
"z_hop_types": "Normal Lift", "z_hop_types": "Slope Lift",
"silent_mode": "0", "silent_mode": "0",
"single_extruder_multi_material": "1", "single_extruder_multi_material": "1",
"change_filament_gcode": "", "change_filament_gcode": "",

View File

@@ -118,7 +118,7 @@
"deretraction_speed": [ "deretraction_speed": [
"30" "30"
], ],
"z_hop_types": "Normal Lift", "z_hop_types": "Slope Lift",
"silent_mode": "0", "silent_mode": "0",
"single_extruder_multi_material": "1", "single_extruder_multi_material": "1",
"change_filament_gcode": "", "change_filament_gcode": "",

View File

@@ -116,7 +116,7 @@
"deretraction_speed": [ "deretraction_speed": [
"30" "30"
], ],
"z_hop_types": "Normal Lift", "z_hop_types": "Slope Lift",
"silent_mode": "0", "silent_mode": "0",
"single_extruder_multi_material": "1", "single_extruder_multi_material": "1",
"change_filament_gcode": "", "change_filament_gcode": "",

View File

@@ -6,6 +6,7 @@
"instantiation": "false", "instantiation": "false",
"gcode_flavor": "klipper", "gcode_flavor": "klipper",
"single_extruder_multi_material": "0", "single_extruder_multi_material": "0",
"wait_for_temp_on_wipe_tower": "1",
"default_filament_profile": [ "default_filament_profile": [
"Generic PLA @MyToolChanger" "Generic PLA @MyToolChanger"
], ],
@@ -172,11 +173,11 @@
"0.4" "0.4"
], ],
"z_hop_types": [ "z_hop_types": [
"Normal Lift", "Slope Lift",
"Normal Lift", "Slope Lift",
"Normal Lift", "Slope Lift",
"Normal Lift", "Slope Lift",
"Normal Lift" "Slope Lift"
], ],
"purge_in_prime_tower": "0", "purge_in_prime_tower": "0",
"machine_pause_gcode": "M601", "machine_pause_gcode": "M601",

View File

@@ -1,6 +1,6 @@
{ {
"name": "OrcaFilamentLibrary", "name": "OrcaFilamentLibrary",
"version": "02.04.00.03", "version": "02.04.00.04",
"force_update": "0", "force_update": "0",
"description": "Orca Filament Library", "description": "Orca Filament Library",
"filament_list": [ "filament_list": [

View File

@@ -36,6 +36,9 @@
"filament_max_volumetric_speed": [ "filament_max_volumetric_speed": [
"8" "8"
], ],
"filament_multitool_ramming_flow": [
"8"
],
"filament_type": [ "filament_type": [
"PET-CF" "PET-CF"
], ],

View File

@@ -39,6 +39,9 @@
"filament_max_volumetric_speed": [ "filament_max_volumetric_speed": [
"8" "8"
], ],
"filament_multitool_ramming_flow": [
"8"
],
"filament_vendor": [ "filament_vendor": [
"Bambu Lab" "Bambu Lab"
], ],

View File

@@ -39,6 +39,9 @@
"filament_max_volumetric_speed": [ "filament_max_volumetric_speed": [
"6" "6"
], ],
"filament_multitool_ramming_flow": [
"6"
],
"filament_vendor": [ "filament_vendor": [
"Bambu Lab" "Bambu Lab"
], ],

View File

@@ -21,6 +21,9 @@
"filament_max_volumetric_speed": [ "filament_max_volumetric_speed": [
"6" "6"
], ],
"filament_multitool_ramming_flow": [
"6"
],
"filament_type": [ "filament_type": [
"PLA-AERO" "PLA-AERO"
], ],

View File

@@ -27,6 +27,9 @@
"filament_max_volumetric_speed": [ "filament_max_volumetric_speed": [
"6" "6"
], ],
"filament_multitool_ramming_flow": [
"6"
],
"filament_scarf_seam_type": [ "filament_scarf_seam_type": [
"none" "none"
], ],

View File

@@ -21,6 +21,9 @@
"filament_max_volumetric_speed": [ "filament_max_volumetric_speed": [
"6" "6"
], ],
"filament_multitool_ramming_flow": [
"6"
],
"filament_vendor": [ "filament_vendor": [
"Bambu Lab" "Bambu Lab"
], ],

View File

@@ -36,6 +36,9 @@
"filament_max_volumetric_speed": [ "filament_max_volumetric_speed": [
"1" "1"
], ],
"filament_multitool_ramming_flow": [
"1"
],
"filament_retraction_minimum_travel": [ "filament_retraction_minimum_travel": [
"3" "3"
], ],

View File

@@ -72,15 +72,6 @@
"fan_min_speed": [ "fan_min_speed": [
"10" "10"
], ],
"filament_cooling_final_speed": [
"0"
],
"filament_cooling_initial_speed": [
"0"
],
"filament_cooling_moves": [
"0"
],
"filament_cost": [ "filament_cost": [
"599" "599"
], ],
@@ -99,30 +90,12 @@
"filament_is_support": [ "filament_is_support": [
"0" "0"
], ],
"filament_loading_speed": [
"0"
],
"filament_loading_speed_start": [
"0"
],
"filament_long_retractions_when_cut": [ "filament_long_retractions_when_cut": [
"nil" "nil"
], ],
"filament_max_volumetric_speed": [ "filament_max_volumetric_speed": [
"15" "15"
], ],
"filament_minimal_purge_on_wipe_tower": [
"0"
],
"filament_multitool_ramming": [
"0"
],
"filament_multitool_ramming_flow": [
"10"
],
"filament_multitool_ramming_volume": [
"10"
],
"filament_notes": [ "filament_notes": [
"" ""
], ],
@@ -165,21 +138,6 @@
"filament_soluble": [ "filament_soluble": [
"0" "0"
], ],
"filament_stamping_distance": [
"0"
],
"filament_stamping_loading_speed": [
"0"
],
"filament_toolchange_delay": [
"0"
],
"filament_unloading_speed": [
"0"
],
"filament_unloading_speed_start": [
"0"
],
"filament_vendor": [ "filament_vendor": [
"Elas" "Elas"
], ],

View File

@@ -42,15 +42,6 @@
"fan_min_speed": [ "fan_min_speed": [
"20" "20"
], ],
"filament_cooling_final_speed": [
"0"
],
"filament_cooling_initial_speed": [
"0"
],
"filament_cooling_moves": [
"0"
],
"filament_cost": [ "filament_cost": [
"445" "445"
], ],
@@ -69,30 +60,12 @@
"filament_is_support": [ "filament_is_support": [
"0" "0"
], ],
"filament_loading_speed": [
"0"
],
"filament_loading_speed_start": [
"0"
],
"filament_long_retractions_when_cut": [ "filament_long_retractions_when_cut": [
"1" "1"
], ],
"filament_max_volumetric_speed": [ "filament_max_volumetric_speed": [
"18" "18"
], ],
"filament_minimal_purge_on_wipe_tower": [
"0"
],
"filament_multitool_ramming": [
"0"
],
"filament_multitool_ramming_flow": [
"10"
],
"filament_multitool_ramming_volume": [
"10"
],
"filament_notes": [ "filament_notes": [
"" ""
], ],
@@ -135,21 +108,6 @@
"filament_soluble": [ "filament_soluble": [
"0" "0"
], ],
"filament_stamping_distance": [
"0"
],
"filament_stamping_loading_speed": [
"0"
],
"filament_toolchange_delay": [
"0"
],
"filament_unloading_speed": [
"0"
],
"filament_unloading_speed_start": [
"0"
],
"filament_wipe": [ "filament_wipe": [
"nil" "nil"
], ],

View File

@@ -71,15 +71,6 @@
"fan_min_speed": [ "fan_min_speed": [
"60" "60"
], ],
"filament_cooling_final_speed": [
"0"
],
"filament_cooling_initial_speed": [
"0"
],
"filament_cooling_moves": [
"0"
],
"filament_cost": [ "filament_cost": [
"449.5" "449.5"
], ],
@@ -98,30 +89,12 @@
"filament_is_support": [ "filament_is_support": [
"0" "0"
], ],
"filament_loading_speed": [
"0"
],
"filament_loading_speed_start": [
"0"
],
"filament_long_retractions_when_cut": [ "filament_long_retractions_when_cut": [
"nil" "nil"
], ],
"filament_max_volumetric_speed": [ "filament_max_volumetric_speed": [
"25" "25"
], ],
"filament_minimal_purge_on_wipe_tower": [
"0"
],
"filament_multitool_ramming": [
"0"
],
"filament_multitool_ramming_flow": [
"10"
],
"filament_multitool_ramming_volume": [
"10"
],
"filament_notes": [ "filament_notes": [
"" ""
], ],
@@ -164,21 +137,6 @@
"filament_soluble": [ "filament_soluble": [
"0" "0"
], ],
"filament_stamping_distance": [
"0"
],
"filament_stamping_loading_speed": [
"0"
],
"filament_toolchange_delay": [
"0"
],
"filament_unloading_speed": [
"0"
],
"filament_unloading_speed_start": [
"0"
],
"filament_vendor": [ "filament_vendor": [
"Elas" "Elas"
], ],

View File

@@ -71,15 +71,6 @@
"fan_min_speed": [ "fan_min_speed": [
"100" "100"
], ],
"filament_cooling_final_speed": [
"0"
],
"filament_cooling_initial_speed": [
"0"
],
"filament_cooling_moves": [
"0"
],
"filament_cost": [ "filament_cost": [
"500" "500"
], ],
@@ -98,30 +89,12 @@
"filament_is_support": [ "filament_is_support": [
"0" "0"
], ],
"filament_loading_speed": [
"0"
],
"filament_loading_speed_start": [
"0"
],
"filament_long_retractions_when_cut": [ "filament_long_retractions_when_cut": [
"nil" "nil"
], ],
"filament_max_volumetric_speed": [ "filament_max_volumetric_speed": [
"18" "18"
], ],
"filament_minimal_purge_on_wipe_tower": [
"0"
],
"filament_multitool_ramming": [
"0"
],
"filament_multitool_ramming_flow": [
"10"
],
"filament_multitool_ramming_volume": [
"10"
],
"filament_notes": [ "filament_notes": [
"" ""
], ],
@@ -164,21 +137,6 @@
"filament_soluble": [ "filament_soluble": [
"0" "0"
], ],
"filament_stamping_distance": [
"0"
],
"filament_stamping_loading_speed": [
"0"
],
"filament_toolchange_delay": [
"0"
],
"filament_unloading_speed": [
"0"
],
"filament_unloading_speed_start": [
"0"
],
"filament_vendor": [ "filament_vendor": [
"Elas" "Elas"
], ],

View File

@@ -24,6 +24,9 @@
"filament_max_volumetric_speed": [ "filament_max_volumetric_speed": [
"6" "6"
], ],
"filament_multitool_ramming_flow": [
"6"
],
"nozzle_temperature": [ "nozzle_temperature": [
"290" "290"
], ],

View File

@@ -35,6 +35,9 @@
"filament_max_volumetric_speed": [ "filament_max_volumetric_speed": [
"8" "8"
], ],
"filament_multitool_ramming_flow": [
"8"
],
"filament_vendor": [ "filament_vendor": [
"Elegoo" "Elegoo"
], ],

View File

@@ -12,6 +12,9 @@
"filament_max_volumetric_speed": [ "filament_max_volumetric_speed": [
"10" "10"
], ],
"filament_multitool_ramming_flow": [
"10"
],
"nozzle_temperature": [ "nozzle_temperature": [
"220" "220"
], ],

View File

@@ -44,5 +44,8 @@
], ],
"filament_max_volumetric_speed": [ "filament_max_volumetric_speed": [
"10" "10"
],
"filament_multitool_ramming_flow": [
"10"
] ]
} }

View File

@@ -44,5 +44,8 @@
], ],
"filament_max_volumetric_speed": [ "filament_max_volumetric_speed": [
"8" "8"
],
"filament_multitool_ramming_flow": [
"8"
] ]
} }

View File

@@ -10,5 +10,8 @@
"filament_type": [ "filament_type": [
"PA-CF" "PA-CF"
], ],
"filament_multitool_ramming_flow": [
"8"
],
"compatible_printers": [] "compatible_printers": []
} }

View File

@@ -8,5 +8,8 @@
"filament_max_volumetric_speed": [ "filament_max_volumetric_speed": [
"20" "20"
], ],
"filament_multitool_ramming_flow": [
"20"
],
"compatible_printers": [] "compatible_printers": []
} }

View File

@@ -17,6 +17,9 @@
"filament_max_volumetric_speed": [ "filament_max_volumetric_speed": [
"11.5" "11.5"
], ],
"filament_multitool_ramming_flow": [
"13"
],
"overhang_fan_speed": [ "overhang_fan_speed": [
"100" "100"
], ],

Some files were not shown because too many files have changed in this diff Show More