mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-09-16 13:32:44 +00:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
af314cc5c3 | ||
|
|
f7812bf0f1 | ||
|
|
fb44569b8e |
@@ -1,5 +1,5 @@
|
|||||||
name: 🐞 Bug Report
|
name: 🐞 Bug Report
|
||||||
description: Something behaves incorrectly while Orca Slicer keeps running
|
description: File a bug report
|
||||||
labels: ["bug"]
|
labels: ["bug"]
|
||||||
body:
|
body:
|
||||||
- type: markdown
|
- type: markdown
|
||||||
@@ -10,8 +10,6 @@ body:
|
|||||||
Please note that this is not the place to make feature requests or ask for help.
|
Please note that this is not the place to make feature requests or ask for help.
|
||||||
For this, please use the [Feature request](https://github.com/OrcaSlicer/OrcaSlicer/issues/new?assignees=&labels=&projects=&template=feature_request.yml) issue type or you can discuss your idea on our [Discord server](https://discord.gg/P4VE9UY9gJ) with others.
|
For this, please use the [Feature request](https://github.com/OrcaSlicer/OrcaSlicer/issues/new?assignees=&labels=&projects=&template=feature_request.yml) issue type or you can discuss your idea on our [Discord server](https://discord.gg/P4VE9UY9gJ) with others.
|
||||||
|
|
||||||
If Orca Slicer closes on its own, freezes or stops responding, please use the [Crash report](https://github.com/OrcaSlicer/OrcaSlicer/issues/new?assignees=&labels=&projects=&template=crash_report.yml) form instead. It asks for the logs a crash needs.
|
|
||||||
|
|
||||||
Before filing, please check if the issue already exists (either open or closed) by using the search bar on the issues page. If it does, comment there. Even if it's closed, we can reopen it based on your comment.
|
Before filing, please check if the issue already exists (either open or closed) by using the search bar on the issues page. If it does, comment there. Even if it's closed, we can reopen it based on your comment.
|
||||||
- type: checkboxes
|
- type: checkboxes
|
||||||
attributes:
|
attributes:
|
||||||
@@ -49,7 +47,7 @@ body:
|
|||||||
id: os_type
|
id: os_type
|
||||||
attributes:
|
attributes:
|
||||||
label: "Operating System (OS)"
|
label: "Operating System (OS)"
|
||||||
description: "What OSes are you experiencing issues on?"
|
description: "What OSes are you are experiencing issues on?"
|
||||||
multiple: true
|
multiple: true
|
||||||
options:
|
options:
|
||||||
- Linux
|
- Linux
|
||||||
@@ -88,7 +86,7 @@ body:
|
|||||||
id: reproduce_steps
|
id: reproduce_steps
|
||||||
attributes:
|
attributes:
|
||||||
label: How to reproduce
|
label: How to reproduce
|
||||||
description: Please describe the detailed steps to reproduce this issue
|
description: Please described the detailed steps to reproduce this issue
|
||||||
placeholder: |
|
placeholder: |
|
||||||
1. Go to '...'
|
1. Go to '...'
|
||||||
2. Click on '...'
|
2. Click on '...'
|
||||||
@@ -110,23 +108,28 @@ body:
|
|||||||
description: What should happen after the above steps?
|
description: What should happen after the above steps?
|
||||||
validations:
|
validations:
|
||||||
required: true
|
required: true
|
||||||
|
- type: markdown
|
||||||
|
id: file_required
|
||||||
|
attributes:
|
||||||
|
value: |
|
||||||
|
Please be sure to add the following files:
|
||||||
|
* Please upload a ZIP archive containing the **project file** used when the problem arise. Please export it just before or after the problem occurs. Even if you did nothing and/or there is no object, export it! (We need the configurations in project file).
|
||||||
|
You can export the project file from the application menu in `File`->`Save project as...`, then zip it
|
||||||
|
* A **log file** for crashes and similar issues.
|
||||||
|
You can find your log file here:
|
||||||
|
Windows: `%APPDATA%\OrcaSlicer\log` or usually `C:\Users\<your username>\AppData\Roaming\OrcaSlicer\log`
|
||||||
|
MacOS: `$HOME/Library/Application Support/OrcaSlicer/log`
|
||||||
|
Linux: `$HOME/.config/OrcaSlicer/log`
|
||||||
|
If Orca Slicer still starts, you can also reach this directory from the application menu in `Help` -> `Show Configuration Folder`
|
||||||
|
You can zip the log directory, or just select the newest logs when this issue happens, and zip them
|
||||||
- type: textarea
|
- type: textarea
|
||||||
id: file_uploads
|
id: file_uploads
|
||||||
attributes:
|
attributes:
|
||||||
label: Project file & Debug log uploads
|
label: Project file & Debug log uploads
|
||||||
description: |
|
description: Drop the project file and debug log here
|
||||||
Attach the files with the **Paste, drop, or click to add files** control directly underneath this box. Zip anything that is not a `.log`, `.txt` or image, since GitHub rejects other file types, and keep each file under 25 MB.
|
|
||||||
|
|
||||||
* The **project file** used when the problem happened, zipped. Export it just before or after the problem occurs. Even if you did nothing and there is no object on the plate, export it, since we need the configuration it carries. `File` -> `Save project as...`
|
|
||||||
* The **log folder**, zipped. `Help` -> `Show Configuration Folder` opens it, or find it at:
|
|
||||||
* Windows: `%APPDATA%\OrcaSlicer\log`, usually `C:\Users\<you>\AppData\Roaming\OrcaSlicer\log`
|
|
||||||
* macOS: `$HOME/Library/Application Support/OrcaSlicer/log`
|
|
||||||
* Linux: `$HOME/.config/OrcaSlicer/log`
|
|
||||||
* Flatpak: `$HOME/.var/app/com.orcaslicer.OrcaSlicer/config/OrcaSlicer/log`
|
|
||||||
* If the zip comes out over 25 MB, attach the newest logs from that folder on their own instead.
|
|
||||||
placeholder: |
|
placeholder: |
|
||||||
Zipped project file
|
Project File: `File` -> `Save project as...` then zip it & drop it here
|
||||||
Zipped log folder
|
Log File: `Help` -> `Show Configuration Folder`, then zip the log directory, or just select the newest logs in `log` when this issue happens and zip them, then drop the zip file here
|
||||||
validations:
|
validations:
|
||||||
required: true
|
required: true
|
||||||
- type: checkboxes
|
- type: checkboxes
|
||||||
@@ -141,5 +144,7 @@ body:
|
|||||||
label: Anything else?
|
label: Anything else?
|
||||||
description: |
|
description: |
|
||||||
Screenshots? References? Anything that will give us more context about the issue you are encountering!
|
Screenshots? References? Anything that will give us more context about the issue you are encountering!
|
||||||
|
|
||||||
|
Tip: You can attach images or log files by clicking this area to highlight it and then dragging files in.
|
||||||
validations:
|
validations:
|
||||||
required: false
|
required: false
|
||||||
|
|||||||
@@ -1,183 +0,0 @@
|
|||||||
name: 💥 Crash Report
|
|
||||||
description: Orca Slicer closes on its own, freezes or stops responding
|
|
||||||
labels: ["crash"]
|
|
||||||
body:
|
|
||||||
- type: markdown
|
|
||||||
attributes:
|
|
||||||
value: |
|
|
||||||
**Thank you for taking the time to report a crash.**
|
|
||||||
|
|
||||||
Use this form when Orca Slicer closes on its own, freezes, or stops responding.
|
|
||||||
If the application stays open and only produces a wrong result, please use the [Bug report](https://github.com/OrcaSlicer/OrcaSlicer/issues/new?assignees=&labels=&projects=&template=bug_report.yml) form instead.
|
|
||||||
A printer whose toolhead collides with the print is also a bug report rather than a crash, since the application itself did not stop.
|
|
||||||
|
|
||||||
Before filing, please check if the issue already exists (either open or closed) by using the search bar on the issues page. If it does, comment there. Even if it's closed, we can reopen it based on your comment.
|
|
||||||
- type: checkboxes
|
|
||||||
attributes:
|
|
||||||
label: Is this crash reproducible in the latest nightly build?
|
|
||||||
description: >
|
|
||||||
Please verify this crash still happens in the latest nightly build first. It may already be fixed there:
|
|
||||||
[Nightly builds](https://github.com/OrcaSlicer/OrcaSlicer/releases/tag/nightly-builds).
|
|
||||||
options:
|
|
||||||
- label: I have checked the latest nightly build and the crash is still reproducible
|
|
||||||
required: true
|
|
||||||
- type: checkboxes
|
|
||||||
attributes:
|
|
||||||
label: Is there an existing issue for this crash?
|
|
||||||
description: Please search to see if an issue already exists for the crash you encountered.
|
|
||||||
options:
|
|
||||||
- label: I have searched the existing issues
|
|
||||||
required: true
|
|
||||||
- type: input
|
|
||||||
id: version
|
|
||||||
attributes:
|
|
||||||
label: OrcaSlicer Version
|
|
||||||
description: Which version of Orca Slicer are you running? You can see the full version in `Help` -> `About Orca Slicer`.
|
|
||||||
placeholder: e.g. 2.5.0
|
|
||||||
validations:
|
|
||||||
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
|
|
||||||
id: os_type
|
|
||||||
attributes:
|
|
||||||
label: "Operating System (OS)"
|
|
||||||
description: "What OSes are you seeing the crash on?"
|
|
||||||
multiple: true
|
|
||||||
options:
|
|
||||||
- Linux
|
|
||||||
- macOS
|
|
||||||
- Windows
|
|
||||||
validations:
|
|
||||||
required: true
|
|
||||||
- type: input
|
|
||||||
id: os_version
|
|
||||||
attributes:
|
|
||||||
label: "OS Version"
|
|
||||||
description: "What OS version does this relate to?"
|
|
||||||
placeholder: "i.e. OS: Windows 7/8/10/11 ..., Ubuntu 22.04/Fedora 36 ..., macOS 10.15/11.1/12.3 ..."
|
|
||||||
validations:
|
|
||||||
required: true
|
|
||||||
- type: input
|
|
||||||
id: printer
|
|
||||||
attributes:
|
|
||||||
label: Printer
|
|
||||||
description: Which printer was selected
|
|
||||||
placeholder: Voron 2.4/VzBot/Prusa MK4/Bambu Lab X1 series/Bambu Lab P1P/...
|
|
||||||
validations:
|
|
||||||
required: true
|
|
||||||
- type: dropdown
|
|
||||||
id: crash_moment
|
|
||||||
attributes:
|
|
||||||
label: When does the crash happen?
|
|
||||||
description: Pick the point where Orca Slicer stops working.
|
|
||||||
options:
|
|
||||||
- Not sure
|
|
||||||
- On startup, before the main window appears
|
|
||||||
- When opening or importing a project or model
|
|
||||||
- While changing printer, filament or process settings
|
|
||||||
- While slicing
|
|
||||||
- In the 3D view, Preview or Assembly view
|
|
||||||
- When exporting G-code or sending a print to the printer
|
|
||||||
- On the Device tab, or connecting to a printer (camera, sync, login)
|
|
||||||
- While using a specific tool, dialog or calibration
|
|
||||||
- After resuming from sleep or changing monitors
|
|
||||||
- When closing the application
|
|
||||||
- No clear pattern
|
|
||||||
validations:
|
|
||||||
required: true
|
|
||||||
- type: dropdown
|
|
||||||
id: crash_frequency
|
|
||||||
attributes:
|
|
||||||
label: How often does it happen?
|
|
||||||
options:
|
|
||||||
- Not sure
|
|
||||||
- Every time
|
|
||||||
- Often, but not every time
|
|
||||||
- Rarely
|
|
||||||
- It only happened once
|
|
||||||
validations:
|
|
||||||
required: true
|
|
||||||
- type: dropdown
|
|
||||||
id: fresh_config
|
|
||||||
attributes:
|
|
||||||
label: Does it still crash with a fresh configuration?
|
|
||||||
description: >
|
|
||||||
Close Orca Slicer and rename your configuration folder (`%APPDATA%\OrcaSlicer` on Windows,
|
|
||||||
`$HOME/Library/Application Support/OrcaSlicer` on macOS, `$HOME/.config/OrcaSlicer` on Linux),
|
|
||||||
then start it again. Renaming keeps your settings, so you can put the folder back afterwards.
|
|
||||||
options:
|
|
||||||
- I have not tried this
|
|
||||||
- Yes, it still crashes
|
|
||||||
- No, the crash goes away
|
|
||||||
validations:
|
|
||||||
required: true
|
|
||||||
- type: textarea
|
|
||||||
id: reproduce_steps
|
|
||||||
attributes:
|
|
||||||
label: How to reproduce
|
|
||||||
description: Please describe the detailed steps that lead to the crash.
|
|
||||||
placeholder: |
|
|
||||||
1. Go to '...'
|
|
||||||
2. Click on '...'
|
|
||||||
3. Scroll down to '...'
|
|
||||||
4. Orca Slicer closes
|
|
||||||
validations:
|
|
||||||
required: true
|
|
||||||
- type: textarea
|
|
||||||
id: system_info
|
|
||||||
attributes:
|
|
||||||
label: Additional system information
|
|
||||||
description: >
|
|
||||||
Display card and driver version are worth adding for crashes on startup or in the 3D view.
|
|
||||||
CPU and memory are worth adding for crashes while slicing.
|
|
||||||
placeholder: |
|
|
||||||
CPU: 11th gen Intel r core tm i7-1185g7/AMD Ryzen 7 6800h/...
|
|
||||||
Memory: 32/16 GB...
|
|
||||||
Display Card: NVIDIA Quadro P400/...
|
|
||||||
validations:
|
|
||||||
required: false
|
|
||||||
- type: textarea
|
|
||||||
id: file_uploads
|
|
||||||
attributes:
|
|
||||||
label: Project file, logs and crash report uploads
|
|
||||||
description: |
|
|
||||||
A crash report without logs usually cannot be acted on. Attach the files with the **Paste, drop, or click to add files** control directly underneath this box. Zip anything that is not a `.log`, `.txt` or image, since GitHub rejects other file types, and keep each file under 25 MB.
|
|
||||||
|
|
||||||
* The **project file** used when the crash happened, zipped. Export it just before or after the crash, even if the plate is empty, since we need the configuration it carries. `File` -> `Save project as...`
|
|
||||||
* The whole **log folder**, zipped rather than single files picked out of it. `Help` -> `Show Configuration Folder` opens it, or find it at:
|
|
||||||
* Windows: `%APPDATA%\OrcaSlicer\log`, usually `C:\Users\<you>\AppData\Roaming\OrcaSlicer\log`
|
|
||||||
* macOS: `$HOME/Library/Application Support/OrcaSlicer/log`
|
|
||||||
* Linux: `$HOME/.config/OrcaSlicer/log`
|
|
||||||
* Flatpak: `$HOME/.var/app/com.orcaslicer.OrcaSlicer/config/OrcaSlicer/log`
|
|
||||||
* On Windows the crash itself is written to a separate `crash_*.log` in there, and that is the file we need most. If the zip comes out over 25 MB GitHub will refuse it, so attach the newest log and any `crash_*.log` on their own instead.
|
|
||||||
* The **operating system crash report**, on macOS and Linux, where Orca Slicer cannot write its own crash log. It is often the only record of where it died:
|
|
||||||
* macOS: Console.app -> Crash Reports, or `$HOME/Library/Logs/DiagnosticReports/`. The file starts with `OrcaSlicer` and ends in `.ips`. Zip it before attaching, GitHub does not accept `.ips` files.
|
|
||||||
* Linux: run `orca-slicer` from a terminal (Flatpak: `flatpak run com.orcaslicer.OrcaSlicer`) and paste everything it prints when it dies. On systemd systems `coredumpctl info orca-slicer` gives a backtrace.
|
|
||||||
placeholder: |
|
|
||||||
Zipped project file
|
|
||||||
Zipped log folder
|
|
||||||
Zipped macOS .ips crash report, or the terminal output on Linux
|
|
||||||
validations:
|
|
||||||
required: true
|
|
||||||
- type: checkboxes
|
|
||||||
id: file_checklist
|
|
||||||
attributes:
|
|
||||||
label: Checklist of files to include
|
|
||||||
options:
|
|
||||||
- label: Log folder
|
|
||||||
- label: Project file
|
|
||||||
- label: Operating system crash report (macOS and Linux)
|
|
||||||
- type: textarea
|
|
||||||
attributes:
|
|
||||||
label: Anything else?
|
|
||||||
description: |
|
|
||||||
Screenshots? References? Anything that will give us more context about the crash you are encountering!
|
|
||||||
validations:
|
|
||||||
required: false
|
|
||||||
@@ -100,7 +100,7 @@ jobs:
|
|||||||
matrix:
|
matrix:
|
||||||
include: ${{ fromJSON(vars.SELF_HOSTED
|
include: ${{ fromJSON(vars.SELF_HOSTED
|
||||||
&& '[{"arch":"x64","os":"orca-win-server","compiler":"clang"}]'
|
&& '[{"arch":"x64","os":"orca-win-server","compiler":"clang"}]'
|
||||||
|| '[{"arch":"x64","os":"windows-latest","compiler":"clang"},{"arch":"arm64","os":"windows-11-vs2026-arm","compiler":"clang"}]') }}
|
|| '[{"arch":"x64","os":"windows-latest","compiler":"clang"},{"arch":"arm64","os":"windows-11-arm","compiler":"clang"}]') }}
|
||||||
needs: check_build_script
|
needs: check_build_script
|
||||||
# Don't run scheduled builds on forks:
|
# Don't run scheduled builds on forks:
|
||||||
if: ${{ !cancelled() && needs.check_build_script.result == 'success' && (github.event_name != 'schedule' || github.repository == 'OrcaSlicer/OrcaSlicer') }}
|
if: ${{ !cancelled() && needs.check_build_script.result == 'success' && (github.event_name != 'schedule' || github.repository == 'OrcaSlicer/OrcaSlicer') }}
|
||||||
@@ -169,7 +169,7 @@ jobs:
|
|||||||
if: ${{ !cancelled() && success() && !vars.SELF_HOSTED }}
|
if: ${{ !cancelled() && success() && !vars.SELF_HOSTED }}
|
||||||
uses: ./.github/workflows/unit_tests.yml
|
uses: ./.github/workflows/unit_tests.yml
|
||||||
with:
|
with:
|
||||||
os: windows-11-vs2026-arm
|
os: windows-11-arm
|
||||||
artifact: ${{ github.sha }}-tests-windows-arm64
|
artifact: ${{ github.sha }}-tests-windows-arm64
|
||||||
test-dir: build-arm64/tests
|
test-dir: build-arm64/tests
|
||||||
unit_tests_macos_arm64:
|
unit_tests_macos_arm64:
|
||||||
@@ -283,42 +283,21 @@ jobs:
|
|||||||
id: fp_cache_key
|
id: fp_cache_key
|
||||||
run: echo "key=flatpak-builder-${{ matrix.variant.arch }}-${{ hashFiles('deps/**', 'scripts/flatpak/com.orcaslicer.OrcaSlicer.yml', 'scripts/flatpak/make_deps_tar.sh') }}" >> "$GITHUB_OUTPUT"
|
run: echo "key=flatpak-builder-${{ matrix.variant.arch }}-${{ hashFiles('deps/**', 'scripts/flatpak/com.orcaslicer.OrcaSlicer.yml', 'scripts/flatpak/make_deps_tar.sh') }}" >> "$GITHUB_OUTPUT"
|
||||||
shell: bash
|
shell: bash
|
||||||
# Manage flatpak-builder cache externally so PRs restore but never upload.
|
# Manage flatpak-builder cache externally so PRs restore but never upload
|
||||||
# The compiler cache under it is keyed per run below, so it is left out.
|
|
||||||
- name: Restore flatpak-builder cache
|
- name: Restore flatpak-builder cache
|
||||||
if: github.event_name == 'pull_request'
|
if: github.event_name == 'pull_request'
|
||||||
uses: actions/cache/restore@v6
|
uses: actions/cache/restore@v6
|
||||||
with:
|
with:
|
||||||
path: |
|
path: .flatpak-builder
|
||||||
.flatpak-builder/*
|
|
||||||
!.flatpak-builder/ccache
|
|
||||||
key: ${{ steps.fp_cache_key.outputs.key }}
|
key: ${{ steps.fp_cache_key.outputs.key }}
|
||||||
restore-keys: flatpak-builder-${{ matrix.variant.arch }}-
|
restore-keys: flatpak-builder-${{ matrix.variant.arch }}-
|
||||||
- name: Save/restore flatpak-builder cache
|
- name: Save/restore flatpak-builder cache
|
||||||
if: github.event_name != 'pull_request'
|
if: github.event_name != 'pull_request'
|
||||||
uses: actions/cache@v6
|
uses: actions/cache@v6
|
||||||
with:
|
with:
|
||||||
path: |
|
path: .flatpak-builder
|
||||||
.flatpak-builder/*
|
|
||||||
!.flatpak-builder/ccache
|
|
||||||
key: ${{ steps.fp_cache_key.outputs.key }}
|
key: ${{ steps.fp_cache_key.outputs.key }}
|
||||||
restore-keys: flatpak-builder-${{ matrix.variant.arch }}-
|
restore-keys: flatpak-builder-${{ matrix.variant.arch }}-
|
||||||
# Compiler cache for the OrcaSlicer module, as in build_orca.yml. Pull
|
|
||||||
# requests only restore it; every other run (main, release branches, the
|
|
||||||
# nightly, a dispatch) saves it. orca_deps stays on the state cache above.
|
|
||||||
- name: Name the compiler cache leg
|
|
||||||
run: |
|
|
||||||
leg="Flatpak-${{ matrix.variant.arch }}"
|
|
||||||
echo "CCACHE_LEG=$leg" >> "$GITHUB_ENV"
|
|
||||||
echo "CCACHE_ENTRY=ccache-$leg-${{ github.run_id }}-${{ github.run_attempt }}" >> "$GITHUB_ENV"
|
|
||||||
shell: bash
|
|
||||||
- name: Restore compiler cache
|
|
||||||
id: ccache_restore
|
|
||||||
uses: actions/cache/restore@v6
|
|
||||||
with:
|
|
||||||
path: .flatpak-builder/ccache
|
|
||||||
key: ${{ env.CCACHE_ENTRY }}
|
|
||||||
restore-keys: ccache-${{ env.CCACHE_LEG }}-
|
|
||||||
- name: Disable debug info for faster CI builds
|
- name: Disable debug info for faster CI builds
|
||||||
run: |
|
run: |
|
||||||
sed -i '/^build-options:/a\ no-debuginfo: true\n strip: true' \
|
sed -i '/^build-options:/a\ no-debuginfo: true\n strip: true' \
|
||||||
@@ -329,33 +308,6 @@ jobs:
|
|||||||
sed -i "/name: OrcaSlicer/{n;s|buildsystem: simple|buildsystem: simple\n build-options:\n env:\n git_commit_hash: \"$git_commit_hash\"|}" \
|
sed -i "/name: OrcaSlicer/{n;s|buildsystem: simple|buildsystem: simple\n build-options:\n env:\n git_commit_hash: \"$git_commit_hash\"|}" \
|
||||||
scripts/flatpak/com.orcaslicer.OrcaSlicer.yml
|
scripts/flatpak/com.orcaslicer.OrcaSlicer.yml
|
||||||
shell: bash
|
shell: bash
|
||||||
# flatpak-builder's --ccache only wraps cc and gcc, and the manifest builds
|
|
||||||
# with clang, so CMake's launcher runs ccache instead; --ccache is still what
|
|
||||||
# mounts the cache directory into the sandbox. The settings go into that
|
|
||||||
# directory's own config file, which the sandbox reads too.
|
|
||||||
- name: Enable compiler cache
|
|
||||||
run: |
|
|
||||||
printf ' %s\n' \
|
|
||||||
'CMAKE_C_COMPILER_LAUNCHER: ccache' \
|
|
||||||
'CMAKE_CXX_COMPILER_LAUNCHER: ccache' > "$RUNNER_TEMP/ccache-env.yml"
|
|
||||||
sed -i "/^ git_commit_hash: /r $RUNNER_TEMP/ccache-env.yml" \
|
|
||||||
scripts/flatpak/com.orcaslicer.OrcaSlicer.yml
|
|
||||||
grep -q '^ CMAKE_CXX_COMPILER_LAUNCHER: ccache$' scripts/flatpak/com.orcaslicer.OrcaSlicer.yml
|
|
||||||
mkdir -p .flatpak-builder/ccache
|
|
||||||
export CCACHE_DIR=$PWD/.flatpak-builder/ccache
|
|
||||||
ccache --set-config=max_size=3G
|
|
||||||
# The compiler is reinstalled every run, so its mtime means nothing.
|
|
||||||
ccache --set-config=compiler_check=content
|
|
||||||
# Headers a fresh checkout has just written, the few files that use
|
|
||||||
# __DATE__ or __TIME__, and the precompiled header, whose macros ccache
|
|
||||||
# cannot see.
|
|
||||||
ccache --set-config=sloppiness=pch_defines,time_macros,include_file_mtime,include_file_ctime
|
|
||||||
# Hash the includes the compiler reports instead of preprocessing every
|
|
||||||
# miss before compiling it.
|
|
||||||
ccache --set-config=depend_mode=true
|
|
||||||
# The restored directory carries the previous run's counters.
|
|
||||||
ccache -z
|
|
||||||
shell: bash
|
|
||||||
- name: Check the manifest keeps orca_deps cacheable
|
- name: Check the manifest keeps orca_deps cacheable
|
||||||
run: ./scripts/flatpak/check_manifest_cacheable.sh
|
run: ./scripts/flatpak/check_manifest_cacheable.sh
|
||||||
shell: bash
|
shell: bash
|
||||||
@@ -366,50 +318,9 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
bundle: OrcaSlicer-Linux-flatpak_${{ env.ver }}_${{ matrix.variant.arch }}.flatpak
|
bundle: OrcaSlicer-Linux-flatpak_${{ env.ver }}_${{ matrix.variant.arch }}.flatpak
|
||||||
manifest-path: scripts/flatpak/com.orcaslicer.OrcaSlicer.yml
|
manifest-path: scripts/flatpak/com.orcaslicer.OrcaSlicer.yml
|
||||||
# cache only turns on flatpak-builder --ccache; the caching itself is above.
|
cache: false
|
||||||
cache: true
|
|
||||||
restore-cache: false
|
|
||||||
save-cache: false
|
|
||||||
arch: ${{ matrix.variant.arch }}
|
arch: ${{ matrix.variant.arch }}
|
||||||
upload-artifact: false
|
upload-artifact: false
|
||||||
# The build has just touched everything it can use, so an object untouched
|
|
||||||
# for a week is dead, usually orphaned by a flag change.
|
|
||||||
- name: Compiler cache statistics
|
|
||||||
if: always()
|
|
||||||
run: |
|
|
||||||
export CCACHE_DIR=$PWD/.flatpak-builder/ccache
|
|
||||||
ccache --evict-older-than 7d
|
|
||||||
ccache -s -v || ccache -s
|
|
||||||
shell: bash
|
|
||||||
# Save the new entry first, then drop the older ones for this leg on this
|
|
||||||
# ref, so a failed save leaves the previous entry in place. A cancelled or
|
|
||||||
# failed build saves too, since what it compiled is still valid; a restore
|
|
||||||
# that did not finish does not, since the directory may be a truncated copy.
|
|
||||||
- name: Save compiler cache
|
|
||||||
id: ccache_save
|
|
||||||
if: ${{ always() && steps.ccache_restore.outcome == 'success' && github.event_name != 'pull_request' }}
|
|
||||||
uses: actions/cache/save@v6
|
|
||||||
with:
|
|
||||||
path: .flatpak-builder/ccache
|
|
||||||
key: ${{ env.CCACHE_ENTRY }}
|
|
||||||
- name: Drop older compiler cache entries
|
|
||||||
if: ${{ always() && steps.ccache_save.outcome == 'success' }}
|
|
||||||
# The container has no gh, so this is the list and delete over the REST API.
|
|
||||||
# Older means a lower run id, so two runs finishing close together keep
|
|
||||||
# the newer entry whichever of them cleans up last.
|
|
||||||
continue-on-error: true
|
|
||||||
env:
|
|
||||||
GH_TOKEN: ${{ github.token }}
|
|
||||||
run: |
|
|
||||||
api="$GITHUB_API_URL/repos/$GITHUB_REPOSITORY/actions/caches"
|
|
||||||
curl -sSf -H "Authorization: Bearer $GH_TOKEN" \
|
|
||||||
"$api?ref=$GITHUB_REF&key=ccache-$CCACHE_LEG-&per_page=100" \
|
|
||||||
| jq -r --arg prefix "ccache-$CCACHE_LEG-" --argjson run "$GITHUB_RUN_ID" \
|
|
||||||
'.actions_caches[] | select((.key | ltrimstr($prefix) | split("-")[0] | tonumber?) < $run) | .id' \
|
|
||||||
| while read -r id; do
|
|
||||||
curl -sSf -X DELETE -H "Authorization: Bearer $GH_TOKEN" "$api/$id"
|
|
||||||
done
|
|
||||||
shell: bash
|
|
||||||
- name: Upload artifacts Flatpak
|
- name: Upload artifacts Flatpak
|
||||||
uses: actions/upload-artifact@v7
|
uses: actions/upload-artifact@v7
|
||||||
with:
|
with:
|
||||||
|
|||||||
@@ -76,60 +76,6 @@ jobs:
|
|||||||
if (-not (Test-Path "$cmakeBin\cmake.exe")) { throw "cmake.exe not found at $cmakeBin" }
|
if (-not (Test-Path "$cmakeBin\cmake.exe")) { throw "cmake.exe not found at $cmakeBin" }
|
||||||
Add-Content -Path $env:GITHUB_PATH -Value $cmakeBin
|
Add-Content -Path $env:GITHUB_PATH -Value $cmakeBin
|
||||||
|
|
||||||
# Compiler cache. Pushes save it, so main keeps it warm; pull requests
|
|
||||||
# restore it and discard what they compiled. Objects are keyed on the
|
|
||||||
# preprocessed source, the compiler and the flags, so a leg only ever
|
|
||||||
# hits its own entries. A failed install costs the caching, not the build.
|
|
||||||
- name: Name the compiler cache leg
|
|
||||||
if: ${{ !inputs.macos-combine-only }}
|
|
||||||
shell: bash
|
|
||||||
run: |
|
|
||||||
leg="${{ runner.os }}-${{ inputs.arch || 'amd64' }}${{ runner.os == 'Windows' && format('-{0}', inputs.compiler) || '' }}"
|
|
||||||
echo "CCACHE_LEG=$leg" >> "$GITHUB_ENV"
|
|
||||||
echo "CCACHE_ENTRY=ccache-$leg-${{ github.run_id }}-${{ github.run_attempt }}" >> "$GITHUB_ENV"
|
|
||||||
|
|
||||||
# The action only installs and configures ccache. Restore and save go
|
|
||||||
# through actions/cache with one path string, since the cache service
|
|
||||||
# only matches entries saved under the identical path and the action
|
|
||||||
# spells it differently on Windows.
|
|
||||||
- name: Compiler cache
|
|
||||||
id: ccache
|
|
||||||
if: ${{ !inputs.macos-combine-only }}
|
|
||||||
continue-on-error: true
|
|
||||||
uses: hendrikmuhs/ccache-action@v1.2.24
|
|
||||||
with:
|
|
||||||
key: ${{ env.CCACHE_LEG }}
|
|
||||||
max-size: 3G
|
|
||||||
restore: false
|
|
||||||
save: false
|
|
||||||
# ccache -s runs as its own step; no summary table per job.
|
|
||||||
job-summary: ''
|
|
||||||
|
|
||||||
- name: Restore compiler cache
|
|
||||||
id: ccache_restore
|
|
||||||
if: ${{ steps.ccache.outcome == 'success' }}
|
|
||||||
uses: actions/cache/restore@v6
|
|
||||||
with:
|
|
||||||
path: ${{ github.workspace }}/.ccache
|
|
||||||
key: ${{ env.CCACHE_ENTRY }}
|
|
||||||
restore-keys: ccache-${{ env.CCACHE_LEG }}-
|
|
||||||
|
|
||||||
- name: Enable compiler cache
|
|
||||||
if: ${{ steps.ccache.outcome == 'success' }}
|
|
||||||
shell: bash
|
|
||||||
run: |
|
|
||||||
echo "CMAKE_C_COMPILER_LAUNCHER=ccache" >> "$GITHUB_ENV"
|
|
||||||
echo "CMAKE_CXX_COMPILER_LAUNCHER=ccache" >> "$GITHUB_ENV"
|
|
||||||
# Headers a fresh checkout has just written, the few files that
|
|
||||||
# use __DATE__ or __TIME__, and the precompiled header, whose
|
|
||||||
# macros ccache cannot see.
|
|
||||||
echo "CCACHE_SLOPPINESS=pch_defines,time_macros,include_file_mtime,include_file_ctime" >> "$GITHUB_ENV"
|
|
||||||
# Hash the includes the compiler reports instead of preprocessing
|
|
||||||
# every miss before compiling it.
|
|
||||||
echo "CCACHE_DEPEND=1" >> "$GITHUB_ENV"
|
|
||||||
# The restored directory carries the previous run's counters.
|
|
||||||
ccache -z
|
|
||||||
|
|
||||||
- name: Get the version and date on Ubuntu and macOS
|
- name: Get the version and date on Ubuntu and macOS
|
||||||
if: runner.os != 'Windows'
|
if: runner.os != 'Windows'
|
||||||
run: |
|
run: |
|
||||||
@@ -724,41 +670,3 @@ jobs:
|
|||||||
asset_name: orca_custom_preset_tests.zip
|
asset_name: orca_custom_preset_tests.zip
|
||||||
asset_content_type: application/octet-stream
|
asset_content_type: application/octet-stream
|
||||||
max_releases: 1
|
max_releases: 1
|
||||||
|
|
||||||
# The build has just touched everything it can use, so an object
|
|
||||||
# untouched for a week is dead, usually orphaned by a flag change.
|
|
||||||
- name: Compiler cache statistics
|
|
||||||
if: ${{ always() && steps.ccache.outcome == 'success' }}
|
|
||||||
shell: bash
|
|
||||||
run: |
|
|
||||||
ccache --evict-older-than 7d
|
|
||||||
ccache -s -v || ccache -s
|
|
||||||
|
|
||||||
# Entries are immutable, so the new one is saved first and the older
|
|
||||||
# ones for this leg on this ref are dropped afterwards: a failed save
|
|
||||||
# leaves the previous entry in place. A cancelled or failed build saves
|
|
||||||
# too, since what it compiled is still valid; a restore that did not
|
|
||||||
# finish does not, since the directory may be a truncated copy.
|
|
||||||
- name: Save compiler cache
|
|
||||||
id: ccache_save
|
|
||||||
if: ${{ always() && steps.ccache_restore.outcome == 'success' && github.event_name != 'pull_request' }}
|
|
||||||
uses: actions/cache/save@v6
|
|
||||||
with:
|
|
||||||
path: ${{ github.workspace }}/.ccache
|
|
||||||
key: ${{ env.CCACHE_ENTRY }}
|
|
||||||
|
|
||||||
- name: Drop older compiler cache entries
|
|
||||||
if: ${{ always() && steps.ccache_save.outcome == 'success' }}
|
|
||||||
# A read-only token (fork PRs) cannot delete; that only costs storage.
|
|
||||||
# Older means a lower run id, so two runs finishing close together keep
|
|
||||||
# the newer entry whichever of them cleans up last.
|
|
||||||
continue-on-error: true
|
|
||||||
shell: bash
|
|
||||||
env:
|
|
||||||
GH_TOKEN: ${{ github.token }}
|
|
||||||
run: |
|
|
||||||
gh cache list --ref "$GITHUB_REF" --key "ccache-$CCACHE_LEG-" --limit 100 --json id,key \
|
|
||||||
| jq -r --arg prefix "ccache-$CCACHE_LEG-" --argjson run "$GITHUB_RUN_ID" \
|
|
||||||
'.[] | select((.key | ltrimstr($prefix) | split("-")[0] | tonumber?) < $run) | .id' \
|
|
||||||
| tr -d '\r' \
|
|
||||||
| while read -r id; do gh cache delete "$id"; done
|
|
||||||
|
|||||||
@@ -19,18 +19,11 @@ jobs:
|
|||||||
permissions:
|
permissions:
|
||||||
contents: read
|
contents: read
|
||||||
steps:
|
steps:
|
||||||
# Doxygen with call graphs over all of src/ outgrows the runner's RAM;
|
- uses: thejerrybao/setup-swap-space@v1
|
||||||
# replace the runner's swapfile with an 8 GB one.
|
with:
|
||||||
- name: Grow swap space
|
swap-space-path: /swapfile
|
||||||
run: |
|
swap-size-gb: 8
|
||||||
set -euo pipefail
|
remove-existing-swap-files: true
|
||||||
sudo swapoff -a
|
|
||||||
sudo rm -f /swapfile
|
|
||||||
sudo fallocate -l 8G /swapfile
|
|
||||||
sudo chmod 600 /swapfile
|
|
||||||
sudo mkswap /swapfile
|
|
||||||
sudo swapon /swapfile
|
|
||||||
free -h
|
|
||||||
|
|
||||||
- name: Checkout repository
|
- name: Checkout repository
|
||||||
uses: actions/checkout@v7
|
uses: actions/checkout@v7
|
||||||
|
|||||||
@@ -1,219 +0,0 @@
|
|||||||
# Nightly parity checks from OrcaSlicer/orca-test-repo, kept out of the
|
|
||||||
# per-build "Run external slicer regression tests" step because they take far
|
|
||||||
# longer than that step's budget:
|
|
||||||
# effect - the CLI override sweep's full effect stage: every landed option
|
|
||||||
# re-sliced on its own to see whether it changes the G-code
|
|
||||||
# harness - the GUI-vs-CLI parity harness (metrics only, never fails)
|
|
||||||
# Both test the latest successful build_all.yml Linux AppImage from main, with
|
|
||||||
# sources checked out at the commit that build was made from. Nothing here
|
|
||||||
# gates a build or a PR.
|
|
||||||
name: Parity Nightly
|
|
||||||
|
|
||||||
on:
|
|
||||||
schedule:
|
|
||||||
# build_all.yml starts at 17:00 UTC and has finished by ~20:00
|
|
||||||
- cron: "0 21 * * *"
|
|
||||||
workflow_dispatch:
|
|
||||||
inputs:
|
|
||||||
test_repo_ref:
|
|
||||||
description: "orca-test-repo ref to run"
|
|
||||||
required: false
|
|
||||||
default: "main"
|
|
||||||
build_branch:
|
|
||||||
description: "branch whose latest successful build_all artifact to test"
|
|
||||||
required: false
|
|
||||||
default: "main"
|
|
||||||
fixtures:
|
|
||||||
description: "harness fixture ids, space-separated (empty = all)"
|
|
||||||
required: false
|
|
||||||
default: ""
|
|
||||||
cli_presets:
|
|
||||||
description: "harness lane C presets: flat = flatten inherits first, raw = leaf profile as-is"
|
|
||||||
required: false
|
|
||||||
default: "flat"
|
|
||||||
|
|
||||||
permissions:
|
|
||||||
contents: read
|
|
||||||
actions: read
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
build:
|
|
||||||
name: Find the build to test
|
|
||||||
# Don't run scheduled checks on forks
|
|
||||||
if: github.event_name != 'schedule' || github.repository == 'OrcaSlicer/OrcaSlicer'
|
|
||||||
runs-on: ubuntu-24.04
|
|
||||||
outputs:
|
|
||||||
run_id: ${{ steps.find.outputs.run_id }}
|
|
||||||
head_sha: ${{ steps.find.outputs.head_sha }}
|
|
||||||
steps:
|
|
||||||
- id: find
|
|
||||||
env:
|
|
||||||
GH_TOKEN: ${{ github.token }}
|
|
||||||
GH_REPO: ${{ github.repository }}
|
|
||||||
run: |
|
|
||||||
set -euo pipefail
|
|
||||||
gh run list --workflow build_all.yml \
|
|
||||||
--branch "${{ inputs.build_branch || 'main' }}" \
|
|
||||||
--status success --limit 1 --json databaseId,headSha \
|
|
||||||
--jq '"run_id=\(.[0].databaseId)\nhead_sha=\(.[0].headSha)"' \
|
|
||||||
>> "$GITHUB_OUTPUT"
|
|
||||||
cat "$GITHUB_OUTPUT"
|
|
||||||
|
|
||||||
effect:
|
|
||||||
name: Override sweep effect stage (shard ${{ matrix.shard }})
|
|
||||||
needs: build
|
|
||||||
runs-on: ubuntu-24.04
|
|
||||||
timeout-minutes: 60
|
|
||||||
strategy:
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
|
||||||
# orca-test-repo's parity/effect_routing.json holds a 2-way split,
|
|
||||||
# ~12.5 min a shard on this runner
|
|
||||||
shard: [0, 1]
|
|
||||||
steps:
|
|
||||||
- &checkout-suite
|
|
||||||
name: Check out the test suite
|
|
||||||
uses: actions/checkout@v7
|
|
||||||
with:
|
|
||||||
repository: OrcaSlicer/orca-test-repo
|
|
||||||
ref: ${{ inputs.test_repo_ref || 'main' }}
|
|
||||||
path: orca-test-repo
|
|
||||||
|
|
||||||
# The AppImage ships only packed preset caches, so profiles and the CLI
|
|
||||||
# option surface come from the sources the build was made from
|
|
||||||
- &checkout-slicer
|
|
||||||
name: Check out OrcaSlicer at the build's commit
|
|
||||||
uses: actions/checkout@v7
|
|
||||||
with:
|
|
||||||
ref: ${{ needs.build.outputs.head_sha }}
|
|
||||||
path: slicer
|
|
||||||
lfs: 'false'
|
|
||||||
|
|
||||||
- &extract-appimage
|
|
||||||
name: Download and extract the Linux AppImage
|
|
||||||
env:
|
|
||||||
GH_TOKEN: ${{ github.token }}
|
|
||||||
GH_REPO: ${{ github.repository }}
|
|
||||||
run: |
|
|
||||||
set -euo pipefail
|
|
||||||
gh run download "${{ needs.build.outputs.run_id }}" --dir appimage \
|
|
||||||
--pattern "OrcaSlicer_Linux_ubuntu_2404*"
|
|
||||||
appimage=$(find appimage -name "*.AppImage" ! -name "*aarch64*" | head -1)
|
|
||||||
[ -n "$appimage" ] || { echo "no x86_64 AppImage in run ${{ needs.build.outputs.run_id }}"; exit 1; }
|
|
||||||
chmod +x "$appimage"
|
|
||||||
"$appimage" --appimage-extract > /dev/null
|
|
||||||
# The bare binary cannot find the AppImage's bundled libraries; AppRun
|
|
||||||
# sets them up and execs it, so exit codes and signals pass through
|
|
||||||
[ -x squashfs-root/AppRun ] || { echo "no AppRun in the AppImage"; exit 1; }
|
|
||||||
echo "ORCA_BIN=$PWD/squashfs-root/AppRun" >> "$GITHUB_ENV"
|
|
||||||
echo "ORCA_SOURCE=$PWD/slicer" >> "$GITHUB_ENV"
|
|
||||||
|
|
||||||
- name: Install the AppImage's host runtime dependencies
|
|
||||||
run: |
|
|
||||||
sudo apt-get update
|
|
||||||
sudo apt-get install -y --no-install-recommends \
|
|
||||||
libopengl0 libglu1-mesa libgl1 libegl1 libwebkit2gtk-4.1-0
|
|
||||||
|
|
||||||
- uses: actions/setup-python@v6
|
|
||||||
with:
|
|
||||||
python-version: "3.12"
|
|
||||||
|
|
||||||
- name: Install suite dependencies
|
|
||||||
run: pip install -r orca-test-repo/requirements.txt
|
|
||||||
|
|
||||||
- name: Run the override sweep with the full effect stage
|
|
||||||
id: run
|
|
||||||
continue-on-error: true
|
|
||||||
working-directory: orca-test-repo
|
|
||||||
run: |
|
|
||||||
set -o pipefail
|
|
||||||
# -rA keeps the per-stage summaries, which pytest otherwise swallows
|
|
||||||
# for passing tests
|
|
||||||
python -m pytest test_cli_overrides.py -c pytest.ini -v -rA \
|
|
||||||
--effect-full --effect-shard ${{ matrix.shard }}/2 \
|
|
||||||
--orca-bin "$ORCA_BIN" --orca-source "$ORCA_SOURCE" \
|
|
||||||
2>&1 | tee ../sweep.log
|
|
||||||
|
|
||||||
- name: Publish job summary
|
|
||||||
if: always()
|
|
||||||
run: |
|
|
||||||
{
|
|
||||||
echo "## Override sweep effect stage, shard ${{ matrix.shard }}/2"
|
|
||||||
echo "Build ${{ needs.build.outputs.head_sha }} (run ${{ needs.build.outputs.run_id }})"
|
|
||||||
echo '```'
|
|
||||||
grep -E "\[override sweep" sweep.log || echo "no stage summaries, see the log"
|
|
||||||
grep -E "^=+ .*(passed|failed)" sweep.log | tail -1 || true
|
|
||||||
echo '```'
|
|
||||||
} >> "$GITHUB_STEP_SUMMARY"
|
|
||||||
|
|
||||||
- name: Upload the override report
|
|
||||||
if: always()
|
|
||||||
uses: actions/upload-artifact@v7
|
|
||||||
with:
|
|
||||||
name: override-report-shard${{ matrix.shard }}
|
|
||||||
path: |
|
|
||||||
orca-test-repo/.pytest_cache/override_report.json
|
|
||||||
sweep.log
|
|
||||||
if-no-files-found: warn
|
|
||||||
retention-days: 30
|
|
||||||
|
|
||||||
# The sweep step continues on error so the summary and report still get
|
|
||||||
# published; this puts the failure back on the job
|
|
||||||
- name: Fail the job if the sweep failed
|
|
||||||
if: steps.run.outcome == 'failure'
|
|
||||||
run: |
|
|
||||||
echo "the override sweep failed, see the job summary and the uploaded report" >&2
|
|
||||||
exit 1
|
|
||||||
|
|
||||||
harness:
|
|
||||||
name: GUI-vs-CLI parity harness
|
|
||||||
needs: build
|
|
||||||
runs-on: ubuntu-24.04
|
|
||||||
timeout-minutes: 180
|
|
||||||
steps:
|
|
||||||
- *checkout-suite
|
|
||||||
- *checkout-slicer
|
|
||||||
- *extract-appimage
|
|
||||||
|
|
||||||
- name: Install display tooling and the AppImage's host runtime
|
|
||||||
run: |
|
|
||||||
sudo apt-get update
|
|
||||||
sudo apt-get install -y --no-install-recommends \
|
|
||||||
xvfb xdotool imagemagick openbox mesa-utils \
|
|
||||||
libopengl0 libglu1-mesa libgl1 libegl1 libwebkit2gtk-4.1-0
|
|
||||||
|
|
||||||
- name: Run the parity harness
|
|
||||||
run: |
|
|
||||||
set -euo pipefail
|
|
||||||
fixtures=()
|
|
||||||
for f in ${{ inputs.fixtures || '' }}; do
|
|
||||||
fixtures+=(--fixture "$f")
|
|
||||||
done
|
|
||||||
# 2 GUI displays: ~1.5 cores peak / ~1.9 GB on this 4-vCPU runner,
|
|
||||||
# and each fixture is fully isolated, so results match a serial run
|
|
||||||
python3 orca-test-repo/parity/run_parity.py \
|
|
||||||
--slicer-root "$ORCA_SOURCE" --bin "$ORCA_BIN" \
|
|
||||||
--cli-presets "${{ inputs.cli_presets || 'flat' }}" \
|
|
||||||
--gui-workers 2 --out "$PWD/parity-out" "${fixtures[@]}"
|
|
||||||
|
|
||||||
- name: Publish job summary
|
|
||||||
if: always()
|
|
||||||
run: |
|
|
||||||
if [ -f parity-out/report.md ]; then
|
|
||||||
cat parity-out/report.md >> "$GITHUB_STEP_SUMMARY"
|
|
||||||
else
|
|
||||||
echo "the harness produced no report, see the log" >> "$GITHUB_STEP_SUMMARY"
|
|
||||||
fi
|
|
||||||
|
|
||||||
- name: Drop per-lane datadirs before upload
|
|
||||||
if: always()
|
|
||||||
run: rm -rf parity-out/*/seed parity-out/*/datadir-* || true
|
|
||||||
|
|
||||||
- name: Upload the scorecard and evidence
|
|
||||||
if: always()
|
|
||||||
uses: actions/upload-artifact@v7
|
|
||||||
with:
|
|
||||||
name: parity-scorecard
|
|
||||||
path: parity-out/
|
|
||||||
if-no-files-found: warn
|
|
||||||
retention-days: 30
|
|
||||||
+54
-88
@@ -4,10 +4,6 @@ endif()
|
|||||||
|
|
||||||
cmake_minimum_required(VERSION 3.13)
|
cmake_minimum_required(VERSION 3.13)
|
||||||
|
|
||||||
if(POLICY CMP0177)
|
|
||||||
cmake_policy(SET CMP0177 NEW)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
|
|
||||||
# The following line used to be in tests/CMakeLists.txt
|
# The following line used to be in tests/CMakeLists.txt
|
||||||
# Having it there causes rebuilds of all targets on any CMakeLists.txt change under tests/
|
# Having it there causes rebuilds of all targets on any CMakeLists.txt change under tests/
|
||||||
@@ -557,92 +553,59 @@ if ((NOT MSVC OR IS_CLANG_CL) AND ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" OR
|
|||||||
elseif (NOT MINGW)
|
elseif (NOT MINGW)
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall" )
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall" )
|
||||||
endif ()
|
endif ()
|
||||||
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-reorder" )
|
||||||
|
|
||||||
# Every warning is an error unless it appears in one of the two lists below.
|
# On GCC and Clang, no return from a non-void function is a warning only. Here, we make it an error.
|
||||||
# disabled - never wanted. Off everywhere, so it never warns or errors.
|
add_compile_options(-Werror=return-type)
|
||||||
# demoted - wanted, not cleared yet. Still warns, does not error.
|
|
||||||
|
|
||||||
# Disabled.
|
# Since some portions of code are just commented out or put under conditional compilation, there are
|
||||||
set(warnings_disabled
|
# a bunch of warning related to unused functions and variables. Suppress those warnings to not pollute
|
||||||
reorder # members initialised in an order we chose
|
# compilers diagnostics output with warnings we not going to look at
|
||||||
sign-compare # signed/unsigned comparisons throughout
|
add_compile_options(-Wno-unused-function -Wno-unused-variable -Wno-unused-but-set-variable -Wno-unused-label -Wno-unused-local-typedefs)
|
||||||
misleading-indentation # false positives on mixed tabs and spaces
|
|
||||||
switch # unhandled enum value in a switch
|
|
||||||
unused-function # commented-out or conditionally compiled code
|
|
||||||
unused-variable # commented-out or conditionally compiled code
|
|
||||||
unused-but-set-variable # commented-out or conditionally compiled code
|
|
||||||
unused-label # commented-out or conditionally compiled code
|
|
||||||
unused-local-typedefs # commented-out or conditionally compiled code
|
|
||||||
)
|
|
||||||
if (CMAKE_CXX_COMPILER_ID MATCHES "Clang")
|
|
||||||
list(APPEND warnings_disabled deprecated-declarations) # legacy OpenGL calls
|
|
||||||
endif ()
|
|
||||||
if (CMAKE_CXX_COMPILER_ID MATCHES "Clang" OR CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 6.0)
|
|
||||||
list(APPEND warnings_disabled ignored-attributes) # from Eigen headers marked SYSTEM
|
|
||||||
endif ()
|
|
||||||
if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
|
|
||||||
list(APPEND warnings_disabled unknown-pragmas) # igl pragmas, GCC bug 66943
|
|
||||||
endif ()
|
|
||||||
foreach (w IN LISTS warnings_disabled)
|
|
||||||
add_compile_options(-Wno-${w})
|
|
||||||
endforeach ()
|
|
||||||
|
|
||||||
# GCC is not built in CI, so don't throw errors CI won't catch.
|
# Ignore signed/unsigned comparison warnings
|
||||||
if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
|
add_compile_options(-Wno-sign-compare)
|
||||||
add_compile_options(-Werror=return-type)
|
|
||||||
else ()
|
|
||||||
# Turn everything else into an error. Dependency headers are exempt because the
|
|
||||||
# SYSTEM include flag (-imsvc on clang-cl, -isystem elsewhere) keeps their
|
|
||||||
# diagnostics out.
|
|
||||||
add_compile_options(-Werror)
|
|
||||||
endif ()
|
|
||||||
|
|
||||||
# Demoted. Remove a name once its category is cleared on every compiler.
|
# The mismatch of tabs and spaces throughout the project can sometimes
|
||||||
set(warnings_demoted)
|
# cause this warning to appear even though the indentation is fine.
|
||||||
if (APPLE)
|
# Some includes also cause the warning
|
||||||
list(APPEND warnings_demoted
|
add_compile_options(-Wno-misleading-indentation)
|
||||||
# MacDarkMode.mm makes two calls to AppKit's private titlebarViewController
|
|
||||||
# and one to a wxWidgets category on NSTableColumn whose header is not
|
|
||||||
# imported. Clearing it means declaring the private selectors ourselves, which
|
|
||||||
# needs a macOS build to verify.
|
|
||||||
objc-method-access
|
|
||||||
)
|
|
||||||
endif ()
|
|
||||||
if (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "ARM64")
|
|
||||||
list(APPEND warnings_demoted
|
|
||||||
# About two dozen GetProcAddress casts, most in the vendored dark_mode.hpp,
|
|
||||||
# retype FARPROC to a real signature. The __stdcall typedefs are identical to
|
|
||||||
# FARPROC on x64, so only arm64 reports them. Clearing them is a separate
|
|
||||||
# sweep.
|
|
||||||
cast-function-type-mismatch
|
|
||||||
)
|
|
||||||
endif ()
|
|
||||||
if (CMAKE_CXX_COMPILER_ID MATCHES "Clang")
|
|
||||||
list(APPEND warnings_demoted
|
|
||||||
# enum-constexpr-conversion is a Clang warning that defaults to an error,
|
|
||||||
# present through clang 20 and gone in clang 21.
|
|
||||||
enum-constexpr-conversion
|
|
||||||
)
|
|
||||||
endif ()
|
|
||||||
|
|
||||||
# The list mixes names not every compiler has, so add each exception only where the
|
# Disable warning if enum value does not have a corresponding case in switch statement
|
||||||
# compiler knows the warning. Probe with the positive -W<name>, which an unknown
|
add_compile_options(-Wno-switch)
|
||||||
# warning fails on both compilers (GCC errors, Clang reports unknown-warning-option).
|
|
||||||
# An option that takes a =N argument rejects the bare -W<name>, so fall back to
|
# removes LOTS of extraneous Eigen warnings (GCC only supports it since 6.1)
|
||||||
# -W<name>=1 and demote with the trailing =.
|
# https://eigen.tuxfamily.org/bz/show_bug.cgi?id=1221
|
||||||
include(CheckCXXCompilerFlag)
|
if("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang" OR CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 6.0)
|
||||||
foreach (category IN LISTS warnings_demoted)
|
add_compile_options(-Wno-ignored-attributes) # Tamas: Eigen include dirs are marked as SYSTEM
|
||||||
string(MAKE_C_IDENTIFIER "ORCA_HAS_W_${category}" _orca_has_w)
|
endif()
|
||||||
check_cxx_compiler_flag("-W${category}" ${_orca_has_w})
|
|
||||||
if (${_orca_has_w})
|
# Clang reports legacy OpenGL calls as deprecated. Turn off the warning for now
|
||||||
add_compile_options(-Wno-error=${category})
|
# to reduce the clutter, we know about this one. It should be reenabled after
|
||||||
else ()
|
# we finally get rid of the deprecated code.
|
||||||
check_cxx_compiler_flag("-W${category}=1" ${_orca_has_w}_arg)
|
if("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang")
|
||||||
if (${${_orca_has_w}_arg})
|
add_compile_options(-Wno-deprecated-declarations)
|
||||||
add_compile_options(-Wno-error=${category}=)
|
endif()
|
||||||
endif ()
|
|
||||||
endif ()
|
if((${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang" OR ${CMAKE_CXX_COMPILER_ID} STREQUAL "AppleClang") AND ${CMAKE_CXX_COMPILER_VERSION} VERSION_GREATER 15)
|
||||||
endforeach ()
|
include(CheckCXXCompilerFlag)
|
||||||
|
check_cxx_compiler_flag(-Wno-error=enum-constexpr-conversion HAS_WNO_ERROR_ENUM_CONSTEXPR_CONV)
|
||||||
|
if(HAS_WNO_ERROR_ENUM_CONSTEXPR_CONV)
|
||||||
|
add_compile_options(-Wno-error=enum-constexpr-conversion)
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
#GCC generates loads of -Wunknown-pragmas when compiling igl. The fix is not easy due to a bug in gcc, see
|
||||||
|
# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66943 or
|
||||||
|
# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53431
|
||||||
|
# We will turn the warning of for GCC for now:
|
||||||
|
if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
|
||||||
|
# GCC generates loads of -Wunknown-pragmas when compiling igl. The fix is not easy due to a bug in gcc, see
|
||||||
|
# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66943 or
|
||||||
|
# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53431
|
||||||
|
# We will turn the warning of for GCC for now:
|
||||||
|
add_compile_options(-Wno-unknown-pragmas)
|
||||||
|
endif()
|
||||||
|
|
||||||
# Compress the debug info with zstd to save space in Flatpak CI builds
|
# Compress the debug info with zstd to save space in Flatpak CI builds
|
||||||
if(FLATPAK)
|
if(FLATPAK)
|
||||||
@@ -652,6 +615,10 @@ if ((NOT MSVC OR IS_CLANG_CL) AND ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" OR
|
|||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 14)
|
||||||
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-error=template-id-cdtor" )
|
||||||
|
endif()
|
||||||
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (SLIC3R_ASAN)
|
if (SLIC3R_ASAN)
|
||||||
@@ -1241,9 +1208,8 @@ endif ()
|
|||||||
if (NOT SLIC3R_WARNINGS)
|
if (NOT SLIC3R_WARNINGS)
|
||||||
add_compile_options(-w)
|
add_compile_options(-w)
|
||||||
elseif (MSVC AND NOT IS_CLANG_CL)
|
elseif (MSVC AND NOT IS_CLANG_CL)
|
||||||
# /we4715 is C4715, no return from a non-void function, an error on the GNU/Clang
|
# /we4715 is C4715, no return from a non-void function, matching the
|
||||||
# builds under -Werror. MSVC is not in that model, so this stays a single promoted
|
# -Werror=return-type the GNU/Clang builds apply.
|
||||||
# warning.
|
|
||||||
add_compile_options(/W3 /we4715)
|
add_compile_options(/W3 /we4715)
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
|
|||||||
@@ -256,13 +256,6 @@ function(add_precompiled_header _target _input)
|
|||||||
message(STATUS "Adding precompiled header ${_input} to target ${_target}.")
|
message(STATUS "Adding precompiled header ${_input} to target ${_target}.")
|
||||||
target_precompile_headers(${_target} PRIVATE ${_input})
|
target_precompile_headers(${_target} PRIVATE ${_input})
|
||||||
|
|
||||||
# Clang records the modification time of every input in the precompiled
|
|
||||||
# header, which makes it differ between two checkouts of the same source
|
|
||||||
# and defeats a compiler cache. The build system already rebuilds the
|
|
||||||
# header when an input changes.
|
|
||||||
target_compile_options(${_target} PRIVATE
|
|
||||||
"$<$<CXX_COMPILER_ID:Clang,AppleClang>:SHELL:-Xclang -fno-pch-timestamp>")
|
|
||||||
|
|
||||||
get_target_property(_sources ${_target} SOURCES)
|
get_target_property(_sources ${_target} SOURCES)
|
||||||
list(FILTER _sources INCLUDE REGEX ".*\\.mm?")
|
list(FILTER _sources INCLUDE REGEX ".*\\.mm?")
|
||||||
|
|
||||||
|
|||||||
@@ -1,29 +0,0 @@
|
|||||||
diff --git a/src/osx/cocoa/colour.mm b/src/osx/cocoa/colour.mm
|
|
||||||
index 31515d146f..86b33e94a2 100644
|
|
||||||
--- a/src/osx/cocoa/colour.mm
|
|
||||||
+++ b/src/osx/cocoa/colour.mm
|
|
||||||
@@ -125,3 +125,3 @@
|
|
||||||
wxOSXEffectiveAppearanceSetter helper;
|
|
||||||
- if ( NSColor* colRGBA = [m_nsColour colorUsingColorSpaceName:NSCalibratedRGBColorSpace] )
|
|
||||||
+ if ( NSColor* colRGBA = [m_nsColour colorUsingColorSpace:[NSColorSpace sRGBColorSpace]] )
|
|
||||||
return [colRGBA redComponent];
|
|
||||||
@@ -134,3 +134,3 @@
|
|
||||||
wxOSXEffectiveAppearanceSetter helper;
|
|
||||||
- if ( NSColor* colRGBA = [m_nsColour colorUsingColorSpaceName:NSCalibratedRGBColorSpace] )
|
|
||||||
+ if ( NSColor* colRGBA = [m_nsColour colorUsingColorSpace:[NSColorSpace sRGBColorSpace]] )
|
|
||||||
return [colRGBA greenComponent];
|
|
||||||
@@ -143,3 +143,3 @@
|
|
||||||
wxOSXEffectiveAppearanceSetter helper;
|
|
||||||
- if ( NSColor* colRGBA = [m_nsColour colorUsingColorSpaceName:NSCalibratedRGBColorSpace] )
|
|
||||||
+ if ( NSColor* colRGBA = [m_nsColour colorUsingColorSpace:[NSColorSpace sRGBColorSpace]] )
|
|
||||||
return [colRGBA blueComponent];
|
|
||||||
@@ -152,3 +152,3 @@
|
|
||||||
wxOSXEffectiveAppearanceSetter helper;
|
|
||||||
- if ( NSColor* colRGBA = [m_nsColour colorUsingColorSpaceName:NSCalibratedRGBColorSpace] )
|
|
||||||
+ if ( NSColor* colRGBA = [m_nsColour colorUsingColorSpace:[NSColorSpace sRGBColorSpace]] )
|
|
||||||
return [colRGBA alphaComponent];
|
|
||||||
@@ -160,3 +160,3 @@
|
|
||||||
{
|
|
||||||
- return [m_nsColour colorUsingColorSpaceName:NSCalibratedRGBColorSpace] != nil;
|
|
||||||
+ return [m_nsColour colorUsingColorSpace:[NSColorSpace sRGBColorSpace]] != nil;
|
|
||||||
}
|
|
||||||
Vendored
-10
@@ -21,22 +21,12 @@ else ()
|
|||||||
set(_wx_edge "-DwxUSE_WEBVIEW_EDGE=OFF")
|
set(_wx_edge "-DwxUSE_WEBVIEW_EDGE=OFF")
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
set(_wx_patch_command "")
|
|
||||||
if (APPLE)
|
|
||||||
set(_wx_patch_command
|
|
||||||
${GIT_EXECUTABLE} checkout -f -- src/osx/cocoa/colour.mm
|
|
||||||
COMMAND ${GIT_EXECUTABLE} apply --verbose
|
|
||||||
${CMAKE_CURRENT_LIST_DIR}/0001-macos-use-srgb-colour-components.patch
|
|
||||||
)
|
|
||||||
endif ()
|
|
||||||
|
|
||||||
orcaslicer_add_cmake_project(
|
orcaslicer_add_cmake_project(
|
||||||
wxWidgets
|
wxWidgets
|
||||||
GIT_REPOSITORY "https://github.com/SoftFever/Orca-deps-wxWidgets"
|
GIT_REPOSITORY "https://github.com/SoftFever/Orca-deps-wxWidgets"
|
||||||
GIT_TAG v3.3.2
|
GIT_TAG v3.3.2
|
||||||
GIT_SHALLOW ON
|
GIT_SHALLOW ON
|
||||||
GIT_SUBMODULES 3rdparty/catch 3rdparty/pcre 3rdparty/libwebp
|
GIT_SUBMODULES 3rdparty/catch 3rdparty/pcre 3rdparty/libwebp
|
||||||
PATCH_COMMAND ${_wx_patch_command}
|
|
||||||
DEPENDS ${PNG_PKG} ${ZLIB_PKG} ${EXPAT_PKG} ${JPEG_PKG}
|
DEPENDS ${PNG_PKG} ${ZLIB_PKG} ${EXPAT_PKG} ${JPEG_PKG}
|
||||||
CMAKE_ARGS
|
CMAKE_ARGS
|
||||||
-DwxBUILD_PRECOMP=ON
|
-DwxBUILD_PRECOMP=ON
|
||||||
|
|||||||
@@ -162,7 +162,7 @@ static bool stl_read(stl_file *stl, FILE *fp, int first_facet, bool first, Impor
|
|||||||
rewind(fp);
|
rewind(fp);
|
||||||
try{
|
try{
|
||||||
char solid_name[256];
|
char solid_name[256];
|
||||||
int res_solid = fscanf(fp, " solid %255[^\n]", solid_name);
|
int res_solid = fscanf(fp, " solid %[^\n]", solid_name);
|
||||||
if (res_solid == 1) {
|
if (res_solid == 1) {
|
||||||
char* mw_position = strstr(solid_name, "MW");
|
char* mw_position = strstr(solid_name, "MW");
|
||||||
if (mw_position != NULL) {
|
if (mw_position != NULL) {
|
||||||
@@ -170,7 +170,7 @@ static bool stl_read(stl_file *stl, FILE *fp, int first_facet, bool first, Impor
|
|||||||
char version_str[16];
|
char version_str[16];
|
||||||
char model_id_str[128];
|
char model_id_str[128];
|
||||||
char country_code_str[16];
|
char country_code_str[16];
|
||||||
int num_values = sscanf(mw_position + 3, "%15s %127s %15s", version_str, model_id_str, country_code_str);
|
int num_values = sscanf(mw_position + 3, "%s %s %s", version_str, model_id_str, country_code_str);
|
||||||
if (num_values == 3) {
|
if (num_values == 3) {
|
||||||
if (strcmp(version_str, "1.0") == 0) {
|
if (strcmp(version_str, "1.0") == 0) {
|
||||||
model_id = model_id_str;
|
model_id = model_id_str;
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2026-09-03 10:27+0800\n"
|
"POT-Creation-Date: 2026-09-02 09:39-0300\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
@@ -2293,6 +2293,8 @@ msgstr ""
|
|||||||
msgid "%s has been removed."
|
msgid "%s has been removed."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Switching application language"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Select the language"
|
msgid "Select the language"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -4569,9 +4571,6 @@ msgid ""
|
|||||||
"No - Cancel enabling spiral mode"
|
"No - Cancel enabling spiral mode"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "N/A"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Printing"
|
msgid "Printing"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -4995,7 +4994,9 @@ msgstr ""
|
|||||||
|
|
||||||
#, possible-c-format, possible-boost-format
|
#, possible-c-format, possible-boost-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Is it %s%% or %s %s?"
|
"Is it %s%% or %s %s?\n"
|
||||||
|
"YES for %s%%, \n"
|
||||||
|
"NO for %s %s."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#, possible-boost-format
|
#, possible-boost-format
|
||||||
@@ -5018,6 +5019,9 @@ msgstr ""
|
|||||||
msgid "Invalid format. Expected vector format: \"%1%\""
|
msgid "Invalid format. Expected vector format: \"%1%\""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "N/A"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "System agents"
|
msgid "System agents"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -5947,12 +5951,6 @@ msgstr ""
|
|||||||
msgid "Save current project as"
|
msgid "Save current project as"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Publish 3MF"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Export a 3MF file with the selected settings embedded"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Import 3MF/STL/STEP/SVG/OBJ/AMF"
|
msgid "Import 3MF/STL/STEP/SVG/OBJ/AMF"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -7698,12 +7696,6 @@ msgstr ""
|
|||||||
msgid "Customized Preset"
|
msgid "Customized Preset"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Some published settings could not be applied:"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Some filament slots were changed:"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Component name(s) inside step file not in UTF-8 format!"
|
msgid "Component name(s) inside step file not in UTF-8 format!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -8082,17 +8074,6 @@ msgstr ""
|
|||||||
msgid "The file %s has been sent to the printer's storage space and can be viewed on the printer."
|
msgid "The file %s has been sent to the printer's storage space and can be viewed on the printer."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Publish 3MF file as:"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid ""
|
|
||||||
"Failed to export the published 3MF file.\n"
|
|
||||||
"Please check whether the folder exists online or if other programs have the file open."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "The nozzle type is not set. Please set the nozzle and try again."
|
msgid "The nozzle type is not set. Please set the nozzle and try again."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -8290,6 +8271,8 @@ msgstr ""
|
|||||||
msgid "Language selection"
|
msgid "Language selection"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Switching application language while some presets are modified."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Asia-Pacific"
|
msgid "Asia-Pacific"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -9141,6 +9124,9 @@ msgstr ""
|
|||||||
msgid "Note: The preparation may take several minutes. Please be patient."
|
msgid "Note: The preparation may take several minutes. Please be patient."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Publish"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Publish was canceled"
|
msgid "Publish was canceled"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -9156,64 +9142,6 @@ msgstr ""
|
|||||||
msgid "Jump to webpage"
|
msgid "Jump to webpage"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Material"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Mixed filament"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Some mixed filaments rely on filaments that will not be published:"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#, possible-c-format, possible-boost-format
|
|
||||||
msgid "Filament %d (mixed)"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "needs"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "not enabled"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "material not published"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "To publish a mixed filament, enable every filament it uses and choose Full Publish or check its Type requirement."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish anyway"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish 3MF..."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Select which settings to be published in the 3MF file"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish 3MF Wiki"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish 3MF Video Guide"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Mixed filament - published as a whole when \"Enable\" above is selected"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish this mixed filament and enable + Full Publish its component filaments"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish this filament slot in the 3MF file"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Full Publish"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Embed the entire filament of this slot in the 3MF file"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Filter non-selected"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#, possible-c-format, possible-boost-format
|
#, possible-c-format, possible-boost-format
|
||||||
msgid "Save %s as"
|
msgid "Save %s as"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -19409,15 +19337,6 @@ msgstr ""
|
|||||||
msgid "Skipping objects."
|
msgid "Skipping objects."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Material Ratio"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Model Height"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Ratio"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Select Filament"
|
msgid "Select Filament"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: \n"
|
"Project-Id-Version: \n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2026-09-03 10:27+0800\n"
|
"POT-Creation-Date: 2026-09-02 09:39-0300\n"
|
||||||
"PO-Revision-Date: 2025-03-15 10:55+0100\n"
|
"PO-Revision-Date: 2025-03-15 10:55+0100\n"
|
||||||
"Last-Translator: \n"
|
"Last-Translator: \n"
|
||||||
"Language-Team: \n"
|
"Language-Team: \n"
|
||||||
@@ -2522,6 +2522,8 @@ msgstr "Hi ha una actualització disponible. Obriu el quadre de diàleg del paqu
|
|||||||
msgid "%s has been removed."
|
msgid "%s has been removed."
|
||||||
msgstr "%s s'ha eliminat."
|
msgstr "%s s'ha eliminat."
|
||||||
|
|
||||||
|
msgid "Switching application language"
|
||||||
|
msgstr "Canvi d'idioma de l'aplicació"
|
||||||
|
|
||||||
msgid "Select the language"
|
msgid "Select the language"
|
||||||
msgstr "Seleccioneu l'idioma"
|
msgstr "Seleccioneu l'idioma"
|
||||||
@@ -4993,9 +4995,6 @@ msgstr ""
|
|||||||
"Sí: canviar aquesta configuració i activar el mode d'espiral automàticament\n"
|
"Sí: canviar aquesta configuració i activar el mode d'espiral automàticament\n"
|
||||||
"No - Renunciar a utilitzar el mode espiral aquesta vegada"
|
"No - Renunciar a utilitzar el mode espiral aquesta vegada"
|
||||||
|
|
||||||
msgid "N/A"
|
|
||||||
msgstr "N/D"
|
|
||||||
|
|
||||||
msgid "Printing"
|
msgid "Printing"
|
||||||
msgstr "Imprimint"
|
msgstr "Imprimint"
|
||||||
|
|
||||||
@@ -5429,9 +5428,13 @@ msgstr "El valor %s està fora de rang. El rang vàlid és de %d a %d."
|
|||||||
|
|
||||||
#, c-format, boost-format
|
#, c-format, boost-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Is it %s%% or %s %s?"
|
"Is it %s%% or %s %s?\n"
|
||||||
|
"YES for %s%%, \n"
|
||||||
|
"NO for %s %s."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"És %s%% or %s %s?"
|
"És %s%% or %s %s?\n"
|
||||||
|
"SÍ per %s%%.\n"
|
||||||
|
"NO per %s %s."
|
||||||
|
|
||||||
#, boost-format
|
#, boost-format
|
||||||
msgid "Invalid input format. Expected vector of dimensions in the following format: \"%1%\""
|
msgid "Invalid input format. Expected vector of dimensions in the following format: \"%1%\""
|
||||||
@@ -5453,6 +5456,9 @@ msgstr "Patró no vàlid. Utilitzeu N, N#K, o una llista separada per comes amb
|
|||||||
msgid "Invalid format. Expected vector format: \"%1%\""
|
msgid "Invalid format. Expected vector format: \"%1%\""
|
||||||
msgstr "Format no vàlid. Format vectorial esperat: \"%1%\""
|
msgstr "Format no vàlid. Format vectorial esperat: \"%1%\""
|
||||||
|
|
||||||
|
msgid "N/A"
|
||||||
|
msgstr "N/D"
|
||||||
|
|
||||||
# AI Translated
|
# AI Translated
|
||||||
msgid "System agents"
|
msgid "System agents"
|
||||||
msgstr "Agents del sistema"
|
msgstr "Agents del sistema"
|
||||||
@@ -6415,12 +6421,6 @@ msgstr "Desa el projecte com a"
|
|||||||
msgid "Save current project as"
|
msgid "Save current project as"
|
||||||
msgstr "Desar el projecte actual com"
|
msgstr "Desar el projecte actual com"
|
||||||
|
|
||||||
msgid "Publish 3MF"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Export a 3MF file with the selected settings embedded"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Import 3MF/STL/STEP/SVG/OBJ/AMF"
|
msgid "Import 3MF/STL/STEP/SVG/OBJ/AMF"
|
||||||
msgstr "Importar 3MF STL/STEP/SVG/OBJ/AMF"
|
msgstr "Importar 3MF STL/STEP/SVG/OBJ/AMF"
|
||||||
|
|
||||||
@@ -8275,12 +8275,6 @@ msgstr "Confirmeu que els Codis-G d'aquests perfils són segurs per evitar danys
|
|||||||
msgid "Customized Preset"
|
msgid "Customized Preset"
|
||||||
msgstr "Perfil personalitzat"
|
msgstr "Perfil personalitzat"
|
||||||
|
|
||||||
msgid "Some published settings could not be applied:"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Some filament slots were changed:"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
# AI Translated
|
# AI Translated
|
||||||
msgid "Component name(s) inside step file not in UTF-8 format!"
|
msgid "Component name(s) inside step file not in UTF-8 format!"
|
||||||
msgstr "Els noms dels components dins del fitxer STEP no tenen format UTF-8!"
|
msgstr "Els noms dels components dins del fitxer STEP no tenen format UTF-8!"
|
||||||
@@ -8693,17 +8687,6 @@ msgstr "Desa el fitxer Laminat com a:"
|
|||||||
msgid "The file %s has been sent to the printer's storage space and can be viewed on the printer."
|
msgid "The file %s has been sent to the printer's storage space and can be viewed on the printer."
|
||||||
msgstr "El fitxer %s s'ha enviat a l'emmagatzematge de la impressora i es pot visualitzar a la impressora."
|
msgstr "El fitxer %s s'ha enviat a l'emmagatzematge de la impressora i es pot visualitzar a la impressora."
|
||||||
|
|
||||||
msgid "Publish 3MF file as:"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid ""
|
|
||||||
"Failed to export the published 3MF file.\n"
|
|
||||||
"Please check whether the folder exists online or if other programs have the file open."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish"
|
|
||||||
msgstr "Publicar"
|
|
||||||
|
|
||||||
msgid "The nozzle type is not set. Please set the nozzle and try again."
|
msgid "The nozzle type is not set. Please set the nozzle and try again."
|
||||||
msgstr "El tipus de broquet no està establert. Establiu el broquet i torneu-ho a provar."
|
msgstr "El tipus de broquet no està establert. Establiu el broquet i torneu-ho a provar."
|
||||||
|
|
||||||
@@ -8918,6 +8901,8 @@ msgstr "Voleu continuar?"
|
|||||||
msgid "Language selection"
|
msgid "Language selection"
|
||||||
msgstr "Selecció d'idiomes"
|
msgstr "Selecció d'idiomes"
|
||||||
|
|
||||||
|
msgid "Switching application language while some presets are modified."
|
||||||
|
msgstr "Canviant l'idioma de l'aplicació mentre es modifiquen alguns perfils."
|
||||||
|
|
||||||
msgid "Asia-Pacific"
|
msgid "Asia-Pacific"
|
||||||
msgstr "Àsia-Pacífic"
|
msgstr "Àsia-Pacífic"
|
||||||
@@ -9895,6 +9880,9 @@ msgstr "Anar a la pàgina web de publicació de models"
|
|||||||
msgid "Note: The preparation may take several minutes. Please be patient."
|
msgid "Note: The preparation may take several minutes. Please be patient."
|
||||||
msgstr "Nota: La preparació pot trigar uns quants minuts. Si us plau, sigui pacient."
|
msgstr "Nota: La preparació pot trigar uns quants minuts. Si us plau, sigui pacient."
|
||||||
|
|
||||||
|
msgid "Publish"
|
||||||
|
msgstr "Publicar"
|
||||||
|
|
||||||
msgid "Publish was canceled"
|
msgid "Publish was canceled"
|
||||||
msgstr "La publicació ha estat cancel·lada"
|
msgstr "La publicació ha estat cancel·lada"
|
||||||
|
|
||||||
@@ -9910,64 +9898,6 @@ msgstr "Carregant dades"
|
|||||||
msgid "Jump to webpage"
|
msgid "Jump to webpage"
|
||||||
msgstr "Anar a la pàgina web"
|
msgstr "Anar a la pàgina web"
|
||||||
|
|
||||||
msgid "Material"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Mixed filament"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Some mixed filaments rely on filaments that will not be published:"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#, c-format, boost-format
|
|
||||||
msgid "Filament %d (mixed)"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "needs"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "not enabled"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "material not published"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "To publish a mixed filament, enable every filament it uses and choose Full Publish or check its Type requirement."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish anyway"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish 3MF..."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Select which settings to be published in the 3MF file"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish 3MF Wiki"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish 3MF Video Guide"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Mixed filament - published as a whole when \"Enable\" above is selected"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish this mixed filament and enable + Full Publish its component filaments"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish this filament slot in the 3MF file"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Full Publish"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Embed the entire filament of this slot in the 3MF file"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Filter non-selected"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#, c-format, boost-format
|
#, c-format, boost-format
|
||||||
msgid "Save %s as"
|
msgid "Save %s as"
|
||||||
msgstr "Desar %s com a"
|
msgstr "Desar %s com a"
|
||||||
@@ -21457,15 +21387,6 @@ msgstr "Aquesta acció no es pot desfer. Continuar?"
|
|||||||
msgid "Skipping objects."
|
msgid "Skipping objects."
|
||||||
msgstr "Ometent objectes."
|
msgstr "Ometent objectes."
|
||||||
|
|
||||||
msgid "Material Ratio"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Model Height"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Ratio"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Select Filament"
|
msgid "Select Filament"
|
||||||
msgstr "Seleccioneu filament"
|
msgstr "Seleccioneu filament"
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: Orca Slicer\n"
|
"Project-Id-Version: Orca Slicer\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2026-09-03 10:27+0800\n"
|
"POT-Creation-Date: 2026-09-02 09:39-0300\n"
|
||||||
"PO-Revision-Date: \n"
|
"PO-Revision-Date: \n"
|
||||||
"Last-Translator: Jakub Hencl\n"
|
"Last-Translator: Jakub Hencl\n"
|
||||||
"Language-Team: \n"
|
"Language-Team: \n"
|
||||||
@@ -2482,6 +2482,8 @@ msgstr "Je k dispozici aktualizace. Otevřete dialog balíčku předvoleb a prov
|
|||||||
msgid "%s has been removed."
|
msgid "%s has been removed."
|
||||||
msgstr "%s bylo odstraněno."
|
msgstr "%s bylo odstraněno."
|
||||||
|
|
||||||
|
msgid "Switching application language"
|
||||||
|
msgstr "Přepnutí jazyka aplikace"
|
||||||
|
|
||||||
msgid "Select the language"
|
msgid "Select the language"
|
||||||
msgstr "Zvolte jazyk"
|
msgstr "Zvolte jazyk"
|
||||||
@@ -4951,10 +4953,6 @@ msgstr ""
|
|||||||
"Ano – změnit tato nastavení a automaticky povolit spirálový režim\n"
|
"Ano – změnit tato nastavení a automaticky povolit spirálový režim\n"
|
||||||
"Ne – tentokrát nepoužít spirálový režim"
|
"Ne – tentokrát nepoužít spirálový režim"
|
||||||
|
|
||||||
# AI Translated
|
|
||||||
msgid "N/A"
|
|
||||||
msgstr "N/A"
|
|
||||||
|
|
||||||
msgid "Printing"
|
msgid "Printing"
|
||||||
msgstr "Tisk"
|
msgstr "Tisk"
|
||||||
|
|
||||||
@@ -5386,9 +5384,13 @@ msgstr "Hodnota %s je mimo rozsah. Platný rozsah je od %d do %d."
|
|||||||
|
|
||||||
#, c-format, boost-format
|
#, c-format, boost-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Is it %s%% or %s %s?"
|
"Is it %s%% or %s %s?\n"
|
||||||
|
"YES for %s%%, \n"
|
||||||
|
"NO for %s %s."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Je to %s%% nebo %s %s?"
|
"Je to %s%% nebo %s %s?\n"
|
||||||
|
"ANO pro %s%%,\n"
|
||||||
|
"NE pro %s %s."
|
||||||
|
|
||||||
#, boost-format
|
#, boost-format
|
||||||
msgid "Invalid input format. Expected vector of dimensions in the following format: \"%1%\""
|
msgid "Invalid input format. Expected vector of dimensions in the following format: \"%1%\""
|
||||||
@@ -5410,6 +5412,10 @@ msgstr "Neplatný vzor. Použijte N, N#K nebo seznam oddělený čárkami s voli
|
|||||||
msgid "Invalid format. Expected vector format: \"%1%\""
|
msgid "Invalid format. Expected vector format: \"%1%\""
|
||||||
msgstr "Neplatný formát. Očekávaný vektorový formát: \"%1%\""
|
msgstr "Neplatný formát. Očekávaný vektorový formát: \"%1%\""
|
||||||
|
|
||||||
|
# AI Translated
|
||||||
|
msgid "N/A"
|
||||||
|
msgstr "N/A"
|
||||||
|
|
||||||
# AI Translated
|
# AI Translated
|
||||||
msgid "System agents"
|
msgid "System agents"
|
||||||
msgstr "Systémoví agenti"
|
msgstr "Systémoví agenti"
|
||||||
@@ -6376,12 +6382,6 @@ msgstr "Uložit projekt jako"
|
|||||||
msgid "Save current project as"
|
msgid "Save current project as"
|
||||||
msgstr "Uložit aktuální projekt jako"
|
msgstr "Uložit aktuální projekt jako"
|
||||||
|
|
||||||
msgid "Publish 3MF"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Export a 3MF file with the selected settings embedded"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Import 3MF/STL/STEP/SVG/OBJ/AMF"
|
msgid "Import 3MF/STL/STEP/SVG/OBJ/AMF"
|
||||||
msgstr "Importovat 3MF/STL/STEP/SVG/OBJ/AMF"
|
msgstr "Importovat 3MF/STL/STEP/SVG/OBJ/AMF"
|
||||||
|
|
||||||
@@ -8237,12 +8237,6 @@ msgstr "Potvrďte prosím, že je G-code v těchto předvolbách bezpečný, aby
|
|||||||
msgid "Customized Preset"
|
msgid "Customized Preset"
|
||||||
msgstr "Přizpůsobená předvolba"
|
msgstr "Přizpůsobená předvolba"
|
||||||
|
|
||||||
msgid "Some published settings could not be applied:"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Some filament slots were changed:"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Component name(s) inside step file not in UTF-8 format!"
|
msgid "Component name(s) inside step file not in UTF-8 format!"
|
||||||
msgstr "Názvy komponent v souboru STEP nejsou ve formátu UTF-8!"
|
msgstr "Názvy komponent v souboru STEP nejsou ve formátu UTF-8!"
|
||||||
|
|
||||||
@@ -8653,17 +8647,6 @@ msgstr "Uložit rozřezaný soubor jako:"
|
|||||||
msgid "The file %s has been sent to the printer's storage space and can be viewed on the printer."
|
msgid "The file %s has been sent to the printer's storage space and can be viewed on the printer."
|
||||||
msgstr "Soubor %s byl odeslán do úložiště tiskárny a lze jej zobrazit na tiskárně."
|
msgstr "Soubor %s byl odeslán do úložiště tiskárny a lze jej zobrazit na tiskárně."
|
||||||
|
|
||||||
msgid "Publish 3MF file as:"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid ""
|
|
||||||
"Failed to export the published 3MF file.\n"
|
|
||||||
"Please check whether the folder exists online or if other programs have the file open."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish"
|
|
||||||
msgstr "Publikovat"
|
|
||||||
|
|
||||||
msgid "The nozzle type is not set. Please set the nozzle and try again."
|
msgid "The nozzle type is not set. Please set the nozzle and try again."
|
||||||
msgstr "Typ trysky není nastaven. Nastavte prosím trysku a zkuste to znovu."
|
msgstr "Typ trysky není nastaven. Nastavte prosím trysku a zkuste to znovu."
|
||||||
|
|
||||||
@@ -8876,6 +8859,8 @@ msgstr "Chcete pokračovat?"
|
|||||||
msgid "Language selection"
|
msgid "Language selection"
|
||||||
msgstr "Výběr jazyka"
|
msgstr "Výběr jazyka"
|
||||||
|
|
||||||
|
msgid "Switching application language while some presets are modified."
|
||||||
|
msgstr "Přepnutí jazyka aplikace, když jsou některé předvolby upraveny."
|
||||||
|
|
||||||
msgid "Asia-Pacific"
|
msgid "Asia-Pacific"
|
||||||
msgstr "Asie-Pacifik"
|
msgstr "Asie-Pacifik"
|
||||||
@@ -9843,6 +9828,9 @@ msgstr "Přejít na webovou stránku publikace modelu"
|
|||||||
msgid "Note: The preparation may take several minutes. Please be patient."
|
msgid "Note: The preparation may take several minutes. Please be patient."
|
||||||
msgstr "Poznámka: Příprava může trvat několik minut. Buďte prosím trpěliví."
|
msgstr "Poznámka: Příprava může trvat několik minut. Buďte prosím trpěliví."
|
||||||
|
|
||||||
|
msgid "Publish"
|
||||||
|
msgstr "Publikovat"
|
||||||
|
|
||||||
msgid "Publish was canceled"
|
msgid "Publish was canceled"
|
||||||
msgstr "Publikování bylo zrušeno"
|
msgstr "Publikování bylo zrušeno"
|
||||||
|
|
||||||
@@ -9858,64 +9846,6 @@ msgstr "Nahrávání dat"
|
|||||||
msgid "Jump to webpage"
|
msgid "Jump to webpage"
|
||||||
msgstr "Přejít na webovou stránku"
|
msgstr "Přejít na webovou stránku"
|
||||||
|
|
||||||
msgid "Material"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Mixed filament"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Some mixed filaments rely on filaments that will not be published:"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#, c-format, boost-format
|
|
||||||
msgid "Filament %d (mixed)"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "needs"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "not enabled"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "material not published"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "To publish a mixed filament, enable every filament it uses and choose Full Publish or check its Type requirement."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish anyway"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish 3MF..."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Select which settings to be published in the 3MF file"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish 3MF Wiki"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish 3MF Video Guide"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Mixed filament - published as a whole when \"Enable\" above is selected"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish this mixed filament and enable + Full Publish its component filaments"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish this filament slot in the 3MF file"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Full Publish"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Embed the entire filament of this slot in the 3MF file"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Filter non-selected"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#, c-format, boost-format
|
#, c-format, boost-format
|
||||||
msgid "Save %s as"
|
msgid "Save %s as"
|
||||||
msgstr "Uložit %s jako"
|
msgstr "Uložit %s jako"
|
||||||
@@ -21401,15 +21331,6 @@ msgstr "Tuto akci nelze vrátit zpět. Pokračovat?"
|
|||||||
msgid "Skipping objects."
|
msgid "Skipping objects."
|
||||||
msgstr "Přeskakování objektů."
|
msgstr "Přeskakování objektů."
|
||||||
|
|
||||||
msgid "Material Ratio"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Model Height"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Ratio"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
# AI Translated
|
# AI Translated
|
||||||
msgid "Select Filament"
|
msgid "Select Filament"
|
||||||
msgstr "Vybrat filament"
|
msgstr "Vybrat filament"
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: Orca Slicer\n"
|
"Project-Id-Version: Orca Slicer\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2026-09-03 10:27+0800\n"
|
"POT-Creation-Date: 2026-09-02 09:39-0300\n"
|
||||||
"PO-Revision-Date: \n"
|
"PO-Revision-Date: \n"
|
||||||
"Last-Translator: Heiko Liebscher <hliebschergmail.com>\n"
|
"Last-Translator: Heiko Liebscher <hliebschergmail.com>\n"
|
||||||
"Language-Team: \n"
|
"Language-Team: \n"
|
||||||
@@ -2430,6 +2430,8 @@ msgstr "Es ist ein Update verfügbar. Öffnen Sie den Profilbündel-Dialog, um e
|
|||||||
msgid "%s has been removed."
|
msgid "%s has been removed."
|
||||||
msgstr "%s wurde entfernt."
|
msgstr "%s wurde entfernt."
|
||||||
|
|
||||||
|
msgid "Switching application language"
|
||||||
|
msgstr "Wechsel der Sprache"
|
||||||
|
|
||||||
msgid "Select the language"
|
msgid "Select the language"
|
||||||
msgstr "Sprache wählen"
|
msgstr "Sprache wählen"
|
||||||
@@ -4857,9 +4859,6 @@ msgstr ""
|
|||||||
"Ja - Diese Einstellungen ändern und den Spiralmodus automatisch aktivieren\n"
|
"Ja - Diese Einstellungen ändern und den Spiralmodus automatisch aktivieren\n"
|
||||||
"Nein - Spiralmodus nicht aktivieren"
|
"Nein - Spiralmodus nicht aktivieren"
|
||||||
|
|
||||||
msgid "N/A"
|
|
||||||
msgstr "Nicht verfügbar"
|
|
||||||
|
|
||||||
msgid "Printing"
|
msgid "Printing"
|
||||||
msgstr "Drucken"
|
msgstr "Drucken"
|
||||||
|
|
||||||
@@ -5291,9 +5290,13 @@ msgstr "Wert %s ist außerhalb des Bereichs. Der gültige Bereich liegt zwischen
|
|||||||
|
|
||||||
#, c-format, boost-format
|
#, c-format, boost-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Is it %s%% or %s %s?"
|
"Is it %s%% or %s %s?\n"
|
||||||
|
"YES for %s%%, \n"
|
||||||
|
"NO for %s %s."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Heißt es %s%% oder %s %s?"
|
"Heißt es %s%% oder %s %s?\n"
|
||||||
|
"Ja für %s%%, \n"
|
||||||
|
"Nein für %s %s."
|
||||||
|
|
||||||
#, boost-format
|
#, boost-format
|
||||||
msgid "Invalid input format. Expected vector of dimensions in the following format: \"%1%\""
|
msgid "Invalid input format. Expected vector of dimensions in the following format: \"%1%\""
|
||||||
@@ -5315,6 +5318,9 @@ msgstr "Ungültiges Muster. Verwenden Sie N, N#K oder eine durch Kommas getrennt
|
|||||||
msgid "Invalid format. Expected vector format: \"%1%\""
|
msgid "Invalid format. Expected vector format: \"%1%\""
|
||||||
msgstr "Ungültiges Format. Erwartetes Vektorformat: \"%1%\""
|
msgstr "Ungültiges Format. Erwartetes Vektorformat: \"%1%\""
|
||||||
|
|
||||||
|
msgid "N/A"
|
||||||
|
msgstr "Nicht verfügbar"
|
||||||
|
|
||||||
# AI Translated
|
# AI Translated
|
||||||
msgid "System agents"
|
msgid "System agents"
|
||||||
msgstr "Systemagenten"
|
msgstr "Systemagenten"
|
||||||
@@ -6268,12 +6274,6 @@ msgstr "Projekt speichern als"
|
|||||||
msgid "Save current project as"
|
msgid "Save current project as"
|
||||||
msgstr "Aktuelles Projekt speichern als"
|
msgstr "Aktuelles Projekt speichern als"
|
||||||
|
|
||||||
msgid "Publish 3MF"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Export a 3MF file with the selected settings embedded"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Import 3MF/STL/STEP/SVG/OBJ/AMF"
|
msgid "Import 3MF/STL/STEP/SVG/OBJ/AMF"
|
||||||
msgstr "Importiere 3MF/STL/STEP/SVG/OBJ/AMF"
|
msgstr "Importiere 3MF/STL/STEP/SVG/OBJ/AMF"
|
||||||
|
|
||||||
@@ -8107,12 +8107,6 @@ msgstr "Bitte bestätigen Sie, dass die G-Codes innerhalb dieser Profile sicher
|
|||||||
msgid "Customized Preset"
|
msgid "Customized Preset"
|
||||||
msgstr "Benutzerdefinierte Profile"
|
msgstr "Benutzerdefinierte Profile"
|
||||||
|
|
||||||
msgid "Some published settings could not be applied:"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Some filament slots were changed:"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Component name(s) inside step file not in UTF-8 format!"
|
msgid "Component name(s) inside step file not in UTF-8 format!"
|
||||||
msgstr "Der Name der Komponenten in der Step-Datei ist nicht im UTF-8-Format!"
|
msgstr "Der Name der Komponenten in der Step-Datei ist nicht im UTF-8-Format!"
|
||||||
|
|
||||||
@@ -8525,17 +8519,6 @@ msgstr "Geslicte Datei speichern unter:"
|
|||||||
msgid "The file %s has been sent to the printer's storage space and can be viewed on the printer."
|
msgid "The file %s has been sent to the printer's storage space and can be viewed on the printer."
|
||||||
msgstr "Die Datei %s wurde an den Speicher des Druckers gesendet und kann auf dem Drucker angezeigt werden."
|
msgstr "Die Datei %s wurde an den Speicher des Druckers gesendet und kann auf dem Drucker angezeigt werden."
|
||||||
|
|
||||||
msgid "Publish 3MF file as:"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid ""
|
|
||||||
"Failed to export the published 3MF file.\n"
|
|
||||||
"Please check whether the folder exists online or if other programs have the file open."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish"
|
|
||||||
msgstr "Veröffentlichen"
|
|
||||||
|
|
||||||
msgid "The nozzle type is not set. Please set the nozzle and try again."
|
msgid "The nozzle type is not set. Please set the nozzle and try again."
|
||||||
msgstr "Die Düsenart ist nicht eingestellt. Bitte stellen Sie die Düse ein und versuchen Sie es erneut."
|
msgstr "Die Düsenart ist nicht eingestellt. Bitte stellen Sie die Düse ein und versuchen Sie es erneut."
|
||||||
|
|
||||||
@@ -8748,6 +8731,8 @@ msgstr "Möchten Sie fortfahren?"
|
|||||||
msgid "Language selection"
|
msgid "Language selection"
|
||||||
msgstr "Sprachauswahl"
|
msgstr "Sprachauswahl"
|
||||||
|
|
||||||
|
msgid "Switching application language while some presets are modified."
|
||||||
|
msgstr "Umschalten der Anwendungssprache, während einige Profile geändert werden."
|
||||||
|
|
||||||
msgid "Asia-Pacific"
|
msgid "Asia-Pacific"
|
||||||
msgstr "Asien-Pazifik"
|
msgstr "Asien-Pazifik"
|
||||||
@@ -9677,6 +9662,9 @@ msgstr "Zur Modellveröffentlichungs-Webseite springen"
|
|||||||
msgid "Note: The preparation may take several minutes. Please be patient."
|
msgid "Note: The preparation may take several minutes. Please be patient."
|
||||||
msgstr "Hinweis: Die Vorbereitung kann einige Minuten dauern. Bitte haben Sie Geduld."
|
msgstr "Hinweis: Die Vorbereitung kann einige Minuten dauern. Bitte haben Sie Geduld."
|
||||||
|
|
||||||
|
msgid "Publish"
|
||||||
|
msgstr "Veröffentlichen"
|
||||||
|
|
||||||
msgid "Publish was canceled"
|
msgid "Publish was canceled"
|
||||||
msgstr "Veröffentlichung wurde abgebrochen"
|
msgstr "Veröffentlichung wurde abgebrochen"
|
||||||
|
|
||||||
@@ -9692,64 +9680,6 @@ msgstr "Daten werden hochgeladen"
|
|||||||
msgid "Jump to webpage"
|
msgid "Jump to webpage"
|
||||||
msgstr "Zu einer Website springen"
|
msgstr "Zu einer Website springen"
|
||||||
|
|
||||||
msgid "Material"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Mixed filament"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Some mixed filaments rely on filaments that will not be published:"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#, c-format, boost-format
|
|
||||||
msgid "Filament %d (mixed)"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "needs"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "not enabled"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "material not published"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "To publish a mixed filament, enable every filament it uses and choose Full Publish or check its Type requirement."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish anyway"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish 3MF..."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Select which settings to be published in the 3MF file"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish 3MF Wiki"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish 3MF Video Guide"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Mixed filament - published as a whole when \"Enable\" above is selected"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish this mixed filament and enable + Full Publish its component filaments"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish this filament slot in the 3MF file"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Full Publish"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Embed the entire filament of this slot in the 3MF file"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Filter non-selected"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#, c-format, boost-format
|
#, c-format, boost-format
|
||||||
msgid "Save %s as"
|
msgid "Save %s as"
|
||||||
msgstr "%s speichern als"
|
msgstr "%s speichern als"
|
||||||
@@ -20886,15 +20816,6 @@ msgstr "Diese Aktion kann nicht rückgängig gemacht werden. Fortsetzen?"
|
|||||||
msgid "Skipping objects."
|
msgid "Skipping objects."
|
||||||
msgstr "Objekte werden übersprungen."
|
msgstr "Objekte werden übersprungen."
|
||||||
|
|
||||||
msgid "Material Ratio"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Model Height"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Ratio"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Select Filament"
|
msgid "Select Filament"
|
||||||
msgstr "Filament auswählen"
|
msgstr "Filament auswählen"
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: Orca Slicer\n"
|
"Project-Id-Version: Orca Slicer\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2026-09-03 10:27+0800\n"
|
"POT-Creation-Date: 2026-09-02 09:39-0300\n"
|
||||||
"PO-Revision-Date: 2026-06-17 15:44-0300\n"
|
"PO-Revision-Date: 2026-06-17 15:44-0300\n"
|
||||||
"Last-Translator: Alexandre Folle de Menezes\n"
|
"Last-Translator: Alexandre Folle de Menezes\n"
|
||||||
"Language-Team: \n"
|
"Language-Team: \n"
|
||||||
@@ -2289,6 +2289,8 @@ msgstr ""
|
|||||||
msgid "%s has been removed."
|
msgid "%s has been removed."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Switching application language"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Select the language"
|
msgid "Select the language"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -4565,9 +4567,6 @@ msgid ""
|
|||||||
"No - Cancel enabling spiral mode"
|
"No - Cancel enabling spiral mode"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "N/A"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Printing"
|
msgid "Printing"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -4991,7 +4990,9 @@ msgstr ""
|
|||||||
|
|
||||||
#, c-format, boost-format
|
#, c-format, boost-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Is it %s%% or %s %s?"
|
"Is it %s%% or %s %s?\n"
|
||||||
|
"YES for %s%%, \n"
|
||||||
|
"NO for %s %s."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#, boost-format
|
#, boost-format
|
||||||
@@ -5014,6 +5015,9 @@ msgstr ""
|
|||||||
msgid "Invalid format. Expected vector format: \"%1%\""
|
msgid "Invalid format. Expected vector format: \"%1%\""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "N/A"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "System agents"
|
msgid "System agents"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -5943,12 +5947,6 @@ msgstr ""
|
|||||||
msgid "Save current project as"
|
msgid "Save current project as"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Publish 3MF"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Export a 3MF file with the selected settings embedded"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Import 3MF/STL/STEP/SVG/OBJ/AMF"
|
msgid "Import 3MF/STL/STEP/SVG/OBJ/AMF"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -7694,12 +7692,6 @@ msgstr ""
|
|||||||
msgid "Customized Preset"
|
msgid "Customized Preset"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Some published settings could not be applied:"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Some filament slots were changed:"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Component name(s) inside step file not in UTF-8 format!"
|
msgid "Component name(s) inside step file not in UTF-8 format!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -8078,17 +8070,6 @@ msgstr ""
|
|||||||
msgid "The file %s has been sent to the printer's storage space and can be viewed on the printer."
|
msgid "The file %s has been sent to the printer's storage space and can be viewed on the printer."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Publish 3MF file as:"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid ""
|
|
||||||
"Failed to export the published 3MF file.\n"
|
|
||||||
"Please check whether the folder exists online or if other programs have the file open."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "The nozzle type is not set. Please set the nozzle and try again."
|
msgid "The nozzle type is not set. Please set the nozzle and try again."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -8286,6 +8267,8 @@ msgstr ""
|
|||||||
msgid "Language selection"
|
msgid "Language selection"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Switching application language while some presets are modified."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Asia-Pacific"
|
msgid "Asia-Pacific"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -9137,6 +9120,9 @@ msgstr ""
|
|||||||
msgid "Note: The preparation may take several minutes. Please be patient."
|
msgid "Note: The preparation may take several minutes. Please be patient."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Publish"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Publish was canceled"
|
msgid "Publish was canceled"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -9152,64 +9138,6 @@ msgstr ""
|
|||||||
msgid "Jump to webpage"
|
msgid "Jump to webpage"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Material"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Mixed filament"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Some mixed filaments rely on filaments that will not be published:"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#, c-format, boost-format
|
|
||||||
msgid "Filament %d (mixed)"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "needs"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "not enabled"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "material not published"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "To publish a mixed filament, enable every filament it uses and choose Full Publish or check its Type requirement."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish anyway"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish 3MF..."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Select which settings to be published in the 3MF file"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish 3MF Wiki"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish 3MF Video Guide"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Mixed filament - published as a whole when \"Enable\" above is selected"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish this mixed filament and enable + Full Publish its component filaments"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish this filament slot in the 3MF file"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Full Publish"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Embed the entire filament of this slot in the 3MF file"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Filter non-selected"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#, c-format, boost-format
|
#, c-format, boost-format
|
||||||
msgid "Save %s as"
|
msgid "Save %s as"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -19405,15 +19333,6 @@ msgstr ""
|
|||||||
msgid "Skipping objects."
|
msgid "Skipping objects."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Material Ratio"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Model Height"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Ratio"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Select Filament"
|
msgid "Select Filament"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: Orca Slicer\n"
|
"Project-Id-Version: Orca Slicer\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2026-09-03 10:27+0800\n"
|
"POT-Creation-Date: 2026-09-02 09:39-0300\n"
|
||||||
"PO-Revision-Date: \n"
|
"PO-Revision-Date: \n"
|
||||||
"Last-Translator: Ian A. Bassi <>\n"
|
"Last-Translator: Ian A. Bassi <>\n"
|
||||||
"Language-Team: \n"
|
"Language-Team: \n"
|
||||||
@@ -2356,6 +2356,8 @@ msgstr "Hay una actualización disponible. Abra el cuadro de diálogo del paquet
|
|||||||
msgid "%s has been removed."
|
msgid "%s has been removed."
|
||||||
msgstr "Se ha eliminado %s."
|
msgstr "Se ha eliminado %s."
|
||||||
|
|
||||||
|
msgid "Switching application language"
|
||||||
|
msgstr "Cambiando el idioma de la aplicación"
|
||||||
|
|
||||||
msgid "Select the language"
|
msgid "Select the language"
|
||||||
msgstr "Seleccionar el idioma"
|
msgstr "Seleccionar el idioma"
|
||||||
@@ -4727,9 +4729,6 @@ msgstr ""
|
|||||||
"Sí - Cambiar estos ajustes y activar el modo espiral automáticamente\n"
|
"Sí - Cambiar estos ajustes y activar el modo espiral automáticamente\n"
|
||||||
"No - Dejar de usar el modo espiral esta vez"
|
"No - Dejar de usar el modo espiral esta vez"
|
||||||
|
|
||||||
msgid "N/A"
|
|
||||||
msgstr "N/A"
|
|
||||||
|
|
||||||
msgid "Printing"
|
msgid "Printing"
|
||||||
msgstr "Imprimiendo"
|
msgstr "Imprimiendo"
|
||||||
|
|
||||||
@@ -5155,9 +5154,13 @@ msgstr "El valor %s está fuera de rango. El rango válido es de %d a %d."
|
|||||||
|
|
||||||
#, c-format, boost-format
|
#, c-format, boost-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Is it %s%% or %s %s?"
|
"Is it %s%% or %s %s?\n"
|
||||||
|
"YES for %s%%, \n"
|
||||||
|
"NO for %s %s."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"¿Es %s%% o %s %s?"
|
"¿Es %s%% o %s %s?\n"
|
||||||
|
"SÍ para %s%%, \n"
|
||||||
|
"NO para %s %s."
|
||||||
|
|
||||||
#, boost-format
|
#, boost-format
|
||||||
msgid "Invalid input format. Expected vector of dimensions in the following format: \"%1%\""
|
msgid "Invalid input format. Expected vector of dimensions in the following format: \"%1%\""
|
||||||
@@ -5179,6 +5182,9 @@ msgstr "Patrón inválido. Use N, N#K, o una lista separada por comas con #K opc
|
|||||||
msgid "Invalid format. Expected vector format: \"%1%\""
|
msgid "Invalid format. Expected vector format: \"%1%\""
|
||||||
msgstr "Formato inválido. Formato de vector esperado: \"%1%\""
|
msgstr "Formato inválido. Formato de vector esperado: \"%1%\""
|
||||||
|
|
||||||
|
msgid "N/A"
|
||||||
|
msgstr "N/A"
|
||||||
|
|
||||||
msgid "System agents"
|
msgid "System agents"
|
||||||
msgstr "Agentes del sistema"
|
msgstr "Agentes del sistema"
|
||||||
|
|
||||||
@@ -6123,12 +6129,6 @@ msgstr "Guardar proyecto como"
|
|||||||
msgid "Save current project as"
|
msgid "Save current project as"
|
||||||
msgstr "Guardar el proyecto actual como"
|
msgstr "Guardar el proyecto actual como"
|
||||||
|
|
||||||
msgid "Publish 3MF"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Export a 3MF file with the selected settings embedded"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Import 3MF/STL/STEP/SVG/OBJ/AMF"
|
msgid "Import 3MF/STL/STEP/SVG/OBJ/AMF"
|
||||||
msgstr "Importar 3MF/STL/STEP/SVG/OBJ/AMF"
|
msgstr "Importar 3MF/STL/STEP/SVG/OBJ/AMF"
|
||||||
|
|
||||||
@@ -7910,12 +7910,6 @@ msgstr "¡Por favor, confirme que el G-Code dentro de los perfiles son seguros p
|
|||||||
msgid "Customized Preset"
|
msgid "Customized Preset"
|
||||||
msgstr "Perfil Personalizado"
|
msgstr "Perfil Personalizado"
|
||||||
|
|
||||||
msgid "Some published settings could not be applied:"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Some filament slots were changed:"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Component name(s) inside step file not in UTF-8 format!"
|
msgid "Component name(s) inside step file not in UTF-8 format!"
|
||||||
msgstr "¡El nombre de los componentes dentro del archivo de pasos no tiene formato UTF-8!"
|
msgstr "¡El nombre de los componentes dentro del archivo de pasos no tiene formato UTF-8!"
|
||||||
|
|
||||||
@@ -8311,17 +8305,6 @@ msgstr "Guardar el archivo laminado como:"
|
|||||||
msgid "The file %s has been sent to the printer's storage space and can be viewed on the printer."
|
msgid "The file %s has been sent to the printer's storage space and can be viewed on the printer."
|
||||||
msgstr "El archivo %s ha sido mandado al almacenamiento de la impresora y puede ser visualizado en la impresora."
|
msgstr "El archivo %s ha sido mandado al almacenamiento de la impresora y puede ser visualizado en la impresora."
|
||||||
|
|
||||||
msgid "Publish 3MF file as:"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid ""
|
|
||||||
"Failed to export the published 3MF file.\n"
|
|
||||||
"Please check whether the folder exists online or if other programs have the file open."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish"
|
|
||||||
msgstr "Publicar"
|
|
||||||
|
|
||||||
msgid "The nozzle type is not set. Please set the nozzle and try again."
|
msgid "The nozzle type is not set. Please set the nozzle and try again."
|
||||||
msgstr "El tipo de boquilla no está establecido. Configure la boquilla e inténtelo de nuevo."
|
msgstr "El tipo de boquilla no está establecido. Configure la boquilla e inténtelo de nuevo."
|
||||||
|
|
||||||
@@ -8523,6 +8506,8 @@ msgstr "¿Quieres continuar?"
|
|||||||
msgid "Language selection"
|
msgid "Language selection"
|
||||||
msgstr "Selección de idiomas"
|
msgstr "Selección de idiomas"
|
||||||
|
|
||||||
|
msgid "Switching application language while some presets are modified."
|
||||||
|
msgstr "Cambiando idioma de la aplicación mientras se modifican algunos perfiles."
|
||||||
|
|
||||||
msgid "Asia-Pacific"
|
msgid "Asia-Pacific"
|
||||||
msgstr "Asia-Pacífico"
|
msgstr "Asia-Pacífico"
|
||||||
@@ -9434,6 +9419,9 @@ msgstr "Ir a la página web de publicación de modelos"
|
|||||||
msgid "Note: The preparation may take several minutes. Please be patient."
|
msgid "Note: The preparation may take several minutes. Please be patient."
|
||||||
msgstr "Nota: La preparación puede llevar varios minutos. Por favor, sea paciente."
|
msgstr "Nota: La preparación puede llevar varios minutos. Por favor, sea paciente."
|
||||||
|
|
||||||
|
msgid "Publish"
|
||||||
|
msgstr "Publicar"
|
||||||
|
|
||||||
msgid "Publish was canceled"
|
msgid "Publish was canceled"
|
||||||
msgstr "La publicación fue cancelada"
|
msgstr "La publicación fue cancelada"
|
||||||
|
|
||||||
@@ -9449,64 +9437,6 @@ msgstr "Cargando datos"
|
|||||||
msgid "Jump to webpage"
|
msgid "Jump to webpage"
|
||||||
msgstr "Ir a la página web"
|
msgstr "Ir a la página web"
|
||||||
|
|
||||||
msgid "Material"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Mixed filament"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Some mixed filaments rely on filaments that will not be published:"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#, c-format, boost-format
|
|
||||||
msgid "Filament %d (mixed)"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "needs"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "not enabled"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "material not published"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "To publish a mixed filament, enable every filament it uses and choose Full Publish or check its Type requirement."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish anyway"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish 3MF..."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Select which settings to be published in the 3MF file"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish 3MF Wiki"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish 3MF Video Guide"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Mixed filament - published as a whole when \"Enable\" above is selected"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish this mixed filament and enable + Full Publish its component filaments"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish this filament slot in the 3MF file"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Full Publish"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Embed the entire filament of this slot in the 3MF file"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Filter non-selected"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#, c-format, boost-format
|
#, c-format, boost-format
|
||||||
msgid "Save %s as"
|
msgid "Save %s as"
|
||||||
msgstr "Guardar %s como"
|
msgstr "Guardar %s como"
|
||||||
@@ -20479,15 +20409,6 @@ msgstr "Esta acción no se puede deshacer. ¿Continuar?"
|
|||||||
msgid "Skipping objects."
|
msgid "Skipping objects."
|
||||||
msgstr "Omitiendo objetos."
|
msgstr "Omitiendo objetos."
|
||||||
|
|
||||||
msgid "Material Ratio"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Model Height"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Ratio"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Select Filament"
|
msgid "Select Filament"
|
||||||
msgstr "Seleccionar Filamento"
|
msgstr "Seleccionar Filamento"
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: \n"
|
"Project-Id-Version: \n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2026-09-03 10:27+0800\n"
|
"POT-Creation-Date: 2026-09-02 09:39-0300\n"
|
||||||
"PO-Revision-Date: 2026-07-20 13:33+0200\n"
|
"PO-Revision-Date: 2026-07-20 13:33+0200\n"
|
||||||
"Last-Translator: Manu Goiogana <mgoiogana@gmail.com>\n"
|
"Last-Translator: Manu Goiogana <mgoiogana@gmail.com>\n"
|
||||||
"Language-Team: \n"
|
"Language-Team: \n"
|
||||||
@@ -2390,6 +2390,8 @@ msgstr "Eguneratze bat dago erabilgarri. Ireki aurrezarpen-paketeen elkarrizketa
|
|||||||
msgid "%s has been removed."
|
msgid "%s has been removed."
|
||||||
msgstr "%s kendu da."
|
msgstr "%s kendu da."
|
||||||
|
|
||||||
|
msgid "Switching application language"
|
||||||
|
msgstr "Aplikazioaren hizkuntza aldatzen"
|
||||||
|
|
||||||
msgid "Select the language"
|
msgid "Select the language"
|
||||||
msgstr "Hautatu hizkuntza"
|
msgstr "Hautatu hizkuntza"
|
||||||
@@ -4769,9 +4771,6 @@ msgstr ""
|
|||||||
"Bai - Aldatu ezarpen hauek eta gaitu espiral/loreontzi modua automatikoki\n"
|
"Bai - Aldatu ezarpen hauek eta gaitu espiral/loreontzi modua automatikoki\n"
|
||||||
"Ez - Utzi bertan behera espiral modua gaitzea"
|
"Ez - Utzi bertan behera espiral modua gaitzea"
|
||||||
|
|
||||||
msgid "N/A"
|
|
||||||
msgstr "N/A"
|
|
||||||
|
|
||||||
msgid "Printing"
|
msgid "Printing"
|
||||||
msgstr "Inprimatzen"
|
msgstr "Inprimatzen"
|
||||||
|
|
||||||
@@ -5203,9 +5202,13 @@ msgstr "%s balioa tartetik kanpo dago. Baliozko tartea %d eta %d artekoa da."
|
|||||||
|
|
||||||
#, c-format, boost-format
|
#, c-format, boost-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Is it %s%% or %s %s?"
|
"Is it %s%% or %s %s?\n"
|
||||||
|
"YES for %s%%, \n"
|
||||||
|
"NO for %s %s."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"%s%% edo %s %s da?"
|
"%s%% edo %s %s da?\n"
|
||||||
|
"BAI %s%%-(r)entzat,\n"
|
||||||
|
"EZ %s %s-(r)entzat."
|
||||||
|
|
||||||
#, boost-format
|
#, boost-format
|
||||||
msgid "Invalid input format. Expected vector of dimensions in the following format: \"%1%\""
|
msgid "Invalid input format. Expected vector of dimensions in the following format: \"%1%\""
|
||||||
@@ -5228,6 +5231,9 @@ msgstr "Patroi baliogabea. Erabili N, N#K edo komaz bereizitako zerrenda bat, sa
|
|||||||
msgid "Invalid format. Expected vector format: \"%1%\""
|
msgid "Invalid format. Expected vector format: \"%1%\""
|
||||||
msgstr "Formatuak ez du balio. Espero den formatu bektoriala: \"%1%\""
|
msgstr "Formatuak ez du balio. Espero den formatu bektoriala: \"%1%\""
|
||||||
|
|
||||||
|
msgid "N/A"
|
||||||
|
msgstr "N/A"
|
||||||
|
|
||||||
msgid "System agents"
|
msgid "System agents"
|
||||||
msgstr "Sistema-agenteak"
|
msgstr "Sistema-agenteak"
|
||||||
|
|
||||||
@@ -6169,12 +6175,6 @@ msgstr "Gorde proiektua honela"
|
|||||||
msgid "Save current project as"
|
msgid "Save current project as"
|
||||||
msgstr "Gorde uneko proiektua honela"
|
msgstr "Gorde uneko proiektua honela"
|
||||||
|
|
||||||
msgid "Publish 3MF"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Export a 3MF file with the selected settings embedded"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Import 3MF/STL/STEP/SVG/OBJ/AMF"
|
msgid "Import 3MF/STL/STEP/SVG/OBJ/AMF"
|
||||||
msgstr "Inportatu 3MF/STL/STEP/SVG/OBJ/AMF"
|
msgstr "Inportatu 3MF/STL/STEP/SVG/OBJ/AMF"
|
||||||
|
|
||||||
@@ -7988,12 +7988,6 @@ msgstr "Berretsi aurrezarpen hauetako G-codea segurua dela, makinari kalterik ez
|
|||||||
msgid "Customized Preset"
|
msgid "Customized Preset"
|
||||||
msgstr "Aurrezarpen pertsonalizatua"
|
msgstr "Aurrezarpen pertsonalizatua"
|
||||||
|
|
||||||
msgid "Some published settings could not be applied:"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Some filament slots were changed:"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Component name(s) inside step file not in UTF-8 format!"
|
msgid "Component name(s) inside step file not in UTF-8 format!"
|
||||||
msgstr "STEP fitxategiko osagai-izena(k) ez dago/daude UTF-8 formatuan!"
|
msgstr "STEP fitxategiko osagai-izena(k) ez dago/daude UTF-8 formatuan!"
|
||||||
|
|
||||||
@@ -8394,17 +8388,6 @@ msgstr "Gorde xerratutako fitxategia honela:"
|
|||||||
msgid "The file %s has been sent to the printer's storage space and can be viewed on the printer."
|
msgid "The file %s has been sent to the printer's storage space and can be viewed on the printer."
|
||||||
msgstr "%s fitxategia inprimagailuaren biltegiratze-eremura bidali da eta inprimagailuan ikus daiteke."
|
msgstr "%s fitxategia inprimagailuaren biltegiratze-eremura bidali da eta inprimagailuan ikus daiteke."
|
||||||
|
|
||||||
msgid "Publish 3MF file as:"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid ""
|
|
||||||
"Failed to export the published 3MF file.\n"
|
|
||||||
"Please check whether the folder exists online or if other programs have the file open."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish"
|
|
||||||
msgstr "Argitaratu"
|
|
||||||
|
|
||||||
msgid "The nozzle type is not set. Please set the nozzle and try again."
|
msgid "The nozzle type is not set. Please set the nozzle and try again."
|
||||||
msgstr "Pita mota ez dago ezarrita. Ezarri pita eta saiatu berriro."
|
msgstr "Pita mota ez dago ezarrita. Ezarri pita eta saiatu berriro."
|
||||||
|
|
||||||
@@ -8604,6 +8587,8 @@ msgstr "Jarraitu nahi duzu?"
|
|||||||
msgid "Language selection"
|
msgid "Language selection"
|
||||||
msgstr "Hizkuntza-hautaketa"
|
msgstr "Hizkuntza-hautaketa"
|
||||||
|
|
||||||
|
msgid "Switching application language while some presets are modified."
|
||||||
|
msgstr "Aplikazioaren hizkuntza aldatzen ari da aurrezarpen batzuk aldatuta dauden bitartean."
|
||||||
|
|
||||||
msgid "Asia-Pacific"
|
msgid "Asia-Pacific"
|
||||||
msgstr "Asia-Pazifikoa"
|
msgstr "Asia-Pazifikoa"
|
||||||
@@ -9520,6 +9505,9 @@ msgstr "Joan modeloa argitaratzeko web-orrira"
|
|||||||
msgid "Note: The preparation may take several minutes. Please be patient."
|
msgid "Note: The preparation may take several minutes. Please be patient."
|
||||||
msgstr "Oharra: prestaketak minutu batzuk iraun ditzake. Izan pazientzia."
|
msgstr "Oharra: prestaketak minutu batzuk iraun ditzake. Izan pazientzia."
|
||||||
|
|
||||||
|
msgid "Publish"
|
||||||
|
msgstr "Argitaratu"
|
||||||
|
|
||||||
msgid "Publish was canceled"
|
msgid "Publish was canceled"
|
||||||
msgstr "Argitaratzea bertan behera utzi da"
|
msgstr "Argitaratzea bertan behera utzi da"
|
||||||
|
|
||||||
@@ -9535,64 +9523,6 @@ msgstr "Datuak igotzen"
|
|||||||
msgid "Jump to webpage"
|
msgid "Jump to webpage"
|
||||||
msgstr "Joan web-orrira"
|
msgstr "Joan web-orrira"
|
||||||
|
|
||||||
msgid "Material"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Mixed filament"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Some mixed filaments rely on filaments that will not be published:"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#, c-format, boost-format
|
|
||||||
msgid "Filament %d (mixed)"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "needs"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "not enabled"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "material not published"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "To publish a mixed filament, enable every filament it uses and choose Full Publish or check its Type requirement."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish anyway"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish 3MF..."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Select which settings to be published in the 3MF file"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish 3MF Wiki"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish 3MF Video Guide"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Mixed filament - published as a whole when \"Enable\" above is selected"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish this mixed filament and enable + Full Publish its component filaments"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish this filament slot in the 3MF file"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Full Publish"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Embed the entire filament of this slot in the 3MF file"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Filter non-selected"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#, c-format, boost-format
|
#, c-format, boost-format
|
||||||
msgid "Save %s as"
|
msgid "Save %s as"
|
||||||
msgstr "Gorde %s honela"
|
msgstr "Gorde %s honela"
|
||||||
@@ -20666,15 +20596,6 @@ msgstr "Ekintza hau ezin da desegin. Jarraitu?"
|
|||||||
msgid "Skipping objects."
|
msgid "Skipping objects."
|
||||||
msgstr "Objektuak saltatzen."
|
msgstr "Objektuak saltatzen."
|
||||||
|
|
||||||
msgid "Material Ratio"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Model Height"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Ratio"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Select Filament"
|
msgid "Select Filament"
|
||||||
msgstr "Hautatu filamentua"
|
msgstr "Hautatu filamentua"
|
||||||
|
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: Orca Slicer\n"
|
"Project-Id-Version: Orca Slicer\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2026-09-03 10:27+0800\n"
|
"POT-Creation-Date: 2026-09-02 09:39-0300\n"
|
||||||
"PO-Revision-Date: \n"
|
"PO-Revision-Date: \n"
|
||||||
"Last-Translator: \n"
|
"Last-Translator: \n"
|
||||||
"Language-Team: Guislain Cyril, Thomas Lété\n"
|
"Language-Team: Guislain Cyril, Thomas Lété\n"
|
||||||
@@ -2414,6 +2414,8 @@ msgstr "Une mise à jour est disponible. Ouvrez la boîte de dialogue du paquet
|
|||||||
msgid "%s has been removed."
|
msgid "%s has been removed."
|
||||||
msgstr "%s a été supprimé."
|
msgstr "%s a été supprimé."
|
||||||
|
|
||||||
|
msgid "Switching application language"
|
||||||
|
msgstr "Changer la langue de l'application"
|
||||||
|
|
||||||
msgid "Select the language"
|
msgid "Select the language"
|
||||||
msgstr "Sélectionner la langue"
|
msgstr "Sélectionner la langue"
|
||||||
@@ -4807,9 +4809,6 @@ msgstr ""
|
|||||||
"Oui - Modifiez ces paramètres et activez automatiquement le mode spirale/vase\n"
|
"Oui - Modifiez ces paramètres et activez automatiquement le mode spirale/vase\n"
|
||||||
"Non - Annuler l'activation du mode spirale"
|
"Non - Annuler l'activation du mode spirale"
|
||||||
|
|
||||||
msgid "N/A"
|
|
||||||
msgstr "N/A"
|
|
||||||
|
|
||||||
msgid "Printing"
|
msgid "Printing"
|
||||||
msgstr "Impression"
|
msgstr "Impression"
|
||||||
|
|
||||||
@@ -5241,9 +5240,13 @@ msgstr "La valeur %s est hors plage. La plage valide est comprise entre %d et %d
|
|||||||
|
|
||||||
#, c-format, boost-format
|
#, c-format, boost-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Is it %s%% or %s %s?"
|
"Is it %s%% or %s %s?\n"
|
||||||
|
"YES for %s%%, \n"
|
||||||
|
"NO for %s %s."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Est-ce %s%% ou %s %s ?"
|
"Est-ce %s%% ou %s %s ?\n"
|
||||||
|
"OUI pour %s%%, \n"
|
||||||
|
"NON pour %s %s."
|
||||||
|
|
||||||
#, boost-format
|
#, boost-format
|
||||||
msgid "Invalid input format. Expected vector of dimensions in the following format: \"%1%\""
|
msgid "Invalid input format. Expected vector of dimensions in the following format: \"%1%\""
|
||||||
@@ -5265,6 +5268,9 @@ msgstr "Motif invalide. Utilisez N, N#K, ou une liste séparée par des virgules
|
|||||||
msgid "Invalid format. Expected vector format: \"%1%\""
|
msgid "Invalid format. Expected vector format: \"%1%\""
|
||||||
msgstr "Format invalide. Format vectoriel attendu : \"%1%\""
|
msgstr "Format invalide. Format vectoriel attendu : \"%1%\""
|
||||||
|
|
||||||
|
msgid "N/A"
|
||||||
|
msgstr "N/A"
|
||||||
|
|
||||||
# AI Translated
|
# AI Translated
|
||||||
msgid "System agents"
|
msgid "System agents"
|
||||||
msgstr "Agents système"
|
msgstr "Agents système"
|
||||||
@@ -6217,12 +6223,6 @@ msgstr "Enregistrer le projet sous"
|
|||||||
msgid "Save current project as"
|
msgid "Save current project as"
|
||||||
msgstr "Enregistrer le projet actuel sous"
|
msgstr "Enregistrer le projet actuel sous"
|
||||||
|
|
||||||
msgid "Publish 3MF"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Export a 3MF file with the selected settings embedded"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Import 3MF/STL/STEP/SVG/OBJ/AMF"
|
msgid "Import 3MF/STL/STEP/SVG/OBJ/AMF"
|
||||||
msgstr "Importer des fichiers 3MF/STL/STEP/SVG/OBJ/AMF"
|
msgstr "Importer des fichiers 3MF/STL/STEP/SVG/OBJ/AMF"
|
||||||
|
|
||||||
@@ -8044,12 +8044,6 @@ msgstr "Veuillez vous assurer que les G-codes de ces préréglages sont sûrs af
|
|||||||
msgid "Customized Preset"
|
msgid "Customized Preset"
|
||||||
msgstr "Préréglage personnalisé"
|
msgstr "Préréglage personnalisé"
|
||||||
|
|
||||||
msgid "Some published settings could not be applied:"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Some filament slots were changed:"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Component name(s) inside step file not in UTF-8 format!"
|
msgid "Component name(s) inside step file not in UTF-8 format!"
|
||||||
msgstr "Le nom des composants dans le fichier STEP n'est pas au format UTF-8 !"
|
msgstr "Le nom des composants dans le fichier STEP n'est pas au format UTF-8 !"
|
||||||
|
|
||||||
@@ -8451,17 +8445,6 @@ msgstr "Enregistrer le fichier découpé sous :"
|
|||||||
msgid "The file %s has been sent to the printer's storage space and can be viewed on the printer."
|
msgid "The file %s has been sent to the printer's storage space and can be viewed on the printer."
|
||||||
msgstr "Le fichier %s a été envoyé vers l'espace de stockage de l'imprimante et peut être visualisé sur l'imprimante."
|
msgstr "Le fichier %s a été envoyé vers l'espace de stockage de l'imprimante et peut être visualisé sur l'imprimante."
|
||||||
|
|
||||||
msgid "Publish 3MF file as:"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid ""
|
|
||||||
"Failed to export the published 3MF file.\n"
|
|
||||||
"Please check whether the folder exists online or if other programs have the file open."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish"
|
|
||||||
msgstr "Publier"
|
|
||||||
|
|
||||||
msgid "The nozzle type is not set. Please set the nozzle and try again."
|
msgid "The nozzle type is not set. Please set the nozzle and try again."
|
||||||
msgstr "Le type de buse n'est pas défini. Veuillez définir la buse et réessayer."
|
msgstr "Le type de buse n'est pas défini. Veuillez définir la buse et réessayer."
|
||||||
|
|
||||||
@@ -8672,6 +8655,8 @@ msgstr "Voulez-vous continuer ?"
|
|||||||
msgid "Language selection"
|
msgid "Language selection"
|
||||||
msgstr "Sélection de la langue"
|
msgstr "Sélection de la langue"
|
||||||
|
|
||||||
|
msgid "Switching application language while some presets are modified."
|
||||||
|
msgstr "Changement de langue de l’application alors que certains préréglages sont modifiés."
|
||||||
|
|
||||||
msgid "Asia-Pacific"
|
msgid "Asia-Pacific"
|
||||||
msgstr "Asie-Pacifique"
|
msgstr "Asie-Pacifique"
|
||||||
@@ -9591,6 +9576,9 @@ msgstr "Accéder à la page internet de publication des modèles"
|
|||||||
msgid "Note: The preparation may take several minutes. Please be patient."
|
msgid "Note: The preparation may take several minutes. Please be patient."
|
||||||
msgstr "Remarque : La préparation peut prendre plusieurs minutes. Veuillez patienter."
|
msgstr "Remarque : La préparation peut prendre plusieurs minutes. Veuillez patienter."
|
||||||
|
|
||||||
|
msgid "Publish"
|
||||||
|
msgstr "Publier"
|
||||||
|
|
||||||
msgid "Publish was canceled"
|
msgid "Publish was canceled"
|
||||||
msgstr "La publication a été annulée"
|
msgstr "La publication a été annulée"
|
||||||
|
|
||||||
@@ -9606,64 +9594,6 @@ msgstr "Téléversement des données"
|
|||||||
msgid "Jump to webpage"
|
msgid "Jump to webpage"
|
||||||
msgstr "Ouvrir la page internet"
|
msgstr "Ouvrir la page internet"
|
||||||
|
|
||||||
msgid "Material"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Mixed filament"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Some mixed filaments rely on filaments that will not be published:"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#, c-format, boost-format
|
|
||||||
msgid "Filament %d (mixed)"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "needs"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "not enabled"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "material not published"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "To publish a mixed filament, enable every filament it uses and choose Full Publish or check its Type requirement."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish anyway"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish 3MF..."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Select which settings to be published in the 3MF file"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish 3MF Wiki"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish 3MF Video Guide"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Mixed filament - published as a whole when \"Enable\" above is selected"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish this mixed filament and enable + Full Publish its component filaments"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish this filament slot in the 3MF file"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Full Publish"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Embed the entire filament of this slot in the 3MF file"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Filter non-selected"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#, c-format, boost-format
|
#, c-format, boost-format
|
||||||
msgid "Save %s as"
|
msgid "Save %s as"
|
||||||
msgstr "Enregistrer %s sous"
|
msgstr "Enregistrer %s sous"
|
||||||
@@ -20778,15 +20708,6 @@ msgstr "Cette action ne peut pas être annulée. Continuer ?"
|
|||||||
msgid "Skipping objects."
|
msgid "Skipping objects."
|
||||||
msgstr "Ignorer des objets."
|
msgstr "Ignorer des objets."
|
||||||
|
|
||||||
msgid "Material Ratio"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Model Height"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Ratio"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Select Filament"
|
msgid "Select Filament"
|
||||||
msgstr "Sélectionner le filament"
|
msgstr "Sélectionner le filament"
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: Orca Slicer\n"
|
"Project-Id-Version: Orca Slicer\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2026-09-03 10:27+0800\n"
|
"POT-Creation-Date: 2026-09-02 09:39-0300\n"
|
||||||
"Language: hu\n"
|
"Language: hu\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
@@ -2460,6 +2460,8 @@ msgstr "Frissítés érhető el. Nyisd meg a beállításcsomag párbeszédablak
|
|||||||
msgid "%s has been removed."
|
msgid "%s has been removed."
|
||||||
msgstr "%s eltávolítva."
|
msgstr "%s eltávolítva."
|
||||||
|
|
||||||
|
msgid "Switching application language"
|
||||||
|
msgstr "Alkalmazás nyelvének váltása"
|
||||||
|
|
||||||
msgid "Select the language"
|
msgid "Select the language"
|
||||||
msgstr "Válaszd ki a nyelvet"
|
msgstr "Válaszd ki a nyelvet"
|
||||||
@@ -4903,10 +4905,6 @@ msgstr ""
|
|||||||
"Igen - Módosítsd ezeket a beállításokat, és automatikusan kapcsold be a spirál módot\n"
|
"Igen - Módosítsd ezeket a beállításokat, és automatikusan kapcsold be a spirál módot\n"
|
||||||
"Nem - Most ne kapcsold be a spirál módot"
|
"Nem - Most ne kapcsold be a spirál módot"
|
||||||
|
|
||||||
# AI Translated
|
|
||||||
msgid "N/A"
|
|
||||||
msgstr "N/A"
|
|
||||||
|
|
||||||
msgid "Printing"
|
msgid "Printing"
|
||||||
msgstr "Nyomtatás"
|
msgstr "Nyomtatás"
|
||||||
|
|
||||||
@@ -5338,9 +5336,13 @@ msgstr "%s érték tartományon kívül van. Az érvényes tartomány: %d - %d."
|
|||||||
|
|
||||||
#, c-format, boost-format
|
#, c-format, boost-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Is it %s%% or %s %s?"
|
"Is it %s%% or %s %s?\n"
|
||||||
|
"YES for %s%%, \n"
|
||||||
|
"NO for %s %s."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"%s%% vagy %s %s?"
|
"%s%% vagy %s %s?\n"
|
||||||
|
"IGEN %s%%, \n"
|
||||||
|
"NEM %s %s."
|
||||||
|
|
||||||
#, boost-format
|
#, boost-format
|
||||||
msgid "Invalid input format. Expected vector of dimensions in the following format: \"%1%\""
|
msgid "Invalid input format. Expected vector of dimensions in the following format: \"%1%\""
|
||||||
@@ -5362,6 +5364,10 @@ msgstr "Érvénytelen minta. Használj N, N#K formátumot, vagy vesszővel elvá
|
|||||||
msgid "Invalid format. Expected vector format: \"%1%\""
|
msgid "Invalid format. Expected vector format: \"%1%\""
|
||||||
msgstr "Érvénytelen formátum. Elvárt vektor formátum: \"%1%\""
|
msgstr "Érvénytelen formátum. Elvárt vektor formátum: \"%1%\""
|
||||||
|
|
||||||
|
# AI Translated
|
||||||
|
msgid "N/A"
|
||||||
|
msgstr "N/A"
|
||||||
|
|
||||||
# AI Translated
|
# AI Translated
|
||||||
msgid "System agents"
|
msgid "System agents"
|
||||||
msgstr "Rendszerügynökök"
|
msgstr "Rendszerügynökök"
|
||||||
@@ -6319,12 +6325,6 @@ msgstr "Projekt mentése másként"
|
|||||||
msgid "Save current project as"
|
msgid "Save current project as"
|
||||||
msgstr "Jelenlegi projekt mentése másként"
|
msgstr "Jelenlegi projekt mentése másként"
|
||||||
|
|
||||||
msgid "Publish 3MF"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Export a 3MF file with the selected settings embedded"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Import 3MF/STL/STEP/SVG/OBJ/AMF"
|
msgid "Import 3MF/STL/STEP/SVG/OBJ/AMF"
|
||||||
msgstr "Importálás 3MF/STL/STEP/SVG/OBJ/AMF"
|
msgstr "Importálás 3MF/STL/STEP/SVG/OBJ/AMF"
|
||||||
|
|
||||||
@@ -8159,12 +8159,6 @@ msgstr "Kérlek, győződj meg arról, hogy a beállításokban található G-k
|
|||||||
msgid "Customized Preset"
|
msgid "Customized Preset"
|
||||||
msgstr "Egyedi beállítás"
|
msgstr "Egyedi beállítás"
|
||||||
|
|
||||||
msgid "Some published settings could not be applied:"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Some filament slots were changed:"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Component name(s) inside step file not in UTF-8 format!"
|
msgid "Component name(s) inside step file not in UTF-8 format!"
|
||||||
msgstr "A STEP fájlon belüli komponens neve nem UTF-8 formátumban van!"
|
msgstr "A STEP fájlon belüli komponens neve nem UTF-8 formátumban van!"
|
||||||
|
|
||||||
@@ -8577,17 +8571,6 @@ msgstr "Szeletelt fájl mentése mint:"
|
|||||||
msgid "The file %s has been sent to the printer's storage space and can be viewed on the printer."
|
msgid "The file %s has been sent to the printer's storage space and can be viewed on the printer."
|
||||||
msgstr "A(z) %s fájlt elküldtük a nyomtató tárhelyére. A fájl a nyomtatón tekinthető meg."
|
msgstr "A(z) %s fájlt elküldtük a nyomtató tárhelyére. A fájl a nyomtatón tekinthető meg."
|
||||||
|
|
||||||
msgid "Publish 3MF file as:"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid ""
|
|
||||||
"Failed to export the published 3MF file.\n"
|
|
||||||
"Please check whether the folder exists online or if other programs have the file open."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish"
|
|
||||||
msgstr "Közzététel"
|
|
||||||
|
|
||||||
msgid "The nozzle type is not set. Please set the nozzle and try again."
|
msgid "The nozzle type is not set. Please set the nozzle and try again."
|
||||||
msgstr "A fúvókatípus nincs beállítva. Állítsd be a fúvókát, majd próbáld újra."
|
msgstr "A fúvókatípus nincs beállítva. Állítsd be a fúvókát, majd próbáld újra."
|
||||||
|
|
||||||
@@ -8800,6 +8783,8 @@ msgstr "Szeretnéd folytatni?"
|
|||||||
msgid "Language selection"
|
msgid "Language selection"
|
||||||
msgstr "Nyelv kiválasztása"
|
msgstr "Nyelv kiválasztása"
|
||||||
|
|
||||||
|
msgid "Switching application language while some presets are modified."
|
||||||
|
msgstr "Alkalmazás nyelvének átváltása, miközben egyes beállítások módosultak."
|
||||||
|
|
||||||
msgid "Asia-Pacific"
|
msgid "Asia-Pacific"
|
||||||
msgstr "Ázsia-Csendes-óceáni térség"
|
msgstr "Ázsia-Csendes-óceáni térség"
|
||||||
@@ -9751,6 +9736,9 @@ msgstr "Ugrás a modell közzététele weboldalra"
|
|||||||
msgid "Note: The preparation may take several minutes. Please be patient."
|
msgid "Note: The preparation may take several minutes. Please be patient."
|
||||||
msgstr "Megjegyzés: Az előkészítés több percig is eltarthat. Kérlek, várj."
|
msgstr "Megjegyzés: Az előkészítés több percig is eltarthat. Kérlek, várj."
|
||||||
|
|
||||||
|
msgid "Publish"
|
||||||
|
msgstr "Közzététel"
|
||||||
|
|
||||||
msgid "Publish was canceled"
|
msgid "Publish was canceled"
|
||||||
msgstr "A közzététel törlésre került"
|
msgstr "A közzététel törlésre került"
|
||||||
|
|
||||||
@@ -9766,64 +9754,6 @@ msgstr "Adatok feltöltése"
|
|||||||
msgid "Jump to webpage"
|
msgid "Jump to webpage"
|
||||||
msgstr "Ugrás a weboldalra"
|
msgstr "Ugrás a weboldalra"
|
||||||
|
|
||||||
msgid "Material"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Mixed filament"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Some mixed filaments rely on filaments that will not be published:"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#, c-format, boost-format
|
|
||||||
msgid "Filament %d (mixed)"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "needs"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "not enabled"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "material not published"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "To publish a mixed filament, enable every filament it uses and choose Full Publish or check its Type requirement."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish anyway"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish 3MF..."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Select which settings to be published in the 3MF file"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish 3MF Wiki"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish 3MF Video Guide"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Mixed filament - published as a whole when \"Enable\" above is selected"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish this mixed filament and enable + Full Publish its component filaments"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish this filament slot in the 3MF file"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Full Publish"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Embed the entire filament of this slot in the 3MF file"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Filter non-selected"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#, c-format, boost-format
|
#, c-format, boost-format
|
||||||
msgid "Save %s as"
|
msgid "Save %s as"
|
||||||
msgstr "%s mentése"
|
msgstr "%s mentése"
|
||||||
@@ -21180,15 +21110,6 @@ msgstr "Ez a művelet nem vonható vissza. Folytatod?"
|
|||||||
msgid "Skipping objects."
|
msgid "Skipping objects."
|
||||||
msgstr "Objektumok kihagyása."
|
msgstr "Objektumok kihagyása."
|
||||||
|
|
||||||
msgid "Material Ratio"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Model Height"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Ratio"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Select Filament"
|
msgid "Select Filament"
|
||||||
msgstr "Filament kiválasztása"
|
msgstr "Filament kiválasztása"
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: Orca Slicer\n"
|
"Project-Id-Version: Orca Slicer\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2026-09-03 10:27+0800\n"
|
"POT-Creation-Date: 2026-09-02 09:39-0300\n"
|
||||||
"PO-Revision-Date: \n"
|
"PO-Revision-Date: \n"
|
||||||
"Last-Translator: \n"
|
"Last-Translator: \n"
|
||||||
"Language-Team: \n"
|
"Language-Team: \n"
|
||||||
@@ -2466,6 +2466,8 @@ msgstr "È disponibile un aggiornamento. Apri la finestra di dialogo del bundle
|
|||||||
msgid "%s has been removed."
|
msgid "%s has been removed."
|
||||||
msgstr "%s è stato rimosso."
|
msgstr "%s è stato rimosso."
|
||||||
|
|
||||||
|
msgid "Switching application language"
|
||||||
|
msgstr "Cambio lingua applicazione"
|
||||||
|
|
||||||
msgid "Select the language"
|
msgid "Select the language"
|
||||||
msgstr "Seleziona la lingua"
|
msgstr "Seleziona la lingua"
|
||||||
@@ -4905,9 +4907,6 @@ msgstr ""
|
|||||||
"Sì - Modifica queste impostazioni ed abilita la modalità spirale automaticamente\n"
|
"Sì - Modifica queste impostazioni ed abilita la modalità spirale automaticamente\n"
|
||||||
"No - Annulla l'attivazione della modalità a spirale"
|
"No - Annulla l'attivazione della modalità a spirale"
|
||||||
|
|
||||||
msgid "N/A"
|
|
||||||
msgstr "N/D"
|
|
||||||
|
|
||||||
msgid "Printing"
|
msgid "Printing"
|
||||||
msgstr "Stampa"
|
msgstr "Stampa"
|
||||||
|
|
||||||
@@ -5339,9 +5338,13 @@ msgstr "Il valore %s è fuori intervallo. L'intervallo valido è da %d a %d."
|
|||||||
|
|
||||||
#, c-format, boost-format
|
#, c-format, boost-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Is it %s%% or %s %s?"
|
"Is it %s%% or %s %s?\n"
|
||||||
|
"YES for %s%%, \n"
|
||||||
|
"NO for %s %s."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"È %s%% o %s %s?"
|
"È %s%% o %s %s?\n"
|
||||||
|
"Sì per %s%%, \n"
|
||||||
|
"NO per %s %s."
|
||||||
|
|
||||||
#, boost-format
|
#, boost-format
|
||||||
msgid "Invalid input format. Expected vector of dimensions in the following format: \"%1%\""
|
msgid "Invalid input format. Expected vector of dimensions in the following format: \"%1%\""
|
||||||
@@ -5363,6 +5366,9 @@ msgstr "Schema non valido. Utilizzare N, N#K o un elenco separato da virgole con
|
|||||||
msgid "Invalid format. Expected vector format: \"%1%\""
|
msgid "Invalid format. Expected vector format: \"%1%\""
|
||||||
msgstr "Formato non valido. Formato vettoriale previsto: \"%1%\""
|
msgstr "Formato non valido. Formato vettoriale previsto: \"%1%\""
|
||||||
|
|
||||||
|
msgid "N/A"
|
||||||
|
msgstr "N/D"
|
||||||
|
|
||||||
# AI Translated
|
# AI Translated
|
||||||
msgid "System agents"
|
msgid "System agents"
|
||||||
msgstr "Agenti di sistema"
|
msgstr "Agenti di sistema"
|
||||||
@@ -6321,12 +6327,6 @@ msgstr "Salva progetto con nome"
|
|||||||
msgid "Save current project as"
|
msgid "Save current project as"
|
||||||
msgstr "Salva progetto corrente con nome"
|
msgstr "Salva progetto corrente con nome"
|
||||||
|
|
||||||
msgid "Publish 3MF"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Export a 3MF file with the selected settings embedded"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Import 3MF/STL/STEP/SVG/OBJ/AMF"
|
msgid "Import 3MF/STL/STEP/SVG/OBJ/AMF"
|
||||||
msgstr "Importa 3MF/STL/STEP/SVG/OBJ/AMF"
|
msgstr "Importa 3MF/STL/STEP/SVG/OBJ/AMF"
|
||||||
|
|
||||||
@@ -8163,12 +8163,6 @@ msgstr "Si prega di confermare che i G-code all'interno di questi profili sono s
|
|||||||
msgid "Customized Preset"
|
msgid "Customized Preset"
|
||||||
msgstr "Profilo personalizzato"
|
msgstr "Profilo personalizzato"
|
||||||
|
|
||||||
msgid "Some published settings could not be applied:"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Some filament slots were changed:"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Component name(s) inside step file not in UTF-8 format!"
|
msgid "Component name(s) inside step file not in UTF-8 format!"
|
||||||
msgstr "Il nome dei componenti all'interno del file STEP non è in formato UTF-8!"
|
msgstr "Il nome dei componenti all'interno del file STEP non è in formato UTF-8!"
|
||||||
|
|
||||||
@@ -8576,17 +8570,6 @@ msgstr "Salva file elaborato con nome:"
|
|||||||
msgid "The file %s has been sent to the printer's storage space and can be viewed on the printer."
|
msgid "The file %s has been sent to the printer's storage space and can be viewed on the printer."
|
||||||
msgstr "Il file %s è stato inviato alla memoria della stampante e può essere visualizzato da lì."
|
msgstr "Il file %s è stato inviato alla memoria della stampante e può essere visualizzato da lì."
|
||||||
|
|
||||||
msgid "Publish 3MF file as:"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid ""
|
|
||||||
"Failed to export the published 3MF file.\n"
|
|
||||||
"Please check whether the folder exists online or if other programs have the file open."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish"
|
|
||||||
msgstr "Pubblica"
|
|
||||||
|
|
||||||
msgid "The nozzle type is not set. Please set the nozzle and try again."
|
msgid "The nozzle type is not set. Please set the nozzle and try again."
|
||||||
msgstr "Il tipo di ugello non è impostato. Impostare l'ugello e riprovare."
|
msgstr "Il tipo di ugello non è impostato. Impostare l'ugello e riprovare."
|
||||||
|
|
||||||
@@ -8801,6 +8784,8 @@ msgstr "Vuoi continuare?"
|
|||||||
msgid "Language selection"
|
msgid "Language selection"
|
||||||
msgstr "Selezione lingua"
|
msgstr "Selezione lingua"
|
||||||
|
|
||||||
|
msgid "Switching application language while some presets are modified."
|
||||||
|
msgstr "Cambio lingua applicazione durante la modifica di alcuni profili."
|
||||||
|
|
||||||
msgid "Asia-Pacific"
|
msgid "Asia-Pacific"
|
||||||
msgstr "Asia-Pacifico"
|
msgstr "Asia-Pacifico"
|
||||||
@@ -9769,6 +9754,9 @@ msgstr "Vai alla pagina web di pubblicazione del modello"
|
|||||||
msgid "Note: The preparation may take several minutes. Please be patient."
|
msgid "Note: The preparation may take several minutes. Please be patient."
|
||||||
msgstr "Nota: la preparazione può richiedere alcuni minuti. Si prega di avere pazienza."
|
msgstr "Nota: la preparazione può richiedere alcuni minuti. Si prega di avere pazienza."
|
||||||
|
|
||||||
|
msgid "Publish"
|
||||||
|
msgstr "Pubblica"
|
||||||
|
|
||||||
msgid "Publish was canceled"
|
msgid "Publish was canceled"
|
||||||
msgstr "La pubblicazione è stata annullata"
|
msgstr "La pubblicazione è stata annullata"
|
||||||
|
|
||||||
@@ -9784,64 +9772,6 @@ msgstr "Caricamento dati"
|
|||||||
msgid "Jump to webpage"
|
msgid "Jump to webpage"
|
||||||
msgstr "Vai alla pagina web"
|
msgstr "Vai alla pagina web"
|
||||||
|
|
||||||
msgid "Material"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Mixed filament"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Some mixed filaments rely on filaments that will not be published:"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#, c-format, boost-format
|
|
||||||
msgid "Filament %d (mixed)"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "needs"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "not enabled"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "material not published"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "To publish a mixed filament, enable every filament it uses and choose Full Publish or check its Type requirement."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish anyway"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish 3MF..."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Select which settings to be published in the 3MF file"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish 3MF Wiki"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish 3MF Video Guide"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Mixed filament - published as a whole when \"Enable\" above is selected"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish this mixed filament and enable + Full Publish its component filaments"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish this filament slot in the 3MF file"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Full Publish"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Embed the entire filament of this slot in the 3MF file"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Filter non-selected"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#, c-format, boost-format
|
#, c-format, boost-format
|
||||||
msgid "Save %s as"
|
msgid "Save %s as"
|
||||||
msgstr "Salva %s con nome"
|
msgstr "Salva %s con nome"
|
||||||
@@ -21204,15 +21134,6 @@ msgstr "Questa azione non può essere annullata. Continuare?"
|
|||||||
msgid "Skipping objects."
|
msgid "Skipping objects."
|
||||||
msgstr "Salto degli oggetti."
|
msgstr "Salto degli oggetti."
|
||||||
|
|
||||||
msgid "Material Ratio"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Model Height"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Ratio"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Select Filament"
|
msgid "Select Filament"
|
||||||
msgstr "Seleziona filamento"
|
msgstr "Seleziona filamento"
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: Orca Slicer\n"
|
"Project-Id-Version: Orca Slicer\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2026-09-03 10:27+0800\n"
|
"POT-Creation-Date: 2026-09-02 09:39-0300\n"
|
||||||
"PO-Revision-Date: \n"
|
"PO-Revision-Date: \n"
|
||||||
"Last-Translator: \n"
|
"Last-Translator: \n"
|
||||||
"Language-Team: \n"
|
"Language-Team: \n"
|
||||||
@@ -2473,6 +2473,8 @@ msgstr "アップデートが利用可能です。プリセットバンドルの
|
|||||||
msgid "%s has been removed."
|
msgid "%s has been removed."
|
||||||
msgstr "%sを削除しました。"
|
msgstr "%sを削除しました。"
|
||||||
|
|
||||||
|
msgid "Switching application language"
|
||||||
|
msgstr "アプリケーション言語の切り替え"
|
||||||
|
|
||||||
msgid "Select the language"
|
msgid "Select the language"
|
||||||
msgstr "言語を選択"
|
msgstr "言語を選択"
|
||||||
@@ -4918,10 +4920,6 @@ msgstr ""
|
|||||||
"はい - 変更して、スパイラルモードを有効にします\n"
|
"はい - 変更して、スパイラルモードを有効にします\n"
|
||||||
"いいえ - 変更せず、スパイラルモードを有効しません"
|
"いいえ - 変更せず、スパイラルモードを有効しません"
|
||||||
|
|
||||||
# AI Translated
|
|
||||||
msgid "N/A"
|
|
||||||
msgstr "N/A"
|
|
||||||
|
|
||||||
msgid "Printing"
|
msgid "Printing"
|
||||||
msgstr "造形中"
|
msgstr "造形中"
|
||||||
|
|
||||||
@@ -5353,9 +5351,12 @@ msgstr "値%sは範囲外です。有効な範囲は%dから%dです。"
|
|||||||
|
|
||||||
#, c-format, boost-format
|
#, c-format, boost-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Is it %s%% or %s %s?"
|
"Is it %s%% or %s %s?\n"
|
||||||
|
"YES for %s%%, \n"
|
||||||
|
"NO for %s %s."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"%s%% か、それとも %s %sですか?"
|
"%s%% か、それとも %s %sですか?\n"
|
||||||
|
"%s%% の場合ははい、 %s %s はいいえ。"
|
||||||
|
|
||||||
#, boost-format
|
#, boost-format
|
||||||
msgid "Invalid input format. Expected vector of dimensions in the following format: \"%1%\""
|
msgid "Invalid input format. Expected vector of dimensions in the following format: \"%1%\""
|
||||||
@@ -5377,6 +5378,10 @@ msgstr "無効なパターンです。N、N#K、またはオプション#K付き
|
|||||||
msgid "Invalid format. Expected vector format: \"%1%\""
|
msgid "Invalid format. Expected vector format: \"%1%\""
|
||||||
msgstr "無効なフォーマット、%1%であるはずです。"
|
msgstr "無効なフォーマット、%1%であるはずです。"
|
||||||
|
|
||||||
|
# AI Translated
|
||||||
|
msgid "N/A"
|
||||||
|
msgstr "N/A"
|
||||||
|
|
||||||
# AI Translated
|
# AI Translated
|
||||||
msgid "System agents"
|
msgid "System agents"
|
||||||
msgstr "システムエージェント"
|
msgstr "システムエージェント"
|
||||||
@@ -6331,12 +6336,6 @@ msgstr "プロジェクトを名前を付けて保存"
|
|||||||
msgid "Save current project as"
|
msgid "Save current project as"
|
||||||
msgstr "プロジェクトを名前を付けて保存"
|
msgstr "プロジェクトを名前を付けて保存"
|
||||||
|
|
||||||
msgid "Publish 3MF"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Export a 3MF file with the selected settings embedded"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Import 3MF/STL/STEP/SVG/OBJ/AMF"
|
msgid "Import 3MF/STL/STEP/SVG/OBJ/AMF"
|
||||||
msgstr "3MF/STL/STEP/SVG/OBJ/AMFをインポート"
|
msgstr "3MF/STL/STEP/SVG/OBJ/AMFをインポート"
|
||||||
|
|
||||||
@@ -8178,12 +8177,6 @@ msgstr "これらのプリセット内のG-codeがマシンに損傷を与えな
|
|||||||
msgid "Customized Preset"
|
msgid "Customized Preset"
|
||||||
msgstr "カスタマイズされたプリセット"
|
msgstr "カスタマイズされたプリセット"
|
||||||
|
|
||||||
msgid "Some published settings could not be applied:"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Some filament slots were changed:"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Component name(s) inside step file not in UTF-8 format!"
|
msgid "Component name(s) inside step file not in UTF-8 format!"
|
||||||
msgstr "ファイルのエンコーディング方式はUTF-8形式ではありません"
|
msgstr "ファイルのエンコーディング方式はUTF-8形式ではありません"
|
||||||
|
|
||||||
@@ -8596,17 +8589,6 @@ msgstr "名前を付けて保存:"
|
|||||||
msgid "The file %s has been sent to the printer's storage space and can be viewed on the printer."
|
msgid "The file %s has been sent to the printer's storage space and can be viewed on the printer."
|
||||||
msgstr "%sを送信しました、プリンターにて確認できます"
|
msgstr "%sを送信しました、プリンターにて確認できます"
|
||||||
|
|
||||||
msgid "Publish 3MF file as:"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid ""
|
|
||||||
"Failed to export the published 3MF file.\n"
|
|
||||||
"Please check whether the folder exists online or if other programs have the file open."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish"
|
|
||||||
msgstr "公開する"
|
|
||||||
|
|
||||||
msgid "The nozzle type is not set. Please set the nozzle and try again."
|
msgid "The nozzle type is not set. Please set the nozzle and try again."
|
||||||
msgstr "ノズルタイプが設定されていません。ノズルを設定して再試行してください。"
|
msgstr "ノズルタイプが設定されていません。ノズルを設定して再試行してください。"
|
||||||
|
|
||||||
@@ -8820,6 +8802,8 @@ msgstr "続行しますか?"
|
|||||||
msgid "Language selection"
|
msgid "Language selection"
|
||||||
msgstr "言語選択"
|
msgstr "言語選択"
|
||||||
|
|
||||||
|
msgid "Switching application language while some presets are modified."
|
||||||
|
msgstr "アプリケーション言語を切り替える時に、プリセットの変更があります"
|
||||||
|
|
||||||
msgid "Asia-Pacific"
|
msgid "Asia-Pacific"
|
||||||
msgstr "アジア太平洋地域"
|
msgstr "アジア太平洋地域"
|
||||||
@@ -9792,6 +9776,9 @@ msgstr "モデル公開ページに移動"
|
|||||||
msgid "Note: The preparation may take several minutes. Please be patient."
|
msgid "Note: The preparation may take several minutes. Please be patient."
|
||||||
msgstr "注意: 準備するには数分かかる場合があります、暫くお待ち下さい。"
|
msgstr "注意: 準備するには数分かかる場合があります、暫くお待ち下さい。"
|
||||||
|
|
||||||
|
msgid "Publish"
|
||||||
|
msgstr "公開する"
|
||||||
|
|
||||||
msgid "Publish was canceled"
|
msgid "Publish was canceled"
|
||||||
msgstr "公開は取り消しました"
|
msgstr "公開は取り消しました"
|
||||||
|
|
||||||
@@ -9807,64 +9794,6 @@ msgstr "データをアップロード中"
|
|||||||
msgid "Jump to webpage"
|
msgid "Jump to webpage"
|
||||||
msgstr "ウェブページに移動"
|
msgstr "ウェブページに移動"
|
||||||
|
|
||||||
msgid "Material"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Mixed filament"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Some mixed filaments rely on filaments that will not be published:"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#, c-format, boost-format
|
|
||||||
msgid "Filament %d (mixed)"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "needs"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "not enabled"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "material not published"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "To publish a mixed filament, enable every filament it uses and choose Full Publish or check its Type requirement."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish anyway"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish 3MF..."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Select which settings to be published in the 3MF file"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish 3MF Wiki"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish 3MF Video Guide"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Mixed filament - published as a whole when \"Enable\" above is selected"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish this mixed filament and enable + Full Publish its component filaments"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish this filament slot in the 3MF file"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Full Publish"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Embed the entire filament of this slot in the 3MF file"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Filter non-selected"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#, c-format, boost-format
|
#, c-format, boost-format
|
||||||
msgid "Save %s as"
|
msgid "Save %s as"
|
||||||
msgstr "%sを名前つけて保存"
|
msgstr "%sを名前つけて保存"
|
||||||
@@ -21749,15 +21678,6 @@ msgstr "この操作は元に戻せません。続行しますか?"
|
|||||||
msgid "Skipping objects."
|
msgid "Skipping objects."
|
||||||
msgstr "オブジェクトをスキップ中。"
|
msgstr "オブジェクトをスキップ中。"
|
||||||
|
|
||||||
msgid "Material Ratio"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Model Height"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Ratio"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Select Filament"
|
msgid "Select Filament"
|
||||||
msgstr "フィラメントを選択"
|
msgstr "フィラメントを選択"
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: Orca Slicer\n"
|
"Project-Id-Version: Orca Slicer\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2026-09-03 10:27+0800\n"
|
"POT-Creation-Date: 2026-09-02 09:39-0300\n"
|
||||||
"PO-Revision-Date: 2025-06-02 17:12+0900\n"
|
"PO-Revision-Date: 2025-06-02 17:12+0900\n"
|
||||||
"Last-Translator: crwusiz <crwusiz@gmail.com>\n"
|
"Last-Translator: crwusiz <crwusiz@gmail.com>\n"
|
||||||
"Language-Team: \n"
|
"Language-Team: \n"
|
||||||
@@ -2481,6 +2481,8 @@ msgstr "사용 가능한 업데이트가 있습니다. 사전 설정 번들 대
|
|||||||
msgid "%s has been removed."
|
msgid "%s has been removed."
|
||||||
msgstr "%s이(가) 제거되었습니다."
|
msgstr "%s이(가) 제거되었습니다."
|
||||||
|
|
||||||
|
msgid "Switching application language"
|
||||||
|
msgstr "응용 프로그램 언어 전환"
|
||||||
|
|
||||||
msgid "Select the language"
|
msgid "Select the language"
|
||||||
msgstr "언어 선택"
|
msgstr "언어 선택"
|
||||||
@@ -4929,10 +4931,6 @@ msgstr ""
|
|||||||
"예 - 이 설정을 변경하고 나선 모드를 자동으로 활성화합니다\n"
|
"예 - 이 설정을 변경하고 나선 모드를 자동으로 활성화합니다\n"
|
||||||
"아니오 - 이번에는 나선 모드 사용을 포기합니다"
|
"아니오 - 이번에는 나선 모드 사용을 포기합니다"
|
||||||
|
|
||||||
# AI Translated
|
|
||||||
msgid "N/A"
|
|
||||||
msgstr "해당 없음"
|
|
||||||
|
|
||||||
msgid "Printing"
|
msgid "Printing"
|
||||||
msgstr "출력 중"
|
msgstr "출력 중"
|
||||||
|
|
||||||
@@ -5364,9 +5362,13 @@ msgstr "값 %s이 범위를 벗어났습니다. 유효한 범위는 %d에서 %d
|
|||||||
|
|
||||||
#, c-format, boost-format
|
#, c-format, boost-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Is it %s%% or %s %s?"
|
"Is it %s%% or %s %s?\n"
|
||||||
|
"YES for %s%%, \n"
|
||||||
|
"NO for %s %s."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"%s%% 또는 %s %s입니까?"
|
"%s%% 또는 %s %s입니까?\n"
|
||||||
|
"%s%%에 대해 예,\n"
|
||||||
|
"%s %s에 대해 아니요."
|
||||||
|
|
||||||
#, boost-format
|
#, boost-format
|
||||||
msgid "Invalid input format. Expected vector of dimensions in the following format: \"%1%\""
|
msgid "Invalid input format. Expected vector of dimensions in the following format: \"%1%\""
|
||||||
@@ -5388,6 +5390,10 @@ msgstr "잘못된 패턴입니다. N, N#K 또는 항목당 선택적 #K가 있
|
|||||||
msgid "Invalid format. Expected vector format: \"%1%\""
|
msgid "Invalid format. Expected vector format: \"%1%\""
|
||||||
msgstr "잘못된 형식입니다. 필요한 벡터 형식: \"%1%\""
|
msgstr "잘못된 형식입니다. 필요한 벡터 형식: \"%1%\""
|
||||||
|
|
||||||
|
# AI Translated
|
||||||
|
msgid "N/A"
|
||||||
|
msgstr "해당 없음"
|
||||||
|
|
||||||
# AI Translated
|
# AI Translated
|
||||||
msgid "System agents"
|
msgid "System agents"
|
||||||
msgstr "시스템 에이전트"
|
msgstr "시스템 에이전트"
|
||||||
@@ -6344,12 +6350,6 @@ msgstr "프로젝트 다른 이름으로 저장"
|
|||||||
msgid "Save current project as"
|
msgid "Save current project as"
|
||||||
msgstr "현재 프로젝트 다른 이름으로 저장"
|
msgstr "현재 프로젝트 다른 이름으로 저장"
|
||||||
|
|
||||||
msgid "Publish 3MF"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Export a 3MF file with the selected settings embedded"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Import 3MF/STL/STEP/SVG/OBJ/AMF"
|
msgid "Import 3MF/STL/STEP/SVG/OBJ/AMF"
|
||||||
msgstr "3MF/STL/STEP/SVG/OBJ/AMF 가져오기"
|
msgstr "3MF/STL/STEP/SVG/OBJ/AMF 가져오기"
|
||||||
|
|
||||||
@@ -8195,12 +8195,6 @@ msgstr "이러한 사전 설정 내의 Gcode가 기계 손상을 방지할 수
|
|||||||
msgid "Customized Preset"
|
msgid "Customized Preset"
|
||||||
msgstr "사용자 정의 프리셋"
|
msgstr "사용자 정의 프리셋"
|
||||||
|
|
||||||
msgid "Some published settings could not be applied:"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Some filament slots were changed:"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
# AI Translated
|
# AI Translated
|
||||||
msgid "Component name(s) inside step file not in UTF-8 format!"
|
msgid "Component name(s) inside step file not in UTF-8 format!"
|
||||||
msgstr "STEP 파일 내부의 구성 요소 이름이 UTF-8 형식이 아닙니다!"
|
msgstr "STEP 파일 내부의 구성 요소 이름이 UTF-8 형식이 아닙니다!"
|
||||||
@@ -8628,17 +8622,6 @@ msgstr "슬라이스 파일을 다음으로 저장:"
|
|||||||
msgid "The file %s has been sent to the printer's storage space and can be viewed on the printer."
|
msgid "The file %s has been sent to the printer's storage space and can be viewed on the printer."
|
||||||
msgstr "%s 파일이 프린터의 저장 공간으로 전송되었으며 프린터에서 볼 수 있습니다."
|
msgstr "%s 파일이 프린터의 저장 공간으로 전송되었으며 프린터에서 볼 수 있습니다."
|
||||||
|
|
||||||
msgid "Publish 3MF file as:"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid ""
|
|
||||||
"Failed to export the published 3MF file.\n"
|
|
||||||
"Please check whether the folder exists online or if other programs have the file open."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish"
|
|
||||||
msgstr "게시"
|
|
||||||
|
|
||||||
msgid "The nozzle type is not set. Please set the nozzle and try again."
|
msgid "The nozzle type is not set. Please set the nozzle and try again."
|
||||||
msgstr "노즐 유형이 설정되지 않았습니다. 노즐을 설정하고 다시 시도하세요."
|
msgstr "노즐 유형이 설정되지 않았습니다. 노즐을 설정하고 다시 시도하세요."
|
||||||
|
|
||||||
@@ -8854,6 +8837,8 @@ msgstr "계속하시겠습니까?"
|
|||||||
msgid "Language selection"
|
msgid "Language selection"
|
||||||
msgstr "언어 선택"
|
msgstr "언어 선택"
|
||||||
|
|
||||||
|
msgid "Switching application language while some presets are modified."
|
||||||
|
msgstr "일부 사전 설정이 수정되는 동안 응용 프로그램 언어를 전환합니다."
|
||||||
|
|
||||||
msgid "Asia-Pacific"
|
msgid "Asia-Pacific"
|
||||||
msgstr "아시아 태평양"
|
msgstr "아시아 태평양"
|
||||||
@@ -9880,6 +9865,9 @@ msgstr "모델 게시 웹 페이지로 이동"
|
|||||||
msgid "Note: The preparation may take several minutes. Please be patient."
|
msgid "Note: The preparation may take several minutes. Please be patient."
|
||||||
msgstr "참고: 준비하는 데 몇 분 정도 걸릴 수 있습니다. 조금만 기다려 주십시오."
|
msgstr "참고: 준비하는 데 몇 분 정도 걸릴 수 있습니다. 조금만 기다려 주십시오."
|
||||||
|
|
||||||
|
msgid "Publish"
|
||||||
|
msgstr "게시"
|
||||||
|
|
||||||
msgid "Publish was canceled"
|
msgid "Publish was canceled"
|
||||||
msgstr "게시가 취소되었습니다"
|
msgstr "게시가 취소되었습니다"
|
||||||
|
|
||||||
@@ -9896,64 +9884,6 @@ msgstr "데이터 업로드 중"
|
|||||||
msgid "Jump to webpage"
|
msgid "Jump to webpage"
|
||||||
msgstr "웹 페이지로 이동"
|
msgstr "웹 페이지로 이동"
|
||||||
|
|
||||||
msgid "Material"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Mixed filament"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Some mixed filaments rely on filaments that will not be published:"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#, c-format, boost-format
|
|
||||||
msgid "Filament %d (mixed)"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "needs"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "not enabled"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "material not published"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "To publish a mixed filament, enable every filament it uses and choose Full Publish or check its Type requirement."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish anyway"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish 3MF..."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Select which settings to be published in the 3MF file"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish 3MF Wiki"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish 3MF Video Guide"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Mixed filament - published as a whole when \"Enable\" above is selected"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish this mixed filament and enable + Full Publish its component filaments"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish this filament slot in the 3MF file"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Full Publish"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Embed the entire filament of this slot in the 3MF file"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Filter non-selected"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#, c-format, boost-format
|
#, c-format, boost-format
|
||||||
msgid "Save %s as"
|
msgid "Save %s as"
|
||||||
msgstr "%s을(를) 다음으로 저장"
|
msgstr "%s을(를) 다음으로 저장"
|
||||||
@@ -21606,15 +21536,6 @@ msgstr "이 작업은 취소할 수 없습니다. 계속하시겠습니까?"
|
|||||||
msgid "Skipping objects."
|
msgid "Skipping objects."
|
||||||
msgstr "물체 건너뛰기"
|
msgstr "물체 건너뛰기"
|
||||||
|
|
||||||
msgid "Material Ratio"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Model Height"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Ratio"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Select Filament"
|
msgid "Select Filament"
|
||||||
msgstr "필라멘트 선택"
|
msgstr "필라멘트 선택"
|
||||||
|
|
||||||
|
|||||||
@@ -136,7 +136,6 @@ src/slic3r/GUI/BackgroundSlicingProcess.cpp
|
|||||||
src/slic3r/GUI/BedShapeDialog.cpp
|
src/slic3r/GUI/BedShapeDialog.cpp
|
||||||
src/slic3r/GUI/BedShapeDialog.hpp
|
src/slic3r/GUI/BedShapeDialog.hpp
|
||||||
src/slic3r/GUI/ConfigManipulation.cpp
|
src/slic3r/GUI/ConfigManipulation.cpp
|
||||||
src/slic3r/GUI/ConfigValueFormatter.cpp
|
|
||||||
src/slic3r/GUI/DeviceManager.cpp
|
src/slic3r/GUI/DeviceManager.cpp
|
||||||
src/slic3r/GUI/DeviceErrorDialog.cpp
|
src/slic3r/GUI/DeviceErrorDialog.cpp
|
||||||
src/slic3r/GUI/ExtraRenderers.cpp
|
src/slic3r/GUI/ExtraRenderers.cpp
|
||||||
@@ -176,7 +175,6 @@ src/slic3r/GUI/ProgressStatusBar.cpp
|
|||||||
src/slic3r/GUI/PlateSettingsDialog.cpp
|
src/slic3r/GUI/PlateSettingsDialog.cpp
|
||||||
src/slic3r/GUI/PrivacyUpdateDialog.cpp
|
src/slic3r/GUI/PrivacyUpdateDialog.cpp
|
||||||
src/slic3r/GUI/PublishDialog.cpp
|
src/slic3r/GUI/PublishDialog.cpp
|
||||||
src/slic3r/GUI/PublishSettingsDialog.cpp
|
|
||||||
src/slic3r/GUI/SavePresetDialog.cpp
|
src/slic3r/GUI/SavePresetDialog.cpp
|
||||||
src/slic3r/GUI/Search.cpp
|
src/slic3r/GUI/Search.cpp
|
||||||
src/slic3r/GUI/Selection.cpp
|
src/slic3r/GUI/Selection.cpp
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: \n"
|
"Project-Id-Version: \n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2026-09-03 10:27+0800\n"
|
"POT-Creation-Date: 2026-09-02 09:39-0300\n"
|
||||||
"PO-Revision-Date: 2026-07-02 14:13+0300\n"
|
"PO-Revision-Date: 2026-07-02 14:13+0300\n"
|
||||||
"Last-Translator: Gintaras Kučinskas <sharanchius@gmail.com>\n"
|
"Last-Translator: Gintaras Kučinskas <sharanchius@gmail.com>\n"
|
||||||
"Language-Team: \n"
|
"Language-Team: \n"
|
||||||
@@ -2449,6 +2449,8 @@ msgstr "Yra prieinamas atnaujinimas. Atidarykite profilių paketo dialogo langą
|
|||||||
msgid "%s has been removed."
|
msgid "%s has been removed."
|
||||||
msgstr "%s buvo pašalintas."
|
msgstr "%s buvo pašalintas."
|
||||||
|
|
||||||
|
msgid "Switching application language"
|
||||||
|
msgstr "Perjungiama programos kalba"
|
||||||
|
|
||||||
msgid "Select the language"
|
msgid "Select the language"
|
||||||
msgstr "Pasirinkite kalbą"
|
msgstr "Pasirinkite kalbą"
|
||||||
@@ -4891,9 +4893,6 @@ msgstr ""
|
|||||||
"Taip – pakeisti šiuos nustatymus ir automatiškai įjungti spiralinį režimą\n"
|
"Taip – pakeisti šiuos nustatymus ir automatiškai įjungti spiralinį režimą\n"
|
||||||
"Ne – nenaudoti spiralinio režimo"
|
"Ne – nenaudoti spiralinio režimo"
|
||||||
|
|
||||||
msgid "N/A"
|
|
||||||
msgstr "N/A"
|
|
||||||
|
|
||||||
msgid "Printing"
|
msgid "Printing"
|
||||||
msgstr "Spausdinimas"
|
msgstr "Spausdinimas"
|
||||||
|
|
||||||
@@ -5325,9 +5324,13 @@ msgstr "Reikšmė %s yra už ribų. Galimas diapazonas yra nuo %d iki %d."
|
|||||||
|
|
||||||
#, c-format, boost-format
|
#, c-format, boost-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Is it %s%% or %s %s?"
|
"Is it %s%% or %s %s?\n"
|
||||||
|
"YES for %s%%, \n"
|
||||||
|
"NO for %s %s."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Ar tai %s%% ar %s %s?"
|
"Ar tai %s%% ar %s %s?\n"
|
||||||
|
"TAIP %s%%, \n"
|
||||||
|
"NE %s %s."
|
||||||
|
|
||||||
#, boost-format
|
#, boost-format
|
||||||
msgid "Invalid input format. Expected vector of dimensions in the following format: \"%1%\""
|
msgid "Invalid input format. Expected vector of dimensions in the following format: \"%1%\""
|
||||||
@@ -5349,6 +5352,9 @@ msgstr "Neteisingas šablonas. Naudokite N, N#K arba kableliais atskirtą sąra
|
|||||||
msgid "Invalid format. Expected vector format: \"%1%\""
|
msgid "Invalid format. Expected vector format: \"%1%\""
|
||||||
msgstr "Netinkamas formatas. Tinkamas vektorinis formatas: \"%1%\""
|
msgstr "Netinkamas formatas. Tinkamas vektorinis formatas: \"%1%\""
|
||||||
|
|
||||||
|
msgid "N/A"
|
||||||
|
msgstr "N/A"
|
||||||
|
|
||||||
# AI Translated
|
# AI Translated
|
||||||
msgid "System agents"
|
msgid "System agents"
|
||||||
msgstr "Sisteminiai agentai"
|
msgstr "Sisteminiai agentai"
|
||||||
@@ -6306,12 +6312,6 @@ msgstr "Įrašyti projektą kaip"
|
|||||||
msgid "Save current project as"
|
msgid "Save current project as"
|
||||||
msgstr "Įrašyti dabartinį projektą kaip"
|
msgstr "Įrašyti dabartinį projektą kaip"
|
||||||
|
|
||||||
msgid "Publish 3MF"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Export a 3MF file with the selected settings embedded"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Import 3MF/STL/STEP/SVG/OBJ/AMF"
|
msgid "Import 3MF/STL/STEP/SVG/OBJ/AMF"
|
||||||
msgstr "Importuoti 3MF/STL/STEP/SVG/OBJ/AMF"
|
msgstr "Importuoti 3MF/STL/STEP/SVG/OBJ/AMF"
|
||||||
|
|
||||||
@@ -8153,12 +8153,6 @@ msgstr "Patvirtinkite, kad šiuose profiliuose esantis G-kodas yra saugus, kad i
|
|||||||
msgid "Customized Preset"
|
msgid "Customized Preset"
|
||||||
msgstr "Pritaikytas profilis"
|
msgstr "Pritaikytas profilis"
|
||||||
|
|
||||||
msgid "Some published settings could not be applied:"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Some filament slots were changed:"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Component name(s) inside step file not in UTF-8 format!"
|
msgid "Component name(s) inside step file not in UTF-8 format!"
|
||||||
msgstr "Komponentų pavadinimai STEP faile nėra UTF-8 formato!"
|
msgstr "Komponentų pavadinimai STEP faile nėra UTF-8 formato!"
|
||||||
|
|
||||||
@@ -8570,17 +8564,6 @@ msgstr "Išsaugoti susluoksniuotą failą kaip:"
|
|||||||
msgid "The file %s has been sent to the printer's storage space and can be viewed on the printer."
|
msgid "The file %s has been sent to the printer's storage space and can be viewed on the printer."
|
||||||
msgstr "Failas %s išsiųstas į spausdintuvo laikmeną ir gali būti peržiūrimas spausdintuve."
|
msgstr "Failas %s išsiųstas į spausdintuvo laikmeną ir gali būti peržiūrimas spausdintuve."
|
||||||
|
|
||||||
msgid "Publish 3MF file as:"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid ""
|
|
||||||
"Failed to export the published 3MF file.\n"
|
|
||||||
"Please check whether the folder exists online or if other programs have the file open."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish"
|
|
||||||
msgstr "Talpinti"
|
|
||||||
|
|
||||||
msgid "The nozzle type is not set. Please set the nozzle and try again."
|
msgid "The nozzle type is not set. Please set the nozzle and try again."
|
||||||
msgstr "Purkštuko tipas nenustatytas. Nustatykite purkštuką ir bandykite dar kartą."
|
msgstr "Purkštuko tipas nenustatytas. Nustatykite purkštuką ir bandykite dar kartą."
|
||||||
|
|
||||||
@@ -8791,6 +8774,8 @@ msgstr "Ar norite tęsti?"
|
|||||||
msgid "Language selection"
|
msgid "Language selection"
|
||||||
msgstr "Kalbos pasirinkimas"
|
msgstr "Kalbos pasirinkimas"
|
||||||
|
|
||||||
|
msgid "Switching application language while some presets are modified."
|
||||||
|
msgstr "Keičiama programos kalba, kai yra pakeistų profilių."
|
||||||
|
|
||||||
msgid "Asia-Pacific"
|
msgid "Asia-Pacific"
|
||||||
msgstr "Azija-Ramusis vandenynas"
|
msgstr "Azija-Ramusis vandenynas"
|
||||||
@@ -9708,6 +9693,9 @@ msgstr "Pereiti į modelio talpinimo interneto puslapį"
|
|||||||
msgid "Note: The preparation may take several minutes. Please be patient."
|
msgid "Note: The preparation may take several minutes. Please be patient."
|
||||||
msgstr "Pastaba: paruošimas gali užtrukti kelias minutes. Būkite kantrūs."
|
msgstr "Pastaba: paruošimas gali užtrukti kelias minutes. Būkite kantrūs."
|
||||||
|
|
||||||
|
msgid "Publish"
|
||||||
|
msgstr "Talpinti"
|
||||||
|
|
||||||
msgid "Publish was canceled"
|
msgid "Publish was canceled"
|
||||||
msgstr "Publikavimas buvo atšauktas"
|
msgstr "Publikavimas buvo atšauktas"
|
||||||
|
|
||||||
@@ -9723,64 +9711,6 @@ msgstr "Įkeliami duomenys"
|
|||||||
msgid "Jump to webpage"
|
msgid "Jump to webpage"
|
||||||
msgstr "Pereiti į interneto puslapį"
|
msgstr "Pereiti į interneto puslapį"
|
||||||
|
|
||||||
msgid "Material"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Mixed filament"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Some mixed filaments rely on filaments that will not be published:"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#, c-format, boost-format
|
|
||||||
msgid "Filament %d (mixed)"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "needs"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "not enabled"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "material not published"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "To publish a mixed filament, enable every filament it uses and choose Full Publish or check its Type requirement."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish anyway"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish 3MF..."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Select which settings to be published in the 3MF file"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish 3MF Wiki"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish 3MF Video Guide"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Mixed filament - published as a whole when \"Enable\" above is selected"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish this mixed filament and enable + Full Publish its component filaments"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish this filament slot in the 3MF file"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Full Publish"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Embed the entire filament of this slot in the 3MF file"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Filter non-selected"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#, c-format, boost-format
|
#, c-format, boost-format
|
||||||
msgid "Save %s as"
|
msgid "Save %s as"
|
||||||
msgstr "Išsaugoti %s kaip"
|
msgstr "Išsaugoti %s kaip"
|
||||||
@@ -20935,15 +20865,6 @@ msgstr "Šio veiksmo atšaukti nebus galima. Tęsti?"
|
|||||||
msgid "Skipping objects."
|
msgid "Skipping objects."
|
||||||
msgstr "Praleidžiami objektai."
|
msgstr "Praleidžiami objektai."
|
||||||
|
|
||||||
msgid "Material Ratio"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Model Height"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Ratio"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Select Filament"
|
msgid "Select Filament"
|
||||||
msgstr "Pasirinkti giją"
|
msgstr "Pasirinkti giją"
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: Orca Slicer\n"
|
"Project-Id-Version: Orca Slicer\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2026-09-03 10:27+0800\n"
|
"POT-Creation-Date: 2026-09-02 09:39-0300\n"
|
||||||
"PO-Revision-Date: \n"
|
"PO-Revision-Date: \n"
|
||||||
"Last-Translator: \n"
|
"Last-Translator: \n"
|
||||||
"Language-Team: \n"
|
"Language-Team: \n"
|
||||||
@@ -2679,6 +2679,8 @@ msgstr "Er is een update beschikbaar. Open het dialoogvenster voor de voorinstel
|
|||||||
msgid "%s has been removed."
|
msgid "%s has been removed."
|
||||||
msgstr "%s is verwijderd."
|
msgstr "%s is verwijderd."
|
||||||
|
|
||||||
|
msgid "Switching application language"
|
||||||
|
msgstr "De taal van de applicatie wordt aangepast"
|
||||||
|
|
||||||
msgid "Select the language"
|
msgid "Select the language"
|
||||||
msgstr "Kies de taal"
|
msgstr "Kies de taal"
|
||||||
@@ -5323,9 +5325,6 @@ msgstr ""
|
|||||||
"Ja - Pas de instellingen aan en zet de vaas modus automatisch aan\n"
|
"Ja - Pas de instellingen aan en zet de vaas modus automatisch aan\n"
|
||||||
"Nee - Pas de vaas modus deze keer niet toe"
|
"Nee - Pas de vaas modus deze keer niet toe"
|
||||||
|
|
||||||
msgid "N/A"
|
|
||||||
msgstr "N/B"
|
|
||||||
|
|
||||||
msgid "Printing"
|
msgid "Printing"
|
||||||
msgstr "Printen"
|
msgstr "Printen"
|
||||||
|
|
||||||
@@ -5831,9 +5830,13 @@ msgstr "Waarde %s valt buiten het bereik. Het geldige bereik loopt van %d tot %d
|
|||||||
|
|
||||||
#, c-format, boost-format
|
#, c-format, boost-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Is it %s%% or %s %s?"
|
"Is it %s%% or %s %s?\n"
|
||||||
|
"YES for %s%%, \n"
|
||||||
|
"NO for %s %s."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Is het %s%% or %s %s?"
|
"Is het %s%% or %s %s?\n"
|
||||||
|
"JA voor %s%%, \n"
|
||||||
|
"NEE voor %s %s."
|
||||||
|
|
||||||
#, boost-format
|
#, boost-format
|
||||||
msgid "Invalid input format. Expected vector of dimensions in the following format: \"%1%\""
|
msgid "Invalid input format. Expected vector of dimensions in the following format: \"%1%\""
|
||||||
@@ -5858,6 +5861,9 @@ msgstr "Ongeldig patroon. Gebruik N, N#K of een door komma's gescheiden lijst me
|
|||||||
msgid "Invalid format. Expected vector format: \"%1%\""
|
msgid "Invalid format. Expected vector format: \"%1%\""
|
||||||
msgstr "Onjuist formaat. Het Vector formaat wordt verwacht: \"%1%\""
|
msgstr "Onjuist formaat. Het Vector formaat wordt verwacht: \"%1%\""
|
||||||
|
|
||||||
|
msgid "N/A"
|
||||||
|
msgstr "N/B"
|
||||||
|
|
||||||
# AI Translated
|
# AI Translated
|
||||||
msgid "System agents"
|
msgid "System agents"
|
||||||
msgstr "Systeemagenten"
|
msgstr "Systeemagenten"
|
||||||
@@ -6882,12 +6888,6 @@ msgstr "Bewaar project als"
|
|||||||
msgid "Save current project as"
|
msgid "Save current project as"
|
||||||
msgstr "Bewaar huidig project als"
|
msgstr "Bewaar huidig project als"
|
||||||
|
|
||||||
msgid "Publish 3MF"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Export a 3MF file with the selected settings embedded"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Import 3MF/STL/STEP/SVG/OBJ/AMF"
|
msgid "Import 3MF/STL/STEP/SVG/OBJ/AMF"
|
||||||
msgstr "3MF/STL/STEP/SVG/OBJ/AMF importeren"
|
msgstr "3MF/STL/STEP/SVG/OBJ/AMF importeren"
|
||||||
|
|
||||||
@@ -8904,12 +8904,6 @@ msgstr "Controleer of de G-codes in deze presets veilig zijn om schade aan de ma
|
|||||||
msgid "Customized Preset"
|
msgid "Customized Preset"
|
||||||
msgstr "Aangepaste voorinstelling"
|
msgstr "Aangepaste voorinstelling"
|
||||||
|
|
||||||
msgid "Some published settings could not be applied:"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Some filament slots were changed:"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Component name(s) inside step file not in UTF-8 format!"
|
msgid "Component name(s) inside step file not in UTF-8 format!"
|
||||||
msgstr "Naam van componenten in step-bestand is niet UTF-8-formaat!"
|
msgstr "Naam van componenten in step-bestand is niet UTF-8-formaat!"
|
||||||
|
|
||||||
@@ -9345,17 +9339,6 @@ msgstr "Bewaar het geslicede bestand als:"
|
|||||||
msgid "The file %s has been sent to the printer's storage space and can be viewed on the printer."
|
msgid "The file %s has been sent to the printer's storage space and can be viewed on the printer."
|
||||||
msgstr "Het bestand %s is naar de opslagruimte van de printer gestuurd en kan op de printer worden bekeken."
|
msgstr "Het bestand %s is naar de opslagruimte van de printer gestuurd en kan op de printer worden bekeken."
|
||||||
|
|
||||||
msgid "Publish 3MF file as:"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid ""
|
|
||||||
"Failed to export the published 3MF file.\n"
|
|
||||||
"Please check whether the folder exists online or if other programs have the file open."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish"
|
|
||||||
msgstr "Publiceren"
|
|
||||||
|
|
||||||
# AI Translated
|
# AI Translated
|
||||||
msgid "The nozzle type is not set. Please set the nozzle and try again."
|
msgid "The nozzle type is not set. Please set the nozzle and try again."
|
||||||
msgstr "Het mondstuktype is niet ingesteld. Stel het mondstuk in en probeer het opnieuw."
|
msgstr "Het mondstuktype is niet ingesteld. Stel het mondstuk in en probeer het opnieuw."
|
||||||
@@ -9596,6 +9579,8 @@ msgstr "Wilt u doorgaan?"
|
|||||||
msgid "Language selection"
|
msgid "Language selection"
|
||||||
msgstr "Taal selectie"
|
msgstr "Taal selectie"
|
||||||
|
|
||||||
|
msgid "Switching application language while some presets are modified."
|
||||||
|
msgstr "De taal van de toepassing aanpaasen terwijl sommige voorinstellingen zijn aangepast."
|
||||||
|
|
||||||
msgid "Asia-Pacific"
|
msgid "Asia-Pacific"
|
||||||
msgstr "Azië-Pacific"
|
msgstr "Azië-Pacific"
|
||||||
@@ -10641,6 +10626,9 @@ msgstr "Ga naar de website om het model te publiceren"
|
|||||||
msgid "Note: The preparation may take several minutes. Please be patient."
|
msgid "Note: The preparation may take several minutes. Please be patient."
|
||||||
msgstr "Notitie: het voorbereiden kan enkele minuten duren. Even geduld alstublieft."
|
msgstr "Notitie: het voorbereiden kan enkele minuten duren. Even geduld alstublieft."
|
||||||
|
|
||||||
|
msgid "Publish"
|
||||||
|
msgstr "Publiceren"
|
||||||
|
|
||||||
msgid "Publish was canceled"
|
msgid "Publish was canceled"
|
||||||
msgstr "Het publiceren is geannuleerd"
|
msgstr "Het publiceren is geannuleerd"
|
||||||
|
|
||||||
@@ -10657,64 +10645,6 @@ msgstr "Gegevens uploaden"
|
|||||||
msgid "Jump to webpage"
|
msgid "Jump to webpage"
|
||||||
msgstr "Ga naar de website"
|
msgstr "Ga naar de website"
|
||||||
|
|
||||||
msgid "Material"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Mixed filament"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Some mixed filaments rely on filaments that will not be published:"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#, c-format, boost-format
|
|
||||||
msgid "Filament %d (mixed)"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "needs"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "not enabled"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "material not published"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "To publish a mixed filament, enable every filament it uses and choose Full Publish or check its Type requirement."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish anyway"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish 3MF..."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Select which settings to be published in the 3MF file"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish 3MF Wiki"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish 3MF Video Guide"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Mixed filament - published as a whole when \"Enable\" above is selected"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish this mixed filament and enable + Full Publish its component filaments"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish this filament slot in the 3MF file"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Full Publish"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Embed the entire filament of this slot in the 3MF file"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Filter non-selected"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#, c-format, boost-format
|
#, c-format, boost-format
|
||||||
msgid "Save %s as"
|
msgid "Save %s as"
|
||||||
msgstr "Bewaar %s als"
|
msgstr "Bewaar %s als"
|
||||||
@@ -23315,15 +23245,6 @@ msgstr "Deze actie kan niet ongedaan worden gemaakt. Doorgaan?"
|
|||||||
msgid "Skipping objects."
|
msgid "Skipping objects."
|
||||||
msgstr "Objecten worden overgeslagen."
|
msgstr "Objecten worden overgeslagen."
|
||||||
|
|
||||||
msgid "Material Ratio"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Model Height"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Ratio"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Select Filament"
|
msgid "Select Filament"
|
||||||
msgstr "Selecteer filament"
|
msgstr "Selecteer filament"
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: OrcaSlicer 2.3.0-rc\n"
|
"Project-Id-Version: OrcaSlicer 2.3.0-rc\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2026-09-03 10:27+0800\n"
|
"POT-Creation-Date: 2026-09-02 09:39-0300\n"
|
||||||
"PO-Revision-Date: \n"
|
"PO-Revision-Date: \n"
|
||||||
"Last-Translator: Krzysztof Morga <<tlumaczeniebs@gmail.com>>\n"
|
"Last-Translator: Krzysztof Morga <<tlumaczeniebs@gmail.com>>\n"
|
||||||
"Language-Team: \n"
|
"Language-Team: \n"
|
||||||
@@ -2512,6 +2512,8 @@ msgstr "Dostępna jest aktualizacja. Otwórz okno pakietu profili, aby ją zains
|
|||||||
msgid "%s has been removed."
|
msgid "%s has been removed."
|
||||||
msgstr "%s został usunięty."
|
msgstr "%s został usunięty."
|
||||||
|
|
||||||
|
msgid "Switching application language"
|
||||||
|
msgstr "Zmiana języka aplikacji"
|
||||||
|
|
||||||
msgid "Select the language"
|
msgid "Select the language"
|
||||||
msgstr "Wybierz język"
|
msgstr "Wybierz język"
|
||||||
@@ -5011,10 +5013,6 @@ msgstr ""
|
|||||||
"Tak - Zmień te ustawienia automatycznie i włącz tryb Wazy\n"
|
"Tak - Zmień te ustawienia automatycznie i włącz tryb Wazy\n"
|
||||||
"Nie - Zrezygnuj tym razem z używania trybu Wazy"
|
"Nie - Zrezygnuj tym razem z używania trybu Wazy"
|
||||||
|
|
||||||
# AI Translated
|
|
||||||
msgid "N/A"
|
|
||||||
msgstr "Nie dotyczy"
|
|
||||||
|
|
||||||
msgid "Printing"
|
msgid "Printing"
|
||||||
msgstr "Drukowanie"
|
msgstr "Drukowanie"
|
||||||
|
|
||||||
@@ -5452,9 +5450,13 @@ msgstr "Wartość %s jest spoza zakresu. Poprawny zakres wynosi od %d do %d."
|
|||||||
|
|
||||||
#, c-format, boost-format
|
#, c-format, boost-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Is it %s%% or %s %s?"
|
"Is it %s%% or %s %s?\n"
|
||||||
|
"YES for %s%%, \n"
|
||||||
|
"NO for %s %s."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Czy to %s%% czy %s %s?"
|
"Czy to %s%% czy %s %s?\n"
|
||||||
|
"TAK dla %s%%,\n"
|
||||||
|
"NIE dla %s %s."
|
||||||
|
|
||||||
#, boost-format
|
#, boost-format
|
||||||
msgid "Invalid input format. Expected vector of dimensions in the following format: \"%1%\""
|
msgid "Invalid input format. Expected vector of dimensions in the following format: \"%1%\""
|
||||||
@@ -5478,6 +5480,10 @@ msgstr "Nieprawidłowy wzorzec. Użyj N, N#K lub listy rozdzielonej przecinkami
|
|||||||
msgid "Invalid format. Expected vector format: \"%1%\""
|
msgid "Invalid format. Expected vector format: \"%1%\""
|
||||||
msgstr "Nieprawidłowy format. Oczekiwano formatu wektorowego: „%1%”"
|
msgstr "Nieprawidłowy format. Oczekiwano formatu wektorowego: „%1%”"
|
||||||
|
|
||||||
|
# AI Translated
|
||||||
|
msgid "N/A"
|
||||||
|
msgstr "Nie dotyczy"
|
||||||
|
|
||||||
# AI Translated
|
# AI Translated
|
||||||
msgid "System agents"
|
msgid "System agents"
|
||||||
msgstr "Agenci systemowi"
|
msgstr "Agenci systemowi"
|
||||||
@@ -6463,12 +6469,6 @@ msgstr "Zapisz projekt jako"
|
|||||||
msgid "Save current project as"
|
msgid "Save current project as"
|
||||||
msgstr "Zapisz bieżący projekt jako"
|
msgstr "Zapisz bieżący projekt jako"
|
||||||
|
|
||||||
msgid "Publish 3MF"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Export a 3MF file with the selected settings embedded"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Import 3MF/STL/STEP/SVG/OBJ/AMF"
|
msgid "Import 3MF/STL/STEP/SVG/OBJ/AMF"
|
||||||
msgstr "Importuj 3MF/STL/STEP/SVG/OBJ/AMF"
|
msgstr "Importuj 3MF/STL/STEP/SVG/OBJ/AMF"
|
||||||
|
|
||||||
@@ -8353,12 +8353,6 @@ msgstr "Proszę potwierdź, że G-code w tych profilach jest bezpieczny, aby zap
|
|||||||
msgid "Customized Preset"
|
msgid "Customized Preset"
|
||||||
msgstr "Dostosowany profil"
|
msgstr "Dostosowany profil"
|
||||||
|
|
||||||
msgid "Some published settings could not be applied:"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Some filament slots were changed:"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Component name(s) inside step file not in UTF-8 format!"
|
msgid "Component name(s) inside step file not in UTF-8 format!"
|
||||||
msgstr "Nazwa komponentów w pliku step nie jest w formacie UTF-8!"
|
msgstr "Nazwa komponentów w pliku step nie jest w formacie UTF-8!"
|
||||||
|
|
||||||
@@ -8785,17 +8779,6 @@ msgstr "Zapisz plik po wykonaniu cięcia jako:"
|
|||||||
msgid "The file %s has been sent to the printer's storage space and can be viewed on the printer."
|
msgid "The file %s has been sent to the printer's storage space and can be viewed on the printer."
|
||||||
msgstr "Plik %s został wysłany do pamięci drukarki i można go obejrzeć na urządzeniu."
|
msgstr "Plik %s został wysłany do pamięci drukarki i można go obejrzeć na urządzeniu."
|
||||||
|
|
||||||
msgid "Publish 3MF file as:"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid ""
|
|
||||||
"Failed to export the published 3MF file.\n"
|
|
||||||
"Please check whether the folder exists online or if other programs have the file open."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish"
|
|
||||||
msgstr "Opublikuj"
|
|
||||||
|
|
||||||
msgid "The nozzle type is not set. Please set the nozzle and try again."
|
msgid "The nozzle type is not set. Please set the nozzle and try again."
|
||||||
msgstr "Nie ustawiono typu dyszy Wprowadź ustawienia dyszy i spróbuj ponownie."
|
msgstr "Nie ustawiono typu dyszy Wprowadź ustawienia dyszy i spróbuj ponownie."
|
||||||
|
|
||||||
@@ -9010,6 +8993,8 @@ msgstr "Czy kontynuować?"
|
|||||||
msgid "Language selection"
|
msgid "Language selection"
|
||||||
msgstr "Wybór języka"
|
msgstr "Wybór języka"
|
||||||
|
|
||||||
|
msgid "Switching application language while some presets are modified."
|
||||||
|
msgstr "Zmiana języka aplikacji przy jednoczesnym istniejących zmodyfikowanych ustawieniach."
|
||||||
|
|
||||||
msgid "Asia-Pacific"
|
msgid "Asia-Pacific"
|
||||||
msgstr "Azja i Pacyfik"
|
msgstr "Azja i Pacyfik"
|
||||||
@@ -10036,6 +10021,9 @@ msgstr "Przejdź do strony publikacji modelu"
|
|||||||
msgid "Note: The preparation may take several minutes. Please be patient."
|
msgid "Note: The preparation may take several minutes. Please be patient."
|
||||||
msgstr "Uwaga: Przygotowanie może zająć kilka minut. Proszę o cierpliwość."
|
msgstr "Uwaga: Przygotowanie może zająć kilka minut. Proszę o cierpliwość."
|
||||||
|
|
||||||
|
msgid "Publish"
|
||||||
|
msgstr "Opublikuj"
|
||||||
|
|
||||||
msgid "Publish was canceled"
|
msgid "Publish was canceled"
|
||||||
msgstr "Publikacja została anulowana"
|
msgstr "Publikacja została anulowana"
|
||||||
|
|
||||||
@@ -10052,64 +10040,6 @@ msgstr "Przesyłanie danych"
|
|||||||
msgid "Jump to webpage"
|
msgid "Jump to webpage"
|
||||||
msgstr "Przejdź na stronę"
|
msgstr "Przejdź na stronę"
|
||||||
|
|
||||||
msgid "Material"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Mixed filament"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Some mixed filaments rely on filaments that will not be published:"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#, c-format, boost-format
|
|
||||||
msgid "Filament %d (mixed)"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "needs"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "not enabled"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "material not published"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "To publish a mixed filament, enable every filament it uses and choose Full Publish or check its Type requirement."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish anyway"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish 3MF..."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Select which settings to be published in the 3MF file"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish 3MF Wiki"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish 3MF Video Guide"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Mixed filament - published as a whole when \"Enable\" above is selected"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish this mixed filament and enable + Full Publish its component filaments"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish this filament slot in the 3MF file"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Full Publish"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Embed the entire filament of this slot in the 3MF file"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Filter non-selected"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#, c-format, boost-format
|
#, c-format, boost-format
|
||||||
msgid "Save %s as"
|
msgid "Save %s as"
|
||||||
msgstr "Zapisz %s jako"
|
msgstr "Zapisz %s jako"
|
||||||
@@ -21793,15 +21723,6 @@ msgstr "Tego działania nie będzie można cofnąć. Kontynuować?"
|
|||||||
msgid "Skipping objects."
|
msgid "Skipping objects."
|
||||||
msgstr "Pomijanie obiektów."
|
msgstr "Pomijanie obiektów."
|
||||||
|
|
||||||
msgid "Material Ratio"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Model Height"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Ratio"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Select Filament"
|
msgid "Select Filament"
|
||||||
msgstr "Wybierz filament"
|
msgstr "Wybierz filament"
|
||||||
|
|
||||||
@@ -25432,6 +25353,15 @@ msgstr ""
|
|||||||
#~ msgid "Low-temperature filament (PLA/PETG/TPU) is loaded in the extruder. In order to avoid extruder clogging, it is not allowed to set the chamber temperature above 45℃."
|
#~ msgid "Low-temperature filament (PLA/PETG/TPU) is loaded in the extruder. In order to avoid extruder clogging, it is not allowed to set the chamber temperature above 45℃."
|
||||||
#~ msgstr "W ekstruzorze jest załadowany filament o niskiej temperaturze (PLA/PETG/TPU). Aby uniknąć zatkania ekstruzora, nie wolno ustawiać temperatury komory powyżej 45℃."
|
#~ msgstr "W ekstruzorze jest załadowany filament o niskiej temperaturze (PLA/PETG/TPU). Aby uniknąć zatkania ekstruzora, nie wolno ustawiać temperatury komory powyżej 45℃."
|
||||||
|
|
||||||
|
#~ msgid ""
|
||||||
|
#~ "Is it %s%% or %s %s?\n"
|
||||||
|
#~ "YES for %s%%,\n"
|
||||||
|
#~ "NO for %s %s."
|
||||||
|
#~ msgstr ""
|
||||||
|
#~ "Czy to %s%% czy %s %s?\n"
|
||||||
|
#~ "TAK dla %s%%,\n"
|
||||||
|
#~ "NIE dla %s %s."
|
||||||
|
|
||||||
#~ msgid "Allow multiple materials on the same plate"
|
#~ msgid "Allow multiple materials on the same plate"
|
||||||
#~ msgstr "Pozwól na kilka filamentów na tej samej płycie"
|
#~ msgstr "Pozwól na kilka filamentów na tej samej płycie"
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: Orca Slicer\n"
|
"Project-Id-Version: Orca Slicer\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2026-09-03 10:27+0800\n"
|
"POT-Creation-Date: 2026-09-02 09:39-0300\n"
|
||||||
"PO-Revision-Date: 2026-07-26 11:14-0300\n"
|
"PO-Revision-Date: 2026-07-26 11:14-0300\n"
|
||||||
"Last-Translator: Alexandre Folle de Menezes\n"
|
"Last-Translator: Alexandre Folle de Menezes\n"
|
||||||
"Language-Team: Portuguese, Brazilian\n"
|
"Language-Team: Portuguese, Brazilian\n"
|
||||||
@@ -2128,7 +2128,7 @@ msgid ""
|
|||||||
"OrcaSlicer has attempted to recreate the configuration file.\n"
|
"OrcaSlicer has attempted to recreate the configuration file.\n"
|
||||||
"Please note, application settings will be lost, but printer profiles will not be affected."
|
"Please note, application settings will be lost, but printer profiles will not be affected."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"O arquivo de configuração do OrcaSlicer pode estar corrompido e não pode ser processado.\n"
|
"O arquivo de configuração do OrcaSlicer pode estar corrompido e não pode ser analisado.\n"
|
||||||
"O OrcaSlicer tentou recriar o arquivo de configuração.\n"
|
"O OrcaSlicer tentou recriar o arquivo de configuração.\n"
|
||||||
"Por favor, note que as configurações do aplicativo serão perdidas, mas os perfis de impressora não serão afetados."
|
"Por favor, note que as configurações do aplicativo serão perdidas, mas os perfis de impressora não serão afetados."
|
||||||
|
|
||||||
@@ -2356,6 +2356,8 @@ msgstr "Há uma atualização disponível. Abra a caixa de diálogo do pacote de
|
|||||||
msgid "%s has been removed."
|
msgid "%s has been removed."
|
||||||
msgstr "%s foi removido."
|
msgstr "%s foi removido."
|
||||||
|
|
||||||
|
msgid "Switching application language"
|
||||||
|
msgstr "Alternando o idioma do aplicativo"
|
||||||
|
|
||||||
msgid "Select the language"
|
msgid "Select the language"
|
||||||
msgstr "Selecione o idioma"
|
msgstr "Selecione o idioma"
|
||||||
@@ -4741,9 +4743,6 @@ msgstr ""
|
|||||||
"Sim - Alterar essas configurações e ativar o modo espiral/vaso automaticamente\n"
|
"Sim - Alterar essas configurações e ativar o modo espiral/vaso automaticamente\n"
|
||||||
"Não - Cancelar ativação do modo espiral"
|
"Não - Cancelar ativação do modo espiral"
|
||||||
|
|
||||||
msgid "N/A"
|
|
||||||
msgstr "N/D"
|
|
||||||
|
|
||||||
msgid "Printing"
|
msgid "Printing"
|
||||||
msgstr "Imprimindo"
|
msgstr "Imprimindo"
|
||||||
|
|
||||||
@@ -5169,9 +5168,13 @@ msgstr "Valor %s está fora do intervalo. O intervalo válido é de %d para %d."
|
|||||||
|
|
||||||
#, c-format, boost-format
|
#, c-format, boost-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Is it %s%% or %s %s?"
|
"Is it %s%% or %s %s?\n"
|
||||||
|
"YES for %s%%, \n"
|
||||||
|
"NO for %s %s."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"É %s%% ou %s %s?"
|
"É %s%% ou %s %s?\n"
|
||||||
|
"SIM para %s%%, \n"
|
||||||
|
"NÃO para %s %s."
|
||||||
|
|
||||||
#, boost-format
|
#, boost-format
|
||||||
msgid "Invalid input format. Expected vector of dimensions in the following format: \"%1%\""
|
msgid "Invalid input format. Expected vector of dimensions in the following format: \"%1%\""
|
||||||
@@ -5193,6 +5196,9 @@ msgstr "Padrão inválido. Use N, N#K, ou uma lista separa por vírgulas com #K
|
|||||||
msgid "Invalid format. Expected vector format: \"%1%\""
|
msgid "Invalid format. Expected vector format: \"%1%\""
|
||||||
msgstr "Formato inválido. Formato de vetor esperado: \"%1%\""
|
msgstr "Formato inválido. Formato de vetor esperado: \"%1%\""
|
||||||
|
|
||||||
|
msgid "N/A"
|
||||||
|
msgstr "N/D"
|
||||||
|
|
||||||
msgid "System agents"
|
msgid "System agents"
|
||||||
msgstr "Agentes do sistema"
|
msgstr "Agentes do sistema"
|
||||||
|
|
||||||
@@ -6139,12 +6145,6 @@ msgstr "Salvar projeto como"
|
|||||||
msgid "Save current project as"
|
msgid "Save current project as"
|
||||||
msgstr "Salvar o projeto atual como"
|
msgstr "Salvar o projeto atual como"
|
||||||
|
|
||||||
msgid "Publish 3MF"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Export a 3MF file with the selected settings embedded"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Import 3MF/STL/STEP/SVG/OBJ/AMF"
|
msgid "Import 3MF/STL/STEP/SVG/OBJ/AMF"
|
||||||
msgstr "Importar 3MF/STL/STEP/SVG/OBJ/AMF"
|
msgstr "Importar 3MF/STL/STEP/SVG/OBJ/AMF"
|
||||||
|
|
||||||
@@ -6671,7 +6671,7 @@ msgid "Failed to fetch model information from printer."
|
|||||||
msgstr "Falha ao obter informação do modelo da impressora."
|
msgstr "Falha ao obter informação do modelo da impressora."
|
||||||
|
|
||||||
msgid "Failed to parse model information."
|
msgid "Failed to parse model information."
|
||||||
msgstr "Falha ao processar a informação do modelo."
|
msgstr "Falha ao analisar a informação do modelo."
|
||||||
|
|
||||||
msgid "The .gcode.3mf file contains no G-code data. Please slice it with Orca Slicer and export a new .gcode.3mf file."
|
msgid "The .gcode.3mf file contains no G-code data. Please slice it with Orca Slicer and export a new .gcode.3mf file."
|
||||||
msgstr "O arquivo .gcode.3mf não contém dados de G-code. Por favor, fatie com Orca Slicer e exporte um novo arquivo .gcode.3mf."
|
msgstr "O arquivo .gcode.3mf não contém dados de G-code. Por favor, fatie com Orca Slicer e exporte um novo arquivo .gcode.3mf."
|
||||||
@@ -7941,12 +7941,6 @@ msgstr "Por favor, confirme se o G-code dentro dessas predefinições é seguro
|
|||||||
msgid "Customized Preset"
|
msgid "Customized Preset"
|
||||||
msgstr "Predefinição Personalizada"
|
msgstr "Predefinição Personalizada"
|
||||||
|
|
||||||
msgid "Some published settings could not be applied:"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Some filament slots were changed:"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Component name(s) inside step file not in UTF-8 format!"
|
msgid "Component name(s) inside step file not in UTF-8 format!"
|
||||||
msgstr "Os nomes dos componentes dentro do arquivo STEP não estão no formato UTF-8!"
|
msgstr "Os nomes dos componentes dentro do arquivo STEP não estão no formato UTF-8!"
|
||||||
|
|
||||||
@@ -8351,17 +8345,6 @@ msgstr "Salvar arquivo fatiado como:"
|
|||||||
msgid "The file %s has been sent to the printer's storage space and can be viewed on the printer."
|
msgid "The file %s has been sent to the printer's storage space and can be viewed on the printer."
|
||||||
msgstr "O arquivo %s foi enviado para o espaço de armazenamento da impressora e pode ser visualizado na impressora."
|
msgstr "O arquivo %s foi enviado para o espaço de armazenamento da impressora e pode ser visualizado na impressora."
|
||||||
|
|
||||||
msgid "Publish 3MF file as:"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid ""
|
|
||||||
"Failed to export the published 3MF file.\n"
|
|
||||||
"Please check whether the folder exists online or if other programs have the file open."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish"
|
|
||||||
msgstr "Publicar"
|
|
||||||
|
|
||||||
msgid "The nozzle type is not set. Please set the nozzle and try again."
|
msgid "The nozzle type is not set. Please set the nozzle and try again."
|
||||||
msgstr "O tipo de bico não está configurado. Configure o bico e tente novamente."
|
msgstr "O tipo de bico não está configurado. Configure o bico e tente novamente."
|
||||||
|
|
||||||
@@ -8566,6 +8549,8 @@ msgstr "Você deseja continuar?"
|
|||||||
msgid "Language selection"
|
msgid "Language selection"
|
||||||
msgstr "Seleção de idioma"
|
msgstr "Seleção de idioma"
|
||||||
|
|
||||||
|
msgid "Switching application language while some presets are modified."
|
||||||
|
msgstr "Alternando idioma do aplicativo enquanto algumas predefinições são modificadas."
|
||||||
|
|
||||||
msgid "Asia-Pacific"
|
msgid "Asia-Pacific"
|
||||||
msgstr "Ásia-Pacífico"
|
msgstr "Ásia-Pacífico"
|
||||||
@@ -8633,7 +8618,7 @@ msgstr ""
|
|||||||
"\n"
|
"\n"
|
||||||
"Deseja baixar e instalar esta versão agora?\n"
|
"Deseja baixar e instalar esta versão agora?\n"
|
||||||
"\n"
|
"\n"
|
||||||
"Nota: o aplicativo pode precisar ser reiniciado após a instalação."
|
"Observação: o aplicativo pode precisar ser reiniciado após a instalação."
|
||||||
|
|
||||||
msgid "Download Network Plug-in"
|
msgid "Download Network Plug-in"
|
||||||
msgstr "Baixar Plug-in de Rede"
|
msgstr "Baixar Plug-in de Rede"
|
||||||
@@ -9131,7 +9116,7 @@ msgid ""
|
|||||||
"Note: When Stealth Mode is enabled, your user profiles will not be backed up to Orca Cloud."
|
"Note: When Stealth Mode is enabled, your user profiles will not be backed up to Orca Cloud."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Isso desativa todos os recursos da nuvem, incluindo a sincronização de perfis do Orca Cloud. Usuários que preferem trabalhar totalmente offline podem ativar esta opção.\n"
|
"Isso desativa todos os recursos da nuvem, incluindo a sincronização de perfis do Orca Cloud. Usuários que preferem trabalhar totalmente offline podem ativar esta opção.\n"
|
||||||
"Nota: quando o Modo Furtivo está ativado, seus perfis de usuário não serão copiados para o Orca Cloud."
|
"Observação: quando o Modo Furtivo está ativado, seus perfis de usuário não serão copiados para o Orca Cloud."
|
||||||
|
|
||||||
msgid "Hide login side panel"
|
msgid "Hide login side panel"
|
||||||
msgstr "Ocultar painel lateral de autenticação"
|
msgstr "Ocultar painel lateral de autenticação"
|
||||||
@@ -9493,6 +9478,9 @@ msgstr "Ir para a página web de publicação de modelos"
|
|||||||
msgid "Note: The preparation may take several minutes. Please be patient."
|
msgid "Note: The preparation may take several minutes. Please be patient."
|
||||||
msgstr "Nota: A preparação pode levar vários minutos. Por favor, seja paciente."
|
msgstr "Nota: A preparação pode levar vários minutos. Por favor, seja paciente."
|
||||||
|
|
||||||
|
msgid "Publish"
|
||||||
|
msgstr "Publicar"
|
||||||
|
|
||||||
msgid "Publish was canceled"
|
msgid "Publish was canceled"
|
||||||
msgstr "Publicação cancelada"
|
msgstr "Publicação cancelada"
|
||||||
|
|
||||||
@@ -9508,64 +9496,6 @@ msgstr "Enviando dados"
|
|||||||
msgid "Jump to webpage"
|
msgid "Jump to webpage"
|
||||||
msgstr "Ir para a página web"
|
msgstr "Ir para a página web"
|
||||||
|
|
||||||
msgid "Material"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Mixed filament"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Some mixed filaments rely on filaments that will not be published:"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#, c-format, boost-format
|
|
||||||
msgid "Filament %d (mixed)"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "needs"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "not enabled"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "material not published"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "To publish a mixed filament, enable every filament it uses and choose Full Publish or check its Type requirement."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish anyway"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish 3MF..."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Select which settings to be published in the 3MF file"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish 3MF Wiki"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish 3MF Video Guide"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Mixed filament - published as a whole when \"Enable\" above is selected"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish this mixed filament and enable + Full Publish its component filaments"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish this filament slot in the 3MF file"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Full Publish"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Embed the entire filament of this slot in the 3MF file"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Filter non-selected"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#, c-format, boost-format
|
#, c-format, boost-format
|
||||||
msgid "Save %s as"
|
msgid "Save %s as"
|
||||||
msgstr "Salvar %s como"
|
msgstr "Salvar %s como"
|
||||||
@@ -9771,6 +9701,7 @@ msgstr "A impressora falhou ao gerar a tabela de mapeamento automático do bico
|
|||||||
msgid "The current nozzle mapping may produce an extra %0.2f g of waste."
|
msgid "The current nozzle mapping may produce an extra %0.2f g of waste."
|
||||||
msgstr "O mapeamento de bicos atual pode gerar um desperdício adicional de %0.2f g."
|
msgstr "O mapeamento de bicos atual pode gerar um desperdício adicional de %0.2f g."
|
||||||
|
|
||||||
|
# AI Translated
|
||||||
#, c-format, boost-format
|
#, c-format, boost-format
|
||||||
msgid "Recommended filament arrangement saves %s->"
|
msgid "Recommended filament arrangement saves %s->"
|
||||||
msgstr "A disposição de filamento recomendada economiza %s->"
|
msgstr "A disposição de filamento recomendada economiza %s->"
|
||||||
@@ -9829,6 +9760,7 @@ msgstr "Este processo determina os valores de fluxo dinâmico para melhorar a qu
|
|||||||
msgid "Internal"
|
msgid "Internal"
|
||||||
msgstr "Interno"
|
msgstr "Interno"
|
||||||
|
|
||||||
|
# AI Translated
|
||||||
#, c-format, boost-format
|
#, c-format, boost-format
|
||||||
msgid "%s space less than 20MB. Timelapse may not save properly. You can turn it off or"
|
msgid "%s space less than 20MB. Timelapse may not save properly. You can turn it off or"
|
||||||
msgstr "%s com espaço inferior a 20MB. O timelapse pode não ser salvo corretamente. Você pode desativá-lo ou"
|
msgstr "%s com espaço inferior a 20MB. O timelapse pode não ser salvo corretamente. Você pode desativá-lo ou"
|
||||||
@@ -9836,12 +9768,15 @@ msgstr "%s com espaço inferior a 20MB. O timelapse pode não ser salvo corretam
|
|||||||
msgid "Clean up files"
|
msgid "Clean up files"
|
||||||
msgstr "Limpar arquivos"
|
msgstr "Limpar arquivos"
|
||||||
|
|
||||||
|
# AI Translated
|
||||||
msgid "Low internal storage. This timelapse will overwrite the oldest video files."
|
msgid "Low internal storage. This timelapse will overwrite the oldest video files."
|
||||||
msgstr "Armazenamento interno baixo. Este timelapse substituirá os arquivos de vídeo mais antigos."
|
msgstr "Armazenamento interno baixo. Este timelapse substituirá os arquivos de vídeo mais antigos."
|
||||||
|
|
||||||
|
# AI Translated
|
||||||
msgid "Low external storage. This timelapse will overwrite the oldest video files."
|
msgid "Low external storage. This timelapse will overwrite the oldest video files."
|
||||||
msgstr "Armazenamento externo baixo. Este timelapse substituirá os arquivos de vídeo mais antigos."
|
msgstr "Armazenamento externo baixo. Este timelapse substituirá os arquivos de vídeo mais antigos."
|
||||||
|
|
||||||
|
# AI Translated
|
||||||
msgid "Insufficient external storage for time-lapse photography. Connect to computer to delete files, or use a larger memory card."
|
msgid "Insufficient external storage for time-lapse photography. Connect to computer to delete files, or use a larger memory card."
|
||||||
msgstr "Armazenamento externo insuficiente para fotografia time-lapse. Conecte ao computador para excluir arquivos ou use um cartão de memória maior."
|
msgstr "Armazenamento externo insuficiente para fotografia time-lapse. Conecte ao computador para excluir arquivos ou use um cartão de memória maior."
|
||||||
|
|
||||||
@@ -9877,6 +9812,7 @@ msgstr "Atualizando informações dos hotends (%d/%d)."
|
|||||||
msgid "There are not enough available hotends currently."
|
msgid "There are not enough available hotends currently."
|
||||||
msgstr "Não há hotends disponíveis em quantidade suficiente no momento."
|
msgstr "Não há hotends disponíveis em quantidade suficiente no momento."
|
||||||
|
|
||||||
|
# AI Translated
|
||||||
msgid "Please complete the hotend rack setup and try again."
|
msgid "Please complete the hotend rack setup and try again."
|
||||||
msgstr "Por favor, conclua a configuração do rack de hotend e tente novamente."
|
msgstr "Por favor, conclua a configuração do rack de hotend e tente novamente."
|
||||||
|
|
||||||
@@ -9893,9 +9829,11 @@ msgstr "As informações reportadas sobre o hotend podem não ser confiáveis."
|
|||||||
msgid "The printer has no nozzle matching the slicing file (%s)."
|
msgid "The printer has no nozzle matching the slicing file (%s)."
|
||||||
msgstr "A impressora não possui um bico compatível com o arquivo de fatiamento (%s)."
|
msgstr "A impressora não possui um bico compatível com o arquivo de fatiamento (%s)."
|
||||||
|
|
||||||
|
# AI Translated
|
||||||
msgid "Please install a matching nozzle in the hotend rack, or set the corresponding printer preset while slicing."
|
msgid "Please install a matching nozzle in the hotend rack, or set the corresponding printer preset while slicing."
|
||||||
msgstr "Por favor, instale um bico compatível no rack de hotend, ou defina a predefinição de impressora correspondente ao fatiar."
|
msgstr "Por favor, instale um bico compatível no rack de hotend, ou defina a predefinição de impressora correspondente ao fatiar."
|
||||||
|
|
||||||
|
# AI Translated
|
||||||
msgid "The toolhead and hotend rack are full. Please remove at least one hotend before printing."
|
msgid "The toolhead and hotend rack are full. Please remove at least one hotend before printing."
|
||||||
msgstr "A cabeça da ferramenta e o rack de hotend estão cheios. Por favor, remova pelo menos um hotend antes de imprimir."
|
msgstr "A cabeça da ferramenta e o rack de hotend estão cheios. Por favor, remova pelo menos um hotend antes de imprimir."
|
||||||
|
|
||||||
@@ -9921,19 +9859,24 @@ msgstr "ambas extrusoras"
|
|||||||
msgid "The hardness of current material (%s) exceeds the hardness of %s(%s). Please verify the nozzle or material settings and try again."
|
msgid "The hardness of current material (%s) exceeds the hardness of %s(%s). Please verify the nozzle or material settings and try again."
|
||||||
msgstr "A dureza do material atual (%s) excede a dureza de %s(%s). Verifique as configurações do bico ou do material e tente novamente."
|
msgstr "A dureza do material atual (%s) excede a dureza de %s(%s). Verifique as configurações do bico ou do material e tente novamente."
|
||||||
|
|
||||||
|
# AI Translated
|
||||||
msgid "Your current firmware version cannot start this print job. Please update to the latest version and try again."
|
msgid "Your current firmware version cannot start this print job. Please update to the latest version and try again."
|
||||||
msgstr "Sua versão atual do firmware não pode iniciar este trabalho de impressão. Atualize para a versão mais recente e tente novamente."
|
msgstr "Sua versão atual do firmware não pode iniciar este trabalho de impressão. Atualize para a versão mais recente e tente novamente."
|
||||||
|
|
||||||
|
# AI Translated
|
||||||
#, c-format, boost-format
|
#, c-format, boost-format
|
||||||
msgid "The hardness of current material (%s) exceeds the hardness of %s(%s). It may cause nozzle wear, leading to material leakage and unstable flow. Please exercise caution when using it."
|
msgid "The hardness of current material (%s) exceeds the hardness of %s(%s). It may cause nozzle wear, leading to material leakage and unstable flow. Please exercise caution when using it."
|
||||||
msgstr "A dureza do material atual (%s) excede a dureza de %s(%s). Isso pode causar desgaste do bico, levando a vazamento de material e fluxo instável. Tenha cuidado ao usá-lo."
|
msgstr "A dureza do material atual (%s) excede a dureza de %s(%s). Isso pode causar desgaste do bico, levando a vazamento de material e fluxo instável. Tenha cuidado ao usá-lo."
|
||||||
|
|
||||||
|
# AI Translated
|
||||||
msgid "Some filaments may switch between extruders during printing. Manual K-value calibration cannot be applied throughout the entire print, which may affect print quality. Enabling Flow Dynamics Calibration is recommended."
|
msgid "Some filaments may switch between extruders during printing. Manual K-value calibration cannot be applied throughout the entire print, which may affect print quality. Enabling Flow Dynamics Calibration is recommended."
|
||||||
msgstr "Alguns filamentos podem alternar entre extrusoras durante a impressão. A calibração manual do valor K não pode ser aplicada durante toda a impressão, o que pode afetar a qualidade da impressão. Recomenda-se ativar a Calibração de Dinâmica de Fluxo."
|
msgstr "Alguns filamentos podem alternar entre extrusoras durante a impressão. A calibração manual do valor K não pode ser aplicada durante toda a impressão, o que pode afetar a qualidade da impressão. Recomenda-se ativar a Calibração de Dinâmica de Fluxo."
|
||||||
|
|
||||||
|
# AI Translated
|
||||||
msgid "There is stringing-prone filament in this file. For best print quality, we recommend switching nozzle clumping detection to Auto mode."
|
msgid "There is stringing-prone filament in this file. For best print quality, we recommend switching nozzle clumping detection to Auto mode."
|
||||||
msgstr "Há filamento propenso a criar fios neste arquivo. Para a melhor qualidade de impressão, recomendamos alternar a detecção de aglomeração no bico para o modo Automático."
|
msgstr "Há filamento propenso a fiapos neste arquivo. Para a melhor qualidade de impressão, recomendamos alternar a detecção de aglomeração no bico para o modo Automático."
|
||||||
|
|
||||||
|
# AI Translated
|
||||||
msgid "If 'Dynamic Flow Calibration' is set to Auto/On, the system will use the manual calibration value or the default value and skip the flow calibration process. You can perform a manual flow calibration for TPU filament on the 'Calibration' page."
|
msgid "If 'Dynamic Flow Calibration' is set to Auto/On, the system will use the manual calibration value or the default value and skip the flow calibration process. You can perform a manual flow calibration for TPU filament on the 'Calibration' page."
|
||||||
msgstr "Se a 'Calibração de Fluxo Dinâmico' estiver definida como Automático/Ativado, o sistema usará o valor de calibração manual ou o valor padrão e ignorará o processo de calibração de fluxo. Você pode realizar uma calibração de fluxo manual para filamento TPU na página 'Calibração'."
|
msgstr "Se a 'Calibração de Fluxo Dinâmico' estiver definida como Automático/Ativado, o sistema usará o valor de calibração manual ou o valor padrão e ignorará o processo de calibração de fluxo. Você pode realizar uma calibração de fluxo manual para filamento TPU na página 'Calibração'."
|
||||||
|
|
||||||
@@ -10040,6 +9983,7 @@ msgstr "Desative a calibração de fluxo dinâmico para habilitar o valor de flu
|
|||||||
msgid "This printer does not support printing all plates."
|
msgid "This printer does not support printing all plates."
|
||||||
msgstr "Esta impressora não suporta a imprimir todas as placas."
|
msgstr "Esta impressora não suporta a imprimir todas as placas."
|
||||||
|
|
||||||
|
# AI Translated
|
||||||
#, c-format, boost-format
|
#, c-format, boost-format
|
||||||
msgid "The current firmware supports a maximum of %s materials. You can either reduce the number of materials to %s or fewer on the Preparation Page, or try updating the firmware. If you are still restricted after the update, please wait for subsequent firmware support."
|
msgid "The current firmware supports a maximum of %s materials. You can either reduce the number of materials to %s or fewer on the Preparation Page, or try updating the firmware. If you are still restricted after the update, please wait for subsequent firmware support."
|
||||||
msgstr "O firmware atual suporta no máximo %s materiais. Você pode reduzir o número de materiais para %s ou menos na Página de Preparação, ou tentar atualizar o firmware. Se ainda estiver restrito após a atualização, aguarde o suporte de firmware subsequente."
|
msgstr "O firmware atual suporta no máximo %s materiais. Você pode reduzir o número de materiais para %s ou menos na Página de Preparação, ou tentar atualizar o firmware. Se ainda estiver restrito após a atualização, aguarde o suporte de firmware subsequente."
|
||||||
@@ -10047,9 +9991,11 @@ msgstr "O firmware atual suporta no máximo %s materiais. Você pode reduzir o n
|
|||||||
msgid "The type of external filament is unknown or does not match with the filament type in the slicing file. Please make sure you have installed the correct filament in the external spool."
|
msgid "The type of external filament is unknown or does not match with the filament type in the slicing file. Please make sure you have installed the correct filament in the external spool."
|
||||||
msgstr "O tipo de filamento externo é desconhecido ou não corresponde ao tipo de filamento no arquivo de fatiamento. Certifique-se de ter instalado o filamento correto no carretel externo."
|
msgstr "O tipo de filamento externo é desconhecido ou não corresponde ao tipo de filamento no arquivo de fatiamento. Certifique-se de ter instalado o filamento correto no carretel externo."
|
||||||
|
|
||||||
|
# AI Translated
|
||||||
msgid "TPU 90A/TPU 85A are too soft. It is recommended to perform manual flow calibration on the 'Calibration' page. If 'Dynamic Flow Calibration' is set to auto/on, the system will use the previous calibration value and skip the flow calibration process."
|
msgid "TPU 90A/TPU 85A are too soft. It is recommended to perform manual flow calibration on the 'Calibration' page. If 'Dynamic Flow Calibration' is set to auto/on, the system will use the previous calibration value and skip the flow calibration process."
|
||||||
msgstr "TPU 90A/TPU 85A são muito macios. Recomenda-se realizar a calibração de fluxo manual na página 'Calibração'. Se a 'Calibração de Fluxo Dinâmico' estiver definida como automático/ativado, o sistema usará o valor de calibração anterior e ignorará o processo de calibração de fluxo."
|
msgstr "TPU 90A/TPU 85A são muito macios. Recomenda-se realizar a calibração de fluxo manual na página 'Calibração'. Se a 'Calibração de Fluxo Dinâmico' estiver definida como automático/ativado, o sistema usará o valor de calibração anterior e ignorará o processo de calibração de fluxo."
|
||||||
|
|
||||||
|
# AI Translated
|
||||||
msgid "The filament in the AMS may be insufficient for this print. Please refill or replace it."
|
msgid "The filament in the AMS may be insufficient for this print. Please refill or replace it."
|
||||||
msgstr "O filamento no AMS pode ser insuficiente para esta impressão. Por favor, reabasteça ou substitua-o."
|
msgstr "O filamento no AMS pode ser insuficiente para esta impressão. Por favor, reabasteça ou substitua-o."
|
||||||
|
|
||||||
@@ -10126,7 +10072,7 @@ msgid "Failed to post ticket to server"
|
|||||||
msgstr "Falha ao enviar o ticket para o servidor"
|
msgstr "Falha ao enviar o ticket para o servidor"
|
||||||
|
|
||||||
msgid "Failed to parse login report reason"
|
msgid "Failed to parse login report reason"
|
||||||
msgstr "Falha ao processar o motivo do relatório de login"
|
msgstr "Falha ao analisar o motivo do relatório de login"
|
||||||
|
|
||||||
msgid "Receive login report timeout"
|
msgid "Receive login report timeout"
|
||||||
msgstr "Limite de tempo excedido ao receber o relatório de login"
|
msgstr "Limite de tempo excedido ao receber o relatório de login"
|
||||||
@@ -10222,9 +10168,11 @@ msgstr "Excluir esta predefinição"
|
|||||||
msgid "Search in preset"
|
msgid "Search in preset"
|
||||||
msgstr "Pesquisar nas predefinições"
|
msgstr "Pesquisar nas predefinições"
|
||||||
|
|
||||||
|
# AI Translated
|
||||||
msgid "Synchronization of different extruder drives or nozzle volume types is not supported."
|
msgid "Synchronization of different extruder drives or nozzle volume types is not supported."
|
||||||
msgstr "A sincronização de diferentes acionamentos de extrusora ou tipos de volume do bico não é suportada."
|
msgstr "A sincronização de diferentes acionamentos de extrusora ou tipos de volume do bico não é suportada."
|
||||||
|
|
||||||
|
# AI Translated
|
||||||
msgid "Synchronize the modification of parameters to the corresponding parameters of another extruder."
|
msgid "Synchronize the modification of parameters to the corresponding parameters of another extruder."
|
||||||
msgstr "Sincroniza a modificação de parâmetros com os parâmetros correspondentes de outra extrusora."
|
msgstr "Sincroniza a modificação de parâmetros com os parâmetros correspondentes de outra extrusora."
|
||||||
|
|
||||||
@@ -10294,7 +10242,7 @@ msgid "Are you sure you want to enable this option?"
|
|||||||
msgstr "Tem certeza de que deseja habilitar esta opção?"
|
msgstr "Tem certeza de que deseja habilitar esta opção?"
|
||||||
|
|
||||||
msgid "Infill patterns are typically designed to handle rotation automatically to ensure proper printing and achieve their intended effects (e.g., Gyroid, Cubic). Rotating the current sparse infill pattern may lead to insufficient support. Please proceed with caution and thoroughly check for any potential printing issues. Are you sure you want to enable this option?"
|
msgid "Infill patterns are typically designed to handle rotation automatically to ensure proper printing and achieve their intended effects (e.g., Gyroid, Cubic). Rotating the current sparse infill pattern may lead to insufficient support. Please proceed with caution and thoroughly check for any potential printing issues. Are you sure you want to enable this option?"
|
||||||
msgstr "Padrões de preenchimento são projetados para lidar com a rotação automaticamente para garantir a impressão adequada e atingir os efeitos pretendidos (ex.: Giroide, Cúbico). Girar o padrão de preenchimento esparso atual pode causar suporte insuficiente. Prossiga com cautela e verifique cuidadosamente se há possíveis problemas de impressão. Tem certeza de que deseja habilitar esta opção?"
|
msgstr "Padrões de preenchimento são projetados para lidar com a rotação automaticamente para garantir a impressão adequada e atingir os efeitos pretendidos (Ex. Giroide, Cúbico). Girar o padrão de preenchimento esparso atual pode causar suporte insuficiente. Prossiga com cautela e verifique cuidadosamente se há possíveis problemas de impressão. Tem certeza de que deseja habilitar esta opção?"
|
||||||
|
|
||||||
msgid "Experimental feature: Retracting and cutting off the filament at a greater distance during filament changes to minimize flush. Although it can notably reduce flush, it may also elevate the risk of nozzle clogs or other printing complications."
|
msgid "Experimental feature: Retracting and cutting off the filament at a greater distance during filament changes to minimize flush. Although it can notably reduce flush, it may also elevate the risk of nozzle clogs or other printing complications."
|
||||||
msgstr "Funcionalidade experimental: Retrair e cortar o filamento a uma distância maior durante mudanças de filamento para minimizar a purga. Embora possa reduzir notavelmente a purga, ele também pode elevar o risco de bolhas no bico ou outras complicações de impressão."
|
msgstr "Funcionalidade experimental: Retrair e cortar o filamento a uma distância maior durante mudanças de filamento para minimizar a purga. Embora possa reduzir notavelmente a purga, ele também pode elevar o risco de bolhas no bico ou outras complicações de impressão."
|
||||||
@@ -10457,6 +10405,7 @@ msgstr "G-code de mudança de tipo de extrusão"
|
|||||||
msgid "Post-processing Scripts"
|
msgid "Post-processing Scripts"
|
||||||
msgstr "Scripts de pós-processamento"
|
msgstr "Scripts de pós-processamento"
|
||||||
|
|
||||||
|
# AI Translated
|
||||||
msgid "Slicing Pipeline Plugin"
|
msgid "Slicing Pipeline Plugin"
|
||||||
msgstr "Plugin de Pipeline de Fatiamento"
|
msgstr "Plugin de Pipeline de Fatiamento"
|
||||||
|
|
||||||
@@ -10510,8 +10459,9 @@ msgstr "Temperatura da câmara de impressão"
|
|||||||
msgid "Chamber temperature"
|
msgid "Chamber temperature"
|
||||||
msgstr "Temperatura da câmara"
|
msgstr "Temperatura da câmara"
|
||||||
|
|
||||||
|
# AI Translated
|
||||||
msgid "Target chamber temperature, and the minimal chamber temperature at which printing should start"
|
msgid "Target chamber temperature, and the minimal chamber temperature at which printing should start"
|
||||||
msgstr "Temperatura alvo da câmara, e a temperatura mínima da câmara na qual a impressão deve começar"
|
msgstr "Temperatura da câmara alvo, e a temperatura mínima da câmara na qual a impressão deve começar"
|
||||||
|
|
||||||
msgid "Target"
|
msgid "Target"
|
||||||
msgstr "Alvo"
|
msgstr "Alvo"
|
||||||
@@ -10749,6 +10699,7 @@ msgstr "Limites de altura da camada"
|
|||||||
msgid "Z-Hop"
|
msgid "Z-Hop"
|
||||||
msgstr "Z-Hop"
|
msgstr "Z-Hop"
|
||||||
|
|
||||||
|
# AI Translated
|
||||||
msgid ""
|
msgid ""
|
||||||
"The Retract before wipe option could be only 100% when using the Firmware Retraction mode.\n"
|
"The Retract before wipe option could be only 100% when using the Firmware Retraction mode.\n"
|
||||||
"\n"
|
"\n"
|
||||||
@@ -11056,6 +11007,7 @@ msgstr "Se ativo, este diálogo pode ser usado para transferir valores seleciona
|
|||||||
msgid "One of the presets does not exist"
|
msgid "One of the presets does not exist"
|
||||||
msgstr "Uma das predefinições não existe"
|
msgstr "Uma das predefinições não existe"
|
||||||
|
|
||||||
|
# AI Translated
|
||||||
msgid "Compared presets has different printer technology"
|
msgid "Compared presets has different printer technology"
|
||||||
msgstr "As predefinições comparadas têm tecnologia de impressora diferente"
|
msgstr "As predefinições comparadas têm tecnologia de impressora diferente"
|
||||||
|
|
||||||
@@ -11390,8 +11342,9 @@ msgstr "Entrar"
|
|||||||
msgid "Login failed. Please try again."
|
msgid "Login failed. Please try again."
|
||||||
msgstr "Falha no login. Tente novamente."
|
msgstr "Falha no login. Tente novamente."
|
||||||
|
|
||||||
|
# AI Translated
|
||||||
msgid "parse json failed"
|
msgid "parse json failed"
|
||||||
msgstr "falha ao processar o json"
|
msgstr "falha ao analisar o json"
|
||||||
|
|
||||||
msgid "[Action Required] "
|
msgid "[Action Required] "
|
||||||
msgstr "[Ação Necessária] "
|
msgstr "[Ação Necessária] "
|
||||||
@@ -11582,6 +11535,7 @@ msgctxt "Keyboard Shortcut"
|
|||||||
msgid "Space"
|
msgid "Space"
|
||||||
msgstr "Espaço"
|
msgstr "Espaço"
|
||||||
|
|
||||||
|
# AI Translated
|
||||||
msgid "Open actions speed dial"
|
msgid "Open actions speed dial"
|
||||||
msgstr "Abrir menu rápido de ações"
|
msgstr "Abrir menu rápido de ações"
|
||||||
|
|
||||||
@@ -11663,9 +11617,11 @@ msgstr "informações de atualização da versão %s:"
|
|||||||
msgid "Network plug-in update"
|
msgid "Network plug-in update"
|
||||||
msgstr "Atualização do plug-in de rede"
|
msgstr "Atualização do plug-in de rede"
|
||||||
|
|
||||||
|
# AI Translated
|
||||||
msgid "Click OK to update the Network plug-in now. If a file is in use, the update will be applied the next time Orca Slicer launches."
|
msgid "Click OK to update the Network plug-in now. If a file is in use, the update will be applied the next time Orca Slicer launches."
|
||||||
msgstr "Clique em OK para atualizar o plug-in de Rede agora. Se um arquivo estiver em uso, a atualização será aplicada na próxima vez que o Orca Slicer for iniciado."
|
msgstr "Clique em OK para atualizar o plug-in de Rede agora. Se um arquivo estiver em uso, a atualização será aplicada na próxima vez que o Orca Slicer for iniciado."
|
||||||
|
|
||||||
|
# AI Translated
|
||||||
msgid "A new Network plug-in is available. Do you want to install it?"
|
msgid "A new Network plug-in is available. Do you want to install it?"
|
||||||
msgstr "Um novo plug-in de Rede está disponível. Deseja instalá-lo?"
|
msgstr "Um novo plug-in de Rede está disponível. Deseja instalá-lo?"
|
||||||
|
|
||||||
@@ -11725,6 +11681,7 @@ msgstr "Nome da impressora"
|
|||||||
msgid "Where to find your printer's IP and Access Code?"
|
msgid "Where to find your printer's IP and Access Code?"
|
||||||
msgstr "Onde encontrar o IP e o Código de Acesso da sua impressora?"
|
msgstr "Onde encontrar o IP e o Código de Acesso da sua impressora?"
|
||||||
|
|
||||||
|
# AI Translated
|
||||||
msgid "How to trouble shooting"
|
msgid "How to trouble shooting"
|
||||||
msgstr "Como solucionar problemas"
|
msgstr "Como solucionar problemas"
|
||||||
|
|
||||||
@@ -11872,9 +11829,11 @@ msgstr "Objeto: %1%"
|
|||||||
msgid "Parts of the object at these heights may be too thin or the object may have a faulty mesh."
|
msgid "Parts of the object at these heights may be too thin or the object may have a faulty mesh."
|
||||||
msgstr "Partes do objeto nessas alturas podem ser muito finas, ou o objeto pode ter uma malha com falhas."
|
msgstr "Partes do objeto nessas alturas podem ser muito finas, ou o objeto pode ter uma malha com falhas."
|
||||||
|
|
||||||
|
# AI Translated
|
||||||
msgid "Process change extrusion role G-code"
|
msgid "Process change extrusion role G-code"
|
||||||
msgstr "G-code de mudança de tipo de extrusão do processo"
|
msgstr "G-code de mudança de tipo de extrusão do processo"
|
||||||
|
|
||||||
|
# AI Translated
|
||||||
msgid "Filament change extrusion role G-code"
|
msgid "Filament change extrusion role G-code"
|
||||||
msgstr "G-code de mudança de tipo de extrusão do filamento"
|
msgstr "G-code de mudança de tipo de extrusão do filamento"
|
||||||
|
|
||||||
@@ -12049,6 +12008,7 @@ msgstr " está muito perto de uma área de exclusão, e colisões vão ocorrer.\
|
|||||||
msgid " is too close to clumping detection area, and collisions will be caused.\n"
|
msgid " is too close to clumping detection area, and collisions will be caused.\n"
|
||||||
msgstr " está muito perto da área de detecção de aglomeração, e ocorrerão colisões.\n"
|
msgstr " está muito perto da área de detecção de aglomeração, e ocorrerão colisões.\n"
|
||||||
|
|
||||||
|
# AI Translated
|
||||||
msgid " is partially outside the printable area, and it cannot be printed.\n"
|
msgid " is partially outside the printable area, and it cannot be printed.\n"
|
||||||
msgstr " está parcialmente fora da área imprimível, e não pode ser impresso.\n"
|
msgstr " está parcialmente fora da área imprimível, e não pode ser impresso.\n"
|
||||||
|
|
||||||
@@ -12064,6 +12024,7 @@ msgstr "Se ainda assim desejar imprimir, você pode ativar a opção em Preferê
|
|||||||
msgid "No extrusions under current settings."
|
msgid "No extrusions under current settings."
|
||||||
msgstr "Nenhuma extrusão com as configurações atuais."
|
msgstr "Nenhuma extrusão com as configurações atuais."
|
||||||
|
|
||||||
|
# AI Translated
|
||||||
msgid "A gradient mixed filament is used, but 'Mixed color sublayer' is disabled. The gradient will not be printed."
|
msgid "A gradient mixed filament is used, but 'Mixed color sublayer' is disabled. The gradient will not be printed."
|
||||||
msgstr "Um filamento misto com gradiente está em uso, mas 'Subcamada de cor mista' está desativado. O gradiente não será impresso."
|
msgstr "Um filamento misto com gradiente está em uso, mas 'Subcamada de cor mista' está desativado. O gradiente não será impresso."
|
||||||
|
|
||||||
@@ -12103,6 +12064,7 @@ msgstr "Você pode querer reduzir o tamanho do seu modelo ou alterar as configur
|
|||||||
msgid "Variable layer height is not supported with Organic supports."
|
msgid "Variable layer height is not supported with Organic supports."
|
||||||
msgstr "A altura de camada variável não é suportada com suportes Orgânicos."
|
msgstr "A altura de camada variável não é suportada com suportes Orgânicos."
|
||||||
|
|
||||||
|
# AI Translated
|
||||||
msgid "The wipe tower filament cannot be a mixed filament."
|
msgid "The wipe tower filament cannot be a mixed filament."
|
||||||
msgstr "O filamento da torre de purga não pode ser um filamento misto."
|
msgstr "O filamento da torre de purga não pode ser um filamento misto."
|
||||||
|
|
||||||
@@ -12739,6 +12701,7 @@ msgstr ""
|
|||||||
msgid "Internal bridge flow ratio"
|
msgid "Internal bridge flow ratio"
|
||||||
msgstr "Taxa de fluxo em ponte interna"
|
msgstr "Taxa de fluxo em ponte interna"
|
||||||
|
|
||||||
|
# AI Translated
|
||||||
msgid ""
|
msgid ""
|
||||||
"This value governs the thickness of the internal bridge layer. This is the first layer over sparse infill so increasing it may increase strength and upper layer quality.\n"
|
"This value governs the thickness of the internal bridge layer. This is the first layer over sparse infill so increasing it may increase strength and upper layer quality.\n"
|
||||||
"Values above 1.0: Increase the amount of material while maintaining line spacing. This can improve line contact and strength.\n"
|
"Values above 1.0: Increase the amount of material while maintaining line spacing. This can improve line contact and strength.\n"
|
||||||
@@ -13128,9 +13091,11 @@ msgstr ""
|
|||||||
"A geometria será decimada antes de detectar ângulos agudos. Este parâmetro indica o comprimento mínimo da divergência para a decimação.\n"
|
"A geometria será decimada antes de detectar ângulos agudos. Este parâmetro indica o comprimento mínimo da divergência para a decimação.\n"
|
||||||
"0 para desativar."
|
"0 para desativar."
|
||||||
|
|
||||||
|
# AI Translated
|
||||||
msgid "Brim ears outer only"
|
msgid "Brim ears outer only"
|
||||||
msgstr "Apenas orelhas da borda externas"
|
msgstr "Orelhas da borda apenas externas"
|
||||||
|
|
||||||
|
# AI Translated
|
||||||
msgid "Generate mouse ears only on the outer contour of the model, excluding holes and enclosed sections."
|
msgid "Generate mouse ears only on the outer contour of the model, excluding holes and enclosed sections."
|
||||||
msgstr "Gera orelhas de rato apenas no contorno externo do modelo, excluindo furos e seções fechadas."
|
msgstr "Gera orelhas de rato apenas no contorno externo do modelo, excluindo furos e seções fechadas."
|
||||||
|
|
||||||
@@ -13158,6 +13123,7 @@ msgstr "Por objeto"
|
|||||||
msgid "Intra-layer order"
|
msgid "Intra-layer order"
|
||||||
msgstr "Ordem intra-camada"
|
msgstr "Ordem intra-camada"
|
||||||
|
|
||||||
|
# AI Translated
|
||||||
msgid ""
|
msgid ""
|
||||||
"Order in which object instances are visited within a single layer, which controls how much travel is spent moving between them.\n"
|
"Order in which object instances are visited within a single layer, which controls how much travel is spent moving between them.\n"
|
||||||
"\n"
|
"\n"
|
||||||
@@ -13215,7 +13181,7 @@ msgid "mm/s² or %"
|
|||||||
msgstr "mm/s² ou %"
|
msgstr "mm/s² ou %"
|
||||||
|
|
||||||
msgid "Acceleration of bridges. If the value is expressed as a percentage (e.g. 50%), it will be calculated based on the outer wall acceleration."
|
msgid "Acceleration of bridges. If the value is expressed as a percentage (e.g. 50%), it will be calculated based on the outer wall acceleration."
|
||||||
msgstr "Aceleração das pontes. Se o valor for expresso como uma porcentagem (ex.: 50%), será calculado com base na aceleração da parede externa."
|
msgstr "Aceleração das pontes. Se o valor for expresso como uma porcentagem (por exemplo, 50%), será calculado com base na aceleração da parede externa."
|
||||||
|
|
||||||
msgid "Default filament profile"
|
msgid "Default filament profile"
|
||||||
msgstr "Perfil de filamento padrão"
|
msgstr "Perfil de filamento padrão"
|
||||||
@@ -13795,6 +13761,7 @@ msgstr "Tempo da camada"
|
|||||||
msgid "The part cooling fan will be enabled for layers where the estimated time is shorter than this value. Fan speed is interpolated between the minimum and maximum fan speeds according to layer printing time."
|
msgid "The part cooling fan will be enabled for layers where the estimated time is shorter than this value. Fan speed is interpolated between the minimum and maximum fan speeds according to layer printing time."
|
||||||
msgstr "A ventoinha de resfriamento de peças será ativado para camadas cujo tempo estimado seja mais curto que esse valor. A velocidade da ventoinha é interpolada entre as velocidades mínima e máxima da ventoinha de acordo com o tempo de impressão da camada."
|
msgstr "A ventoinha de resfriamento de peças será ativado para camadas cujo tempo estimado seja mais curto que esse valor. A velocidade da ventoinha é interpolada entre as velocidades mínima e máxima da ventoinha de acordo com o tempo de impressão da camada."
|
||||||
|
|
||||||
|
# AI Translated
|
||||||
msgctxt "second"
|
msgctxt "second"
|
||||||
msgid "s"
|
msgid "s"
|
||||||
msgstr "s"
|
msgstr "s"
|
||||||
@@ -14101,47 +14068,61 @@ msgstr "Material de suporte"
|
|||||||
msgid "Support material is commonly used to print supports and support interfaces."
|
msgid "Support material is commonly used to print supports and support interfaces."
|
||||||
msgstr "O material de suporte é comumente usado para imprimir suportes e interfaces de suporte."
|
msgstr "O material de suporte é comumente usado para imprimir suportes e interfaces de suporte."
|
||||||
|
|
||||||
|
# AI Translated
|
||||||
msgid "Is mixed filament"
|
msgid "Is mixed filament"
|
||||||
msgstr "É filamento misto"
|
msgstr "É filamento misto"
|
||||||
|
|
||||||
|
# AI Translated
|
||||||
msgid "Whether this filament slot is a mixed filament composed of multiple physical filaments"
|
msgid "Whether this filament slot is a mixed filament composed of multiple physical filaments"
|
||||||
msgstr "Define se este slot de filamento é um filamento misto composto por vários filamentos físicos"
|
msgstr "Define se este slot de filamento é um filamento misto composto por vários filamentos físicos"
|
||||||
|
|
||||||
|
# AI Translated
|
||||||
msgid "Mixed filament components"
|
msgid "Mixed filament components"
|
||||||
msgstr "Componentes do filamento misto"
|
msgstr "Componentes do filamento misto"
|
||||||
|
|
||||||
|
# AI Translated
|
||||||
msgid "Comma-separated 1-based indices of component filaments, e.g. \"1,3\""
|
msgid "Comma-separated 1-based indices of component filaments, e.g. \"1,3\""
|
||||||
msgstr "Índices (começando em 1) dos filamentos componentes, separados por vírgulas; ex.: \"1,3\""
|
msgstr "Índices (começando em 1) dos filamentos componentes, separados por vírgulas; ex.: \"1,3\""
|
||||||
|
|
||||||
|
# AI Translated
|
||||||
msgid "Mixed filament sublayer ratios"
|
msgid "Mixed filament sublayer ratios"
|
||||||
msgstr "Proporções de subcamada do filamento misto"
|
msgstr "Proporções de subcamada do filamento misto"
|
||||||
|
|
||||||
|
# AI Translated
|
||||||
msgid "Comma-separated ratio values summing to 1.0, e.g. \"0.7,0.3\""
|
msgid "Comma-separated ratio values summing to 1.0, e.g. \"0.7,0.3\""
|
||||||
msgstr "Valores de proporção separados por vírgulas cuja soma seja 1.0; ex.: \"0.7,0.3\""
|
msgstr "Valores de proporção separados por vírgulas cuja soma seja 1.0; ex.: \"0.7,0.3\""
|
||||||
|
|
||||||
|
# AI Translated
|
||||||
msgid "Mixed filament gradient"
|
msgid "Mixed filament gradient"
|
||||||
msgstr "Gradiente do filamento misto"
|
msgstr "Gradiente do filamento misto"
|
||||||
|
|
||||||
|
# AI Translated
|
||||||
msgid "Enable Z-direction gradient mode for mixed filament sub-layers. When enabled, the sub-layer ratios vary linearly across layers."
|
msgid "Enable Z-direction gradient mode for mixed filament sub-layers. When enabled, the sub-layer ratios vary linearly across layers."
|
||||||
msgstr "Ativa o modo de gradiente na direção Z para as subcamadas do filamento misto. Quando ativo, as proporções das subcamadas variam linearmente ao longo das camadas."
|
msgstr "Ativa o modo de gradiente na direção Z para as subcamadas do filamento misto. Quando ativado, as proporções das subcamadas variam linearmente ao longo das camadas."
|
||||||
|
|
||||||
|
# AI Translated
|
||||||
msgid "Mixed filament gradient range"
|
msgid "Mixed filament gradient range"
|
||||||
msgstr "Faixa do gradiente do filamento misto"
|
msgstr "Faixa do gradiente do filamento misto"
|
||||||
|
|
||||||
|
# AI Translated
|
||||||
msgid "Start and end ratios for the first component in gradient mode. Comma-separated pair, e.g. \"0.10,0.90\" means 10% to 90%."
|
msgid "Start and end ratios for the first component in gradient mode. Comma-separated pair, e.g. \"0.10,0.90\" means 10% to 90%."
|
||||||
msgstr "Proporções inicial e final do primeiro componente no modo de gradiente. Par separado por vírgula; ex.: \"0.10,0.90\" significa de 10% a 90%."
|
msgstr "Proporções inicial e final do primeiro componente no modo de gradiente. Par separado por vírgula; ex.: \"0.10,0.90\" significa de 10% a 90%."
|
||||||
|
|
||||||
|
# AI Translated
|
||||||
msgid "Mixed filament gradient curve"
|
msgid "Mixed filament gradient curve"
|
||||||
msgstr "Curva do gradiente do filamento misto"
|
msgstr "Curva do gradiente do filamento misto"
|
||||||
|
|
||||||
|
# AI Translated
|
||||||
msgid "Optional Photoshop-style custom curve mapping Z progress to the first component ratio. Encoded as pipe-separated control points, either \"x,y\" (legacy) or \"x,y,m_in,m_out\" when a tangent override is needed (empty token or \"nan\" means use PCHIP default). x in [0,1]; y is clamped to the configured ratio range, e.g. \"0,0.15|0.5,0.50|1,0.85\". When empty, the linear gradient_range is used instead."
|
msgid "Optional Photoshop-style custom curve mapping Z progress to the first component ratio. Encoded as pipe-separated control points, either \"x,y\" (legacy) or \"x,y,m_in,m_out\" when a tangent override is needed (empty token or \"nan\" means use PCHIP default). x in [0,1]; y is clamped to the configured ratio range, e.g. \"0,0.15|0.5,0.50|1,0.85\". When empty, the linear gradient_range is used instead."
|
||||||
msgstr "Curva personalizada opcional no estilo do Photoshop, mapeando o progresso em Z para a proporção do primeiro componente. Codificada como pontos de controle separados por barras verticais, no formato \"x,y\" (legado) ou \"x,y,m_in,m_out\" quando é necessário substituir a tangente (um valor vazio ou \"nan\" usa o padrão PCHIP). X em [0,1]; Y é limitado à faixa de proporção configurada; ex.: \"0,0.15|0.5,0.50|1,0.85\". Quando vazio, o gradient_range linear é usado no lugar."
|
msgstr "Curva personalizada opcional, no estilo do Photoshop, que mapeia o progresso em Z para a proporção do primeiro componente. Codificada como pontos de controle separados por barras verticais, no formato \"x,y\" (legado) ou \"x,y,m_in,m_out\" quando é necessário substituir a tangente (um valor vazio ou \"nan\" usa o padrão PCHIP). x está em [0,1]; y é limitado à faixa de proporção configurada; ex.: \"0,0.15|0.5,0.50|1,0.85\". Quando vazio, o gradient_range linear é usado."
|
||||||
|
|
||||||
|
# AI Translated
|
||||||
msgid "Mixed filament per-part gradient"
|
msgid "Mixed filament per-part gradient"
|
||||||
msgstr "Gradiente por peça do filamento misto"
|
msgstr "Gradiente por peça do filamento misto"
|
||||||
|
|
||||||
|
# AI Translated
|
||||||
msgid "When gradient mode is enabled, apply the gradient to each part of an assembly independently rather than treating the whole assembly as one Z range."
|
msgid "When gradient mode is enabled, apply the gradient to each part of an assembly independently rather than treating the whole assembly as one Z range."
|
||||||
msgstr "Quando o modo de gradiente está ativado, aplica o gradiente a cada peça de uma montagem de forma independente em vez de tratar toda a montagem como uma única faixa Z."
|
msgstr "Quando o modo de gradiente está ativado, aplica o gradiente a cada peça de uma montagem de forma independente, em vez de tratar toda a montagem como uma única faixa Z."
|
||||||
|
|
||||||
msgid "Filament printable"
|
msgid "Filament printable"
|
||||||
msgstr "Filamento imprimível"
|
msgstr "Filamento imprimível"
|
||||||
@@ -14232,7 +14213,7 @@ msgid "Insert solid layers"
|
|||||||
msgstr "Inserir camadas sólidas"
|
msgstr "Inserir camadas sólidas"
|
||||||
|
|
||||||
msgid "Insert solid infill at specific layers. Use N to insert every Nth layer, N#K to insert K consecutive solid layers every N layers (K is optional, e.g. '5#' equals '5#1'), or a comma-separated list (e.g. 1,7,9) to insert at explicit layers. Layers are 1-based."
|
msgid "Insert solid infill at specific layers. Use N to insert every Nth layer, N#K to insert K consecutive solid layers every N layers (K is optional, e.g. '5#' equals '5#1'), or a comma-separated list (e.g. 1,7,9) to insert at explicit layers. Layers are 1-based."
|
||||||
msgstr "Insere preenchimento sólido em camadas específicas. Use N para inserir a cada enésima camada, N#K para inserir K camadas sólidas consecutivas a cada enésima camada (K é opcional, ex.: '5#' é igual a '5#1'), ou uma lista separada por vírgulas (Ex. 1,7,9) para inserir em camadas esplícitas. Camadas são baseadas em 1."
|
msgstr "Insere preenchimento sólido em camadas específicas. Use N para inserir a cada enésima camada, N#K para inserir K camadas sólidas consecutivas a cada enésima camada (K é opcional, ou seja, '5#' é igual a '5#1'), ou uma lista separada por vírgulas (Ex. 1,7,9) para inserir em camadas esplícitas. Camadas são baseadas em 1."
|
||||||
|
|
||||||
msgid "Fill Multiline"
|
msgid "Fill Multiline"
|
||||||
msgstr "Multilinhas de Preenchimento"
|
msgstr "Multilinhas de Preenchimento"
|
||||||
@@ -14310,9 +14291,11 @@ msgstr "TPMS-FK"
|
|||||||
msgid "Gyroid"
|
msgid "Gyroid"
|
||||||
msgstr "Giroide"
|
msgstr "Giroide"
|
||||||
|
|
||||||
|
# AI Translated
|
||||||
msgid "Sparse infill smooth factor"
|
msgid "Sparse infill smooth factor"
|
||||||
msgstr "Fator de suavização do preenchimento esparso"
|
msgstr "Fator de suavização do preenchimento esparso"
|
||||||
|
|
||||||
|
# AI Translated
|
||||||
msgid "Controls how strongly sparse infill corners are rounded. 0% keeps the original sharp path, while 100% produces the largest possible curves between adjacent infill lines."
|
msgid "Controls how strongly sparse infill corners are rounded. 0% keeps the original sharp path, while 100% produces the largest possible curves between adjacent infill lines."
|
||||||
msgstr "Controla o quanto os cantos do preenchimento esparso são arredondados. 0% mantém o trajeto original com cantos vivos, enquanto 100% produz as maiores curvas possíveis entre linhas de preenchimento adjacentes."
|
msgstr "Controla o quanto os cantos do preenchimento esparso são arredondados. 0% mantém o trajeto original com cantos vivos, enquanto 100% produz as maiores curvas possíveis entre linhas de preenchimento adjacentes."
|
||||||
|
|
||||||
@@ -14326,10 +14309,10 @@ msgid "Acceleration of inner walls."
|
|||||||
msgstr "Aceleração das paredes internas."
|
msgstr "Aceleração das paredes internas."
|
||||||
|
|
||||||
msgid "Acceleration of sparse infill. If the value is expressed as a percentage (e.g. 100%), it will be calculated based on the default acceleration."
|
msgid "Acceleration of sparse infill. If the value is expressed as a percentage (e.g. 100%), it will be calculated based on the default acceleration."
|
||||||
msgstr "Aceleração do preenchimento esparso. Se o valor for expresso como uma porcentagem (ex.: 100%), será calculado com base na aceleração padrão."
|
msgstr "Aceleração do preenchimento esparso. Se o valor for expresso como uma porcentagem (por exemplo, 100%), será calculado com base na aceleração padrão."
|
||||||
|
|
||||||
msgid "Acceleration of internal solid infill. If the value is expressed as a percentage (e.g. 100%), it will be calculated based on the default acceleration."
|
msgid "Acceleration of internal solid infill. If the value is expressed as a percentage (e.g. 100%), it will be calculated based on the default acceleration."
|
||||||
msgstr "Aceleração do preenchimento sólido interno. Se o valor for expresso como uma porcentagem (ex.: 100%), será calculado com base na aceleração padrão."
|
msgstr "Aceleração do preenchimento sólido interno. Se o valor for expresso como uma porcentagem (por exemplo, 100%), será calculado com base na aceleração padrão."
|
||||||
|
|
||||||
msgid "This is the printing acceleration for the first layer. Using limited acceleration can improve build plate adhesion."
|
msgid "This is the printing acceleration for the first layer. Using limited acceleration can improve build plate adhesion."
|
||||||
msgstr "Esta é a aceleração para a primeira camada. Usar aceleração limitada melhorar a adesão à placa de impressão."
|
msgstr "Esta é a aceleração para a primeira camada. Usar aceleração limitada melhorar a adesão à placa de impressão."
|
||||||
@@ -14433,7 +14416,7 @@ msgid ""
|
|||||||
"Only available when \"No cooling for the first\" is 0.\n"
|
"Only available when \"No cooling for the first\" is 0.\n"
|
||||||
"Set to -1 to disable it."
|
"Set to -1 to disable it."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Define uma velocidade exata da ventoinha para a primeira camada, substituindo todas as outras configurações de resfriamento. Útil para proteger peças impressas em 3D da cabeça da ferramenta (ex.: dutos ABS/ASA no estilo Voron) de uma mesa aquecida. Uma pequena quantidade de fluxo de ar resfria os dutos, sem usar o resfriamento total que pode, em certas condições, prejudicar a aderência da primeira camada.\n"
|
"Define uma velocidade exata da ventoinha para a primeira camada, substituindo todas as outras configurações de resfriamento. Útil para proteger peças impressas em 3D da cabeça da ferramenta (por exemplo, dutos ABS/ASA no estilo Voron) de uma mesa aquecida. Uma pequena quantidade de fluxo de ar resfria os dutos, sem usar o resfriamento total que pode, em certas condições, prejudicar a aderência da primeira camada.\n"
|
||||||
"A partir da segunda camada, o resfriamento normal é retomado.\n"
|
"A partir da segunda camada, o resfriamento normal é retomado.\n"
|
||||||
"Se \"Velocidade total da ventoinha na camada\" também estiver definida, a ventoinha aumenta suavemente deste valor na primeira camada até o seu alvo na camada escolhida.\n"
|
"Se \"Velocidade total da ventoinha na camada\" também estiver definida, a ventoinha aumenta suavemente deste valor na primeira camada até o seu alvo na camada escolhida.\n"
|
||||||
"Disponível apenas quando \"Sem resfriamento nas primeiras\" é 0.\n"
|
"Disponível apenas quando \"Sem resfriamento nas primeiras\" é 0.\n"
|
||||||
@@ -14804,7 +14787,7 @@ msgid ""
|
|||||||
"Set to 0 to deactivate."
|
"Set to 0 to deactivate."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Algumas ventoinhas de resfriamento de componentes não conseguem iniciar a rotação quando comandadas abaixo de um determinado ciclo de trabalho PWM. Quando definido acima de 0, qualquer comando de ventoinha de resfriamento de componentes diferente de zero será elevado para pelo menos essa porcentagem, para que a ventoinha inicie de forma confiável. Um comando de ventoinha de 0 (ventoinha desligada) é sempre atendido exatamente. Essa limitação é aplicada após cada outro cálculo da ventoinha (rampa da primeira camada, interpolação do tempo da camada, substituições de saliência/ponte/interface de suporte/alisamento), para que o dimensionamento ainda opere dentro do intervalo [este valor, 100%].\n"
|
"Algumas ventoinhas de resfriamento de componentes não conseguem iniciar a rotação quando comandadas abaixo de um determinado ciclo de trabalho PWM. Quando definido acima de 0, qualquer comando de ventoinha de resfriamento de componentes diferente de zero será elevado para pelo menos essa porcentagem, para que a ventoinha inicie de forma confiável. Um comando de ventoinha de 0 (ventoinha desligada) é sempre atendido exatamente. Essa limitação é aplicada após cada outro cálculo da ventoinha (rampa da primeira camada, interpolação do tempo da camada, substituições de saliência/ponte/interface de suporte/alisamento), para que o dimensionamento ainda opere dentro do intervalo [este valor, 100%].\n"
|
||||||
"Se o seu firmware já desativa a ventoinha abaixo de um limite (por exemplo, [fan] off_below: 0.10 do Klipper desliga a ventoinha sempre que o ciclo de trabalho comandado for inferior a 10%), esta opção e o limite do firmware devem idealmente ser definidos com o mesmo valor. A correspondência entre eles (ex.: off_below: 0.10 no Klipper e 10% aqui) garante que o fatiador nunca emita um valor diferente de zero que o firmware emitiria a velocidade cai silenciosamente e a ventoinha nunca recebe um valor abaixo daquele que você sabe que ela pode realmente atingir.\n"
|
"Se o seu firmware já desativa a ventoinha abaixo de um limite (por exemplo, [fan] off_below: 0.10 do Klipper desliga a ventoinha sempre que o ciclo de trabalho comandado for inferior a 10%), esta opção e o limite do firmware devem idealmente ser definidos com o mesmo valor. A correspondência entre eles (por exemplo, off_below: 0.10 no Klipper e 10% aqui) garante que o fatiador nunca emita um valor diferente de zero que o firmware emitiria a velocidade cai silenciosamente e a ventoinha nunca recebe um valor abaixo daquele que você sabe que ela pode realmente atingir.\n"
|
||||||
"Defina como 0 para desativar."
|
"Defina como 0 para desativar."
|
||||||
|
|
||||||
msgid "Time cost"
|
msgid "Time cost"
|
||||||
@@ -14851,11 +14834,13 @@ msgstr "Com que tipo de G-code a impressora é compatível."
|
|||||||
msgid "Klipper"
|
msgid "Klipper"
|
||||||
msgstr "Klipper"
|
msgstr "Klipper"
|
||||||
|
|
||||||
|
# AI Translated
|
||||||
msgid "Skip G-code config block"
|
msgid "Skip G-code config block"
|
||||||
msgstr "Omitir o bloco de configuração do G-code"
|
msgstr "Omitir o bloco de configuração do G-code"
|
||||||
|
|
||||||
|
# AI Translated
|
||||||
msgid "Do not write the CONFIG_BLOCK (slicer configuration key/value pairs) into the G-code file. This can help with printers whose firmware crashes when parsing these comment lines (e.g. Anycubic go-klipper). Note: the G-code file will no longer contain slicer settings, so importing it back into OrcaSlicer will not restore the configuration."
|
msgid "Do not write the CONFIG_BLOCK (slicer configuration key/value pairs) into the G-code file. This can help with printers whose firmware crashes when parsing these comment lines (e.g. Anycubic go-klipper). Note: the G-code file will no longer contain slicer settings, so importing it back into OrcaSlicer will not restore the configuration."
|
||||||
msgstr "Não grava o CONFIG_BLOCK (os pares chave/valor da configuração do fatiador) no arquivo G-code. Isso pode ajudar com impressoras cujo firmware trava ao interpretar essas linhas de comentário (ex.: Anycubic go-klipper). Nota: o arquivo G-code não conterá mais as configurações do fatiador, então importá-lo de volta no OrcaSlicer não restaurará a configuração."
|
msgstr "Não grava o CONFIG_BLOCK (os pares chave/valor da configuração do fatiador) no arquivo G-code. Isso pode ajudar com impressoras cujo firmware trava ao interpretar essas linhas de comentário (por exemplo, Anycubic go-klipper). Observação: o arquivo G-code não conterá mais as configurações do fatiador, então importá-lo de volta no OrcaSlicer não restaurará a configuração."
|
||||||
|
|
||||||
msgid "Pellet Modded Printer"
|
msgid "Pellet Modded Printer"
|
||||||
msgstr "Impressora Modificada para Pellets"
|
msgstr "Impressora Modificada para Pellets"
|
||||||
@@ -14903,13 +14888,13 @@ msgid "Sparse infill rotation template"
|
|||||||
msgstr "Gabarito de rotação de preenchimento esparso"
|
msgstr "Gabarito de rotação de preenchimento esparso"
|
||||||
|
|
||||||
msgid "Rotate the sparse infill direction per layer using a template of angles. Enter comma-separated degrees (e.g., '0,30,60,90'). Angles are applied in order by layer and repeat when the list ends. Advanced syntax is supported: '+5' rotates +5° every layer; '+5#5' rotates +5° every 5 layers. See the Wiki for details. When a template is set, the standard infill direction setting is ignored. Note: some infill patterns (e.g., Gyroid) control rotation themselves; use with care."
|
msgid "Rotate the sparse infill direction per layer using a template of angles. Enter comma-separated degrees (e.g., '0,30,60,90'). Angles are applied in order by layer and repeat when the list ends. Advanced syntax is supported: '+5' rotates +5° every layer; '+5#5' rotates +5° every 5 layers. See the Wiki for details. When a template is set, the standard infill direction setting is ignored. Note: some infill patterns (e.g., Gyroid) control rotation themselves; use with care."
|
||||||
msgstr "Gira a direção do preenchimento esparso por camada usando um gabarito de ângulos. Insira graus separados por vírgula (ex.: '0,30,60,90'). Os ângulos são aplicados em ordem por camada e repetidos quando a lista termina. Sintaxe avançada suportada: '+5' gira +5° a cada camada; '+5#5' gira +5° a cada 5 camadas. Consulte a Wiki para obter detalhes. Quando um modelo é definido, a configuração padrão de direção do preenchimento é ignorada. Nota: alguns padrões de preenchimento (ex.: Giróide) tem seu próprio controle de rotação, use com cuidado."
|
msgstr "Gira a direção do preenchimento esparso por camada usando um gabarito de ângulos. Insira graus separados por vírgula (por exemplo, '0, 30, 60, 90'). Os ângulos são aplicados em ordem por camada e repetidos quando a lista termina. Sintaxe avançada suportada: '+5' gira +5° a cada camada; '+5#5' gira +5° a cada 5 camadas. Consulte a Wiki para obter detalhes. Quando um modelo é definido, a configuração padrão de direção do preenchimento é ignorada. Observação: alguns padrões de preenchimento (por exemplo, Giróide) tem seu próprio controle de rotação, use com cuidado."
|
||||||
|
|
||||||
msgid "Solid infill rotation template"
|
msgid "Solid infill rotation template"
|
||||||
msgstr "Gabarito de rotação de preenchimento sólido"
|
msgstr "Gabarito de rotação de preenchimento sólido"
|
||||||
|
|
||||||
msgid "This parameter adds a rotation of solid infill direction to each layer according to the specified template. The template is a comma-separated list of angles in degrees, e.g. '0,90'. The first angle is applied to the first layer, the second angle to the second layer, and so on. If there are more layers than angles, the angles will be repeated. Note that not all solid infill patterns support rotation."
|
msgid "This parameter adds a rotation of solid infill direction to each layer according to the specified template. The template is a comma-separated list of angles in degrees, e.g. '0,90'. The first angle is applied to the first layer, the second angle to the second layer, and so on. If there are more layers than angles, the angles will be repeated. Note that not all solid infill patterns support rotation."
|
||||||
msgstr "Este parâmetro adiciona uma rotação da direção do preenchimento sólido a cada camada, de acordo com o gabarito especificado. O gabarito é uma lista de ângulos em graus separados por vírgulas, como '0,90'. O primeiro ângulo é aplicado à primeira camada, o segundo ângulo à segunda camada e assim por diante. Se houver mais camadas do que ângulos, os ângulos serão repetidos. Observe que nem todos os padrões de preenchimento sólido suportam rotação."
|
msgstr "Este parâmetro adiciona uma rotação da direção do preenchimento sólido a cada camada, de acordo com o gabarito especificado. O gabarito é uma lista de ângulos em graus separados por vírgulas, por exemplo, '0,90'. O primeiro ângulo é aplicado à primeira camada, o segundo ângulo à segunda camada e assim por diante. Se houver mais camadas do que ângulos, os ângulos serão repetidos. Observe que nem todos os padrões de preenchimento sólido suportam rotação."
|
||||||
|
|
||||||
msgid "Skeleton infill density"
|
msgid "Skeleton infill density"
|
||||||
msgstr "Densidade de preenchimento de esqueleto"
|
msgstr "Densidade de preenchimento de esqueleto"
|
||||||
@@ -15375,6 +15360,7 @@ msgstr "Força máxima do eixo Y"
|
|||||||
msgid "The allowed maximum output force of Y axis"
|
msgid "The allowed maximum output force of Y axis"
|
||||||
msgstr "A força máxima de saída permitida do eixo Y"
|
msgstr "A força máxima de saída permitida do eixo Y"
|
||||||
|
|
||||||
|
# AI Translated
|
||||||
msgctxt "Newton"
|
msgctxt "Newton"
|
||||||
msgid "N"
|
msgid "N"
|
||||||
msgstr "N"
|
msgstr "N"
|
||||||
@@ -15385,6 +15371,7 @@ msgstr "Massa da mesa do eixo Y"
|
|||||||
msgid "The machine bed mass load of Y axis"
|
msgid "The machine bed mass load of Y axis"
|
||||||
msgstr "A carga de massa da mesa do equipamento no eixo Y"
|
msgstr "A carga de massa da mesa do equipamento no eixo Y"
|
||||||
|
|
||||||
|
# AI Translated
|
||||||
msgctxt "gram"
|
msgctxt "gram"
|
||||||
msgid "g"
|
msgid "g"
|
||||||
msgstr "g"
|
msgstr "g"
|
||||||
@@ -15909,7 +15896,7 @@ msgid "Z-hop height"
|
|||||||
msgstr "Altura de Z-hop"
|
msgstr "Altura de Z-hop"
|
||||||
|
|
||||||
msgid "Whenever there is a retraction, the nozzle is lifted a little to create clearance between the nozzle and the print. This prevents the nozzle from hitting the print when traveling more. Using spiral lines to lift Z can prevent stringing."
|
msgid "Whenever there is a retraction, the nozzle is lifted a little to create clearance between the nozzle and the print. This prevents the nozzle from hitting the print when traveling more. Using spiral lines to lift Z can prevent stringing."
|
||||||
msgstr "Sempre que há uma retração, o bico é levantado um pouco para criar folga entre o bico e a impressão. Isso evita que o bico atinja a impressão ao se mover. Usar linhas em espiral para levantar Z pode evitar criação de fios."
|
msgstr "Sempre que há uma retração, o bico é levantado um pouco para criar folga entre o bico e a impressão. Isso evita que o bico atinja a impressão ao se mover. Usar linhas em espiral para levantar Z pode evitar stringing."
|
||||||
|
|
||||||
msgid "Z-hop lower boundary"
|
msgid "Z-hop lower boundary"
|
||||||
msgstr "Limite inferior do Z-hop"
|
msgstr "Limite inferior do Z-hop"
|
||||||
@@ -15990,7 +15977,7 @@ msgid "Has filament switcher"
|
|||||||
msgstr "Tem trocador de filamentos"
|
msgstr "Tem trocador de filamentos"
|
||||||
|
|
||||||
msgid "Printer has a filament switcher hardware (e.g., AMS)."
|
msgid "Printer has a filament switcher hardware (e.g., AMS)."
|
||||||
msgstr "A impressora tem um sistema de troca de filamentos (ex.: AMS)."
|
msgstr "A impressora tem um sistema de troca de filamentos (Ex.: AMS)."
|
||||||
|
|
||||||
msgid "Extra length on restart"
|
msgid "Extra length on restart"
|
||||||
msgstr "Comprimento extra na retração"
|
msgstr "Comprimento extra na retração"
|
||||||
@@ -16107,7 +16094,7 @@ msgid "Scarf joint speed"
|
|||||||
msgstr "Velocidade da costura em bisel"
|
msgstr "Velocidade da costura em bisel"
|
||||||
|
|
||||||
msgid "This option sets the printing speed for scarf joints. It is recommended to print scarf joints at a slow speed (less than 100 mm/s). It's also advisable to enable 'Extrusion rate smoothing' if the set speed varies significantly from the speed of the outer or inner walls. If the speed specified here is higher than the speed of the outer or inner walls, the printer will default to the slower of the two speeds. When specified as a percentage (e.g., 80%), the speed is calculated based on the respective outer or inner wall speed. The default value is set to 100%."
|
msgid "This option sets the printing speed for scarf joints. It is recommended to print scarf joints at a slow speed (less than 100 mm/s). It's also advisable to enable 'Extrusion rate smoothing' if the set speed varies significantly from the speed of the outer or inner walls. If the speed specified here is higher than the speed of the outer or inner walls, the printer will default to the slower of the two speeds. When specified as a percentage (e.g., 80%), the speed is calculated based on the respective outer or inner wall speed. The default value is set to 100%."
|
||||||
msgstr "Esta opção define a velocidade de impressão para as costuras em bisel. É recomendável imprimir as costuras em bisel em uma velocidade baixa (menor que 100 mm/s). Também é aconselhável habilitar 'Suavização da taxa de extrusão' se a velocidade definida variar significativamente da velocidade das paredes externas ou internas. Se a velocidade especificada aqui for maior que a velocidade das paredes externas ou internas, a impressora utilizará a mais lenta das duas velocidades. Quando especificado como uma porcentagem (ex.: 80%), a velocidade é calculada com base na velocidade do perímetro externo ou interna respectiva. O valor padrão é definido como 100%."
|
msgstr "Esta opção define a velocidade de impressão para as costuras em bisel. É recomendável imprimir as costuras em bisel em uma velocidade baixa (menor que 100 mm/s). Também é aconselhável habilitar 'Suavização da taxa de extrusão' se a velocidade definida variar significativamente da velocidade das paredes externas ou internas. Se a velocidade especificada aqui for maior que a velocidade das paredes externas ou internas, a impressora utilizará a mais lenta das duas velocidades. Quando especificado como uma porcentagem (por exemplo, 80%), a velocidade é calculada com base na velocidade do perímetro externo ou interna respectiva. O valor padrão é definido como 100%."
|
||||||
|
|
||||||
msgid "Scarf joint flow ratio"
|
msgid "Scarf joint flow ratio"
|
||||||
msgstr "Taxa de fluxo da costura em bisel"
|
msgstr "Taxa de fluxo da costura em bisel"
|
||||||
@@ -16177,7 +16164,7 @@ msgid "Wipe speed"
|
|||||||
msgstr "Velocidade de limpeza"
|
msgstr "Velocidade de limpeza"
|
||||||
|
|
||||||
msgid "The wipe speed is determined by the speed setting specified in this configuration. If the value is expressed as a percentage (e.g. 80%), it will be calculated based on the travel speed setting above. The default value for this parameter is 80%."
|
msgid "The wipe speed is determined by the speed setting specified in this configuration. If the value is expressed as a percentage (e.g. 80%), it will be calculated based on the travel speed setting above. The default value for this parameter is 80%."
|
||||||
msgstr "A velocidade de limpeza é determinada pela velocidade especificada nesta configuração. Se o valor for expresso como uma porcentagem (ex.: 80%), será calculado com base na configuração de velocidade de deslocamento acima. O valor padrão para este parâmetro é 80%."
|
msgstr "A velocidade de limpeza é determinada pela velocidade especificada nesta configuração. Se o valor for expresso como uma porcentagem (por exemplo, 80%), será calculado com base na configuração de velocidade de deslocamento acima. O valor padrão para este parâmetro é 80%."
|
||||||
|
|
||||||
msgid "Skirt distance"
|
msgid "Skirt distance"
|
||||||
msgstr "Distância da saia"
|
msgstr "Distância da saia"
|
||||||
@@ -16215,7 +16202,7 @@ msgstr ""
|
|||||||
"Um escudo de ar é útil para proteger uma impressão ABS ou ASA de deformações e desprendimento da mesa de impressão devido à corrente de ar. Geralmente, ele é necessário apenas com impressoras de estrutura aberta, ou seja, sem um gabinete.\n"
|
"Um escudo de ar é útil para proteger uma impressão ABS ou ASA de deformações e desprendimento da mesa de impressão devido à corrente de ar. Geralmente, ele é necessário apenas com impressoras de estrutura aberta, ou seja, sem um gabinete.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"Habilitado = a saia é tão alta quanto o objeto impresso mais alto. Caso contrário, 'Altura da saia' é usada.\n"
|
"Habilitado = a saia é tão alta quanto o objeto impresso mais alto. Caso contrário, 'Altura da saia' é usada.\n"
|
||||||
"Nota: com o escudo de ar ativo, a saia será impressa na distância da saia do objeto. Portanto, se as bordas estiverem ativas, ela pode se cruzar com elas. Para evitar isso, aumente o valor da distância da saia.\n"
|
"Observação: com o escudo de ar ativo, a saia será impressa na distância da saia do objeto. Portanto, se as bordas estiverem ativas, ela pode se cruzar com elas. Para evitar isso, aumente o valor da distância da saia.\n"
|
||||||
|
|
||||||
msgid "Enabled"
|
msgid "Enabled"
|
||||||
msgstr "Ativado"
|
msgstr "Ativado"
|
||||||
@@ -16356,10 +16343,10 @@ msgid "Preheat steps"
|
|||||||
msgstr "Passos de pré-aquecimento"
|
msgstr "Passos de pré-aquecimento"
|
||||||
|
|
||||||
msgid "Insert multiple preheat commands (e.g. M104.1). Only useful for Prusa XL. For other printers, please set it to 1."
|
msgid "Insert multiple preheat commands (e.g. M104.1). Only useful for Prusa XL. For other printers, please set it to 1."
|
||||||
msgstr "Insire múltiplos comandos de pré-aquecimento (ex.: M104.1). Útil apenas para Prusa XL. Para outras impressoras, defina como 1."
|
msgstr "Insire múltiplos comandos de pré-aquecimento (por exemplo, M104.1). Útil apenas para Prusa XL. Para outras impressoras, defina como 1."
|
||||||
|
|
||||||
msgid "G-code written at the very top of the output file, before any other content. Useful for adding metadata that printer firmware reads from the first lines of the file (e.g. estimated print time, filament usage). Supports placeholders like {print_time_sec} and {used_filament_length}."
|
msgid "G-code written at the very top of the output file, before any other content. Useful for adding metadata that printer firmware reads from the first lines of the file (e.g. estimated print time, filament usage). Supports placeholders like {print_time_sec} and {used_filament_length}."
|
||||||
msgstr "Código G escrito no início do arquivo de saída, antes de qualquer outro conteúdo. Útil para adicionar metadados que o firmware da impressora lê das primeiras linhas do arquivo (ex.: tempo estimado de impressão, consumo de filamento). Suporta marcadores como {print_time_sec} e {used_filament_length}."
|
msgstr "Código G escrito no início do arquivo de saída, antes de qualquer outro conteúdo. Útil para adicionar metadados que o firmware da impressora lê das primeiras linhas do arquivo (por exemplo, tempo estimado de impressão, consumo de filamento). Suporta marcadores como {print_time_sec} e {used_filament_length}."
|
||||||
|
|
||||||
msgid "Start G-code"
|
msgid "Start G-code"
|
||||||
msgstr "G-code Inicial"
|
msgstr "G-code Inicial"
|
||||||
@@ -16380,7 +16367,7 @@ msgid "Manual Filament Change"
|
|||||||
msgstr "Troca Manual de Filamento"
|
msgstr "Troca Manual de Filamento"
|
||||||
|
|
||||||
msgid "Enable this option to omit the custom Change filament G-code only at the beginning of the print. The tool change command (e.g., T0) will be skipped throughout the entire print. This is useful for manual multi-material printing, where we use M600/PAUSE to trigger the manual filament change action."
|
msgid "Enable this option to omit the custom Change filament G-code only at the beginning of the print. The tool change command (e.g., T0) will be skipped throughout the entire print. This is useful for manual multi-material printing, where we use M600/PAUSE to trigger the manual filament change action."
|
||||||
msgstr "Ative esta opção para omitir o G-code de troca de filamento personalizado apenas no início da impressão. O comando de troca de ferramenta (ex.: T0) será ignorado durante toda a impressão. Isso é útil para impressão manual de vários materiais, onde usamos M600/PAUSE para acionar a ação de troca manual de filamento."
|
msgstr "Ative esta opção para omitir o G-code de troca de filamento personalizado apenas no início da impressão. O comando de troca de ferramenta (por exemplo, T0) será ignorado durante toda a impressão. Isso é útil para impressão manual de vários materiais, onde usamos M600/PAUSE para acionar a ação de troca manual de filamento."
|
||||||
|
|
||||||
msgid "Wipe tower type"
|
msgid "Wipe tower type"
|
||||||
msgstr "Tipo de torre de purga"
|
msgstr "Tipo de torre de purga"
|
||||||
@@ -16936,9 +16923,11 @@ msgstr ""
|
|||||||
"\n"
|
"\n"
|
||||||
"Definir um valor na configuração de quantidade de retração antes da limpeza abaixo executará qualquer retração em excesso antes da limpeza, caso contrário, será realizada após."
|
"Definir um valor na configuração de quantidade de retração antes da limpeza abaixo executará qualquer retração em excesso antes da limpeza, caso contrário, será realizada após."
|
||||||
|
|
||||||
|
# AI Translated
|
||||||
msgid "Mixed color sublayer"
|
msgid "Mixed color sublayer"
|
||||||
msgstr "Subcamada de cor mista"
|
msgstr "Subcamada de cor mista"
|
||||||
|
|
||||||
|
# AI Translated
|
||||||
msgid "Enable mixed color sublayer splitting. When enabled, layers containing mixed color filaments will be split into sub-layers to achieve color mixing effects."
|
msgid "Enable mixed color sublayer splitting. When enabled, layers containing mixed color filaments will be split into sub-layers to achieve color mixing effects."
|
||||||
msgstr "Ativa a divisão em subcamadas de cor mista. Quando ativado, as camadas que contêm filamentos de cor mista são divididas em subcamadas para obter efeitos de mistura de cores."
|
msgstr "Ativa a divisão em subcamadas de cor mista. Quando ativado, as camadas que contêm filamentos de cor mista são divididas em subcamadas para obter efeitos de mistura de cores."
|
||||||
|
|
||||||
@@ -17998,8 +17987,9 @@ msgstr "A geração da malha do arquivo do modelo falhou ou não há forma váli
|
|||||||
msgid "The supplied file couldn't be read because it's empty."
|
msgid "The supplied file couldn't be read because it's empty."
|
||||||
msgstr "O arquivo fornecido não pôde ser lido porque está vazio."
|
msgstr "O arquivo fornecido não pôde ser lido porque está vazio."
|
||||||
|
|
||||||
|
# AI Translated
|
||||||
msgid "The file format is incompatible and cannot be parsed."
|
msgid "The file format is incompatible and cannot be parsed."
|
||||||
msgstr "O formato do arquivo é incompatível e não pode ser processado."
|
msgstr "O formato do arquivo é incompatível e não pode ser lido."
|
||||||
|
|
||||||
msgid "Unknown file format: input file must have .stl, .obj, or .amf(.xml) extension."
|
msgid "Unknown file format: input file must have .stl, .obj, or .amf(.xml) extension."
|
||||||
msgstr "Formato de arquivo desconhecido: o arquivo de entrada deve ter extensão .stl, .obj, .amf(.xml)."
|
msgstr "Formato de arquivo desconhecido: o arquivo de entrada deve ter extensão .stl, .obj, .amf(.xml)."
|
||||||
@@ -18008,10 +17998,10 @@ msgid "Unknown file format: input file must have .3mf or .zip.amf extension."
|
|||||||
msgstr "Formato de arquivo desconhecido: o arquivo de entrada deve ter extensão .3mf ou .zip.amf."
|
msgstr "Formato de arquivo desconhecido: o arquivo de entrada deve ter extensão .3mf ou .zip.amf."
|
||||||
|
|
||||||
msgid "load_obj: failed to parse"
|
msgid "load_obj: failed to parse"
|
||||||
msgstr "load_obj: falha ao processar"
|
msgstr "load_obj: falha ao analisar"
|
||||||
|
|
||||||
msgid "load mtl in obj: failed to parse"
|
msgid "load mtl in obj: failed to parse"
|
||||||
msgstr "carregar mtl em obj: falha ao processsar"
|
msgstr "carregar mtl em obj: falha ao analisar"
|
||||||
|
|
||||||
msgid "The file contains polygons with more than 4 vertices."
|
msgid "The file contains polygons with more than 4 vertices."
|
||||||
msgstr "O arquivo contém polígonos com mais de 4 vértices."
|
msgstr "O arquivo contém polígonos com mais de 4 vértices."
|
||||||
@@ -19125,7 +19115,7 @@ msgid "Serial"
|
|||||||
msgstr "Série"
|
msgstr "Série"
|
||||||
|
|
||||||
msgid "e.g. Basic, Matte, Silk, Marble"
|
msgid "e.g. Basic, Matte, Silk, Marble"
|
||||||
msgstr "Ex.: Básico, Fosco, Seda, Mármore"
|
msgstr "por exemplo, Básico, Fosco, Seda, Mármore"
|
||||||
|
|
||||||
msgid "Filament Preset"
|
msgid "Filament Preset"
|
||||||
msgstr "Predefinição de Filamento"
|
msgstr "Predefinição de Filamento"
|
||||||
@@ -19806,7 +19796,7 @@ msgid "Error. Can't get API token for authorization"
|
|||||||
msgstr "Erro. Não foi possível obter o token de API para autorização"
|
msgstr "Erro. Não foi possível obter o token de API para autorização"
|
||||||
|
|
||||||
msgid "Could not parse server response."
|
msgid "Could not parse server response."
|
||||||
msgstr "Não foi possível processar a resposta do servidor."
|
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"
|
||||||
@@ -19874,7 +19864,7 @@ msgstr "O host respondeu, mas não parece ser o Moonraker (falta o result.klippy
|
|||||||
|
|
||||||
#, c-format, boost-format
|
#, c-format, boost-format
|
||||||
msgid "Could not parse Moonraker server response: %s"
|
msgid "Could not parse Moonraker server response: %s"
|
||||||
msgstr "Não foi possível processar a resposta do servidor Moonraker: %s"
|
msgstr "Não foi possível analisar a resposta do servidor Moonraker: %s"
|
||||||
|
|
||||||
msgid "Connection to OctoPrint is working correctly."
|
msgid "Connection to OctoPrint is working correctly."
|
||||||
msgstr "A conexão com o OctoPrint funciona corretamente."
|
msgstr "A conexão com o OctoPrint funciona corretamente."
|
||||||
@@ -20248,6 +20238,7 @@ msgstr "Removido"
|
|||||||
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"
|
||||||
|
|
||||||
|
# AI Translated
|
||||||
msgid "File Saving"
|
msgid "File Saving"
|
||||||
msgstr "Salvamento de Arquivo"
|
msgstr "Salvamento de Arquivo"
|
||||||
|
|
||||||
@@ -20434,7 +20425,7 @@ msgid "Connection timed out. Please check if the printer and computer network ar
|
|||||||
msgstr "Limite de tempo de conexão esgotado. Verifique se a impressora e a rede do computador estão funcionando corretamente e confirme se estão na mesma rede."
|
msgstr "Limite de tempo de conexão esgotado. Verifique se a impressora e a rede do computador estão funcionando corretamente e confirme se estão na mesma rede."
|
||||||
|
|
||||||
msgid "The Hostname/IP/URL could not be parsed, please check it and try again."
|
msgid "The Hostname/IP/URL could not be parsed, please check it and try again."
|
||||||
msgstr "Não foi possível processar o Hostname/IP/URL; verifique-o e tente novamente."
|
msgstr "Não foi possível decifrar o Hostname/IP/URL; verifique-o e tente novamente."
|
||||||
|
|
||||||
msgid "File/data transfer interrupted. Please check the printer and network, then try it again."
|
msgid "File/data transfer interrupted. Please check the printer and network, then try it again."
|
||||||
msgstr "Transferência de arquivo/dados interrompida. Verifique a impressora e a rede e tente novamente."
|
msgstr "Transferência de arquivo/dados interrompida. Verifique a impressora e a rede e tente novamente."
|
||||||
@@ -20531,15 +20522,6 @@ msgstr "Esta ação não pode ser desfeita. Continuar?"
|
|||||||
msgid "Skipping objects."
|
msgid "Skipping objects."
|
||||||
msgstr "Ignorando objetos."
|
msgstr "Ignorando objetos."
|
||||||
|
|
||||||
msgid "Material Ratio"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Model Height"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Ratio"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Select Filament"
|
msgid "Select Filament"
|
||||||
msgstr "Selecionar Filamento"
|
msgstr "Selecionar Filamento"
|
||||||
|
|
||||||
@@ -21217,6 +21199,15 @@ msgstr ""
|
|||||||
#~ msgid "Your system is missing H.264 codecs for GStreamer, which are required to play video. (Try installing the gstreamer1.0-plugins-bad or gstreamer1.0-libav packages, then restart Orca Slicer?)"
|
#~ msgid "Your system is missing H.264 codecs for GStreamer, which are required to play video. (Try installing the gstreamer1.0-plugins-bad or gstreamer1.0-libav packages, then restart Orca Slicer?)"
|
||||||
#~ msgstr "Seu sistema não possui codecs H.264 para o GStreamer, que são necessários para reproduzir vídeos. (Tente instalar os pacotes gstreamer1.0-plugins-bad ou gstreamer1.0-libav e depois reinicie o OrcaSlicer?)"
|
#~ msgstr "Seu sistema não possui codecs H.264 para o GStreamer, que são necessários para reproduzir vídeos. (Tente instalar os pacotes gstreamer1.0-plugins-bad ou gstreamer1.0-libav e depois reinicie o OrcaSlicer?)"
|
||||||
|
|
||||||
|
#~ msgid "N"
|
||||||
|
#~ msgstr "N"
|
||||||
|
|
||||||
|
#~ msgid "g"
|
||||||
|
#~ msgstr "g"
|
||||||
|
|
||||||
|
#~ msgid "Fila Saving"
|
||||||
|
#~ msgstr "Econo Filamento"
|
||||||
|
|
||||||
#~ msgid ""
|
#~ msgid ""
|
||||||
#~ "Layer height is too small.\n"
|
#~ "Layer height is too small.\n"
|
||||||
#~ "It will set to min_layer_height\n"
|
#~ "It will set to min_layer_height\n"
|
||||||
@@ -21544,7 +21535,7 @@ msgstr ""
|
|||||||
#~ "Pontes externas de menor densidade podem ajudar a melhorar a confiabilidade, pois há mais espaço para o ar circular ao redor da ponte extrudada, melhorando sua velocidade de resfriamento. O mínimo é 10%.\n"
|
#~ "Pontes externas de menor densidade podem ajudar a melhorar a confiabilidade, pois há mais espaço para o ar circular ao redor da ponte extrudada, melhorando sua velocidade de resfriamento. O mínimo é 10%.\n"
|
||||||
#~ "\n"
|
#~ "\n"
|
||||||
#~ "Densidades mais altas podem produzir superfícies de ponte mais lisas, pois as linhas sobrepostas fornecem suporte adicional durante a impressão. O máximo é 120%.\n"
|
#~ "Densidades mais altas podem produzir superfícies de ponte mais lisas, pois as linhas sobrepostas fornecem suporte adicional durante a impressão. O máximo é 120%.\n"
|
||||||
#~ "Nota: Densidade de ponte muito alta pode causar deformação ou sobrextrusão."
|
#~ "Observação: Densidade de ponte muito alta pode causar deformação ou sobrextrusão."
|
||||||
|
|
||||||
#~ msgid ""
|
#~ msgid ""
|
||||||
#~ "Controls the density (spacing) of internal bridge lines. 100% means solid bridge. Default is 100%.\n"
|
#~ "Controls the density (spacing) of internal bridge lines. 100% means solid bridge. Default is 100%.\n"
|
||||||
@@ -21589,7 +21580,7 @@ msgstr ""
|
|||||||
#~ "\n"
|
#~ "\n"
|
||||||
#~ "Geralmente, é recomendável ter esta opção ativada, a menos que o resfriamento da impressora seja potente o suficiente ou a velocidade de impressão lenta o suficiente para que a curvatura do perímetro não aconteça. Se estiver imprimindo com uma alta velocidade de perímetro externo, este parâmetro pode introduzir pequenos artefatos ao desacelerar devido à grande variação nas velocidades de impressão. Se você notar artefatos, certifique-se de que seu pressure advance esteja ajustado corretamente.\n"
|
#~ "Geralmente, é recomendável ter esta opção ativada, a menos que o resfriamento da impressora seja potente o suficiente ou a velocidade de impressão lenta o suficiente para que a curvatura do perímetro não aconteça. Se estiver imprimindo com uma alta velocidade de perímetro externo, este parâmetro pode introduzir pequenos artefatos ao desacelerar devido à grande variação nas velocidades de impressão. Se você notar artefatos, certifique-se de que seu pressure advance esteja ajustado corretamente.\n"
|
||||||
#~ "\n"
|
#~ "\n"
|
||||||
#~ "Nota: quando esta opção estiver habilitada, os perímetros de saliência são tratados como saliências, o que significa que a velocidade de saliência é aplicada mesmo se o perímetro de saliência for parte de uma ponte. Por exemplo, quando os perímetros estiverem 100% salientes, sem nenhuma parede apoiando-os por baixo, a velocidade de saliência de 100% será aplicada."
|
#~ "Observação: quando esta opção estiver habilitada, os perímetros de saliência são tratados como saliências, o que significa que a velocidade de saliência é aplicada mesmo se o perímetro de saliência for parte de uma ponte. Por exemplo, quando os perímetros estiverem 100% salientes, sem nenhuma parede apoiando-os por baixo, a velocidade de saliência de 100% será aplicada."
|
||||||
|
|
||||||
#~ msgid "If enabled, bridges are more reliable, can bridge longer distances, but may look worse. If disabled, bridges look better but are reliable just for shorter bridged distances."
|
#~ msgid "If enabled, bridges are more reliable, can bridge longer distances, but may look worse. If disabled, bridges look better but are reliable just for shorter bridged distances."
|
||||||
#~ msgstr "Se ativado, as pontes são mais confiáveis, podem cobrir distâncias maiores, mas podem parecer piores. Se desativado, as pontes ficam melhores, mas são confiáveis apenas para distâncias de ponte mais curtas."
|
#~ msgstr "Se ativado, as pontes são mais confiáveis, podem cobrir distâncias maiores, mas podem parecer piores. Se desativado, as pontes ficam melhores, mas são confiáveis apenas para distâncias de ponte mais curtas."
|
||||||
@@ -22509,7 +22500,7 @@ msgstr ""
|
|||||||
#~ msgstr "Contagem máxima de projetos recentes"
|
#~ msgstr "Contagem máxima de projetos recentes"
|
||||||
|
|
||||||
#~ msgid "This parameter adds a rotation of sparse infill direction to each layer according to the specified template. The template is a comma-separated list of angles in degrees, e.g. '0,90'. The first angle is applied to the first layer, the second angle to the second layer, and so on. If there are more layers than angles, the angles will be repeated. Note that not all sparse infill patterns support rotation."
|
#~ msgid "This parameter adds a rotation of sparse infill direction to each layer according to the specified template. The template is a comma-separated list of angles in degrees, e.g. '0,90'. The first angle is applied to the first layer, the second angle to the second layer, and so on. If there are more layers than angles, the angles will be repeated. Note that not all sparse infill patterns support rotation."
|
||||||
#~ msgstr "Este parâmetro adiciona uma rotação na direção do preenchimento esparso a cada camada, de acordo com o gabarito especificado. O gabarito é uma lista de ângulos em graus separados por vírgulas, como '0,90'. O primeiro ângulo é aplicado à primeira camada, o segundo ângulo à segunda camada e assim por diante. Se houver mais camadas do que ângulos, os ângulos serão repetidos. Observe que nem todos os padrões de preenchimento esparso suportam rotação."
|
#~ msgstr "Este parâmetro adiciona uma rotação na direção do preenchimento esparso a cada camada, de acordo com o gabarito especificado. O gabarito é uma lista de ângulos em graus separados por vírgulas, por exemplo, '0,90'. O primeiro ângulo é aplicado à primeira camada, o segundo ângulo à segunda camada e assim por diante. Se houver mais camadas do que ângulos, os ângulos serão repetidos. Observe que nem todos os padrões de preenchimento esparso suportam rotação."
|
||||||
|
|
||||||
#~ msgid "Set Position"
|
#~ msgid "Set Position"
|
||||||
#~ msgstr "Definir Posição"
|
#~ msgstr "Definir Posição"
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: OrcaSlicer V2.5.0\n"
|
"Project-Id-Version: OrcaSlicer V2.5.0\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2026-09-03 10:27+0800\n"
|
"POT-Creation-Date: 2026-09-02 09:39-0300\n"
|
||||||
"PO-Revision-Date: 2026-02-25 13:38+0300\n"
|
"PO-Revision-Date: 2026-02-25 13:38+0300\n"
|
||||||
"Last-Translator: Felix14_v2\n"
|
"Last-Translator: Felix14_v2\n"
|
||||||
"Language-Team: Felix14_v2 (ДС/ТГ: @felix14_v2, почта: aleks111001@list.ru), Andylg <andylg@yandex.ru>\n"
|
"Language-Team: Felix14_v2 (ДС/ТГ: @felix14_v2, почта: aleks111001@list.ru), Andylg <andylg@yandex.ru>\n"
|
||||||
@@ -2431,6 +2431,8 @@ msgstr "Доступно обновление. Проверьте меню па
|
|||||||
msgid "%s has been removed."
|
msgid "%s has been removed."
|
||||||
msgstr "%s был удалён."
|
msgstr "%s был удалён."
|
||||||
|
|
||||||
|
msgid "Switching application language"
|
||||||
|
msgstr "Изменение языка приложения"
|
||||||
|
|
||||||
msgid "Select the language"
|
msgid "Select the language"
|
||||||
msgstr "Выбор языка"
|
msgstr "Выбор языка"
|
||||||
@@ -4889,11 +4891,6 @@ msgid ""
|
|||||||
"No - Cancel enabling spiral mode"
|
"No - Cancel enabling spiral mode"
|
||||||
msgstr "Использовать эти настройки и режим вазы?"
|
msgstr "Использовать эти настройки и режим вазы?"
|
||||||
|
|
||||||
# Не знаю, как и почему, но это, похоже, исправляет "вопросики" вместо
|
|
||||||
# символов
|
|
||||||
msgid "N/A"
|
|
||||||
msgstr "–"
|
|
||||||
|
|
||||||
msgid "Printing"
|
msgid "Printing"
|
||||||
msgstr "Печать"
|
msgstr "Печать"
|
||||||
|
|
||||||
@@ -5335,9 +5332,13 @@ msgstr "Значение %s выходит за пределы допустим
|
|||||||
|
|
||||||
#, c-format, boost-format
|
#, c-format, boost-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Is it %s%% or %s %s?"
|
"Is it %s%% or %s %s?\n"
|
||||||
|
"YES for %s%%, \n"
|
||||||
|
"NO for %s %s."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Имелось ввиду %s%% или %s %s?"
|
"Имелось ввиду %s%%? (введено %s %s)\n"
|
||||||
|
"Да – изменить на %s%%\n"
|
||||||
|
"Нет – оставить %s %s."
|
||||||
|
|
||||||
#, boost-format
|
#, boost-format
|
||||||
msgid "Invalid input format. Expected vector of dimensions in the following format: \"%1%\""
|
msgid "Invalid input format. Expected vector of dimensions in the following format: \"%1%\""
|
||||||
@@ -5359,6 +5360,11 @@ msgstr "Недопустимый шаблон. Используйте N, N#K и
|
|||||||
msgid "Invalid format. Expected vector format: \"%1%\""
|
msgid "Invalid format. Expected vector format: \"%1%\""
|
||||||
msgstr "Недопустимый формат. Ожидаемый векторный формат: \"%1%\""
|
msgstr "Недопустимый формат. Ожидаемый векторный формат: \"%1%\""
|
||||||
|
|
||||||
|
# Не знаю, как и почему, но это, похоже, исправляет "вопросики" вместо
|
||||||
|
# символов
|
||||||
|
msgid "N/A"
|
||||||
|
msgstr "–"
|
||||||
|
|
||||||
msgid "System agents"
|
msgid "System agents"
|
||||||
msgstr "Системные агенты"
|
msgstr "Системные агенты"
|
||||||
|
|
||||||
@@ -6372,12 +6378,6 @@ msgstr "Сохранить проект как"
|
|||||||
msgid "Save current project as"
|
msgid "Save current project as"
|
||||||
msgstr "Сохранить текущий проект как"
|
msgstr "Сохранить текущий проект как"
|
||||||
|
|
||||||
msgid "Publish 3MF"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Export a 3MF file with the selected settings embedded"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Import 3MF/STL/STEP/SVG/OBJ/AMF"
|
msgid "Import 3MF/STL/STEP/SVG/OBJ/AMF"
|
||||||
msgstr "Импорт 3MF/STL/STEP/SVG/OBJ/AMF"
|
msgstr "Импорт 3MF/STL/STEP/SVG/OBJ/AMF"
|
||||||
|
|
||||||
@@ -8212,12 +8212,6 @@ msgstr "Во избежание повреждения принтера убед
|
|||||||
msgid "Customized Preset"
|
msgid "Customized Preset"
|
||||||
msgstr "Пользовательский профиль"
|
msgstr "Пользовательский профиль"
|
||||||
|
|
||||||
msgid "Some published settings could not be applied:"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Some filament slots were changed:"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Component name(s) inside step file not in UTF-8 format!"
|
msgid "Component name(s) inside step file not in UTF-8 format!"
|
||||||
msgstr "Имена компонентов внутри файла STEP не в формате UTF-8."
|
msgstr "Имена компонентов внутри файла STEP не в формате UTF-8."
|
||||||
|
|
||||||
@@ -8630,17 +8624,6 @@ msgstr "Сохранить нарезанный файл как:"
|
|||||||
msgid "The file %s has been sent to the printer's storage space and can be viewed on the printer."
|
msgid "The file %s has been sent to the printer's storage space and can be viewed on the printer."
|
||||||
msgstr "Файл %s отправлен в память принтера и может быть просмотрен на нём."
|
msgstr "Файл %s отправлен в память принтера и может быть просмотрен на нём."
|
||||||
|
|
||||||
msgid "Publish 3MF file as:"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid ""
|
|
||||||
"Failed to export the published 3MF file.\n"
|
|
||||||
"Please check whether the folder exists online or if other programs have the file open."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish"
|
|
||||||
msgstr "Опубликовать"
|
|
||||||
|
|
||||||
msgid "The nozzle type is not set. Please set the nozzle and try again."
|
msgid "The nozzle type is not set. Please set the nozzle and try again."
|
||||||
msgstr "Не указан тип сопла. Укажите его и попробуйте ещё раз."
|
msgstr "Не указан тип сопла. Укажите его и попробуйте ещё раз."
|
||||||
|
|
||||||
@@ -8846,6 +8829,8 @@ msgstr "Хотите продолжить?"
|
|||||||
msgid "Language selection"
|
msgid "Language selection"
|
||||||
msgstr "Выбор языка"
|
msgstr "Выбор языка"
|
||||||
|
|
||||||
|
msgid "Switching application language while some presets are modified."
|
||||||
|
msgstr "Смена языка приложения при изменении некоторых профилей."
|
||||||
|
|
||||||
msgid "Asia-Pacific"
|
msgid "Asia-Pacific"
|
||||||
msgstr "Азиатско-Тихоокеанский"
|
msgstr "Азиатско-Тихоокеанский"
|
||||||
@@ -9785,6 +9770,9 @@ msgstr "Перейти на веб-страницу публикации мод
|
|||||||
msgid "Note: The preparation may take several minutes. Please be patient."
|
msgid "Note: The preparation may take several minutes. Please be patient."
|
||||||
msgstr "Примечание: подготовка может занять несколько минут. Пожалуйста, наберитесь терпения."
|
msgstr "Примечание: подготовка может занять несколько минут. Пожалуйста, наберитесь терпения."
|
||||||
|
|
||||||
|
msgid "Publish"
|
||||||
|
msgstr "Опубликовать"
|
||||||
|
|
||||||
msgid "Publish was canceled"
|
msgid "Publish was canceled"
|
||||||
msgstr "Публикация была отменена"
|
msgstr "Публикация была отменена"
|
||||||
|
|
||||||
@@ -9800,64 +9788,6 @@ msgstr "Отправка данных"
|
|||||||
msgid "Jump to webpage"
|
msgid "Jump to webpage"
|
||||||
msgstr "Перейти на страницу"
|
msgstr "Перейти на страницу"
|
||||||
|
|
||||||
msgid "Material"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Mixed filament"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Some mixed filaments rely on filaments that will not be published:"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#, c-format, boost-format
|
|
||||||
msgid "Filament %d (mixed)"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "needs"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "not enabled"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "material not published"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "To publish a mixed filament, enable every filament it uses and choose Full Publish or check its Type requirement."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish anyway"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish 3MF..."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Select which settings to be published in the 3MF file"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish 3MF Wiki"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish 3MF Video Guide"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Mixed filament - published as a whole when \"Enable\" above is selected"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish this mixed filament and enable + Full Publish its component filaments"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish this filament slot in the 3MF file"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Full Publish"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Embed the entire filament of this slot in the 3MF file"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Filter non-selected"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#, c-format, boost-format
|
#, c-format, boost-format
|
||||||
msgid "Save %s as"
|
msgid "Save %s as"
|
||||||
msgstr "Сохранить %s как"
|
msgstr "Сохранить %s как"
|
||||||
@@ -21611,15 +21541,6 @@ msgstr "Это действие необратимо. Продолжить?"
|
|||||||
msgid "Skipping objects."
|
msgid "Skipping objects."
|
||||||
msgstr "Исключение объектов."
|
msgstr "Исключение объектов."
|
||||||
|
|
||||||
msgid "Material Ratio"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Model Height"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Ratio"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Select Filament"
|
msgid "Select Filament"
|
||||||
msgstr "Выбрать материал"
|
msgstr "Выбрать материал"
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: Orca Slicer\n"
|
"Project-Id-Version: Orca Slicer\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2026-09-03 10:27+0800\n"
|
"POT-Creation-Date: 2026-09-02 09:39-0300\n"
|
||||||
"Language: sv\n"
|
"Language: sv\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
@@ -2767,6 +2767,8 @@ msgstr "Det finns en uppdatering tillgänglig. Öppna dialogrutan för förinst
|
|||||||
msgid "%s has been removed."
|
msgid "%s has been removed."
|
||||||
msgstr "%s har tagits bort."
|
msgstr "%s har tagits bort."
|
||||||
|
|
||||||
|
msgid "Switching application language"
|
||||||
|
msgstr "Byt applikationsspråk"
|
||||||
|
|
||||||
msgid "Select the language"
|
msgid "Select the language"
|
||||||
msgstr "Välj språk"
|
msgstr "Välj språk"
|
||||||
@@ -5385,10 +5387,6 @@ msgstr ""
|
|||||||
"JA -Ändra dessa inställningar och möjliggör Spiral läge automatiskt\n"
|
"JA -Ändra dessa inställningar och möjliggör Spiral läge automatiskt\n"
|
||||||
"NEJ -Avbryt Spiral läge denna gång"
|
"NEJ -Avbryt Spiral läge denna gång"
|
||||||
|
|
||||||
# AI Translated
|
|
||||||
msgid "N/A"
|
|
||||||
msgstr "Ej tillämpligt"
|
|
||||||
|
|
||||||
msgid "Printing"
|
msgid "Printing"
|
||||||
msgstr "Utskrift pågår"
|
msgstr "Utskrift pågår"
|
||||||
|
|
||||||
@@ -5905,9 +5903,13 @@ msgstr "Värdet %s ligger utanför intervallet. Giltigt intervall är från %d t
|
|||||||
|
|
||||||
#, c-format, boost-format
|
#, c-format, boost-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Is it %s%% or %s %s?"
|
"Is it %s%% or %s %s?\n"
|
||||||
|
"YES for %s%%, \n"
|
||||||
|
"NO for %s %s."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Det är %s%% eller %s %s?"
|
"Det är %s%% eller %s %s?\n"
|
||||||
|
"JA för %s%%, \n"
|
||||||
|
"NEJ för %s %s."
|
||||||
|
|
||||||
# AI Translated
|
# AI Translated
|
||||||
#, boost-format
|
#, boost-format
|
||||||
@@ -5934,6 +5936,10 @@ msgstr "Ogiltigt mönster. Använd N, N#K eller en kommaseparerad lista med valf
|
|||||||
msgid "Invalid format. Expected vector format: \"%1%\""
|
msgid "Invalid format. Expected vector format: \"%1%\""
|
||||||
msgstr "Ogiltligt format. Förväntat vector format: \"%1%\""
|
msgstr "Ogiltligt format. Förväntat vector format: \"%1%\""
|
||||||
|
|
||||||
|
# AI Translated
|
||||||
|
msgid "N/A"
|
||||||
|
msgstr "Ej tillämpligt"
|
||||||
|
|
||||||
# AI Translated
|
# AI Translated
|
||||||
msgid "System agents"
|
msgid "System agents"
|
||||||
msgstr "Systemagenter"
|
msgstr "Systemagenter"
|
||||||
@@ -6966,12 +6972,6 @@ msgstr "Spara Projekt som"
|
|||||||
msgid "Save current project as"
|
msgid "Save current project as"
|
||||||
msgstr "Spara nuvarande projekt som"
|
msgstr "Spara nuvarande projekt som"
|
||||||
|
|
||||||
msgid "Publish 3MF"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Export a 3MF file with the selected settings embedded"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Import 3MF/STL/STEP/SVG/OBJ/AMF"
|
msgid "Import 3MF/STL/STEP/SVG/OBJ/AMF"
|
||||||
msgstr "Importera 3MF/STL/STEP/SVG/OBJ/AMF"
|
msgstr "Importera 3MF/STL/STEP/SVG/OBJ/AMF"
|
||||||
|
|
||||||
@@ -8996,12 +8996,6 @@ msgstr "Bekräfta att G-koderna i dessa inställningar är säkra för att förh
|
|||||||
msgid "Customized Preset"
|
msgid "Customized Preset"
|
||||||
msgstr "Anpassad inställning"
|
msgstr "Anpassad inställning"
|
||||||
|
|
||||||
msgid "Some published settings could not be applied:"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Some filament slots were changed:"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Component name(s) inside step file not in UTF-8 format!"
|
msgid "Component name(s) inside step file not in UTF-8 format!"
|
||||||
msgstr "Komponent namnet i STEP filen är inte UTF-8 format!"
|
msgstr "Komponent namnet i STEP filen är inte UTF-8 format!"
|
||||||
|
|
||||||
@@ -9438,17 +9432,6 @@ msgstr "Spara beredningen som:"
|
|||||||
msgid "The file %s has been sent to the printer's storage space and can be viewed on the printer."
|
msgid "The file %s has been sent to the printer's storage space and can be viewed on the printer."
|
||||||
msgstr "Filen %s har skickats till skrivarens lagringsutrymme och kan visas på skrivaren."
|
msgstr "Filen %s har skickats till skrivarens lagringsutrymme och kan visas på skrivaren."
|
||||||
|
|
||||||
msgid "Publish 3MF file as:"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid ""
|
|
||||||
"Failed to export the published 3MF file.\n"
|
|
||||||
"Please check whether the folder exists online or if other programs have the file open."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish"
|
|
||||||
msgstr "Publicera"
|
|
||||||
|
|
||||||
# AI Translated
|
# AI Translated
|
||||||
msgid "The nozzle type is not set. Please set the nozzle and try again."
|
msgid "The nozzle type is not set. Please set the nozzle and try again."
|
||||||
msgstr "Nozzeltypen är inte angiven. Ange nozzeln och försök igen."
|
msgstr "Nozzeltypen är inte angiven. Ange nozzeln och försök igen."
|
||||||
@@ -9688,6 +9671,8 @@ msgstr "Fortsätta?"
|
|||||||
msgid "Language selection"
|
msgid "Language selection"
|
||||||
msgstr "Språkval"
|
msgstr "Språkval"
|
||||||
|
|
||||||
|
msgid "Switching application language while some presets are modified."
|
||||||
|
msgstr "Byter språk medans inställningarna ändras."
|
||||||
|
|
||||||
msgid "Asia-Pacific"
|
msgid "Asia-Pacific"
|
||||||
msgstr "Asien-Stillahavsområdet"
|
msgstr "Asien-Stillahavsområdet"
|
||||||
@@ -10755,6 +10740,9 @@ msgstr "Växla till modell publicerings hemsidan"
|
|||||||
msgid "Note: The preparation may take several minutes. Please be patient."
|
msgid "Note: The preparation may take several minutes. Please be patient."
|
||||||
msgstr "Notera: Förberedelserna kan ta flera minuter. Vänligen vänta."
|
msgstr "Notera: Förberedelserna kan ta flera minuter. Vänligen vänta."
|
||||||
|
|
||||||
|
msgid "Publish"
|
||||||
|
msgstr "Publicera"
|
||||||
|
|
||||||
msgid "Publish was canceled"
|
msgid "Publish was canceled"
|
||||||
msgstr "Publiceringen avbröts"
|
msgstr "Publiceringen avbröts"
|
||||||
|
|
||||||
@@ -10771,64 +10759,6 @@ msgstr "Laddar upp data"
|
|||||||
msgid "Jump to webpage"
|
msgid "Jump to webpage"
|
||||||
msgstr "Växla till hemsidan"
|
msgstr "Växla till hemsidan"
|
||||||
|
|
||||||
msgid "Material"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Mixed filament"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Some mixed filaments rely on filaments that will not be published:"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#, c-format, boost-format
|
|
||||||
msgid "Filament %d (mixed)"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "needs"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "not enabled"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "material not published"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "To publish a mixed filament, enable every filament it uses and choose Full Publish or check its Type requirement."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish anyway"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish 3MF..."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Select which settings to be published in the 3MF file"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish 3MF Wiki"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish 3MF Video Guide"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Mixed filament - published as a whole when \"Enable\" above is selected"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish this mixed filament and enable + Full Publish its component filaments"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish this filament slot in the 3MF file"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Full Publish"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Embed the entire filament of this slot in the 3MF file"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Filter non-selected"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#, c-format, boost-format
|
#, c-format, boost-format
|
||||||
msgid "Save %s as"
|
msgid "Save %s as"
|
||||||
msgstr "Spara %s som"
|
msgstr "Spara %s som"
|
||||||
@@ -23583,15 +23513,6 @@ msgstr "Åtgärden kan inte ångras. Vill du fortsätta?"
|
|||||||
msgid "Skipping objects."
|
msgid "Skipping objects."
|
||||||
msgstr "Hoppar över objekt."
|
msgstr "Hoppar över objekt."
|
||||||
|
|
||||||
msgid "Material Ratio"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Model Height"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Ratio"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Select Filament"
|
msgid "Select Filament"
|
||||||
msgstr "Välj filament"
|
msgstr "Välj filament"
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: Orca Slicer\n"
|
"Project-Id-Version: Orca Slicer\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2026-09-03 10:27+0800\n"
|
"POT-Creation-Date: 2026-09-02 09:39-0300\n"
|
||||||
"PO-Revision-Date: 2026-06-19 13:40+0700\n"
|
"PO-Revision-Date: 2026-06-19 13:40+0700\n"
|
||||||
"Last-Translator: Icezaza\n"
|
"Last-Translator: Icezaza\n"
|
||||||
"Language-Team: Thai\n"
|
"Language-Team: Thai\n"
|
||||||
@@ -2456,6 +2456,8 @@ msgstr "มีอัปเดตพร้อมใช้งาน เปิด
|
|||||||
msgid "%s has been removed."
|
msgid "%s has been removed."
|
||||||
msgstr "ลบ %s แล้ว"
|
msgstr "ลบ %s แล้ว"
|
||||||
|
|
||||||
|
msgid "Switching application language"
|
||||||
|
msgstr "การเปลี่ยนภาษาของแอปพลิเคชัน"
|
||||||
|
|
||||||
msgid "Select the language"
|
msgid "Select the language"
|
||||||
msgstr "เลือกภาษา"
|
msgstr "เลือกภาษา"
|
||||||
@@ -4885,9 +4887,6 @@ msgstr ""
|
|||||||
"ใช่ - เปลี่ยนการตั้งค่าเหล่านี้และเปิดใช้งานโหมดเกลียวโดยอัตโนมัติ\n"
|
"ใช่ - เปลี่ยนการตั้งค่าเหล่านี้และเปิดใช้งานโหมดเกลียวโดยอัตโนมัติ\n"
|
||||||
"ไม่ - เลิกใช้โหมดเกลียวในครั้งนี้"
|
"ไม่ - เลิกใช้โหมดเกลียวในครั้งนี้"
|
||||||
|
|
||||||
msgid "N/A"
|
|
||||||
msgstr "ไม่มี"
|
|
||||||
|
|
||||||
msgid "Printing"
|
msgid "Printing"
|
||||||
msgstr "กำลังพิมพ์"
|
msgstr "กำลังพิมพ์"
|
||||||
|
|
||||||
@@ -5319,9 +5318,13 @@ msgstr "ค่า %s อยู่นอกช่วง ช่วงที่ถ
|
|||||||
|
|
||||||
#, c-format, boost-format
|
#, c-format, boost-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Is it %s%% or %s %s?"
|
"Is it %s%% or %s %s?\n"
|
||||||
|
"YES for %s%%, \n"
|
||||||
|
"NO for %s %s."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"มันคือ %s%% หรือ %s %s?"
|
"มันคือ %s%% หรือ %s %s?\n"
|
||||||
|
"ใช่สำหรับ %s%% \n"
|
||||||
|
"ไม่ สำหรับ %s %s"
|
||||||
|
|
||||||
#, boost-format
|
#, boost-format
|
||||||
msgid "Invalid input format. Expected vector of dimensions in the following format: \"%1%\""
|
msgid "Invalid input format. Expected vector of dimensions in the following format: \"%1%\""
|
||||||
@@ -5343,6 +5346,9 @@ msgstr "รูปแบบไม่ถูกต้อง ใช้ N, N#K หร
|
|||||||
msgid "Invalid format. Expected vector format: \"%1%\""
|
msgid "Invalid format. Expected vector format: \"%1%\""
|
||||||
msgstr "รูปแบบไม่ถูกต้อง รูปแบบเวกเตอร์ที่ต้องการ: \"%1%\""
|
msgstr "รูปแบบไม่ถูกต้อง รูปแบบเวกเตอร์ที่ต้องการ: \"%1%\""
|
||||||
|
|
||||||
|
msgid "N/A"
|
||||||
|
msgstr "ไม่มี"
|
||||||
|
|
||||||
# AI Translated
|
# AI Translated
|
||||||
msgid "System agents"
|
msgid "System agents"
|
||||||
msgstr "เอเจนต์ระบบ"
|
msgstr "เอเจนต์ระบบ"
|
||||||
@@ -6298,12 +6304,6 @@ msgstr "บันทึกโปรเจกต์เป็น"
|
|||||||
msgid "Save current project as"
|
msgid "Save current project as"
|
||||||
msgstr "บันทึกโครงการปัจจุบันเป็น"
|
msgstr "บันทึกโครงการปัจจุบันเป็น"
|
||||||
|
|
||||||
msgid "Publish 3MF"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Export a 3MF file with the selected settings embedded"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Import 3MF/STL/STEP/SVG/OBJ/AMF"
|
msgid "Import 3MF/STL/STEP/SVG/OBJ/AMF"
|
||||||
msgstr "นำเข้า 3MF/STL/STEP/SVG/OBJ/AMF"
|
msgstr "นำเข้า 3MF/STL/STEP/SVG/OBJ/AMF"
|
||||||
|
|
||||||
@@ -8118,12 +8118,6 @@ msgstr "โปรดยืนยันว่ารหัส G ภายในค
|
|||||||
msgid "Customized Preset"
|
msgid "Customized Preset"
|
||||||
msgstr "ค่าที่ตั้งไว้ล่วงหน้าที่กำหนดเอง"
|
msgstr "ค่าที่ตั้งไว้ล่วงหน้าที่กำหนดเอง"
|
||||||
|
|
||||||
msgid "Some published settings could not be applied:"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Some filament slots were changed:"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Component name(s) inside step file not in UTF-8 format!"
|
msgid "Component name(s) inside step file not in UTF-8 format!"
|
||||||
msgstr "ชื่อของส่วนประกอบภายในไฟล์ STEP ไม่ใช่รูปแบบ UTF-8!"
|
msgstr "ชื่อของส่วนประกอบภายในไฟล์ STEP ไม่ใช่รูปแบบ UTF-8!"
|
||||||
|
|
||||||
@@ -8531,17 +8525,6 @@ msgstr "บันทึกไฟล์ที่สไลซ์เป็น:"
|
|||||||
msgid "The file %s has been sent to the printer's storage space and can be viewed on the printer."
|
msgid "The file %s has been sent to the printer's storage space and can be viewed on the printer."
|
||||||
msgstr "ไฟล์ %s ถูกส่งไปยังพื้นที่เก็บข้อมูลของเครื่องพิมพ์แล้ว และสามารถดูได้บนเครื่องพิมพ์"
|
msgstr "ไฟล์ %s ถูกส่งไปยังพื้นที่เก็บข้อมูลของเครื่องพิมพ์แล้ว และสามารถดูได้บนเครื่องพิมพ์"
|
||||||
|
|
||||||
msgid "Publish 3MF file as:"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid ""
|
|
||||||
"Failed to export the published 3MF file.\n"
|
|
||||||
"Please check whether the folder exists online or if other programs have the file open."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish"
|
|
||||||
msgstr "เผยแพร่"
|
|
||||||
|
|
||||||
msgid "The nozzle type is not set. Please set the nozzle and try again."
|
msgid "The nozzle type is not set. Please set the nozzle and try again."
|
||||||
msgstr "ไม่ได้ตั้งค่าประเภทหัวฉีด โปรดตั้งหัวฉีดแล้วลองอีกครั้ง"
|
msgstr "ไม่ได้ตั้งค่าประเภทหัวฉีด โปรดตั้งหัวฉีดแล้วลองอีกครั้ง"
|
||||||
|
|
||||||
@@ -8752,6 +8735,8 @@ msgstr "ต้องการดำเนินการต่อหรือไ
|
|||||||
msgid "Language selection"
|
msgid "Language selection"
|
||||||
msgstr "การเลือกภาษา"
|
msgstr "การเลือกภาษา"
|
||||||
|
|
||||||
|
msgid "Switching application language while some presets are modified."
|
||||||
|
msgstr "การสลับภาษาของแอปพลิเคชันในขณะที่มีการแก้ไขค่าที่ตั้งไว้บางส่วน"
|
||||||
|
|
||||||
msgid "Asia-Pacific"
|
msgid "Asia-Pacific"
|
||||||
msgstr "เอเชียแปซิฟิก"
|
msgstr "เอเชียแปซิฟิก"
|
||||||
@@ -9682,6 +9667,9 @@ msgstr "ข้ามไปที่โมเดลเผยแพร่หน้
|
|||||||
msgid "Note: The preparation may take several minutes. Please be patient."
|
msgid "Note: The preparation may take several minutes. Please be patient."
|
||||||
msgstr "หมายเหตุ: การเตรียมการอาจใช้เวลาหลายนาที กรุณาอดทน."
|
msgstr "หมายเหตุ: การเตรียมการอาจใช้เวลาหลายนาที กรุณาอดทน."
|
||||||
|
|
||||||
|
msgid "Publish"
|
||||||
|
msgstr "เผยแพร่"
|
||||||
|
|
||||||
msgid "Publish was canceled"
|
msgid "Publish was canceled"
|
||||||
msgstr "การเผยแพร่ถูกยกเลิก"
|
msgstr "การเผยแพร่ถูกยกเลิก"
|
||||||
|
|
||||||
@@ -9697,64 +9685,6 @@ msgstr "กำลังอัพโหลดข้อมูล"
|
|||||||
msgid "Jump to webpage"
|
msgid "Jump to webpage"
|
||||||
msgstr "ข้ามไปที่หน้าเว็บ"
|
msgstr "ข้ามไปที่หน้าเว็บ"
|
||||||
|
|
||||||
msgid "Material"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Mixed filament"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Some mixed filaments rely on filaments that will not be published:"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#, c-format, boost-format
|
|
||||||
msgid "Filament %d (mixed)"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "needs"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "not enabled"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "material not published"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "To publish a mixed filament, enable every filament it uses and choose Full Publish or check its Type requirement."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish anyway"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish 3MF..."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Select which settings to be published in the 3MF file"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish 3MF Wiki"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish 3MF Video Guide"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Mixed filament - published as a whole when \"Enable\" above is selected"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish this mixed filament and enable + Full Publish its component filaments"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish this filament slot in the 3MF file"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Full Publish"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Embed the entire filament of this slot in the 3MF file"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Filter non-selected"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#, c-format, boost-format
|
#, c-format, boost-format
|
||||||
msgid "Save %s as"
|
msgid "Save %s as"
|
||||||
msgstr "บันทึก %s เป็น"
|
msgstr "บันทึก %s เป็น"
|
||||||
@@ -20961,15 +20891,6 @@ msgstr "การทำงานนี้ไม่สามารถย้อน
|
|||||||
msgid "Skipping objects."
|
msgid "Skipping objects."
|
||||||
msgstr "ข้ามวัตถุ"
|
msgstr "ข้ามวัตถุ"
|
||||||
|
|
||||||
msgid "Material Ratio"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Model Height"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Ratio"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Select Filament"
|
msgid "Select Filament"
|
||||||
msgstr "เลือกเส้นพลาสติก"
|
msgstr "เลือกเส้นพลาสติก"
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: Orca Slicer\n"
|
"Project-Id-Version: Orca Slicer\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2026-09-03 10:27+0800\n"
|
"POT-Creation-Date: 2026-09-02 09:39-0300\n"
|
||||||
"PO-Revision-Date: 2026-08-21 23:18+0300\n"
|
"PO-Revision-Date: 2026-08-21 23:18+0300\n"
|
||||||
"Last-Translator: GlauTech\n"
|
"Last-Translator: GlauTech\n"
|
||||||
"Language-Team: \n"
|
"Language-Team: \n"
|
||||||
@@ -2480,6 +2480,8 @@ msgstr "Kullanılabilir bir güncelleme var. Güncellemek için ön ayar paketi
|
|||||||
msgid "%s has been removed."
|
msgid "%s has been removed."
|
||||||
msgstr "%s kaldırıldı."
|
msgstr "%s kaldırıldı."
|
||||||
|
|
||||||
|
msgid "Switching application language"
|
||||||
|
msgstr "Uygulama dilini değiştirme"
|
||||||
|
|
||||||
msgid "Select the language"
|
msgid "Select the language"
|
||||||
msgstr "Dili seçin"
|
msgstr "Dili seçin"
|
||||||
@@ -4947,10 +4949,6 @@ msgstr ""
|
|||||||
"Evet - Bu ayarları değiştirin ve spiral modunu otomatik olarak etkinleştirin\n"
|
"Evet - Bu ayarları değiştirin ve spiral modunu otomatik olarak etkinleştirin\n"
|
||||||
"Hayır - Bu sefer spiral modunu kullanmaktan vazgeçin"
|
"Hayır - Bu sefer spiral modunu kullanmaktan vazgeçin"
|
||||||
|
|
||||||
# AI Translated
|
|
||||||
msgid "N/A"
|
|
||||||
msgstr "Yok"
|
|
||||||
|
|
||||||
msgid "Printing"
|
msgid "Printing"
|
||||||
msgstr "Baskı"
|
msgstr "Baskı"
|
||||||
|
|
||||||
@@ -5382,9 +5380,13 @@ msgstr "Değer %s aralık dışında. Geçerli aralık %d ile %d arasındadır."
|
|||||||
|
|
||||||
#, c-format, boost-format
|
#, c-format, boost-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Is it %s%% or %s %s?"
|
"Is it %s%% or %s %s?\n"
|
||||||
|
"YES for %s%%, \n"
|
||||||
|
"NO for %s %s."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"%s%% mi yoksa %s %s mi?"
|
"%s%% mi yoksa %s %s mi?\n"
|
||||||
|
"%s%% için EVET,\n"
|
||||||
|
"%s %s için HAYIR."
|
||||||
|
|
||||||
#, boost-format
|
#, boost-format
|
||||||
msgid "Invalid input format. Expected vector of dimensions in the following format: \"%1%\""
|
msgid "Invalid input format. Expected vector of dimensions in the following format: \"%1%\""
|
||||||
@@ -5406,6 +5408,10 @@ msgstr "Geçersiz kalıp. N, N#K veya giriş başına isteğe bağlı #K ile vir
|
|||||||
msgid "Invalid format. Expected vector format: \"%1%\""
|
msgid "Invalid format. Expected vector format: \"%1%\""
|
||||||
msgstr "Geçersiz format. Beklenen vektör formatı: \"%1%\""
|
msgstr "Geçersiz format. Beklenen vektör formatı: \"%1%\""
|
||||||
|
|
||||||
|
# AI Translated
|
||||||
|
msgid "N/A"
|
||||||
|
msgstr "Yok"
|
||||||
|
|
||||||
# AI Translated
|
# AI Translated
|
||||||
msgid "System agents"
|
msgid "System agents"
|
||||||
msgstr "Sistem aracıları"
|
msgstr "Sistem aracıları"
|
||||||
@@ -6366,12 +6372,6 @@ msgstr "Projeyi farklı kaydet"
|
|||||||
msgid "Save current project as"
|
msgid "Save current project as"
|
||||||
msgstr "Mevcut projeyi farklı kaydet"
|
msgstr "Mevcut projeyi farklı kaydet"
|
||||||
|
|
||||||
msgid "Publish 3MF"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Export a 3MF file with the selected settings embedded"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Import 3MF/STL/STEP/SVG/OBJ/AMF"
|
msgid "Import 3MF/STL/STEP/SVG/OBJ/AMF"
|
||||||
msgstr "3MF/STL/STEP/SVG/OBJ/AMF'yi içe aktar"
|
msgstr "3MF/STL/STEP/SVG/OBJ/AMF'yi içe aktar"
|
||||||
|
|
||||||
@@ -8215,12 +8215,6 @@ msgstr "Lütfen bu ön ayarlar içindeki G-code'larının makineye herhangi bir
|
|||||||
msgid "Customized Preset"
|
msgid "Customized Preset"
|
||||||
msgstr "Özel Ayar"
|
msgstr "Özel Ayar"
|
||||||
|
|
||||||
msgid "Some published settings could not be applied:"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Some filament slots were changed:"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Component name(s) inside step file not in UTF-8 format!"
|
msgid "Component name(s) inside step file not in UTF-8 format!"
|
||||||
msgstr "Step dosyasındaki bileşenlerin adı UTF-8 formatında değil!"
|
msgstr "Step dosyasındaki bileşenlerin adı UTF-8 formatında değil!"
|
||||||
|
|
||||||
@@ -8630,17 +8624,6 @@ msgstr "Dilimlenmiş dosyayı şu şekilde kaydedin:"
|
|||||||
msgid "The file %s has been sent to the printer's storage space and can be viewed on the printer."
|
msgid "The file %s has been sent to the printer's storage space and can be viewed on the printer."
|
||||||
msgstr "%s dosyası yazıcının depolama alanına gönderildi ve yazıcıda görüntülenebiliyor."
|
msgstr "%s dosyası yazıcının depolama alanına gönderildi ve yazıcıda görüntülenebiliyor."
|
||||||
|
|
||||||
msgid "Publish 3MF file as:"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid ""
|
|
||||||
"Failed to export the published 3MF file.\n"
|
|
||||||
"Please check whether the folder exists online or if other programs have the file open."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish"
|
|
||||||
msgstr "Yayınla"
|
|
||||||
|
|
||||||
msgid "The nozzle type is not set. Please set the nozzle and try again."
|
msgid "The nozzle type is not set. Please set the nozzle and try again."
|
||||||
msgstr "Nozul tipi ayarlanmamış. Lütfen nozulu ayarlayın ve tekrar deneyin."
|
msgstr "Nozul tipi ayarlanmamış. Lütfen nozulu ayarlayın ve tekrar deneyin."
|
||||||
|
|
||||||
@@ -8854,6 +8837,8 @@ msgstr "Devam etmek istiyor musun?"
|
|||||||
msgid "Language selection"
|
msgid "Language selection"
|
||||||
msgstr "Dil seçimi"
|
msgstr "Dil seçimi"
|
||||||
|
|
||||||
|
msgid "Switching application language while some presets are modified."
|
||||||
|
msgstr "Bazı ön ayarlar değiştirilirken uygulama dilinin değiştirilmesi."
|
||||||
|
|
||||||
msgid "Asia-Pacific"
|
msgid "Asia-Pacific"
|
||||||
msgstr "Asya Pasifik"
|
msgstr "Asya Pasifik"
|
||||||
@@ -9826,6 +9811,9 @@ msgstr "Model yayınlama web sayfasına git"
|
|||||||
msgid "Note: The preparation may take several minutes. Please be patient."
|
msgid "Note: The preparation may take several minutes. Please be patient."
|
||||||
msgstr "Not: Hazırlık birkaç dakika sürebilir. Lütfen sabırlı olun."
|
msgstr "Not: Hazırlık birkaç dakika sürebilir. Lütfen sabırlı olun."
|
||||||
|
|
||||||
|
msgid "Publish"
|
||||||
|
msgstr "Yayınla"
|
||||||
|
|
||||||
msgid "Publish was canceled"
|
msgid "Publish was canceled"
|
||||||
msgstr "Yayınlama iptal edildi"
|
msgstr "Yayınlama iptal edildi"
|
||||||
|
|
||||||
@@ -9841,64 +9829,6 @@ msgstr "Veriler yükleniyor"
|
|||||||
msgid "Jump to webpage"
|
msgid "Jump to webpage"
|
||||||
msgstr "Web sayfasına atla"
|
msgstr "Web sayfasına atla"
|
||||||
|
|
||||||
msgid "Material"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Mixed filament"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Some mixed filaments rely on filaments that will not be published:"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#, c-format, boost-format
|
|
||||||
msgid "Filament %d (mixed)"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "needs"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "not enabled"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "material not published"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "To publish a mixed filament, enable every filament it uses and choose Full Publish or check its Type requirement."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish anyway"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish 3MF..."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Select which settings to be published in the 3MF file"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish 3MF Wiki"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish 3MF Video Guide"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Mixed filament - published as a whole when \"Enable\" above is selected"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish this mixed filament and enable + Full Publish its component filaments"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish this filament slot in the 3MF file"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Full Publish"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Embed the entire filament of this slot in the 3MF file"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Filter non-selected"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#, c-format, boost-format
|
#, c-format, boost-format
|
||||||
msgid "Save %s as"
|
msgid "Save %s as"
|
||||||
msgstr "%s'yi farklı kaydet"
|
msgstr "%s'yi farklı kaydet"
|
||||||
@@ -21388,15 +21318,6 @@ msgstr "Bu eylem geri alınamaz. Devam etmek?"
|
|||||||
msgid "Skipping objects."
|
msgid "Skipping objects."
|
||||||
msgstr "Nesneleri atlama."
|
msgstr "Nesneleri atlama."
|
||||||
|
|
||||||
msgid "Material Ratio"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Model Height"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Ratio"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Select Filament"
|
msgid "Select Filament"
|
||||||
msgstr "Filament Seçin"
|
msgstr "Filament Seçin"
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: orcaslicerua\n"
|
"Project-Id-Version: orcaslicerua\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2026-09-03 10:27+0800\n"
|
"POT-Creation-Date: 2026-09-02 09:39-0300\n"
|
||||||
"PO-Revision-Date: 2026-07-17 16:25+0300\n"
|
"PO-Revision-Date: 2026-07-17 16:25+0300\n"
|
||||||
"Last-Translator: Andrij Mizyk <andm1zyk@proton.me>\n"
|
"Last-Translator: Andrij Mizyk <andm1zyk@proton.me>\n"
|
||||||
"Language-Team: Ukrainian\n"
|
"Language-Team: Ukrainian\n"
|
||||||
@@ -2424,6 +2424,8 @@ msgstr "Доступне оновлення. Відкрийте вікно на
|
|||||||
msgid "%s has been removed."
|
msgid "%s has been removed."
|
||||||
msgstr "%s вилучено."
|
msgstr "%s вилучено."
|
||||||
|
|
||||||
|
msgid "Switching application language"
|
||||||
|
msgstr "Зміна мови програми"
|
||||||
|
|
||||||
msgid "Select the language"
|
msgid "Select the language"
|
||||||
msgstr "Вибрати мову"
|
msgstr "Вибрати мову"
|
||||||
@@ -4885,9 +4887,6 @@ msgstr ""
|
|||||||
"Так – змінити ці налаштування та автоматично включити режим спіральна ваза\n"
|
"Так – змінити ці налаштування та автоматично включити режим спіральна ваза\n"
|
||||||
"Ні - цього разу відмовитися від використання режиму спіральна ваза"
|
"Ні - цього разу відмовитися від використання режиму спіральна ваза"
|
||||||
|
|
||||||
msgid "N/A"
|
|
||||||
msgstr "Н/Д"
|
|
||||||
|
|
||||||
msgid "Printing"
|
msgid "Printing"
|
||||||
msgstr "Друк"
|
msgstr "Друк"
|
||||||
|
|
||||||
@@ -5330,9 +5329,13 @@ msgstr "Значення %s знаходиться за межами діапа
|
|||||||
|
|
||||||
#, c-format, boost-format
|
#, c-format, boost-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Is it %s%% or %s %s?"
|
"Is it %s%% or %s %s?\n"
|
||||||
|
"YES for %s%%, \n"
|
||||||
|
"NO for %s %s."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Це %s%% або %s %s?"
|
"Це %s%% або %s %s?\n"
|
||||||
|
"ТАК для %s%%, \n"
|
||||||
|
"НІ для %s %s."
|
||||||
|
|
||||||
#, boost-format
|
#, boost-format
|
||||||
msgid "Invalid input format. Expected vector of dimensions in the following format: \"%1%\""
|
msgid "Invalid input format. Expected vector of dimensions in the following format: \"%1%\""
|
||||||
@@ -5355,6 +5358,9 @@ msgstr "Некоректний шаблон. Використовуйте N, N#K
|
|||||||
msgid "Invalid format. Expected vector format: \"%1%\""
|
msgid "Invalid format. Expected vector format: \"%1%\""
|
||||||
msgstr "Невірний формат. Очікуваний векторний формат: \"%1%\""
|
msgstr "Невірний формат. Очікуваний векторний формат: \"%1%\""
|
||||||
|
|
||||||
|
msgid "N/A"
|
||||||
|
msgstr "Н/Д"
|
||||||
|
|
||||||
# AI Translated
|
# AI Translated
|
||||||
msgid "System agents"
|
msgid "System agents"
|
||||||
msgstr "Системні агенти"
|
msgstr "Системні агенти"
|
||||||
@@ -6335,12 +6341,6 @@ msgstr "Зберегти проєкт як"
|
|||||||
msgid "Save current project as"
|
msgid "Save current project as"
|
||||||
msgstr "Зберегти поточний проєкт як"
|
msgstr "Зберегти поточний проєкт як"
|
||||||
|
|
||||||
msgid "Publish 3MF"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Export a 3MF file with the selected settings embedded"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Import 3MF/STL/STEP/SVG/OBJ/AMF"
|
msgid "Import 3MF/STL/STEP/SVG/OBJ/AMF"
|
||||||
msgstr "Імпорт 3MF/STL/STEP/SVG/OBJ/AMF"
|
msgstr "Імпорт 3MF/STL/STEP/SVG/OBJ/AMF"
|
||||||
|
|
||||||
@@ -8223,12 +8223,6 @@ msgstr "Будь ласка, підтвердьте, що G-коди в цих
|
|||||||
msgid "Customized Preset"
|
msgid "Customized Preset"
|
||||||
msgstr "Пристосований пресет"
|
msgstr "Пристосований пресет"
|
||||||
|
|
||||||
msgid "Some published settings could not be applied:"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Some filament slots were changed:"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
# AI Translated
|
# AI Translated
|
||||||
msgid "Component name(s) inside step file not in UTF-8 format!"
|
msgid "Component name(s) inside step file not in UTF-8 format!"
|
||||||
msgstr "Назви компонентів усередині файлу STEP не у форматі UTF-8!"
|
msgstr "Назви компонентів усередині файлу STEP не у форматі UTF-8!"
|
||||||
@@ -8641,17 +8635,6 @@ msgstr "Зберегти нарізаний файл як:"
|
|||||||
msgid "The file %s has been sent to the printer's storage space and can be viewed on the printer."
|
msgid "The file %s has been sent to the printer's storage space and can be viewed on the printer."
|
||||||
msgstr "Файл %s надіслано до памʼяті принтера та доступний для перегляду на принтері."
|
msgstr "Файл %s надіслано до памʼяті принтера та доступний для перегляду на принтері."
|
||||||
|
|
||||||
msgid "Publish 3MF file as:"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid ""
|
|
||||||
"Failed to export the published 3MF file.\n"
|
|
||||||
"Please check whether the folder exists online or if other programs have the file open."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish"
|
|
||||||
msgstr "Публікувати"
|
|
||||||
|
|
||||||
msgid "The nozzle type is not set. Please set the nozzle and try again."
|
msgid "The nozzle type is not set. Please set the nozzle and try again."
|
||||||
msgstr "Тип сопла не встановлений. Будь ласка, оберіть сопло та спробуйте ще раз."
|
msgstr "Тип сопла не встановлений. Будь ласка, оберіть сопло та спробуйте ще раз."
|
||||||
|
|
||||||
@@ -8868,6 +8851,8 @@ msgstr "Ви хочете продовжувати?"
|
|||||||
msgid "Language selection"
|
msgid "Language selection"
|
||||||
msgstr "Вибір мови"
|
msgstr "Вибір мови"
|
||||||
|
|
||||||
|
msgid "Switching application language while some presets are modified."
|
||||||
|
msgstr "Зміна мови програми при зміні деяких профілів."
|
||||||
|
|
||||||
msgid "Asia-Pacific"
|
msgid "Asia-Pacific"
|
||||||
msgstr "Азіатсько-Тихоокеанський регіон"
|
msgstr "Азіатсько-Тихоокеанський регіон"
|
||||||
@@ -9829,6 +9814,9 @@ msgstr "Перейти на веб-сторінку публікації мод
|
|||||||
msgid "Note: The preparation may take several minutes. Please be patient."
|
msgid "Note: The preparation may take several minutes. Please be patient."
|
||||||
msgstr "Примітка. Підготовка може тривати кілька хвилин. Будь ласка, будьте терплячі."
|
msgstr "Примітка. Підготовка може тривати кілька хвилин. Будь ласка, будьте терплячі."
|
||||||
|
|
||||||
|
msgid "Publish"
|
||||||
|
msgstr "Публікувати"
|
||||||
|
|
||||||
msgid "Publish was canceled"
|
msgid "Publish was canceled"
|
||||||
msgstr "Публікація скасована"
|
msgstr "Публікація скасована"
|
||||||
|
|
||||||
@@ -9844,64 +9832,6 @@ msgstr "Відвантаження даних"
|
|||||||
msgid "Jump to webpage"
|
msgid "Jump to webpage"
|
||||||
msgstr "Перейти на вебсторінку"
|
msgstr "Перейти на вебсторінку"
|
||||||
|
|
||||||
msgid "Material"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Mixed filament"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Some mixed filaments rely on filaments that will not be published:"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#, c-format, boost-format
|
|
||||||
msgid "Filament %d (mixed)"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "needs"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "not enabled"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "material not published"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "To publish a mixed filament, enable every filament it uses and choose Full Publish or check its Type requirement."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish anyway"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish 3MF..."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Select which settings to be published in the 3MF file"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish 3MF Wiki"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish 3MF Video Guide"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Mixed filament - published as a whole when \"Enable\" above is selected"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish this mixed filament and enable + Full Publish its component filaments"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish this filament slot in the 3MF file"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Full Publish"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Embed the entire filament of this slot in the 3MF file"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Filter non-selected"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#, c-format, boost-format
|
#, c-format, boost-format
|
||||||
msgid "Save %s as"
|
msgid "Save %s as"
|
||||||
msgstr "Зберегти %s як"
|
msgstr "Зберегти %s як"
|
||||||
@@ -21565,15 +21495,6 @@ msgstr "Дію не можливо завершити. Продовжити?"
|
|||||||
msgid "Skipping objects."
|
msgid "Skipping objects."
|
||||||
msgstr "Пропускання обʼєктів."
|
msgstr "Пропускання обʼєктів."
|
||||||
|
|
||||||
msgid "Material Ratio"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Model Height"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Ratio"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Select Filament"
|
msgid "Select Filament"
|
||||||
msgstr "Вибрати філамент"
|
msgstr "Вибрати філамент"
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: Orca Slicer\n"
|
"Project-Id-Version: Orca Slicer\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2026-09-03 10:27+0800\n"
|
"POT-Creation-Date: 2026-09-02 09:39-0300\n"
|
||||||
"PO-Revision-Date: 2025-10-02 17:43+0700\n"
|
"PO-Revision-Date: 2025-10-02 17:43+0700\n"
|
||||||
"Last-Translator: \n"
|
"Last-Translator: \n"
|
||||||
"Language-Team: hainguyen.ts13@gmail.com\n"
|
"Language-Team: hainguyen.ts13@gmail.com\n"
|
||||||
@@ -2568,6 +2568,8 @@ msgstr "Có bản cập nhật khả dụng. Hãy mở hộp thoại gói cài
|
|||||||
msgid "%s has been removed."
|
msgid "%s has been removed."
|
||||||
msgstr "%s đã bị xóa."
|
msgstr "%s đã bị xóa."
|
||||||
|
|
||||||
|
msgid "Switching application language"
|
||||||
|
msgstr "Đang chuyển ngôn ngữ ứng dụng"
|
||||||
|
|
||||||
msgid "Select the language"
|
msgid "Select the language"
|
||||||
msgstr "Chọn ngôn ngữ"
|
msgstr "Chọn ngôn ngữ"
|
||||||
@@ -5141,10 +5143,6 @@ msgstr ""
|
|||||||
"Yes - Thay đổi các cài đặt này và bật chế độ spiral tự động\n"
|
"Yes - Thay đổi các cài đặt này và bật chế độ spiral tự động\n"
|
||||||
"No - Từ bỏ dùng chế độ spiral lần này"
|
"No - Từ bỏ dùng chế độ spiral lần này"
|
||||||
|
|
||||||
# AI Translated
|
|
||||||
msgid "N/A"
|
|
||||||
msgstr "N/A"
|
|
||||||
|
|
||||||
msgid "Printing"
|
msgid "Printing"
|
||||||
msgstr "Đang in"
|
msgstr "Đang in"
|
||||||
|
|
||||||
@@ -5635,9 +5633,13 @@ msgstr "Giá trị %s nằm ngoài phạm vi. Phạm vi hợp lệ từ %d đế
|
|||||||
|
|
||||||
#, c-format, boost-format
|
#, c-format, boost-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Is it %s%% or %s %s?"
|
"Is it %s%% or %s %s?\n"
|
||||||
|
"YES for %s%%, \n"
|
||||||
|
"NO for %s %s."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Là %s%% hay %s %s?"
|
"Là %s%% hay %s %s?\n"
|
||||||
|
"YES cho %s%%, \n"
|
||||||
|
"NO cho %s %s."
|
||||||
|
|
||||||
#, boost-format
|
#, boost-format
|
||||||
msgid "Invalid input format. Expected vector of dimensions in the following format: \"%1%\""
|
msgid "Invalid input format. Expected vector of dimensions in the following format: \"%1%\""
|
||||||
@@ -5659,6 +5661,10 @@ msgstr "Mẫu không hợp lệ. Dùng N, N#K, hoặc danh sách phân cách d
|
|||||||
msgid "Invalid format. Expected vector format: \"%1%\""
|
msgid "Invalid format. Expected vector format: \"%1%\""
|
||||||
msgstr "Định dạng không hợp lệ. Mong đợi định dạng vector: \"%1%\""
|
msgstr "Định dạng không hợp lệ. Mong đợi định dạng vector: \"%1%\""
|
||||||
|
|
||||||
|
# AI Translated
|
||||||
|
msgid "N/A"
|
||||||
|
msgstr "N/A"
|
||||||
|
|
||||||
# AI Translated
|
# AI Translated
|
||||||
msgid "System agents"
|
msgid "System agents"
|
||||||
msgstr "Tác nhân hệ thống"
|
msgstr "Tác nhân hệ thống"
|
||||||
@@ -6683,12 +6689,6 @@ msgstr "Lưu dự án thành"
|
|||||||
msgid "Save current project as"
|
msgid "Save current project as"
|
||||||
msgstr "Lưu dự án hiện tại thành"
|
msgstr "Lưu dự án hiện tại thành"
|
||||||
|
|
||||||
msgid "Publish 3MF"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Export a 3MF file with the selected settings embedded"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Import 3MF/STL/STEP/SVG/OBJ/AMF"
|
msgid "Import 3MF/STL/STEP/SVG/OBJ/AMF"
|
||||||
msgstr "Nhập 3MF/STL/STEP/SVG/OBJ/AMF"
|
msgstr "Nhập 3MF/STL/STEP/SVG/OBJ/AMF"
|
||||||
|
|
||||||
@@ -8629,12 +8629,6 @@ msgstr "Vui lòng xác nhận G-code trong các preset này an toàn để ngăn
|
|||||||
msgid "Customized Preset"
|
msgid "Customized Preset"
|
||||||
msgstr "Preset tùy chỉnh"
|
msgstr "Preset tùy chỉnh"
|
||||||
|
|
||||||
msgid "Some published settings could not be applied:"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Some filament slots were changed:"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Component name(s) inside step file not in UTF-8 format!"
|
msgid "Component name(s) inside step file not in UTF-8 format!"
|
||||||
msgstr "Tên của các thành phần bên trong file STEP không phải định dạng UTF-8!"
|
msgstr "Tên của các thành phần bên trong file STEP không phải định dạng UTF-8!"
|
||||||
|
|
||||||
@@ -9062,17 +9056,6 @@ msgstr "Lưu file đã slice dưới dạng:"
|
|||||||
msgid "The file %s has been sent to the printer's storage space and can be viewed on the printer."
|
msgid "The file %s has been sent to the printer's storage space and can be viewed on the printer."
|
||||||
msgstr "File %s đã được gửi đến không gian lưu trữ của máy in và có thể được xem trên máy in."
|
msgstr "File %s đã được gửi đến không gian lưu trữ của máy in và có thể được xem trên máy in."
|
||||||
|
|
||||||
msgid "Publish 3MF file as:"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid ""
|
|
||||||
"Failed to export the published 3MF file.\n"
|
|
||||||
"Please check whether the folder exists online or if other programs have the file open."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish"
|
|
||||||
msgstr "Xuất bản"
|
|
||||||
|
|
||||||
# AI Translated
|
# AI Translated
|
||||||
msgid "The nozzle type is not set. Please set the nozzle and try again."
|
msgid "The nozzle type is not set. Please set the nozzle and try again."
|
||||||
msgstr "Chưa đặt loại đầu phun. Vui lòng đặt đầu phun rồi thử lại."
|
msgstr "Chưa đặt loại đầu phun. Vui lòng đặt đầu phun rồi thử lại."
|
||||||
@@ -9303,6 +9286,8 @@ msgstr "Bạn có muốn tiếp tục?"
|
|||||||
msgid "Language selection"
|
msgid "Language selection"
|
||||||
msgstr "Chọn ngôn ngữ"
|
msgstr "Chọn ngôn ngữ"
|
||||||
|
|
||||||
|
msgid "Switching application language while some presets are modified."
|
||||||
|
msgstr "Đang chuyển đổi ngôn ngữ ứng dụng trong khi một số preset đã được chỉnh sửa."
|
||||||
|
|
||||||
msgid "Asia-Pacific"
|
msgid "Asia-Pacific"
|
||||||
msgstr "Châu Á-Thái Bình Dương"
|
msgstr "Châu Á-Thái Bình Dương"
|
||||||
@@ -10341,6 +10326,9 @@ msgstr "Chuyển đến trang web xuất bản model"
|
|||||||
msgid "Note: The preparation may take several minutes. Please be patient."
|
msgid "Note: The preparation may take several minutes. Please be patient."
|
||||||
msgstr "Lưu ý: Chuẩn bị có thể mất vài phút. Vui lòng kiên nhẫn."
|
msgstr "Lưu ý: Chuẩn bị có thể mất vài phút. Vui lòng kiên nhẫn."
|
||||||
|
|
||||||
|
msgid "Publish"
|
||||||
|
msgstr "Xuất bản"
|
||||||
|
|
||||||
msgid "Publish was canceled"
|
msgid "Publish was canceled"
|
||||||
msgstr "Xuất bản đã bị hủy"
|
msgstr "Xuất bản đã bị hủy"
|
||||||
|
|
||||||
@@ -10357,64 +10345,6 @@ msgstr "Đang tải dữ liệu lên"
|
|||||||
msgid "Jump to webpage"
|
msgid "Jump to webpage"
|
||||||
msgstr "Chuyển đến trang web"
|
msgstr "Chuyển đến trang web"
|
||||||
|
|
||||||
msgid "Material"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Mixed filament"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Some mixed filaments rely on filaments that will not be published:"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#, c-format, boost-format
|
|
||||||
msgid "Filament %d (mixed)"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "needs"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "not enabled"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "material not published"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "To publish a mixed filament, enable every filament it uses and choose Full Publish or check its Type requirement."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish anyway"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish 3MF..."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Select which settings to be published in the 3MF file"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish 3MF Wiki"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish 3MF Video Guide"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Mixed filament - published as a whole when \"Enable\" above is selected"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish this mixed filament and enable + Full Publish its component filaments"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish this filament slot in the 3MF file"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Full Publish"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Embed the entire filament of this slot in the 3MF file"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Filter non-selected"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#, c-format, boost-format
|
#, c-format, boost-format
|
||||||
msgid "Save %s as"
|
msgid "Save %s as"
|
||||||
msgstr "Lưu %s dưới dạng"
|
msgstr "Lưu %s dưới dạng"
|
||||||
@@ -22235,15 +22165,6 @@ msgstr "Thao tác này không thể hoàn tác. Tiếp tục?"
|
|||||||
msgid "Skipping objects."
|
msgid "Skipping objects."
|
||||||
msgstr "Đang bỏ qua các vật thể."
|
msgstr "Đang bỏ qua các vật thể."
|
||||||
|
|
||||||
msgid "Material Ratio"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Model Height"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Ratio"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
# AI Translated
|
# AI Translated
|
||||||
msgid "Select Filament"
|
msgid "Select Filament"
|
||||||
msgstr "Chọn filament"
|
msgstr "Chọn filament"
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: Slic3rPE\n"
|
"Project-Id-Version: Slic3rPE\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2026-09-03 10:27+0800\n"
|
"POT-Creation-Date: 2026-09-02 09:39-0300\n"
|
||||||
"PO-Revision-Date: 2026-06-11 12:37-0300\n"
|
"PO-Revision-Date: 2026-06-11 12:37-0300\n"
|
||||||
"Last-Translator: Handle <mail@bysb.net>\n"
|
"Last-Translator: Handle <mail@bysb.net>\n"
|
||||||
"Language-Team: \n"
|
"Language-Team: \n"
|
||||||
@@ -2361,6 +2361,8 @@ msgstr "有更新可用。打开预设包对话框进行更新。"
|
|||||||
msgid "%s has been removed."
|
msgid "%s has been removed."
|
||||||
msgstr "%s 已被移除。"
|
msgstr "%s 已被移除。"
|
||||||
|
|
||||||
|
msgid "Switching application language"
|
||||||
|
msgstr "切换应用程序语言"
|
||||||
|
|
||||||
msgid "Select the language"
|
msgid "Select the language"
|
||||||
msgstr "选择语言"
|
msgstr "选择语言"
|
||||||
@@ -4741,9 +4743,6 @@ msgstr ""
|
|||||||
"是 - 自动调整这些设置并开启旋转模式\n"
|
"是 - 自动调整这些设置并开启旋转模式\n"
|
||||||
"否 - 暂不使用旋转模式"
|
"否 - 暂不使用旋转模式"
|
||||||
|
|
||||||
msgid "N/A"
|
|
||||||
msgstr "不适用"
|
|
||||||
|
|
||||||
msgid "Printing"
|
msgid "Printing"
|
||||||
msgstr "打印中"
|
msgstr "打印中"
|
||||||
|
|
||||||
@@ -5175,9 +5174,13 @@ msgstr "值 %s 超出了范围,有效的范围是从 %d 到 %d 。"
|
|||||||
|
|
||||||
#, c-format, boost-format
|
#, c-format, boost-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Is it %s%% or %s %s?"
|
"Is it %s%% or %s %s?\n"
|
||||||
|
"YES for %s%%, \n"
|
||||||
|
"NO for %s %s."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"%s%%还是%s %s?"
|
"%s%%还是%s %s?\n"
|
||||||
|
"是:%s%%\n"
|
||||||
|
"否:%s %s"
|
||||||
|
|
||||||
#, boost-format
|
#, boost-format
|
||||||
msgid "Invalid input format. Expected vector of dimensions in the following format: \"%1%\""
|
msgid "Invalid input format. Expected vector of dimensions in the following format: \"%1%\""
|
||||||
@@ -5199,6 +5202,9 @@ msgstr "无效的模式。请使用 N、N#K 或逗号分隔的列表(每个条
|
|||||||
msgid "Invalid format. Expected vector format: \"%1%\""
|
msgid "Invalid format. Expected vector format: \"%1%\""
|
||||||
msgstr "无效格式,应该是\"%1%\"这种数组格式"
|
msgstr "无效格式,应该是\"%1%\"这种数组格式"
|
||||||
|
|
||||||
|
msgid "N/A"
|
||||||
|
msgstr "不适用"
|
||||||
|
|
||||||
# AI Translated
|
# AI Translated
|
||||||
msgid "System agents"
|
msgid "System agents"
|
||||||
msgstr "系统代理"
|
msgstr "系统代理"
|
||||||
@@ -6153,12 +6159,6 @@ msgstr "项目另存为"
|
|||||||
msgid "Save current project as"
|
msgid "Save current project as"
|
||||||
msgstr "项目另存为"
|
msgstr "项目另存为"
|
||||||
|
|
||||||
msgid "Publish 3MF"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Export a 3MF file with the selected settings embedded"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Import 3MF/STL/STEP/SVG/OBJ/AMF"
|
msgid "Import 3MF/STL/STEP/SVG/OBJ/AMF"
|
||||||
msgstr "导入 3MF/STL/STEP/SVG/OBJ/AMF"
|
msgstr "导入 3MF/STL/STEP/SVG/OBJ/AMF"
|
||||||
|
|
||||||
@@ -7949,12 +7949,6 @@ msgstr "请确认这些预设中的G-codes是否安全,以防止对机器造
|
|||||||
msgid "Customized Preset"
|
msgid "Customized Preset"
|
||||||
msgstr "自定义的预设"
|
msgstr "自定义的预设"
|
||||||
|
|
||||||
msgid "Some published settings could not be applied:"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Some filament slots were changed:"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Component name(s) inside step file not in UTF-8 format!"
|
msgid "Component name(s) inside step file not in UTF-8 format!"
|
||||||
msgstr "STEP 文件中的部件名称不是 UTF-8 格式!"
|
msgstr "STEP 文件中的部件名称不是 UTF-8 格式!"
|
||||||
|
|
||||||
@@ -8360,17 +8354,6 @@ msgstr "切片文件另存为:"
|
|||||||
msgid "The file %s has been sent to the printer's storage space and can be viewed on the printer."
|
msgid "The file %s has been sent to the printer's storage space and can be viewed on the printer."
|
||||||
msgstr "文件%s已经发送到打印机的存储空间,可以在打印机上浏览。"
|
msgstr "文件%s已经发送到打印机的存储空间,可以在打印机上浏览。"
|
||||||
|
|
||||||
msgid "Publish 3MF file as:"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid ""
|
|
||||||
"Failed to export the published 3MF file.\n"
|
|
||||||
"Please check whether the folder exists online or if other programs have the file open."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish"
|
|
||||||
msgstr "发布"
|
|
||||||
|
|
||||||
msgid "The nozzle type is not set. Please set the nozzle and try again."
|
msgid "The nozzle type is not set. Please set the nozzle and try again."
|
||||||
msgstr "未设置喷嘴类型。请设置喷嘴并重试。"
|
msgstr "未设置喷嘴类型。请设置喷嘴并重试。"
|
||||||
|
|
||||||
@@ -8581,6 +8564,8 @@ msgstr "是否继续?"
|
|||||||
msgid "Language selection"
|
msgid "Language selection"
|
||||||
msgstr "语言选择"
|
msgstr "语言选择"
|
||||||
|
|
||||||
|
msgid "Switching application language while some presets are modified."
|
||||||
|
msgstr "在切换应用语言之前发现某些参数预设有更改。"
|
||||||
|
|
||||||
msgid "Asia-Pacific"
|
msgid "Asia-Pacific"
|
||||||
msgstr "亚太"
|
msgstr "亚太"
|
||||||
@@ -9504,6 +9489,9 @@ msgstr "跳转到发布页面"
|
|||||||
msgid "Note: The preparation may take several minutes. Please be patient."
|
msgid "Note: The preparation may take several minutes. Please be patient."
|
||||||
msgstr "提示:发布前需要一些准备时间,请耐心等待。"
|
msgstr "提示:发布前需要一些准备时间,请耐心等待。"
|
||||||
|
|
||||||
|
msgid "Publish"
|
||||||
|
msgstr "发布"
|
||||||
|
|
||||||
msgid "Publish was canceled"
|
msgid "Publish was canceled"
|
||||||
msgstr "发布已取消"
|
msgstr "发布已取消"
|
||||||
|
|
||||||
@@ -9519,64 +9507,6 @@ msgstr "正在上传数据"
|
|||||||
msgid "Jump to webpage"
|
msgid "Jump to webpage"
|
||||||
msgstr "跳转到网页"
|
msgstr "跳转到网页"
|
||||||
|
|
||||||
msgid "Material"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Mixed filament"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Some mixed filaments rely on filaments that will not be published:"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#, c-format, boost-format
|
|
||||||
msgid "Filament %d (mixed)"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "needs"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "not enabled"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "material not published"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "To publish a mixed filament, enable every filament it uses and choose Full Publish or check its Type requirement."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish anyway"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish 3MF..."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Select which settings to be published in the 3MF file"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish 3MF Wiki"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish 3MF Video Guide"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Mixed filament - published as a whole when \"Enable\" above is selected"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish this mixed filament and enable + Full Publish its component filaments"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish this filament slot in the 3MF file"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Full Publish"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Embed the entire filament of this slot in the 3MF file"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Filter non-selected"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#, c-format, boost-format
|
#, c-format, boost-format
|
||||||
msgid "Save %s as"
|
msgid "Save %s as"
|
||||||
msgstr "另存%s为"
|
msgstr "另存%s为"
|
||||||
@@ -20709,15 +20639,6 @@ msgstr "此操作无法撤消。继续?"
|
|||||||
msgid "Skipping objects."
|
msgid "Skipping objects."
|
||||||
msgstr "跳过对象。"
|
msgstr "跳过对象。"
|
||||||
|
|
||||||
msgid "Material Ratio"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Model Height"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Ratio"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Select Filament"
|
msgid "Select Filament"
|
||||||
msgstr "选择耗材"
|
msgstr "选择耗材"
|
||||||
|
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: Orca Slicer\n"
|
"Project-Id-Version: Orca Slicer\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2026-09-03 10:27+0800\n"
|
"POT-Creation-Date: 2026-09-02 09:39-0300\n"
|
||||||
"PO-Revision-Date: 2025-11-28 13:48-0600\n"
|
"PO-Revision-Date: 2025-11-28 13:48-0600\n"
|
||||||
"Last-Translator: tntchn <15895303+tntchn@users.noreply.github.com>\n"
|
"Last-Translator: tntchn <15895303+tntchn@users.noreply.github.com>\n"
|
||||||
"Language-Team: \n"
|
"Language-Team: \n"
|
||||||
@@ -2425,6 +2425,8 @@ msgstr "有可用的更新。請開啟預設組合對話框進行更新。"
|
|||||||
msgid "%s has been removed."
|
msgid "%s has been removed."
|
||||||
msgstr "%s 已移除。"
|
msgstr "%s 已移除。"
|
||||||
|
|
||||||
|
msgid "Switching application language"
|
||||||
|
msgstr "切換應用程式語言"
|
||||||
|
|
||||||
msgid "Select the language"
|
msgid "Select the language"
|
||||||
msgstr "選擇語言"
|
msgstr "選擇語言"
|
||||||
@@ -4870,9 +4872,6 @@ msgstr ""
|
|||||||
"是 - 自動調整這些設定並啟用花瓶模式\n"
|
"是 - 自動調整這些設定並啟用花瓶模式\n"
|
||||||
"否 - 不使用花瓶模式"
|
"否 - 不使用花瓶模式"
|
||||||
|
|
||||||
msgid "N/A"
|
|
||||||
msgstr "不適用"
|
|
||||||
|
|
||||||
msgid "Printing"
|
msgid "Printing"
|
||||||
msgstr "列印中"
|
msgstr "列印中"
|
||||||
|
|
||||||
@@ -5304,9 +5303,13 @@ msgstr "數值 %s 超出範圍。有效範圍是從 %d 到 %d。"
|
|||||||
|
|
||||||
#, c-format, boost-format
|
#, c-format, boost-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Is it %s%% or %s %s?"
|
"Is it %s%% or %s %s?\n"
|
||||||
|
"YES for %s%%, \n"
|
||||||
|
"NO for %s %s."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"是 %s%% 還是 %s %s?"
|
"是 %s%% 還是 %s %s?\n"
|
||||||
|
"選『是』代表 %s%%,\n"
|
||||||
|
"選『否』代表 %s %s。"
|
||||||
|
|
||||||
#, boost-format
|
#, boost-format
|
||||||
msgid "Invalid input format. Expected vector of dimensions in the following format: \"%1%\""
|
msgid "Invalid input format. Expected vector of dimensions in the following format: \"%1%\""
|
||||||
@@ -5328,6 +5331,9 @@ msgstr "無效的格式。請使用 N、N#K 或逗號分隔的清單,每個項
|
|||||||
msgid "Invalid format. Expected vector format: \"%1%\""
|
msgid "Invalid format. Expected vector format: \"%1%\""
|
||||||
msgstr "無效格式,應該是「%1%」這種格式"
|
msgstr "無效格式,應該是「%1%」這種格式"
|
||||||
|
|
||||||
|
msgid "N/A"
|
||||||
|
msgstr "不適用"
|
||||||
|
|
||||||
# AI Translated
|
# AI Translated
|
||||||
msgid "System agents"
|
msgid "System agents"
|
||||||
msgstr "系統代理程式"
|
msgstr "系統代理程式"
|
||||||
@@ -6283,12 +6289,6 @@ msgstr "另存專案為"
|
|||||||
msgid "Save current project as"
|
msgid "Save current project as"
|
||||||
msgstr "將目前專案另存為"
|
msgstr "將目前專案另存為"
|
||||||
|
|
||||||
msgid "Publish 3MF"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Export a 3MF file with the selected settings embedded"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Import 3MF/STL/STEP/SVG/OBJ/AMF"
|
msgid "Import 3MF/STL/STEP/SVG/OBJ/AMF"
|
||||||
msgstr "匯入 3MF/STL/STEP/SVG/OBJ/AMF"
|
msgstr "匯入 3MF/STL/STEP/SVG/OBJ/AMF"
|
||||||
|
|
||||||
@@ -8110,12 +8110,6 @@ msgstr "請確認這些預設中的 G-code 是安全的,以防止對列印裝
|
|||||||
msgid "Customized Preset"
|
msgid "Customized Preset"
|
||||||
msgstr "自訂預設"
|
msgstr "自訂預設"
|
||||||
|
|
||||||
msgid "Some published settings could not be applied:"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Some filament slots were changed:"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Component name(s) inside step file not in UTF-8 format!"
|
msgid "Component name(s) inside step file not in UTF-8 format!"
|
||||||
msgstr "STEP 檔案內部元件的名稱不是 UTF-8 格式!"
|
msgstr "STEP 檔案內部元件的名稱不是 UTF-8 格式!"
|
||||||
|
|
||||||
@@ -8526,17 +8520,6 @@ msgstr "切片檔案另存為:"
|
|||||||
msgid "The file %s has been sent to the printer's storage space and can be viewed on the printer."
|
msgid "The file %s has been sent to the printer's storage space and can be viewed on the printer."
|
||||||
msgstr "檔案 %s 已經傳送到列印裝置的儲存空間,可以在列印裝置上瀏覽。"
|
msgstr "檔案 %s 已經傳送到列印裝置的儲存空間,可以在列印裝置上瀏覽。"
|
||||||
|
|
||||||
msgid "Publish 3MF file as:"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid ""
|
|
||||||
"Failed to export the published 3MF file.\n"
|
|
||||||
"Please check whether the folder exists online or if other programs have the file open."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish"
|
|
||||||
msgstr "發布"
|
|
||||||
|
|
||||||
msgid "The nozzle type is not set. Please set the nozzle and try again."
|
msgid "The nozzle type is not set. Please set the nozzle and try again."
|
||||||
msgstr "噴嘴類型尚未設定。請設定噴嘴後再試一次。"
|
msgstr "噴嘴類型尚未設定。請設定噴嘴後再試一次。"
|
||||||
|
|
||||||
@@ -8747,6 +8730,8 @@ msgstr "是否繼續?"
|
|||||||
msgid "Language selection"
|
msgid "Language selection"
|
||||||
msgstr "語言選擇"
|
msgstr "語言選擇"
|
||||||
|
|
||||||
|
msgid "Switching application language while some presets are modified."
|
||||||
|
msgstr "在切換應用程式語言之前發現某些參數預設有更改。"
|
||||||
|
|
||||||
msgid "Asia-Pacific"
|
msgid "Asia-Pacific"
|
||||||
msgstr "亞太"
|
msgstr "亞太"
|
||||||
@@ -9677,6 +9662,9 @@ msgstr "發布頁面"
|
|||||||
msgid "Note: The preparation may take several minutes. Please be patient."
|
msgid "Note: The preparation may take several minutes. Please be patient."
|
||||||
msgstr "提示:發布前需要一些準備時間,請耐心等待。"
|
msgstr "提示:發布前需要一些準備時間,請耐心等待。"
|
||||||
|
|
||||||
|
msgid "Publish"
|
||||||
|
msgstr "發布"
|
||||||
|
|
||||||
msgid "Publish was canceled"
|
msgid "Publish was canceled"
|
||||||
msgstr "發布已取消"
|
msgstr "發布已取消"
|
||||||
|
|
||||||
@@ -9692,64 +9680,6 @@ msgstr "正在上傳資料"
|
|||||||
msgid "Jump to webpage"
|
msgid "Jump to webpage"
|
||||||
msgstr "跳至網頁"
|
msgstr "跳至網頁"
|
||||||
|
|
||||||
msgid "Material"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Mixed filament"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Some mixed filaments rely on filaments that will not be published:"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#, c-format, boost-format
|
|
||||||
msgid "Filament %d (mixed)"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "needs"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "not enabled"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "material not published"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "To publish a mixed filament, enable every filament it uses and choose Full Publish or check its Type requirement."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish anyway"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish 3MF..."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Select which settings to be published in the 3MF file"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish 3MF Wiki"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish 3MF Video Guide"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Mixed filament - published as a whole when \"Enable\" above is selected"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish this mixed filament and enable + Full Publish its component filaments"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Publish this filament slot in the 3MF file"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Full Publish"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Embed the entire filament of this slot in the 3MF file"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Filter non-selected"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#, c-format, boost-format
|
#, c-format, boost-format
|
||||||
msgid "Save %s as"
|
msgid "Save %s as"
|
||||||
msgstr "另存 %s 為"
|
msgstr "另存 %s 為"
|
||||||
@@ -20902,15 +20832,6 @@ msgstr "此操作無法撤消。繼續?"
|
|||||||
msgid "Skipping objects."
|
msgid "Skipping objects."
|
||||||
msgstr "跳過物件。"
|
msgstr "跳過物件。"
|
||||||
|
|
||||||
msgid "Material Ratio"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Model Height"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Ratio"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Select Filament"
|
msgid "Select Filament"
|
||||||
msgstr "選擇線材"
|
msgstr "選擇線材"
|
||||||
|
|
||||||
|
|||||||
@@ -1 +0,0 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path d="M1.5,8 14.5,1.5 7.5,14.5 6.3,9.7 Z" style="fill:none;stroke:gray;stroke-linecap:round;stroke-linejoin:round"/></svg>
|
|
||||||
|
Before Width: | Height: | Size: 209 B |
@@ -1,4 +1,8 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16">
|
<svg width="25" height="25" xmlns="http://www.w3.org/2000/svg" fill="none">
|
||||||
<line x1="0.5" y1="7.5" x2="14.5" y2="7.5" style="fill:none;stroke:#949494;stroke-linecap:round;stroke-linejoin:round"/>
|
|
||||||
<line x1="7.5" y1="0.5" x2="7.5" y2="14.5" style="fill:none;stroke:#949494;stroke-linecap:round;stroke-linejoin:round"/>
|
<g>
|
||||||
|
<title>Layer 1</title>
|
||||||
|
<path id="svg_1" stroke-linecap="round" stroke-width="2" stroke="#262E30" d="m1,12.5l23,0"/>
|
||||||
|
<path id="svg_2" stroke-linecap="round" stroke-width="2" stroke="#262E30" d="m12.5,24l0,-23"/>
|
||||||
|
</g>
|
||||||
</svg>
|
</svg>
|
||||||
|
Before Width: | Height: | Size: 332 B After Width: | Height: | Size: 312 B |
+6
@@ -324,6 +324,12 @@
|
|||||||
"slow_down_min_speed": [
|
"slow_down_min_speed": [
|
||||||
"20"
|
"20"
|
||||||
],
|
],
|
||||||
|
"supertack_plate_temp": [
|
||||||
|
"35"
|
||||||
|
],
|
||||||
|
"supertack_plate_temp_initial_layer": [
|
||||||
|
"35"
|
||||||
|
],
|
||||||
"support_material_interface_fan_speed": [
|
"support_material_interface_fan_speed": [
|
||||||
"-1"
|
"-1"
|
||||||
],
|
],
|
||||||
|
|||||||
+6
@@ -318,6 +318,12 @@
|
|||||||
"slow_down_min_speed": [
|
"slow_down_min_speed": [
|
||||||
"20"
|
"20"
|
||||||
],
|
],
|
||||||
|
"supertack_plate_temp": [
|
||||||
|
"35"
|
||||||
|
],
|
||||||
|
"supertack_plate_temp_initial_layer": [
|
||||||
|
"35"
|
||||||
|
],
|
||||||
"support_material_interface_fan_speed": [
|
"support_material_interface_fan_speed": [
|
||||||
"-1"
|
"-1"
|
||||||
],
|
],
|
||||||
|
|||||||
+6
@@ -324,6 +324,12 @@
|
|||||||
"slow_down_min_speed": [
|
"slow_down_min_speed": [
|
||||||
"20"
|
"20"
|
||||||
],
|
],
|
||||||
|
"supertack_plate_temp": [
|
||||||
|
"35"
|
||||||
|
],
|
||||||
|
"supertack_plate_temp_initial_layer": [
|
||||||
|
"35"
|
||||||
|
],
|
||||||
"support_material_interface_fan_speed": [
|
"support_material_interface_fan_speed": [
|
||||||
"-1"
|
"-1"
|
||||||
],
|
],
|
||||||
|
|||||||
+6
@@ -324,6 +324,12 @@
|
|||||||
"slow_down_min_speed": [
|
"slow_down_min_speed": [
|
||||||
"20"
|
"20"
|
||||||
],
|
],
|
||||||
|
"supertack_plate_temp": [
|
||||||
|
"35"
|
||||||
|
],
|
||||||
|
"supertack_plate_temp_initial_layer": [
|
||||||
|
"35"
|
||||||
|
],
|
||||||
"support_material_interface_fan_speed": [
|
"support_material_interface_fan_speed": [
|
||||||
"-1"
|
"-1"
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -309,6 +309,12 @@
|
|||||||
"slow_down_min_speed": [
|
"slow_down_min_speed": [
|
||||||
"20"
|
"20"
|
||||||
],
|
],
|
||||||
|
"supertack_plate_temp": [
|
||||||
|
"35"
|
||||||
|
],
|
||||||
|
"supertack_plate_temp_initial_layer": [
|
||||||
|
"35"
|
||||||
|
],
|
||||||
"support_material_interface_fan_speed": [
|
"support_material_interface_fan_speed": [
|
||||||
"-1"
|
"-1"
|
||||||
],
|
],
|
||||||
|
|||||||
+6
@@ -318,6 +318,12 @@
|
|||||||
"slow_down_min_speed": [
|
"slow_down_min_speed": [
|
||||||
"20"
|
"20"
|
||||||
],
|
],
|
||||||
|
"supertack_plate_temp": [
|
||||||
|
"35"
|
||||||
|
],
|
||||||
|
"supertack_plate_temp_initial_layer": [
|
||||||
|
"35"
|
||||||
|
],
|
||||||
"support_material_interface_fan_speed": [
|
"support_material_interface_fan_speed": [
|
||||||
"-1"
|
"-1"
|
||||||
],
|
],
|
||||||
|
|||||||
+6
@@ -324,6 +324,12 @@
|
|||||||
"slow_down_min_speed": [
|
"slow_down_min_speed": [
|
||||||
"20"
|
"20"
|
||||||
],
|
],
|
||||||
|
"supertack_plate_temp": [
|
||||||
|
"35"
|
||||||
|
],
|
||||||
|
"supertack_plate_temp_initial_layer": [
|
||||||
|
"35"
|
||||||
|
],
|
||||||
"support_material_interface_fan_speed": [
|
"support_material_interface_fan_speed": [
|
||||||
"-1"
|
"-1"
|
||||||
],
|
],
|
||||||
|
|||||||
+6
@@ -324,6 +324,12 @@
|
|||||||
"slow_down_min_speed": [
|
"slow_down_min_speed": [
|
||||||
"10"
|
"10"
|
||||||
],
|
],
|
||||||
|
"supertack_plate_temp": [
|
||||||
|
"35"
|
||||||
|
],
|
||||||
|
"supertack_plate_temp_initial_layer": [
|
||||||
|
"35"
|
||||||
|
],
|
||||||
"support_material_interface_fan_speed": [
|
"support_material_interface_fan_speed": [
|
||||||
"-1"
|
"-1"
|
||||||
],
|
],
|
||||||
|
|||||||
+6
@@ -318,6 +318,12 @@
|
|||||||
"slow_down_min_speed": [
|
"slow_down_min_speed": [
|
||||||
"20"
|
"20"
|
||||||
],
|
],
|
||||||
|
"supertack_plate_temp": [
|
||||||
|
"35"
|
||||||
|
],
|
||||||
|
"supertack_plate_temp_initial_layer": [
|
||||||
|
"35"
|
||||||
|
],
|
||||||
"support_material_interface_fan_speed": [
|
"support_material_interface_fan_speed": [
|
||||||
"-1"
|
"-1"
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -309,6 +309,12 @@
|
|||||||
"slow_down_min_speed": [
|
"slow_down_min_speed": [
|
||||||
"20"
|
"20"
|
||||||
],
|
],
|
||||||
|
"supertack_plate_temp": [
|
||||||
|
"35"
|
||||||
|
],
|
||||||
|
"supertack_plate_temp_initial_layer": [
|
||||||
|
"35"
|
||||||
|
],
|
||||||
"support_material_interface_fan_speed": [
|
"support_material_interface_fan_speed": [
|
||||||
"-1"
|
"-1"
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -25,12 +25,6 @@
|
|||||||
"hot_plate_temp_initial_layer": [
|
"hot_plate_temp_initial_layer": [
|
||||||
"80"
|
"80"
|
||||||
],
|
],
|
||||||
"supertack_plate_temp": [
|
|
||||||
"60"
|
|
||||||
],
|
|
||||||
"supertack_plate_temp_initial_layer": [
|
|
||||||
"60"
|
|
||||||
],
|
|
||||||
"slow_down_for_layer_cooling": [
|
"slow_down_for_layer_cooling": [
|
||||||
"1"
|
"1"
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "Flashforge",
|
"name": "Flashforge",
|
||||||
"url": "",
|
"url": "",
|
||||||
"version": "02.04.00.06",
|
"version": "02.04.00.05",
|
||||||
"force_update": "0",
|
"force_update": "0",
|
||||||
"description": "Flashforge configurations",
|
"description": "Flashforge configurations",
|
||||||
"machine_model_list": [
|
"machine_model_list": [
|
||||||
@@ -439,22 +439,6 @@
|
|||||||
"name": "0.14mm Standard @FF AD5X 0.25 nozzle",
|
"name": "0.14mm Standard @FF AD5X 0.25 nozzle",
|
||||||
"sub_path": "process/0.14mm Standard @FF AD5X 0.25 nozzle.json"
|
"sub_path": "process/0.14mm Standard @FF AD5X 0.25 nozzle.json"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "0.08mm Standard @FF C5 0.25 nozzle",
|
|
||||||
"sub_path": "process/0.08mm Standard @FF C5 0.25 nozzle.json"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "0.10mm Standard @FF C5 0.25 nozzle",
|
|
||||||
"sub_path": "process/0.10mm Standard @FF C5 0.25 nozzle.json"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "0.12mm Standard @FF C5 0.25 nozzle",
|
|
||||||
"sub_path": "process/0.12mm Standard @FF C5 0.25 nozzle.json"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "0.14mm Standard @FF C5 0.25 nozzle",
|
|
||||||
"sub_path": "process/0.14mm Standard @FF C5 0.25 nozzle.json"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "0.14mm Standard @Flashforge AD5M 0.25 Nozzle",
|
"name": "0.14mm Standard @Flashforge AD5M 0.25 Nozzle",
|
||||||
"sub_path": "process/0.14mm Standard @Flashforge AD5M 0.25 Nozzle.json"
|
"sub_path": "process/0.14mm Standard @Flashforge AD5M 0.25 Nozzle.json"
|
||||||
@@ -2919,10 +2903,6 @@
|
|||||||
"name": "Flashforge AD5X 0.4 nozzle",
|
"name": "Flashforge AD5X 0.4 nozzle",
|
||||||
"sub_path": "machine/Flashforge AD5X 0.4 nozzle.json"
|
"sub_path": "machine/Flashforge AD5X 0.4 nozzle.json"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "Flashforge Creator 5 0.25 nozzle",
|
|
||||||
"sub_path": "machine/Flashforge Creator 5 0.25 nozzle.json"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "Flashforge Creator 5 0.4 nozzle",
|
"name": "Flashforge Creator 5 0.4 nozzle",
|
||||||
"sub_path": "machine/Flashforge Creator 5 0.4 nozzle.json"
|
"sub_path": "machine/Flashforge Creator 5 0.4 nozzle.json"
|
||||||
@@ -2935,10 +2915,6 @@
|
|||||||
"name": "Flashforge Creator 5 0.8 nozzle",
|
"name": "Flashforge Creator 5 0.8 nozzle",
|
||||||
"sub_path": "machine/Flashforge Creator 5 0.8 nozzle.json"
|
"sub_path": "machine/Flashforge Creator 5 0.8 nozzle.json"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "Flashforge Creator 5 Pro 0.25 nozzle",
|
|
||||||
"sub_path": "machine/Flashforge Creator 5 Pro 0.25 nozzle.json"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "Flashforge Creator 5 Pro 0.4 nozzle",
|
"name": "Flashforge Creator 5 Pro 0.4 nozzle",
|
||||||
"sub_path": "machine/Flashforge Creator 5 Pro 0.4 nozzle.json"
|
"sub_path": "machine/Flashforge Creator 5 Pro 0.4 nozzle.json"
|
||||||
|
|||||||
@@ -87,12 +87,6 @@
|
|||||||
"support_material_interface_fan_speed": [
|
"support_material_interface_fan_speed": [
|
||||||
"90"
|
"90"
|
||||||
],
|
],
|
||||||
"supertack_plate_temp": [
|
|
||||||
"60"
|
|
||||||
],
|
|
||||||
"supertack_plate_temp_initial_layer": [
|
|
||||||
"60"
|
|
||||||
],
|
|
||||||
"temperature_vitrification": [
|
"temperature_vitrification": [
|
||||||
"70"
|
"70"
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -93,12 +93,6 @@
|
|||||||
"support_material_interface_fan_speed": [
|
"support_material_interface_fan_speed": [
|
||||||
"90"
|
"90"
|
||||||
],
|
],
|
||||||
"supertack_plate_temp": [
|
|
||||||
"60"
|
|
||||||
],
|
|
||||||
"supertack_plate_temp_initial_layer": [
|
|
||||||
"60"
|
|
||||||
],
|
|
||||||
"temperature_vitrification": [
|
"temperature_vitrification": [
|
||||||
"70"
|
"70"
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -90,12 +90,6 @@
|
|||||||
"support_material_interface_fan_speed": [
|
"support_material_interface_fan_speed": [
|
||||||
"90"
|
"90"
|
||||||
],
|
],
|
||||||
"supertack_plate_temp": [
|
|
||||||
"60"
|
|
||||||
],
|
|
||||||
"supertack_plate_temp_initial_layer": [
|
|
||||||
"60"
|
|
||||||
],
|
|
||||||
"temperature_vitrification": [
|
"temperature_vitrification": [
|
||||||
"70"
|
"70"
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -96,12 +96,6 @@
|
|||||||
"support_material_interface_fan_speed": [
|
"support_material_interface_fan_speed": [
|
||||||
"90"
|
"90"
|
||||||
],
|
],
|
||||||
"supertack_plate_temp": [
|
|
||||||
"60"
|
|
||||||
],
|
|
||||||
"supertack_plate_temp_initial_layer": [
|
|
||||||
"60"
|
|
||||||
],
|
|
||||||
"temperature_vitrification": [
|
"temperature_vitrification": [
|
||||||
"70"
|
"70"
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -90,12 +90,6 @@
|
|||||||
"support_material_interface_fan_speed": [
|
"support_material_interface_fan_speed": [
|
||||||
"90"
|
"90"
|
||||||
],
|
],
|
||||||
"supertack_plate_temp": [
|
|
||||||
"60"
|
|
||||||
],
|
|
||||||
"supertack_plate_temp_initial_layer": [
|
|
||||||
"60"
|
|
||||||
],
|
|
||||||
"temperature_vitrification": [
|
"temperature_vitrification": [
|
||||||
"70"
|
"70"
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -96,12 +96,6 @@
|
|||||||
"support_material_interface_fan_speed": [
|
"support_material_interface_fan_speed": [
|
||||||
"90"
|
"90"
|
||||||
],
|
],
|
||||||
"supertack_plate_temp": [
|
|
||||||
"60"
|
|
||||||
],
|
|
||||||
"supertack_plate_temp_initial_layer": [
|
|
||||||
"60"
|
|
||||||
],
|
|
||||||
"temperature_vitrification": [
|
"temperature_vitrification": [
|
||||||
"70"
|
"70"
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -28,12 +28,6 @@
|
|||||||
"textured_plate_temp_initial_layer": [
|
"textured_plate_temp_initial_layer": [
|
||||||
"85"
|
"85"
|
||||||
],
|
],
|
||||||
"supertack_plate_temp": [
|
|
||||||
"60"
|
|
||||||
],
|
|
||||||
"supertack_plate_temp_initial_layer": [
|
|
||||||
"60"
|
|
||||||
],
|
|
||||||
"slow_down_for_layer_cooling": [
|
"slow_down_for_layer_cooling": [
|
||||||
"1"
|
"1"
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -1,311 +0,0 @@
|
|||||||
{
|
|
||||||
"type": "machine",
|
|
||||||
"name": "Flashforge Creator 5 0.25 nozzle",
|
|
||||||
"inherits": "Flashforge Adventurer 5M Pro 0.4 Nozzle",
|
|
||||||
"from": "system",
|
|
||||||
"setting_id": "xp3cpTEGYdWjcrMM",
|
|
||||||
"instantiation": "true",
|
|
||||||
"adaptive_bed_mesh_margin": "0",
|
|
||||||
"auxiliary_fan": "1",
|
|
||||||
"bbl_use_printhost": "0",
|
|
||||||
"bed_custom_model": "",
|
|
||||||
"bed_custom_texture": "",
|
|
||||||
"bed_exclude_area": [
|
|
||||||
"0x0"
|
|
||||||
],
|
|
||||||
"bed_mesh_max": "99999,99999",
|
|
||||||
"bed_mesh_min": "-99999,-99999",
|
|
||||||
"bed_mesh_probe_distance": "50,50",
|
|
||||||
"before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]",
|
|
||||||
"best_object_pos": "0.5,0.5",
|
|
||||||
"change_extrusion_role_gcode": "",
|
|
||||||
"change_filament_gcode": "",
|
|
||||||
"cooling_tube_length": "0",
|
|
||||||
"cooling_tube_retraction": "0",
|
|
||||||
"default_bed_type": "",
|
|
||||||
"default_filament_profile": [
|
|
||||||
"Flashforge Generic PLA"
|
|
||||||
],
|
|
||||||
"default_print_profile": "0.12mm Standard @FF C5 0.25 nozzle",
|
|
||||||
"deretraction_speed": [
|
|
||||||
"30",
|
|
||||||
"30",
|
|
||||||
"30",
|
|
||||||
"30"
|
|
||||||
],
|
|
||||||
"disable_m73": "1",
|
|
||||||
"emit_machine_limits_to_gcode": "1",
|
|
||||||
"enable_filament_ramming": "0",
|
|
||||||
"enable_long_retraction_when_cut": "0",
|
|
||||||
"extra_loading_move": "0",
|
|
||||||
"extruder_clearance_height_to_lid": "360",
|
|
||||||
"extruder_clearance_height_to_rod": "60",
|
|
||||||
"extruder_clearance_radius": "92",
|
|
||||||
"extruder_colour": [
|
|
||||||
"#FCE94F",
|
|
||||||
"#FCE94F",
|
|
||||||
"#FCE94F",
|
|
||||||
"#FCE94F"
|
|
||||||
],
|
|
||||||
"extruder_offset": [
|
|
||||||
"0x0",
|
|
||||||
"0x0",
|
|
||||||
"0x0",
|
|
||||||
"0x0"
|
|
||||||
],
|
|
||||||
"fan_kickstart": "0",
|
|
||||||
"fan_speedup_overhangs": "1",
|
|
||||||
"fan_speedup_time": "0",
|
|
||||||
"gcode_flavor": "klipper",
|
|
||||||
"head_wrap_detect_zone": [],
|
|
||||||
"high_current_on_filament_swap": "0",
|
|
||||||
"host_type": "octoprint",
|
|
||||||
"layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]",
|
|
||||||
"long_retractions_when_cut": [
|
|
||||||
"0",
|
|
||||||
"0",
|
|
||||||
"0",
|
|
||||||
"0"
|
|
||||||
],
|
|
||||||
"machine_end_gcode": ";end_gcode\nG1 X150 Y150 E-1.2 F12000",
|
|
||||||
"machine_load_filament_time": "0",
|
|
||||||
"machine_max_acceleration_e": [
|
|
||||||
"5000",
|
|
||||||
"5000"
|
|
||||||
],
|
|
||||||
"machine_max_acceleration_extruding": [
|
|
||||||
"30000",
|
|
||||||
"20000"
|
|
||||||
],
|
|
||||||
"machine_max_acceleration_retracting": [
|
|
||||||
"5000",
|
|
||||||
"5000"
|
|
||||||
],
|
|
||||||
"machine_max_acceleration_travel": [
|
|
||||||
"20000",
|
|
||||||
"20000"
|
|
||||||
],
|
|
||||||
"machine_max_acceleration_x": [
|
|
||||||
"30000",
|
|
||||||
"20000"
|
|
||||||
],
|
|
||||||
"machine_max_acceleration_y": [
|
|
||||||
"30000",
|
|
||||||
"20000"
|
|
||||||
],
|
|
||||||
"machine_max_acceleration_z": [
|
|
||||||
"300",
|
|
||||||
"500"
|
|
||||||
],
|
|
||||||
"machine_max_jerk_e": [
|
|
||||||
"2.5",
|
|
||||||
"2.5"
|
|
||||||
],
|
|
||||||
"machine_max_jerk_x": [
|
|
||||||
"9",
|
|
||||||
"9"
|
|
||||||
],
|
|
||||||
"machine_max_jerk_y": [
|
|
||||||
"9",
|
|
||||||
"9"
|
|
||||||
],
|
|
||||||
"machine_max_jerk_z": [
|
|
||||||
"3",
|
|
||||||
"3"
|
|
||||||
],
|
|
||||||
"machine_max_junction_deviation": [
|
|
||||||
"0",
|
|
||||||
"0"
|
|
||||||
],
|
|
||||||
"machine_max_speed_e": [
|
|
||||||
"30",
|
|
||||||
"30"
|
|
||||||
],
|
|
||||||
"machine_max_speed_x": [
|
|
||||||
"600",
|
|
||||||
"600"
|
|
||||||
],
|
|
||||||
"machine_max_speed_y": [
|
|
||||||
"600",
|
|
||||||
"600"
|
|
||||||
],
|
|
||||||
"machine_max_speed_z": [
|
|
||||||
"20",
|
|
||||||
"20"
|
|
||||||
],
|
|
||||||
"machine_min_extruding_rate": [
|
|
||||||
"0",
|
|
||||||
"0"
|
|
||||||
],
|
|
||||||
"machine_min_travel_rate": [
|
|
||||||
"0",
|
|
||||||
"0"
|
|
||||||
],
|
|
||||||
"machine_pause_gcode": "M25",
|
|
||||||
"machine_start_gcode": ";start_gcode\nM140 S[bed_temperature_initial_layer_single]\nM106 P101 S0 ; L+R_PLA_Turbo_Fan_0-255\nM106 P2 S0 ; Center_Fresch_Air_Input_Fan_for_PLA30%_(80_0-255) \nM191 S0 ; Chamber temp. max65C\nM106 S0 ; Model_Fan_(Heat_Break_Cooler_80-255)100%=255\nM106 P3 S0 ; Filter_Unit_Fan_0-255(ABS=255)\nM104 S[nozzle_temperature_initial_layer]\nG90\nM83\nG1 Z5 F2400\nT[initial_extruder]\nM109 S[nozzle_temperature_initial_layer] T[initial_extruder]\nG1 X256 Y0 Z0.2 F6000\nG1 E5 F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60}\nG1 X216 E10 F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60}\n;start_gcode end",
|
|
||||||
"machine_tool_change_time": "7",
|
|
||||||
"machine_unload_filament_time": "0",
|
|
||||||
"manual_filament_change": "0",
|
|
||||||
"max_layer_height": [
|
|
||||||
"0.14",
|
|
||||||
"0.14",
|
|
||||||
"0.14",
|
|
||||||
"0.14"
|
|
||||||
],
|
|
||||||
"max_resonance_avoidance_speed": "120",
|
|
||||||
"min_layer_height": [
|
|
||||||
"0.08",
|
|
||||||
"0.08",
|
|
||||||
"0.08",
|
|
||||||
"0.08"
|
|
||||||
],
|
|
||||||
"min_resonance_avoidance_speed": "70",
|
|
||||||
"nozzle_diameter": [
|
|
||||||
"0.25",
|
|
||||||
"0.25",
|
|
||||||
"0.25",
|
|
||||||
"0.25"
|
|
||||||
],
|
|
||||||
"nozzle_height": "4",
|
|
||||||
"nozzle_hrc": "0",
|
|
||||||
"nozzle_type": "hardened_steel",
|
|
||||||
"nozzle_volume": "0",
|
|
||||||
"parking_pos_retraction": "0",
|
|
||||||
"pellet_modded_printer": "0",
|
|
||||||
"preferred_orientation": "0",
|
|
||||||
"printable_area": [
|
|
||||||
"0x0",
|
|
||||||
"256x0",
|
|
||||||
"256x256",
|
|
||||||
"0x256"
|
|
||||||
],
|
|
||||||
"printable_height": "256",
|
|
||||||
"printer_model": "Flashforge Creator 5",
|
|
||||||
"printer_notes": "",
|
|
||||||
"printer_settings_id": "Flashforge Creator 5 0.25 nozzle",
|
|
||||||
"printer_structure": "corexy",
|
|
||||||
"printer_technology": "FFF",
|
|
||||||
"printer_variant": "0.25",
|
|
||||||
"printhost_authorization_type": "key",
|
|
||||||
"printhost_ssl_ignore_revoke": "0",
|
|
||||||
"printing_by_object_gcode": "",
|
|
||||||
"purge_in_prime_tower": "0",
|
|
||||||
"resonance_avoidance": "0",
|
|
||||||
"retract_before_wipe": [
|
|
||||||
"100%",
|
|
||||||
"100%",
|
|
||||||
"100%",
|
|
||||||
"100%"
|
|
||||||
],
|
|
||||||
"retract_length_toolchange": [
|
|
||||||
"3",
|
|
||||||
"3",
|
|
||||||
"3",
|
|
||||||
"3"
|
|
||||||
],
|
|
||||||
"retract_lift_above": [
|
|
||||||
"0",
|
|
||||||
"0",
|
|
||||||
"0",
|
|
||||||
"0"
|
|
||||||
],
|
|
||||||
"retract_lift_below": [
|
|
||||||
"0",
|
|
||||||
"0",
|
|
||||||
"0",
|
|
||||||
"0"
|
|
||||||
],
|
|
||||||
"retract_lift_enforce": [
|
|
||||||
"All Surfaces",
|
|
||||||
"All Surfaces",
|
|
||||||
"All Surfaces",
|
|
||||||
"All Surfaces"
|
|
||||||
],
|
|
||||||
"retract_restart_extra": [
|
|
||||||
"0",
|
|
||||||
"0",
|
|
||||||
"0",
|
|
||||||
"0"
|
|
||||||
],
|
|
||||||
"retract_restart_extra_toolchange": [
|
|
||||||
"-0.8",
|
|
||||||
"-0.8",
|
|
||||||
"-0.8",
|
|
||||||
"-0.8"
|
|
||||||
],
|
|
||||||
"retract_when_changing_layer": [
|
|
||||||
"1",
|
|
||||||
"1",
|
|
||||||
"1",
|
|
||||||
"1"
|
|
||||||
],
|
|
||||||
"retraction_distances_when_cut": [
|
|
||||||
"18",
|
|
||||||
"18",
|
|
||||||
"18",
|
|
||||||
"18"
|
|
||||||
],
|
|
||||||
"retraction_length": [
|
|
||||||
"0.8",
|
|
||||||
"0.8",
|
|
||||||
"0.8",
|
|
||||||
"0.8"
|
|
||||||
],
|
|
||||||
"retraction_minimum_travel": [
|
|
||||||
"2",
|
|
||||||
"2",
|
|
||||||
"2",
|
|
||||||
"2"
|
|
||||||
],
|
|
||||||
"retraction_speed": [
|
|
||||||
"30",
|
|
||||||
"30",
|
|
||||||
"30",
|
|
||||||
"30"
|
|
||||||
],
|
|
||||||
"scan_first_layer": "0",
|
|
||||||
"silent_mode": "0",
|
|
||||||
"single_extruder_multi_material": "0",
|
|
||||||
"support_air_filtration": "0",
|
|
||||||
"support_chamber_temp_control": "0",
|
|
||||||
"support_multi_bed_types": "1",
|
|
||||||
"template_custom_gcode": "",
|
|
||||||
"thumbnails": "140x110/PNG",
|
|
||||||
"thumbnails_format": "PNG",
|
|
||||||
"time_cost": "0",
|
|
||||||
"time_lapse_gcode": "",
|
|
||||||
"travel_slope": [
|
|
||||||
"3",
|
|
||||||
"3",
|
|
||||||
"3",
|
|
||||||
"3"
|
|
||||||
],
|
|
||||||
"upward_compatible_machine": [],
|
|
||||||
"use_firmware_retraction": "0",
|
|
||||||
"use_relative_e_distances": "1",
|
|
||||||
"wipe": [
|
|
||||||
"1",
|
|
||||||
"1",
|
|
||||||
"1",
|
|
||||||
"1"
|
|
||||||
],
|
|
||||||
"wipe_distance": [
|
|
||||||
"2",
|
|
||||||
"2",
|
|
||||||
"2",
|
|
||||||
"2"
|
|
||||||
],
|
|
||||||
"z_hop": [
|
|
||||||
"0.4",
|
|
||||||
"0.4",
|
|
||||||
"0.4",
|
|
||||||
"0.4"
|
|
||||||
],
|
|
||||||
"z_hop_types": [
|
|
||||||
"Auto Lift",
|
|
||||||
"Auto Lift",
|
|
||||||
"Auto Lift",
|
|
||||||
"Auto Lift"
|
|
||||||
],
|
|
||||||
"z_offset": "0"
|
|
||||||
}
|
|
||||||
@@ -1,311 +0,0 @@
|
|||||||
{
|
|
||||||
"type": "machine",
|
|
||||||
"name": "Flashforge Creator 5 Pro 0.25 nozzle",
|
|
||||||
"inherits": "Flashforge Adventurer 5M Pro 0.4 Nozzle",
|
|
||||||
"from": "system",
|
|
||||||
"setting_id": "rpmib7bIKa85LNMR",
|
|
||||||
"instantiation": "true",
|
|
||||||
"adaptive_bed_mesh_margin": "0",
|
|
||||||
"auxiliary_fan": "1",
|
|
||||||
"bbl_use_printhost": "0",
|
|
||||||
"bed_custom_model": "",
|
|
||||||
"bed_custom_texture": "",
|
|
||||||
"bed_exclude_area": [
|
|
||||||
"0x0"
|
|
||||||
],
|
|
||||||
"bed_mesh_max": "99999,99999",
|
|
||||||
"bed_mesh_min": "-99999,-99999",
|
|
||||||
"bed_mesh_probe_distance": "50,50",
|
|
||||||
"before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]",
|
|
||||||
"best_object_pos": "0.5,0.5",
|
|
||||||
"change_extrusion_role_gcode": "",
|
|
||||||
"change_filament_gcode": "",
|
|
||||||
"cooling_tube_length": "0",
|
|
||||||
"cooling_tube_retraction": "0",
|
|
||||||
"default_bed_type": "",
|
|
||||||
"default_filament_profile": [
|
|
||||||
"Flashforge Generic PLA"
|
|
||||||
],
|
|
||||||
"default_print_profile": "0.12mm Standard @FF C5 0.25 nozzle",
|
|
||||||
"deretraction_speed": [
|
|
||||||
"30",
|
|
||||||
"30",
|
|
||||||
"30",
|
|
||||||
"30"
|
|
||||||
],
|
|
||||||
"disable_m73": "1",
|
|
||||||
"emit_machine_limits_to_gcode": "1",
|
|
||||||
"enable_filament_ramming": "0",
|
|
||||||
"enable_long_retraction_when_cut": "0",
|
|
||||||
"extra_loading_move": "0",
|
|
||||||
"extruder_clearance_height_to_lid": "360",
|
|
||||||
"extruder_clearance_height_to_rod": "60",
|
|
||||||
"extruder_clearance_radius": "92",
|
|
||||||
"extruder_colour": [
|
|
||||||
"#FCE94F",
|
|
||||||
"#FCE94F",
|
|
||||||
"#FCE94F",
|
|
||||||
"#FCE94F"
|
|
||||||
],
|
|
||||||
"extruder_offset": [
|
|
||||||
"0x0",
|
|
||||||
"0x0",
|
|
||||||
"0x0",
|
|
||||||
"0x0"
|
|
||||||
],
|
|
||||||
"fan_kickstart": "0",
|
|
||||||
"fan_speedup_overhangs": "1",
|
|
||||||
"fan_speedup_time": "0",
|
|
||||||
"gcode_flavor": "klipper",
|
|
||||||
"head_wrap_detect_zone": [],
|
|
||||||
"high_current_on_filament_swap": "0",
|
|
||||||
"host_type": "octoprint",
|
|
||||||
"layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]",
|
|
||||||
"long_retractions_when_cut": [
|
|
||||||
"0",
|
|
||||||
"0",
|
|
||||||
"0",
|
|
||||||
"0"
|
|
||||||
],
|
|
||||||
"machine_end_gcode": ";end_gcode\nG1 X150 Y150 E-1.2 F12000",
|
|
||||||
"machine_load_filament_time": "0",
|
|
||||||
"machine_max_acceleration_e": [
|
|
||||||
"5000",
|
|
||||||
"5000"
|
|
||||||
],
|
|
||||||
"machine_max_acceleration_extruding": [
|
|
||||||
"30000",
|
|
||||||
"20000"
|
|
||||||
],
|
|
||||||
"machine_max_acceleration_retracting": [
|
|
||||||
"5000",
|
|
||||||
"5000"
|
|
||||||
],
|
|
||||||
"machine_max_acceleration_travel": [
|
|
||||||
"20000",
|
|
||||||
"20000"
|
|
||||||
],
|
|
||||||
"machine_max_acceleration_x": [
|
|
||||||
"30000",
|
|
||||||
"20000"
|
|
||||||
],
|
|
||||||
"machine_max_acceleration_y": [
|
|
||||||
"30000",
|
|
||||||
"20000"
|
|
||||||
],
|
|
||||||
"machine_max_acceleration_z": [
|
|
||||||
"300",
|
|
||||||
"500"
|
|
||||||
],
|
|
||||||
"machine_max_jerk_e": [
|
|
||||||
"2.5",
|
|
||||||
"2.5"
|
|
||||||
],
|
|
||||||
"machine_max_jerk_x": [
|
|
||||||
"9",
|
|
||||||
"9"
|
|
||||||
],
|
|
||||||
"machine_max_jerk_y": [
|
|
||||||
"9",
|
|
||||||
"9"
|
|
||||||
],
|
|
||||||
"machine_max_jerk_z": [
|
|
||||||
"3",
|
|
||||||
"3"
|
|
||||||
],
|
|
||||||
"machine_max_junction_deviation": [
|
|
||||||
"0",
|
|
||||||
"0"
|
|
||||||
],
|
|
||||||
"machine_max_speed_e": [
|
|
||||||
"30",
|
|
||||||
"30"
|
|
||||||
],
|
|
||||||
"machine_max_speed_x": [
|
|
||||||
"600",
|
|
||||||
"600"
|
|
||||||
],
|
|
||||||
"machine_max_speed_y": [
|
|
||||||
"600",
|
|
||||||
"600"
|
|
||||||
],
|
|
||||||
"machine_max_speed_z": [
|
|
||||||
"20",
|
|
||||||
"20"
|
|
||||||
],
|
|
||||||
"machine_min_extruding_rate": [
|
|
||||||
"0",
|
|
||||||
"0"
|
|
||||||
],
|
|
||||||
"machine_min_travel_rate": [
|
|
||||||
"0",
|
|
||||||
"0"
|
|
||||||
],
|
|
||||||
"machine_pause_gcode": "M25",
|
|
||||||
"machine_start_gcode": ";start_gcode\nM140 S[bed_temperature_initial_layer_single]\nM106 P101 S0 ; L+R_PLA_Turbo_Fan_0-255\nM106 P2 S0 ; Center_Fresch_Air_Input_Fan_for_PLA30%_(80_0-255) \nM191 S0 ; Chamber temp. max65C\nM106 S0 ; Model_Fan_(Heat_Break_Cooler_80-255)100%=255\nM106 P3 S0 ; Filter_Unit_Fan_0-255(ABS=255)\nM104 S[nozzle_temperature_initial_layer]\nG90\nM83\nG1 Z5 F2400\nT[initial_extruder]\nM109 S[nozzle_temperature_initial_layer] T[initial_extruder]\nG1 X256 Y0 Z0.2 F6000\nG1 E5 F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60}\nG1 X216 E10 F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60}\n;start_gcode end",
|
|
||||||
"machine_tool_change_time": "7",
|
|
||||||
"machine_unload_filament_time": "0",
|
|
||||||
"manual_filament_change": "0",
|
|
||||||
"max_layer_height": [
|
|
||||||
"0.14",
|
|
||||||
"0.14",
|
|
||||||
"0.14",
|
|
||||||
"0.14"
|
|
||||||
],
|
|
||||||
"max_resonance_avoidance_speed": "120",
|
|
||||||
"min_layer_height": [
|
|
||||||
"0.08",
|
|
||||||
"0.08",
|
|
||||||
"0.08",
|
|
||||||
"0.08"
|
|
||||||
],
|
|
||||||
"min_resonance_avoidance_speed": "70",
|
|
||||||
"nozzle_diameter": [
|
|
||||||
"0.25",
|
|
||||||
"0.25",
|
|
||||||
"0.25",
|
|
||||||
"0.25"
|
|
||||||
],
|
|
||||||
"nozzle_height": "4",
|
|
||||||
"nozzle_hrc": "0",
|
|
||||||
"nozzle_type": "hardened_steel",
|
|
||||||
"nozzle_volume": "0",
|
|
||||||
"parking_pos_retraction": "0",
|
|
||||||
"pellet_modded_printer": "0",
|
|
||||||
"preferred_orientation": "0",
|
|
||||||
"printable_area": [
|
|
||||||
"0x0",
|
|
||||||
"256x0",
|
|
||||||
"256x256",
|
|
||||||
"0x256"
|
|
||||||
],
|
|
||||||
"printable_height": "256",
|
|
||||||
"printer_model": "Flashforge Creator 5 Pro",
|
|
||||||
"printer_notes": "",
|
|
||||||
"printer_settings_id": "Flashforge Creator 5 Pro 0.25 nozzle",
|
|
||||||
"printer_structure": "corexy",
|
|
||||||
"printer_technology": "FFF",
|
|
||||||
"printer_variant": "0.25",
|
|
||||||
"printhost_authorization_type": "key",
|
|
||||||
"printhost_ssl_ignore_revoke": "0",
|
|
||||||
"printing_by_object_gcode": "",
|
|
||||||
"purge_in_prime_tower": "0",
|
|
||||||
"resonance_avoidance": "0",
|
|
||||||
"retract_before_wipe": [
|
|
||||||
"100%",
|
|
||||||
"100%",
|
|
||||||
"100%",
|
|
||||||
"100%"
|
|
||||||
],
|
|
||||||
"retract_length_toolchange": [
|
|
||||||
"3",
|
|
||||||
"3",
|
|
||||||
"3",
|
|
||||||
"3"
|
|
||||||
],
|
|
||||||
"retract_lift_above": [
|
|
||||||
"0",
|
|
||||||
"0",
|
|
||||||
"0",
|
|
||||||
"0"
|
|
||||||
],
|
|
||||||
"retract_lift_below": [
|
|
||||||
"0",
|
|
||||||
"0",
|
|
||||||
"0",
|
|
||||||
"0"
|
|
||||||
],
|
|
||||||
"retract_lift_enforce": [
|
|
||||||
"All Surfaces",
|
|
||||||
"All Surfaces",
|
|
||||||
"All Surfaces",
|
|
||||||
"All Surfaces"
|
|
||||||
],
|
|
||||||
"retract_restart_extra": [
|
|
||||||
"0",
|
|
||||||
"0",
|
|
||||||
"0",
|
|
||||||
"0"
|
|
||||||
],
|
|
||||||
"retract_restart_extra_toolchange": [
|
|
||||||
"-0.8",
|
|
||||||
"-0.8",
|
|
||||||
"-0.8",
|
|
||||||
"-0.8"
|
|
||||||
],
|
|
||||||
"retract_when_changing_layer": [
|
|
||||||
"1",
|
|
||||||
"1",
|
|
||||||
"1",
|
|
||||||
"1"
|
|
||||||
],
|
|
||||||
"retraction_distances_when_cut": [
|
|
||||||
"18",
|
|
||||||
"18",
|
|
||||||
"18",
|
|
||||||
"18"
|
|
||||||
],
|
|
||||||
"retraction_length": [
|
|
||||||
"0.8",
|
|
||||||
"0.8",
|
|
||||||
"0.8",
|
|
||||||
"0.8"
|
|
||||||
],
|
|
||||||
"retraction_minimum_travel": [
|
|
||||||
"2",
|
|
||||||
"2",
|
|
||||||
"2",
|
|
||||||
"2"
|
|
||||||
],
|
|
||||||
"retraction_speed": [
|
|
||||||
"30",
|
|
||||||
"30",
|
|
||||||
"30",
|
|
||||||
"30"
|
|
||||||
],
|
|
||||||
"scan_first_layer": "0",
|
|
||||||
"silent_mode": "0",
|
|
||||||
"single_extruder_multi_material": "0",
|
|
||||||
"support_air_filtration": "1",
|
|
||||||
"support_chamber_temp_control": "1",
|
|
||||||
"support_multi_bed_types": "1",
|
|
||||||
"template_custom_gcode": "",
|
|
||||||
"thumbnails": "140x110/PNG",
|
|
||||||
"thumbnails_format": "PNG",
|
|
||||||
"time_cost": "0",
|
|
||||||
"time_lapse_gcode": "",
|
|
||||||
"travel_slope": [
|
|
||||||
"3",
|
|
||||||
"3",
|
|
||||||
"3",
|
|
||||||
"3"
|
|
||||||
],
|
|
||||||
"upward_compatible_machine": [],
|
|
||||||
"use_firmware_retraction": "0",
|
|
||||||
"use_relative_e_distances": "1",
|
|
||||||
"wipe": [
|
|
||||||
"1",
|
|
||||||
"1",
|
|
||||||
"1",
|
|
||||||
"1"
|
|
||||||
],
|
|
||||||
"wipe_distance": [
|
|
||||||
"2",
|
|
||||||
"2",
|
|
||||||
"2",
|
|
||||||
"2"
|
|
||||||
],
|
|
||||||
"z_hop": [
|
|
||||||
"0.4",
|
|
||||||
"0.4",
|
|
||||||
"0.4",
|
|
||||||
"0.4"
|
|
||||||
],
|
|
||||||
"z_hop_types": [
|
|
||||||
"Auto Lift",
|
|
||||||
"Auto Lift",
|
|
||||||
"Auto Lift",
|
|
||||||
"Auto Lift"
|
|
||||||
],
|
|
||||||
"z_offset": "0"
|
|
||||||
}
|
|
||||||
@@ -2,7 +2,7 @@
|
|||||||
"type": "machine_model",
|
"type": "machine_model",
|
||||||
"name": "Flashforge Creator 5 Pro",
|
"name": "Flashforge Creator 5 Pro",
|
||||||
"model_id": "Flashforge-Creator-5-Pro",
|
"model_id": "Flashforge-Creator-5-Pro",
|
||||||
"nozzle_diameter": "0.25;0.4;0.6;0.8",
|
"nozzle_diameter": "0.4;0.6;0.8",
|
||||||
"machine_tech": "FFF",
|
"machine_tech": "FFF",
|
||||||
"family": "Flashforge",
|
"family": "Flashforge",
|
||||||
"bed_model": "flashforge_c5_buildplate_model.stl",
|
"bed_model": "flashforge_c5_buildplate_model.stl",
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
"type": "machine_model",
|
"type": "machine_model",
|
||||||
"name": "Flashforge Creator 5",
|
"name": "Flashforge Creator 5",
|
||||||
"model_id": "Flashforge-Creator-5",
|
"model_id": "Flashforge-Creator-5",
|
||||||
"nozzle_diameter": "0.25;0.4;0.6;0.8",
|
"nozzle_diameter": "0.4;0.6;0.8",
|
||||||
"machine_tech": "FFF",
|
"machine_tech": "FFF",
|
||||||
"family": "Flashforge",
|
"family": "Flashforge",
|
||||||
"bed_model": "flashforge_c5_buildplate_model.stl",
|
"bed_model": "flashforge_c5_buildplate_model.stl",
|
||||||
|
|||||||
@@ -1,28 +0,0 @@
|
|||||||
{
|
|
||||||
"type": "process",
|
|
||||||
"name": "0.08mm Standard @FF C5 0.25 nozzle",
|
|
||||||
"inherits": "0.10mm Standard @FF AD5X 0.25 nozzle",
|
|
||||||
"from": "system",
|
|
||||||
"setting_id": "KrOSCGKyvNy9v08u",
|
|
||||||
"instantiation": "true",
|
|
||||||
"bottom_solid_infill_flow_ratio": "1",
|
|
||||||
"compatible_printers": [
|
|
||||||
"Flashforge Creator 5 0.25 nozzle",
|
|
||||||
"Flashforge Creator 5 Pro 0.25 nozzle"
|
|
||||||
],
|
|
||||||
"initial_layer_print_height": "0.1",
|
|
||||||
"internal_bridge_flow": "1",
|
|
||||||
"layer_height": "0.08",
|
|
||||||
"ooze_prevention": "1",
|
|
||||||
"preheat_time": "20",
|
|
||||||
"print_extruder_id": [
|
|
||||||
"1"
|
|
||||||
],
|
|
||||||
"print_extruder_variant": [
|
|
||||||
"Direct Drive Standard"
|
|
||||||
],
|
|
||||||
"print_settings_id": "0.08mm Standard @FF C5 0.25 nozzle",
|
|
||||||
"small_perimeter_speed": "30",
|
|
||||||
"standby_temperature_delta": "-100",
|
|
||||||
"top_solid_infill_flow_ratio": "1"
|
|
||||||
}
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
{
|
|
||||||
"type": "process",
|
|
||||||
"name": "0.10mm Standard @FF C5 0.25 nozzle",
|
|
||||||
"inherits": "0.10mm Standard @FF AD5X 0.25 nozzle",
|
|
||||||
"from": "system",
|
|
||||||
"setting_id": "0Mep1gVTvD4RwK53",
|
|
||||||
"instantiation": "true",
|
|
||||||
"bottom_solid_infill_flow_ratio": "1",
|
|
||||||
"compatible_printers": [
|
|
||||||
"Flashforge Creator 5 0.25 nozzle",
|
|
||||||
"Flashforge Creator 5 Pro 0.25 nozzle"
|
|
||||||
],
|
|
||||||
"initial_layer_print_height": "0.1",
|
|
||||||
"internal_bridge_flow": "1",
|
|
||||||
"ooze_prevention": "1",
|
|
||||||
"preheat_time": "20",
|
|
||||||
"print_extruder_id": [
|
|
||||||
"1"
|
|
||||||
],
|
|
||||||
"print_extruder_variant": [
|
|
||||||
"Direct Drive Standard"
|
|
||||||
],
|
|
||||||
"print_settings_id": "0.10mm Standard @FF C5 0.25 nozzle",
|
|
||||||
"small_perimeter_speed": "30",
|
|
||||||
"standby_temperature_delta": "-100",
|
|
||||||
"top_solid_infill_flow_ratio": "1"
|
|
||||||
}
|
|
||||||
@@ -1,28 +0,0 @@
|
|||||||
{
|
|
||||||
"type": "process",
|
|
||||||
"name": "0.12mm Standard @FF C5 0.25 nozzle",
|
|
||||||
"inherits": "0.10mm Standard @FF AD5X 0.25 nozzle",
|
|
||||||
"from": "system",
|
|
||||||
"setting_id": "rcKQBKZJvCfrfzqV",
|
|
||||||
"instantiation": "true",
|
|
||||||
"bottom_solid_infill_flow_ratio": "1",
|
|
||||||
"compatible_printers": [
|
|
||||||
"Flashforge Creator 5 0.25 nozzle",
|
|
||||||
"Flashforge Creator 5 Pro 0.25 nozzle"
|
|
||||||
],
|
|
||||||
"initial_layer_print_height": "0.1",
|
|
||||||
"internal_bridge_flow": "1",
|
|
||||||
"layer_height": "0.12",
|
|
||||||
"ooze_prevention": "1",
|
|
||||||
"preheat_time": "20",
|
|
||||||
"print_extruder_id": [
|
|
||||||
"1"
|
|
||||||
],
|
|
||||||
"print_extruder_variant": [
|
|
||||||
"Direct Drive Standard"
|
|
||||||
],
|
|
||||||
"print_settings_id": "0.12mm Standard @FF C5 0.25 nozzle",
|
|
||||||
"small_perimeter_speed": "30",
|
|
||||||
"standby_temperature_delta": "-100",
|
|
||||||
"top_solid_infill_flow_ratio": "1"
|
|
||||||
}
|
|
||||||
@@ -1,28 +0,0 @@
|
|||||||
{
|
|
||||||
"type": "process",
|
|
||||||
"name": "0.14mm Standard @FF C5 0.25 nozzle",
|
|
||||||
"inherits": "0.10mm Standard @FF AD5X 0.25 nozzle",
|
|
||||||
"from": "system",
|
|
||||||
"setting_id": "749mQY3CU2jk0MOd",
|
|
||||||
"instantiation": "true",
|
|
||||||
"bottom_solid_infill_flow_ratio": "1",
|
|
||||||
"compatible_printers": [
|
|
||||||
"Flashforge Creator 5 0.25 nozzle",
|
|
||||||
"Flashforge Creator 5 Pro 0.25 nozzle"
|
|
||||||
],
|
|
||||||
"initial_layer_print_height": "0.1",
|
|
||||||
"internal_bridge_flow": "1",
|
|
||||||
"layer_height": "0.14",
|
|
||||||
"ooze_prevention": "1",
|
|
||||||
"preheat_time": "20",
|
|
||||||
"print_extruder_id": [
|
|
||||||
"1"
|
|
||||||
],
|
|
||||||
"print_extruder_variant": [
|
|
||||||
"Direct Drive Standard"
|
|
||||||
],
|
|
||||||
"print_settings_id": "0.14mm Standard @FF C5 0.25 nozzle",
|
|
||||||
"small_perimeter_speed": "30",
|
|
||||||
"standby_temperature_delta": "-100",
|
|
||||||
"top_solid_infill_flow_ratio": "1"
|
|
||||||
}
|
|
||||||
@@ -8,9 +8,6 @@
|
|||||||
"box_temperature_range_high": [
|
"box_temperature_range_high": [
|
||||||
"45"
|
"45"
|
||||||
],
|
],
|
||||||
"chamber_temperature": [
|
|
||||||
"55"
|
|
||||||
],
|
|
||||||
"close_fan_the_first_x_layers": [
|
"close_fan_the_first_x_layers": [
|
||||||
"3"
|
"3"
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -14,15 +14,9 @@
|
|||||||
"box_temperature": [
|
"box_temperature": [
|
||||||
"55"
|
"55"
|
||||||
],
|
],
|
||||||
"chamber_temperature": [
|
|
||||||
"55"
|
|
||||||
],
|
|
||||||
"close_fan_the_first_x_layers": [
|
"close_fan_the_first_x_layers": [
|
||||||
"3"
|
"3"
|
||||||
],
|
],
|
||||||
"during_print_exhaust_fan_speed": [
|
|
||||||
"0"
|
|
||||||
],
|
|
||||||
"cool_plate_temp_initial_layer": [
|
"cool_plate_temp_initial_layer": [
|
||||||
"60"
|
"60"
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -14,15 +14,9 @@
|
|||||||
"box_temperature": [
|
"box_temperature": [
|
||||||
"60"
|
"60"
|
||||||
],
|
],
|
||||||
"chamber_temperature": [
|
|
||||||
"55"
|
|
||||||
],
|
|
||||||
"close_fan_the_first_x_layers": [
|
"close_fan_the_first_x_layers": [
|
||||||
"3"
|
"3"
|
||||||
],
|
],
|
||||||
"during_print_exhaust_fan_speed": [
|
|
||||||
"0"
|
|
||||||
],
|
|
||||||
"cool_plate_temp_initial_layer": [
|
"cool_plate_temp_initial_layer": [
|
||||||
"80"
|
"80"
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -14,15 +14,9 @@
|
|||||||
"box_temperature": [
|
"box_temperature": [
|
||||||
"60"
|
"60"
|
||||||
],
|
],
|
||||||
"chamber_temperature": [
|
|
||||||
"55"
|
|
||||||
],
|
|
||||||
"close_fan_the_first_x_layers": [
|
"close_fan_the_first_x_layers": [
|
||||||
"3"
|
"3"
|
||||||
],
|
],
|
||||||
"during_print_exhaust_fan_speed": [
|
|
||||||
"0"
|
|
||||||
],
|
|
||||||
"cool_plate_temp_initial_layer": [
|
"cool_plate_temp_initial_layer": [
|
||||||
"80"
|
"80"
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -14,8 +14,8 @@
|
|||||||
"box_temperature": [
|
"box_temperature": [
|
||||||
"65"
|
"65"
|
||||||
],
|
],
|
||||||
"chamber_temperature": [
|
"chamber_temperatures": [
|
||||||
"55"
|
"0"
|
||||||
],
|
],
|
||||||
"close_fan_the_first_x_layers": [
|
"close_fan_the_first_x_layers": [
|
||||||
"3"
|
"3"
|
||||||
|
|||||||
@@ -14,9 +14,6 @@
|
|||||||
"box_temperature": [
|
"box_temperature": [
|
||||||
"60"
|
"60"
|
||||||
],
|
],
|
||||||
"chamber_temperature": [
|
|
||||||
"55"
|
|
||||||
],
|
|
||||||
"close_fan_the_first_x_layers": [
|
"close_fan_the_first_x_layers": [
|
||||||
"3"
|
"3"
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "Snapmaker",
|
"name": "Snapmaker",
|
||||||
"version": "02.04.00.13",
|
"version": "02.04.00.12",
|
||||||
"force_update": "0",
|
"force_update": "0",
|
||||||
"description": "Snapmaker configurations",
|
"description": "Snapmaker configurations",
|
||||||
"machine_model_list": [
|
"machine_model_list": [
|
||||||
|
|||||||
+5
-5
@@ -15,13 +15,13 @@
|
|||||||
"1"
|
"1"
|
||||||
],
|
],
|
||||||
"cool_plate_temp": [
|
"cool_plate_temp": [
|
||||||
"100"
|
"105"
|
||||||
],
|
],
|
||||||
"cool_plate_temp_initial_layer": [
|
"cool_plate_temp_initial_layer": [
|
||||||
"100"
|
"105"
|
||||||
],
|
],
|
||||||
"eng_plate_temp": [
|
"eng_plate_temp": [
|
||||||
"100"
|
"105"
|
||||||
],
|
],
|
||||||
"eng_plate_temp_initial_layer": [
|
"eng_plate_temp_initial_layer": [
|
||||||
"100"
|
"100"
|
||||||
@@ -48,7 +48,7 @@
|
|||||||
"Polymaker"
|
"Polymaker"
|
||||||
],
|
],
|
||||||
"hot_plate_temp": [
|
"hot_plate_temp": [
|
||||||
"100"
|
"105"
|
||||||
],
|
],
|
||||||
"hot_plate_temp_initial_layer": [
|
"hot_plate_temp_initial_layer": [
|
||||||
"100"
|
"100"
|
||||||
@@ -72,7 +72,7 @@
|
|||||||
"110.8"
|
"110.8"
|
||||||
],
|
],
|
||||||
"textured_plate_temp": [
|
"textured_plate_temp": [
|
||||||
"100"
|
"105"
|
||||||
],
|
],
|
||||||
"textured_plate_temp_initial_layer": [
|
"textured_plate_temp_initial_layer": [
|
||||||
"100"
|
"100"
|
||||||
|
|||||||
+8
-8
@@ -15,16 +15,16 @@
|
|||||||
"1"
|
"1"
|
||||||
],
|
],
|
||||||
"cool_plate_temp": [
|
"cool_plate_temp": [
|
||||||
"100"
|
"105"
|
||||||
],
|
],
|
||||||
"cool_plate_temp_initial_layer": [
|
"cool_plate_temp_initial_layer": [
|
||||||
"100"
|
"105"
|
||||||
],
|
],
|
||||||
"eng_plate_temp": [
|
"eng_plate_temp": [
|
||||||
"100"
|
"105"
|
||||||
],
|
],
|
||||||
"eng_plate_temp_initial_layer": [
|
"eng_plate_temp_initial_layer": [
|
||||||
"100"
|
"105"
|
||||||
],
|
],
|
||||||
"fan_cooling_layer_time": [
|
"fan_cooling_layer_time": [
|
||||||
"12"
|
"12"
|
||||||
@@ -51,10 +51,10 @@
|
|||||||
"Polymaker"
|
"Polymaker"
|
||||||
],
|
],
|
||||||
"hot_plate_temp": [
|
"hot_plate_temp": [
|
||||||
"100"
|
"105"
|
||||||
],
|
],
|
||||||
"hot_plate_temp_initial_layer": [
|
"hot_plate_temp_initial_layer": [
|
||||||
"100"
|
"105"
|
||||||
],
|
],
|
||||||
"nozzle_temperature": [
|
"nozzle_temperature": [
|
||||||
"300"
|
"300"
|
||||||
@@ -81,10 +81,10 @@
|
|||||||
"110"
|
"110"
|
||||||
],
|
],
|
||||||
"textured_plate_temp": [
|
"textured_plate_temp": [
|
||||||
"100"
|
"105"
|
||||||
],
|
],
|
||||||
"textured_plate_temp_initial_layer": [
|
"textured_plate_temp_initial_layer": [
|
||||||
"100"
|
"105"
|
||||||
],
|
],
|
||||||
"filament_type": [
|
"filament_type": [
|
||||||
"ABS"
|
"ABS"
|
||||||
|
|||||||
@@ -9,10 +9,10 @@
|
|||||||
""
|
""
|
||||||
],
|
],
|
||||||
"hot_plate_temp": [
|
"hot_plate_temp": [
|
||||||
"100"
|
"110"
|
||||||
],
|
],
|
||||||
"hot_plate_temp_initial_layer": [
|
"hot_plate_temp_initial_layer": [
|
||||||
"100"
|
"105"
|
||||||
],
|
],
|
||||||
"overhang_fan_speed": [
|
"overhang_fan_speed": [
|
||||||
"20"
|
"20"
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
""
|
""
|
||||||
],
|
],
|
||||||
"hot_plate_temp": [
|
"hot_plate_temp": [
|
||||||
"100"
|
"110"
|
||||||
],
|
],
|
||||||
"hot_plate_temp_initial_layer": [
|
"hot_plate_temp_initial_layer": [
|
||||||
"100"
|
"100"
|
||||||
|
|||||||
@@ -415,9 +415,7 @@ img.ModelThumbnail {
|
|||||||
border-width: 1px;
|
border-width: 1px;
|
||||||
border-style: solid;
|
border-style: solid;
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
border-color: var(--border-color);
|
background-color: inherit;
|
||||||
background-color: var(--bg-color);
|
|
||||||
color: var(--fg-color-text);
|
|
||||||
position: absolute;
|
position: absolute;
|
||||||
left: 50%;
|
left: 50%;
|
||||||
top: 200px;
|
top: 200px;
|
||||||
@@ -425,17 +423,13 @@ img.ModelThumbnail {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#NoticeBar {
|
#NoticeBar {
|
||||||
background-color: var(--main-color);
|
background-color:#00f0d8;
|
||||||
height: 40px;
|
height: 40px;
|
||||||
line-height: 40px;
|
line-height: 40px;
|
||||||
color: #fff;
|
color: #fff;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
#NoticeBar.notice-error {
|
|
||||||
background-color: var(--button-bg-alert);
|
|
||||||
}
|
|
||||||
|
|
||||||
#NoticeContent {
|
#NoticeContent {
|
||||||
padding: 4mm 10mm;
|
padding: 4mm 10mm;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -37,34 +37,6 @@ function HandleStudio( pVal )
|
|||||||
{
|
{
|
||||||
HandleModelList(pVal['response']);
|
HandleModelList(pVal['response']);
|
||||||
}
|
}
|
||||||
else if(strCmd=='check_new_printers_result')
|
|
||||||
{
|
|
||||||
let button = document.getElementById("CheckNewPrintersBtn");
|
|
||||||
if (button) {
|
|
||||||
button.style.pointerEvents = "auto";
|
|
||||||
button.style.opacity = "1";
|
|
||||||
}
|
|
||||||
|
|
||||||
let noticeBar = document.getElementById("NoticeBar");
|
|
||||||
let noticeText = document.getElementById("NoticeText");
|
|
||||||
let hasError = pVal.hasOwnProperty("error");
|
|
||||||
noticeBar.classList.toggle("notice-error", hasError);
|
|
||||||
if (hasError) {
|
|
||||||
noticeBar.textContent = "Error";
|
|
||||||
noticeText.textContent = pVal["error"];
|
|
||||||
} else if (pVal["vendors"] && pVal["vendors"].length > 0) {
|
|
||||||
noticeBar.textContent = "New printers found";
|
|
||||||
noticeText.textContent = "New printer vendors installed: " + pVal["vendors"].join(", ");
|
|
||||||
} else if (pVal["declined"]) {
|
|
||||||
noticeBar.textContent = "Information";
|
|
||||||
noticeText.textContent = "New printer vendors were found, but installation was cancelled.";
|
|
||||||
} else {
|
|
||||||
noticeBar.textContent = "Information";
|
|
||||||
noticeText.textContent = "No new printers found.";
|
|
||||||
}
|
|
||||||
|
|
||||||
ShowNotice(1);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function HandleModelList( pVal )
|
function HandleModelList( pVal )
|
||||||
@@ -106,13 +78,9 @@ function HandleModelList( pVal )
|
|||||||
}
|
}
|
||||||
|
|
||||||
//Update Nozzel Html Append
|
//Update Nozzel Html Append
|
||||||
// ORCA: HandleModelList can now be called more than once per dialog (e.g. after a new vendor
|
|
||||||
// is installed via "check for new printers"). pModel always holds the full, current list, so
|
|
||||||
// clear each vendor's printer area before repopulating instead of appending on top of a
|
|
||||||
// previous render.
|
|
||||||
for( let key in ModelHtml )
|
for( let key in ModelHtml )
|
||||||
{
|
{
|
||||||
$(".OneVendorBlock[vendor='"+key+"'] .PrinterArea").empty().append( ModelHtml[key] );
|
$(".OneVendorBlock[vendor='"+key+"'] .PrinterArea").append( ModelHtml[key] );
|
||||||
}
|
}
|
||||||
|
|
||||||
//Update Checkbox
|
//Update Checkbox
|
||||||
@@ -375,9 +343,6 @@ function OnExit()
|
|||||||
let nTotal=ModelSelect.length;
|
let nTotal=ModelSelect.length;
|
||||||
|
|
||||||
if( nTotal==0 ) {
|
if( nTotal==0 ) {
|
||||||
let noticeBar = document.getElementById("NoticeBar");
|
|
||||||
noticeBar.classList.add("notice-error");
|
|
||||||
noticeBar.textContent = "Error";
|
|
||||||
ShowNotice(1);
|
ShowNotice(1);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -36,22 +36,6 @@ function ConfirmSelect()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function CheckForNewPrinters()
|
|
||||||
{
|
|
||||||
var tSend={};
|
|
||||||
tSend['sequence_id']=Math.round(new Date() / 1000);
|
|
||||||
tSend['command']="check_for_new_printers";
|
|
||||||
tSend['data']={};
|
|
||||||
|
|
||||||
var button = document.getElementById("CheckNewPrintersBtn");
|
|
||||||
if (button) {
|
|
||||||
button.style.pointerEvents = "none";
|
|
||||||
button.style.opacity = "0.6";
|
|
||||||
}
|
|
||||||
|
|
||||||
SendWXMessage( JSON.stringify(tSend) );
|
|
||||||
}
|
|
||||||
|
|
||||||
function CreateNewPrinter()
|
function CreateNewPrinter()
|
||||||
{
|
{
|
||||||
var tSend={};
|
var tSend={};
|
||||||
|
|||||||
@@ -82,7 +82,6 @@
|
|||||||
</div>
|
</div>
|
||||||
<div id="AcceptArea">
|
<div id="AcceptArea">
|
||||||
<div class="ButtonStyleRegular ButtonTypeChoice trans" id="CreateBtn" onclick="CreateNewPrinter()">Create</div>
|
<div class="ButtonStyleRegular ButtonTypeChoice trans" id="CreateBtn" onclick="CreateNewPrinter()">Create</div>
|
||||||
<div class="ButtonStyleRegular ButtonTypeChoice" id="CheckNewPrintersBtn" onclick="CheckForNewPrinters()">Check for new printers</div>
|
|
||||||
<div class="ButtonStyleConfirm ButtonTypeChoice trans" tid="t39" id="AcceptBtn" onclick="ConfirmSelect()">Confirm</div>
|
<div class="ButtonStyleConfirm ButtonTypeChoice trans" tid="t39" id="AcceptBtn" onclick="ConfirmSelect()">Confirm</div>
|
||||||
<div class="ButtonStyleRegular ButtonTypeChoice trans" tid="t38" id="PreBtn" onclick="CancelSelect()">Cancel</div>
|
<div class="ButtonStyleRegular ButtonTypeChoice trans" tid="t38" id="PreBtn" onclick="CancelSelect()">Cancel</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -717,7 +717,6 @@ body
|
|||||||
border-radius: 8px;
|
border-radius: 8px;
|
||||||
width: 184px;
|
width: 184px;
|
||||||
height: 184px;
|
height: 184px;
|
||||||
position: relative;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.FileItem img
|
.FileItem img
|
||||||
@@ -729,19 +728,6 @@ body
|
|||||||
object-fit: cover;
|
object-fit: cover;
|
||||||
}
|
}
|
||||||
|
|
||||||
.FileImg .FileLogoBadge
|
|
||||||
{
|
|
||||||
position: absolute;
|
|
||||||
top: 8px;
|
|
||||||
left: 8px;
|
|
||||||
width: 26px;
|
|
||||||
height: 26px;
|
|
||||||
padding: 2px;
|
|
||||||
box-sizing: border-box;
|
|
||||||
background-color: rgba(255,255,255,0.85);
|
|
||||||
border-radius: 50%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.FileName
|
.FileName
|
||||||
{
|
{
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
@@ -750,35 +736,6 @@ body
|
|||||||
word-break: break-all;
|
word-break: break-all;
|
||||||
}
|
}
|
||||||
|
|
||||||
.FileNamePack
|
|
||||||
{
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
min-width: 0;
|
|
||||||
overflow: hidden;
|
|
||||||
}
|
|
||||||
|
|
||||||
.FileNamePack .FileName
|
|
||||||
{
|
|
||||||
flex: 1 1 auto;
|
|
||||||
min-width: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.FilePublishedBadge
|
|
||||||
{
|
|
||||||
flex: 0 0 auto;
|
|
||||||
margin-right: 4px;
|
|
||||||
padding: 0 4px;
|
|
||||||
height: 16px;
|
|
||||||
line-height: 16px;
|
|
||||||
font-size: 10px;
|
|
||||||
font-weight: 600;
|
|
||||||
color: #FFFFFF;
|
|
||||||
background-color: #009688;
|
|
||||||
border-radius: 2px;
|
|
||||||
white-space: nowrap;
|
|
||||||
}
|
|
||||||
|
|
||||||
.FileDate
|
.FileDate
|
||||||
{
|
{
|
||||||
color: #A8A8A8;
|
color: #A8A8A8;
|
||||||
|
|||||||
@@ -305,19 +305,15 @@ function ShowRecentFileList( pList )
|
|||||||
let sImg=OneFile["image"] || sImages[sPath];
|
let sImg=OneFile["image"] || sImages[sPath];
|
||||||
let sTime=OneFile['time'];
|
let sTime=OneFile['time'];
|
||||||
let sName=OneFile['project_name'];
|
let sName=OneFile['project_name'];
|
||||||
let sPublished=OneFile['published'] == '1';
|
|
||||||
sImages[sPath] = sImg;
|
sImages[sPath] = sImg;
|
||||||
|
|
||||||
//let index=sPath.lastIndexOf('\\')>0?sPath.lastIndexOf('\\'):sPath.lastIndexOf('\/');
|
//let index=sPath.lastIndexOf('\\')>0?sPath.lastIndexOf('\\'):sPath.lastIndexOf('\/');
|
||||||
//let sShortName=sPath.substring(index+1,sPath.length);
|
//let sShortName=sPath.substring(index+1,sPath.length);
|
||||||
|
|
||||||
let sBadge=sPublished? '<span class="FilePublishedBadge">PUB</span>':'';
|
|
||||||
let sLogoBadge=sPublished? '<img class="FileLogoBadge" src="../../images/OrcaSlicer_gradient_circle.svg" alt="" />':'';
|
|
||||||
|
|
||||||
let TmpHtml='<div class="FileItem" fpath="'+sPath+'" >'+
|
let TmpHtml='<div class="FileItem" fpath="'+sPath+'" >'+
|
||||||
'<a class="FileTip" title="'+sPath+'"></a>'+
|
'<a class="FileTip" title="'+sPath+'"></a>'+
|
||||||
'<div class="FileImg" ><img src="'+sImg+'" onerror="this.onerror=null;this.src=\'img/d.png\';" alt="No Image" />'+sLogoBadge+'</div>'+
|
'<div class="FileImg" ><img src="'+sImg+'" onerror="this.onerror=null;this.src=\'img/d.png\';" alt="No Image" /></div>'+
|
||||||
'<div class="FileNamePack">'+sBadge+'<div class="FileName TextS1">'+sName+'</div></div>'+
|
'<div class="FileName TextS1">'+sName+'</div>'+
|
||||||
'<div class="FileDate">'+sTime+'</div>'+
|
'<div class="FileDate">'+sTime+'</div>'+
|
||||||
'</div>';
|
'</div>';
|
||||||
|
|
||||||
|
|||||||
@@ -22,7 +22,6 @@
|
|||||||
Match regexes; each must match at least one output line
|
Match regexes; each must match at least one output line
|
||||||
NotMatch regexes; none may match any output line
|
NotMatch regexes; none may match any output line
|
||||||
NotExists paths that must not exist after the case runs
|
NotExists paths that must not exist after the case runs
|
||||||
DateStampedZip require a bundle date from during this case's invocation
|
|
||||||
|
|
||||||
.PARAMETER Name
|
.PARAMETER Name
|
||||||
Run only the cases whose name matches this regex. Headings with no
|
Run only the cases whose name matches this regex. Headings with no
|
||||||
@@ -110,6 +109,12 @@ $slnDir = Join-Path $fixtures 'sln'
|
|||||||
New-Item -ItemType Directory -Force -Path $slnDir | Out-Null
|
New-Item -ItemType Directory -Force -Path $slnDir | Out-Null
|
||||||
Set-Content -Path (Join-Path $slnDir 'OrcaSlicer.sln') -Value '' -Encoding ascii
|
Set-Content -Path (Join-Path $slnDir 'OrcaSlicer.sln') -Value '' -Encoding ascii
|
||||||
|
|
||||||
|
# The pack stamp is checked against real dates, so a locale-dependent parse
|
||||||
|
# in the script cannot pass by looking date-shaped. Yesterday is accepted too,
|
||||||
|
# so a run that crosses midnight does not flake.
|
||||||
|
$dateStamps = @((Get-Date -Format 'yyyyMMdd'), (Get-Date).AddDays(-1).ToString('yyyyMMdd'))
|
||||||
|
$stampPattern = '_(' + ($dateStamps -join '|') + ')\.zip$'
|
||||||
|
|
||||||
$cases = @(
|
$cases = @(
|
||||||
'argument handling'
|
'argument handling'
|
||||||
@{ Name = 'no arguments prints help'; Args = @(); DryRun = $false
|
@{ Name = 'no arguments prints help'; Args = @(); DryRun = $false
|
||||||
@@ -321,12 +326,12 @@ $cases = @(
|
|||||||
Contains = @('OrcaSlicer_dep_win-x64_')
|
Contains = @('OrcaSlicer_dep_win-x64_')
|
||||||
NotContains = @('-clang', '-Release') }
|
NotContains = @('-clang', '-Release') }
|
||||||
@{ Name = 'the bundle is stamped with today, not a shuffled date'; Args = @('-p')
|
@{ Name = 'the bundle is stamped with today, not a shuffled date'; Args = @('-p')
|
||||||
DateStampedZip = $true }
|
Match = @($stampPattern) }
|
||||||
# powershell.exe is not in System32 itself, so a trimmed PATH used to
|
# powershell.exe is not in System32 itself, so a trimmed PATH used to
|
||||||
# leave the stamp empty and the bundle named OrcaSlicer_dep_win-x64_.zip.
|
# leave the stamp empty and the bundle named OrcaSlicer_dep_win-x64_.zip.
|
||||||
@{ Name = 'the bundle is stamped even with a bare PATH'; Args = @('-p')
|
@{ Name = 'the bundle is stamped even with a bare PATH'; Args = @('-p')
|
||||||
Env = @{ PATH = 'C:\Windows\system32;C:\Windows' }
|
Env = @{ PATH = 'C:\Windows\system32;C:\Windows' }
|
||||||
DateStampedZip = $true }
|
Match = @($stampPattern) }
|
||||||
@{ Name = '-p packs without rebuilding'; Args = @('-p')
|
@{ Name = '-p packs without rebuilding'; Args = @('-p')
|
||||||
Match = @('^\+ .*(7z\.exe a|tar\.exe -a -c -f) ')
|
Match = @('^\+ .*(7z\.exe a|tar\.exe -a -c -f) ')
|
||||||
NotContains = @('cmake -S deps') }
|
NotContains = @('cmake -S deps') }
|
||||||
@@ -856,7 +861,7 @@ function Invoke-BuildScript {
|
|||||||
|
|
||||||
$knownFields = @(
|
$knownFields = @(
|
||||||
'Name', 'Args', 'ExpectExit', 'DryRun', 'First', 'Env',
|
'Name', 'Args', 'ExpectExit', 'DryRun', 'First', 'Env',
|
||||||
'Contains', 'NotContains', 'Match', 'NotMatch', 'NotExists', 'DateStampedZip'
|
'Contains', 'NotContains', 'Match', 'NotMatch', 'NotExists'
|
||||||
)
|
)
|
||||||
|
|
||||||
function Test-Case {
|
function Test-Case {
|
||||||
@@ -871,9 +876,7 @@ function Test-Case {
|
|||||||
$expect = 0
|
$expect = 0
|
||||||
if ($Case.ContainsKey('ExpectExit')) { $expect = $Case['ExpectExit'] }
|
if ($Case.ContainsKey('ExpectExit')) { $expect = $Case['ExpectExit'] }
|
||||||
|
|
||||||
$started = Get-Date
|
|
||||||
$result = Invoke-BuildScript -Arguments $argv -Environment $Case['Env']
|
$result = Invoke-BuildScript -Arguments $argv -Environment $Case['Env']
|
||||||
$finished = Get-Date
|
|
||||||
|
|
||||||
$problems = @()
|
$problems = @()
|
||||||
|
|
||||||
@@ -899,15 +902,6 @@ function Test-Case {
|
|||||||
$problems += "no line matching /$pattern/"
|
$problems += "no line matching /$pattern/"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ($Case['DateStampedZip']) {
|
|
||||||
# Bound the accepted dates to this invocation so crossing midnight is
|
|
||||||
# valid without allowing an unrelated past or future date.
|
|
||||||
$dateStamps = @($started.ToString('yyyyMMdd'), $finished.ToString('yyyyMMdd')) | Select-Object -Unique
|
|
||||||
$pattern = '_(' + ($dateStamps -join '|') + ')\.zip$'
|
|
||||||
if (@($lines | Where-Object { $_ -match $pattern }).Count -eq 0) {
|
|
||||||
$problems += "no line matching /$pattern/"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
foreach ($pattern in $Case['NotMatch']) {
|
foreach ($pattern in $Case['NotMatch']) {
|
||||||
foreach ($line in @($lines | Where-Object { $_ -match $pattern })) {
|
foreach ($line in @($lines | Where-Object { $_ -match $pattern })) {
|
||||||
$problems += "line matches /$pattern/: $line"
|
$problems += "line matches /$pattern/: $line"
|
||||||
|
|||||||
+41
-339
@@ -53,8 +53,6 @@ using namespace nlohmann;
|
|||||||
|
|
||||||
#include "libslic3r/libslic3r.h"
|
#include "libslic3r/libslic3r.h"
|
||||||
#include "libslic3r/Config.hpp"
|
#include "libslic3r/Config.hpp"
|
||||||
#include "libslic3r/FilamentMixer.hpp"
|
|
||||||
#include "libslic3r/Preset.hpp"
|
|
||||||
#include "libslic3r/Geometry.hpp"
|
#include "libslic3r/Geometry.hpp"
|
||||||
#include "libslic3r/GCode.hpp"
|
#include "libslic3r/GCode.hpp"
|
||||||
#include "libslic3r/Model.hpp"
|
#include "libslic3r/Model.hpp"
|
||||||
@@ -79,9 +77,8 @@ using namespace nlohmann;
|
|||||||
#include "libslic3r/ObjColorUtils.hpp"
|
#include "libslic3r/ObjColorUtils.hpp"
|
||||||
|
|
||||||
#include "OrcaSlicer.hpp"
|
#include "OrcaSlicer.hpp"
|
||||||
#include <wx/filename.h>
|
|
||||||
#include <wx/stdpaths.h>
|
|
||||||
//BBS: add exception handler for win32
|
//BBS: add exception handler for win32
|
||||||
|
#include <wx/stdpaths.h>
|
||||||
#ifdef WIN32
|
#ifdef WIN32
|
||||||
#include "dev-utils/BaseException.h"
|
#include "dev-utils/BaseException.h"
|
||||||
#endif
|
#endif
|
||||||
@@ -163,7 +160,6 @@ std::map<int, std::string> cli_errors = {
|
|||||||
{CLI_FILAMENT_CAN_NOT_MAP, "Some filaments cannot be mapped to correct extruders for multi-extruder Printer."},
|
{CLI_FILAMENT_CAN_NOT_MAP, "Some filaments cannot be mapped to correct extruders for multi-extruder Printer."},
|
||||||
{CLI_ONLY_ONE_TPU_SUPPORTED, "Not support printing 2 or more TPU filaments."},
|
{CLI_ONLY_ONE_TPU_SUPPORTED, "Not support printing 2 or more TPU filaments."},
|
||||||
{CLI_FILAMENTS_NOT_SUPPORTED_BY_EXTRUDER, "Some filaments cannot be printed on the extruder mapped to."},
|
{CLI_FILAMENTS_NOT_SUPPORTED_BY_EXTRUDER, "Some filaments cannot be printed on the extruder mapped to."},
|
||||||
{CLI_MIXED_FILAMENT_INVALID, "A mixed filament is invalid: its components are different filament types, or it has no filament of its own."},
|
|
||||||
{CLI_SLICING_ERROR, "Failed slicing the model. Please verify the slicing of all plates on Orca Slicer before uploading."},
|
{CLI_SLICING_ERROR, "Failed slicing the model. Please verify the slicing of all plates on Orca Slicer before uploading."},
|
||||||
{CLI_GCODE_PATH_CONFLICTS, " G-code conflicts detected after slicing. Please make sure the 3mf file can be successfully sliced in the latest Orca Slicer. If the file slices normally in Orca Slicer, try moving the wipe tower further from other models, as we use more conservative parameters for it during upload."},
|
{CLI_GCODE_PATH_CONFLICTS, " G-code conflicts detected after slicing. Please make sure the 3mf file can be successfully sliced in the latest Orca Slicer. If the file slices normally in Orca Slicer, try moving the wipe tower further from other models, as we use more conservative parameters for it during upload."},
|
||||||
{CLI_GCODE_PATH_IN_UNPRINTABLE_AREA, "Found G-code in unprintable area of multi-extruder printers after slicing. Please make sure the 3mf file can be successfully sliced in the latest Orca Slicer."}
|
{CLI_GCODE_PATH_IN_UNPRINTABLE_AREA, "Found G-code in unprintable area of multi-extruder printers after slicing. Please make sure the 3mf file can be successfully sliced in the latest Orca Slicer."}
|
||||||
@@ -1387,25 +1383,6 @@ int CLI::run(int argc, char **argv)
|
|||||||
if (downward_check_option)
|
if (downward_check_option)
|
||||||
downward_check = downward_check_option->value;
|
downward_check = downward_check_option->value;
|
||||||
|
|
||||||
// --export-settings - writes its JSON to stdout, so reject every action or transform that may write there
|
|
||||||
// too (--info, --help, --orient, slicing and exporting). The allowed ones do nothing when nothing is
|
|
||||||
// sliced or exported.
|
|
||||||
if (std::find(m_actions.begin(), m_actions.end(), "export_settings") != m_actions.end() && m_config.opt_string("export_settings") == "-") {
|
|
||||||
static const std::set<std::string> stdout_compatible = { "export_settings", "uptodate", "load_defaultfila", "min_save",
|
|
||||||
"mtcpp", "mstpp", "no_check", "normative_check", "pipe" };
|
|
||||||
for (const std::vector<std::string> *opt_keys : { &m_actions, &m_transforms }) {
|
|
||||||
for (const std::string &opt_key : *opt_keys) {
|
|
||||||
if (stdout_compatible.count(opt_key) == 0) {
|
|
||||||
std::string flag = opt_key;
|
|
||||||
std::replace(flag.begin(), flag.end(), '_', '-');
|
|
||||||
boost::nowide::cerr << "--export-settings - cannot be combined with --" << flag << std::endl;
|
|
||||||
record_exit_reson(outfile_dir, CLI_INVALID_PARAMS, 0, cli_errors[CLI_INVALID_PARAMS], sliced_info);
|
|
||||||
flush_and_exit(CLI_INVALID_PARAMS);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
bool start_gui = m_actions.empty() && !downward_check;
|
bool start_gui = m_actions.empty() && !downward_check;
|
||||||
if (start_gui) {
|
if (start_gui) {
|
||||||
BOOST_LOG_TRIVIAL(info) << "no action, start gui directly" << std::endl;
|
BOOST_LOG_TRIVIAL(info) << "no action, start gui directly" << std::endl;
|
||||||
@@ -1489,10 +1466,6 @@ int CLI::run(int argc, char **argv)
|
|||||||
std::vector<std::string> upward_compatible_printers, new_print_compatible_printers, current_print_compatible_printers, current_different_settings;
|
std::vector<std::string> upward_compatible_printers, new_print_compatible_printers, current_print_compatible_printers, current_different_settings;
|
||||||
std::vector<std::string> current_filaments_name, current_filaments_system_name, current_inherits_group, current_extruder_variants, new_extruder_variants, current_print_extruder_variants, new_printer_extruder_variants;
|
std::vector<std::string> current_filaments_name, current_filaments_system_name, current_inherits_group, current_extruder_variants, new_extruder_variants, current_print_extruder_variants, new_printer_extruder_variants;
|
||||||
DynamicPrintConfig load_process_config, load_machine_config;
|
DynamicPrintConfig load_process_config, load_machine_config;
|
||||||
//ORCA: full configs of the "current" (3MF-embedded) process/printer presets, kept so that
|
|
||||||
// compatible_printers_condition can be evaluated for them below. Previously only the
|
|
||||||
// literal compatible_printers list was extracted.
|
|
||||||
DynamicPrintConfig current_process_full_config, current_printer_full_config;
|
|
||||||
bool new_process_config_is_system = true, new_printer_config_is_system = true;
|
bool new_process_config_is_system = true, new_printer_config_is_system = true;
|
||||||
std::string pipe_name, makerlab_name, makerlab_version, different_process_setting;
|
std::string pipe_name, makerlab_name, makerlab_version, different_process_setting;
|
||||||
const std::vector<std::string> &metadata_name = m_config.option<ConfigOptionStrings>("metadata_name", true)->values;
|
const std::vector<std::string> &metadata_name = m_config.option<ConfigOptionStrings>("metadata_name", true)->values;
|
||||||
@@ -1952,7 +1925,7 @@ int CLI::run(int argc, char **argv)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (std::exception& e) {
|
catch (std::exception& e) {
|
||||||
boost::nowide::cerr << "construct_assemble_list: " << e.what() << std::endl;
|
boost::nowide::cerr << construct_assemble_list << ": " << e.what() << std::endl;
|
||||||
record_exit_reson(outfile_dir, CLI_DATA_FILE_ERROR, 0, cli_errors[CLI_DATA_FILE_ERROR], sliced_info);
|
record_exit_reson(outfile_dir, CLI_DATA_FILE_ERROR, 0, cli_errors[CLI_DATA_FILE_ERROR], sliced_info);
|
||||||
flush_and_exit(CLI_DATA_FILE_ERROR);
|
flush_and_exit(CLI_DATA_FILE_ERROR);
|
||||||
}
|
}
|
||||||
@@ -2002,7 +1975,7 @@ int CLI::run(int argc, char **argv)
|
|||||||
}
|
}
|
||||||
|
|
||||||
std::unique_ptr<PresetBundle> cli_preset_bundle;
|
std::unique_ptr<PresetBundle> cli_preset_bundle;
|
||||||
auto ensure_cli_preset_bundle = [&cli_preset_bundle](std::string &error) -> PresetBundle * {
|
auto ensure_cli_preset_bundle = [&cli_preset_bundle, config_substitution_rule](std::string &error) -> PresetBundle * {
|
||||||
if (cli_preset_bundle)
|
if (cli_preset_bundle)
|
||||||
return cli_preset_bundle.get();
|
return cli_preset_bundle.get();
|
||||||
try {
|
try {
|
||||||
@@ -2029,21 +2002,19 @@ int CLI::run(int argc, char **argv)
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
// One resolver for the whole run, so presets from the same vendor tree share its load.
|
auto resolve_preset = [&ensure_cli_preset_bundle, config_substitution_rule](const std::string &file, DynamicPrintConfig &config,
|
||||||
std::unique_ptr<PresetBundle> system_preset_resolver;
|
|
||||||
auto resolve_preset = [&ensure_cli_preset_bundle, &system_preset_resolver](const std::string &file, DynamicPrintConfig &config,
|
|
||||||
std::string &config_type, const std::string &config_from,
|
std::string &config_type, const std::string &config_from,
|
||||||
bool probe_type, std::string &error) {
|
bool probe_type, std::string &error) {
|
||||||
const auto *inherits = config.option<ConfigOptionString>(BBL_JSON_KEY_INHERITS);
|
const auto *inherits = config.option<ConfigOptionString>(BBL_JSON_KEY_INHERITS);
|
||||||
if (!probe_type && (inherits == nullptr || inherits->value.empty()))
|
if (!probe_type && (inherits == nullptr || inherits->value.empty()))
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
|
std::unique_ptr<PresetBundle> source_bundle;
|
||||||
PresetBundle *bundle = nullptr;
|
PresetBundle *bundle = nullptr;
|
||||||
bool allow_source_manifest = false;
|
bool allow_source_manifest = false;
|
||||||
if (config_from == "system") {
|
if (config_from == "system") {
|
||||||
if (!system_preset_resolver)
|
source_bundle = std::make_unique<PresetBundle>();
|
||||||
system_preset_resolver = std::make_unique<PresetBundle>();
|
bundle = source_bundle.get();
|
||||||
bundle = system_preset_resolver.get();
|
|
||||||
allow_source_manifest = true;
|
allow_source_manifest = true;
|
||||||
} else {
|
} else {
|
||||||
bundle = ensure_cli_preset_bundle(error);
|
bundle = ensure_cli_preset_bundle(error);
|
||||||
@@ -2075,52 +2046,7 @@ int CLI::run(int argc, char **argv)
|
|||||||
error, allow_source_manifest);
|
error, allow_source_manifest);
|
||||||
};
|
};
|
||||||
|
|
||||||
//ORCA: list the keys a user preset overrides relative to its system parent, for the
|
auto load_config_file = [config_substitution_rule, &resolve_preset](const std::string& file, DynamicPrintConfig& config, std::string& config_type,
|
||||||
// `different_settings_to_system` column of an exported 3MF. Without it the CLI
|
|
||||||
// writes an empty column, so re-opening a CLI-exported project in the GUI shows
|
|
||||||
// spurious "unsaved changes" and can revert inherited process/filament/machine
|
|
||||||
// values to system defaults.
|
|
||||||
//
|
|
||||||
// The parent comes from the preset bundle that inherits resolution already builds,
|
|
||||||
// so this adds no extra loading. Returns "" whenever the parent cannot be resolved,
|
|
||||||
// which is exactly the previous behaviour.
|
|
||||||
auto cli_different_settings = [&ensure_cli_preset_bundle](const DynamicPrintConfig &resolved,
|
|
||||||
const std::string &parent_name,
|
|
||||||
Preset::Type type) -> std::string {
|
|
||||||
if (parent_name.empty())
|
|
||||||
return std::string();
|
|
||||||
std::string error;
|
|
||||||
PresetBundle *bundle = ensure_cli_preset_bundle(error);
|
|
||||||
if (bundle == nullptr) {
|
|
||||||
BOOST_LOG_TRIVIAL(warning) << "CLI: no preset bundle for different_settings_to_system: " << error;
|
|
||||||
return std::string();
|
|
||||||
}
|
|
||||||
const PresetCollection *collection = nullptr;
|
|
||||||
switch (type) {
|
|
||||||
case Preset::TYPE_PRINT: collection = &bundle->prints; break;
|
|
||||||
case Preset::TYPE_FILAMENT: collection = &bundle->filaments; break;
|
|
||||||
case Preset::TYPE_PRINTER: collection = &bundle->printers; break;
|
|
||||||
default: return std::string();
|
|
||||||
}
|
|
||||||
const Preset *parent = collection->find_preset2(parent_name, true);
|
|
||||||
if (parent == nullptr) {
|
|
||||||
BOOST_LOG_TRIVIAL(warning) << boost::format("CLI: parent preset '%1%' not found; leaving different_settings_to_system empty")%parent_name;
|
|
||||||
return std::string();
|
|
||||||
}
|
|
||||||
std::vector<std::string> keys = resolved.diff(parent->config);
|
|
||||||
//ORCA: preset metadata, not user-tunable settings. compatible_printers /
|
|
||||||
// compatible_prints have their own tracking columns and would double-count.
|
|
||||||
keys.erase(std::remove_if(keys.begin(), keys.end(), [](const std::string &k) {
|
|
||||||
return k == "inherits" || k == "compatible_printers" || k == "compatible_prints"
|
|
||||||
|| k == "compatible_printers_condition" || k == "compatible_prints_condition"
|
|
||||||
|| k == "print_settings_id" || k == "filament_settings_id" || k == "printer_settings_id";
|
|
||||||
}),
|
|
||||||
keys.end());
|
|
||||||
BOOST_LOG_TRIVIAL(info) << boost::format("CLI: %1% overrides vs parent '%2%'")%keys.size()%parent_name;
|
|
||||||
return Slic3r::escape_strings_cstyle(keys);
|
|
||||||
};
|
|
||||||
|
|
||||||
auto load_config_file = [&resolve_preset](const std::string& file, DynamicPrintConfig& config, std::string& config_type,
|
|
||||||
std::string& config_name, std::string& filament_id, std::string& config_from) {
|
std::string& config_name, std::string& filament_id, std::string& config_from) {
|
||||||
if (! boost::filesystem::exists(file)) {
|
if (! boost::filesystem::exists(file)) {
|
||||||
boost::nowide::cerr << __FUNCTION__<< ": can not find setting file: " << file << std::endl;
|
boost::nowide::cerr << __FUNCTION__<< ": can not find setting file: " << file << std::endl;
|
||||||
@@ -2709,8 +2635,6 @@ int CLI::run(int argc, char **argv)
|
|||||||
flush_and_exit(ret);
|
flush_and_exit(ret);
|
||||||
}
|
}
|
||||||
upward_compatible_printers = config.option<ConfigOptionStrings>("upward_compatible_machine", true)->values;
|
upward_compatible_printers = config.option<ConfigOptionStrings>("upward_compatible_machine", true)->values;
|
||||||
//ORCA: keep the full config so compatible_printers_condition can be evaluated against it below
|
|
||||||
current_printer_full_config = std::move(config);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2733,8 +2657,6 @@ int CLI::run(int argc, char **argv)
|
|||||||
flush_and_exit(ret);
|
flush_and_exit(ret);
|
||||||
}
|
}
|
||||||
current_print_compatible_printers = config.option<ConfigOptionStrings>("compatible_printers", true)->values;
|
current_print_compatible_printers = config.option<ConfigOptionStrings>("compatible_printers", true)->values;
|
||||||
//ORCA: keep the full config so compatible_printers_condition can be evaluated against it below
|
|
||||||
current_process_full_config = std::move(config);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2753,88 +2675,46 @@ int CLI::run(int argc, char **argv)
|
|||||||
for (int index = 0; index < upward_compatible_printers.size(); index++) {
|
for (int index = 0; index < upward_compatible_printers.size(); index++) {
|
||||||
BOOST_LOG_TRIVIAL(info) << boost::format("index %1%, upward_compatible_printers %2%")%index %upward_compatible_printers[index];
|
BOOST_LOG_TRIVIAL(info) << boost::format("index %1%, upward_compatible_printers %2%")%index %upward_compatible_printers[index];
|
||||||
}
|
}
|
||||||
//ORCA: Replace the four manual equality-loop checks below with is_compatible_with_printer(), the
|
|
||||||
// same helper the GUI uses, which also evaluates compatible_printers_condition. Process
|
|
||||||
// profiles that declare compatibility via condition only -- leaving compatible_printers
|
|
||||||
// empty -- were always reported incompatible by the literal-name match, so a CLI slice with
|
|
||||||
// such a preset exited with CLI_PROCESS_NOT_COMPATIBLE (-17) even though the GUI accepts the
|
|
||||||
// same pair. Behaviour is unchanged where an explicit list exists: is_compatible_with_printer
|
|
||||||
// does the same name match, and returns true when both list and condition are empty (which
|
|
||||||
// matches the "old 3mf, no compatible printers" path below).
|
|
||||||
auto check_compat = [](const DynamicPrintConfig &process_cfg,
|
|
||||||
const DynamicPrintConfig &printer_cfg,
|
|
||||||
const std::string &printer_name) -> bool {
|
|
||||||
return is_compatible_with_printer(process_cfg, Preset::TYPE_PRINT, printer_cfg, printer_name);
|
|
||||||
};
|
|
||||||
|
|
||||||
//ORCA: a 3MF's project config does not carry compatible_printers / compatible_printers_condition.
|
|
||||||
// PresetBundle::construct_full_config() erases both and re-emits them as
|
|
||||||
// print_compatible_printers and compatible_machine_expression_group; they are renamed back
|
|
||||||
// only on the PresetBundle load path, which the CLI does not take. Feeding the project config
|
|
||||||
// to the check as-is therefore presents no list and no condition, and
|
|
||||||
// is_compatible_with_printer() reads that as "no constraint" and accepts every printer.
|
|
||||||
// Translate the two keys back. Index 0 of the expression group is the print preset -- the
|
|
||||||
// group is filled print, filaments, printer (PresetBundle.cpp).
|
|
||||||
// The raw keys win whenever they carry something. A project the CLI exported itself has the
|
|
||||||
// real compatible_printers_condition AND an all-empty compatible_machine_expression_group,
|
|
||||||
// so copying the group's first entry unconditionally would overwrite a valid condition with
|
|
||||||
// "" and accept every printer. The renamed keys are only a fallback, and an empty value is
|
|
||||||
// never written over a real one.
|
|
||||||
auto cli_process_compat_config = [](const DynamicPrintConfig &project_cfg) -> DynamicPrintConfig {
|
|
||||||
DynamicPrintConfig cfg = project_cfg;
|
|
||||||
const auto *raw_list = project_cfg.option<ConfigOptionStrings>("compatible_printers");
|
|
||||||
const auto *list = project_cfg.option<ConfigOptionStrings>("print_compatible_printers");
|
|
||||||
if ((raw_list == nullptr || raw_list->values.empty()) && list != nullptr && !list->values.empty())
|
|
||||||
cfg.set_key_value("compatible_printers", new ConfigOptionStrings(list->values));
|
|
||||||
const auto *raw_cond = project_cfg.option<ConfigOptionString>("compatible_printers_condition");
|
|
||||||
const auto *group = project_cfg.option<ConfigOptionStrings>("compatible_machine_expression_group");
|
|
||||||
if ((raw_cond == nullptr || raw_cond->value.empty()) && group != nullptr && !group->values.empty() &&
|
|
||||||
!group->values.front().empty())
|
|
||||||
cfg.set_key_value("compatible_printers_condition", new ConfigOptionString(group->values.front()));
|
|
||||||
return cfg;
|
|
||||||
};
|
|
||||||
if (!new_printer_name.empty()) {
|
if (!new_printer_name.empty()) {
|
||||||
if (!new_process_name.empty()) {
|
if (!new_process_name.empty()) {
|
||||||
//new process + new printer: both configs came from --load-settings
|
for (int index = 0; index < new_print_compatible_printers.size(); index++) {
|
||||||
process_compatible = check_compat(load_process_config, load_machine_config, new_printer_system_name);
|
if (new_print_compatible_printers[index] == new_printer_system_name) {
|
||||||
|
process_compatible = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
BOOST_LOG_TRIVIAL(info) << boost::format("new printer %1%, inherited from %2%, new process %3%, inherited from %4% ,compatible %5%")
|
BOOST_LOG_TRIVIAL(info) << boost::format("new printer %1%, inherited from %2%, new process %3%, inherited from %4% ,compatible %5%")
|
||||||
%new_printer_name %new_printer_system_name %new_process_name %new_process_system_name %process_compatible;
|
%new_printer_name %new_printer_system_name %new_process_name %new_process_system_name %process_compatible;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
//3MF-embedded process vs new printer. current_process_full_config is only populated from
|
for (int index = 0; index < current_print_compatible_printers.size(); index++) {
|
||||||
//profiles/BBL/process_full/, so for every other vendor fall back to the 3MF's own project
|
if (current_print_compatible_printers[index] == new_printer_system_name) {
|
||||||
//config in m_print_config, with its renamed compatibility keys translated back (see
|
process_compatible = true;
|
||||||
//cli_process_compat_config above). Without this a 3MF built from a condition-only process
|
break;
|
||||||
//is rejected when re-sliced with the very printer it was made for.
|
}
|
||||||
{
|
|
||||||
//ORCA: profiles/BBL/{process,machine}_full/ are gitignored and not generated in-tree,
|
|
||||||
// so current_*_full_config is always empty and this fallback is the only live path.
|
|
||||||
const DynamicPrintConfig process_cfg = current_process_full_config.empty()
|
|
||||||
? cli_process_compat_config(m_print_config)
|
|
||||||
: current_process_full_config;
|
|
||||||
process_compatible = check_compat(process_cfg, load_machine_config, new_printer_system_name);
|
|
||||||
}
|
}
|
||||||
BOOST_LOG_TRIVIAL(info) << boost::format("new printer %1%, inherited from %2%, old process %3%, inherited from %4% ,compatible %5%")
|
BOOST_LOG_TRIVIAL(info) << boost::format("new printer %1%, inherited from %2%, old process %3%, inherited from %4% ,compatible %5%")
|
||||||
%new_printer_name %new_printer_system_name %current_process_name %current_process_system_name %process_compatible;
|
%new_printer_name %new_printer_system_name %current_process_name %current_process_system_name %process_compatible;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (!new_process_name.empty()) {
|
else if (!new_process_name.empty()) {
|
||||||
//new process vs 3MF-embedded printer. As above, current_printer_full_config only resolves for
|
for (int index = 0; index < new_print_compatible_printers.size(); index++) {
|
||||||
//BBL profiles; otherwise evaluate against the 3MF's own project config in m_print_config, which
|
if (new_print_compatible_printers[index] == current_printer_system_name) {
|
||||||
//holds the embedded printer's printer_notes / nozzle_diameter.
|
process_compatible = true;
|
||||||
{
|
break;
|
||||||
const DynamicPrintConfig &printer_cfg = current_printer_full_config.empty() ? m_print_config : current_printer_full_config;
|
}
|
||||||
process_compatible = check_compat(load_process_config, printer_cfg, current_printer_system_name);
|
|
||||||
}
|
}
|
||||||
BOOST_LOG_TRIVIAL(info) << boost::format("old printer %1%, inherited from %2%, new process %3%, inherited from %4% ,compatible %5%")
|
BOOST_LOG_TRIVIAL(info) << boost::format("old printer %1%, inherited from %2%, new process %3%, inherited from %4% ,compatible %5%")
|
||||||
%current_printer_name %current_printer_system_name %new_process_name %new_process_system_name %process_compatible;
|
%current_printer_name %current_printer_system_name %new_process_name %new_process_system_name %process_compatible;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
//both sides 3MF-embedded (pure reprocess)
|
//check the compatible of old printer&&process
|
||||||
if (!current_process_full_config.empty() && !current_printer_full_config.empty())
|
for (int index = 0; index < current_print_compatible_printers.size(); index++) {
|
||||||
process_compatible = check_compat(current_process_full_config, current_printer_full_config, current_printer_system_name);
|
if (current_print_compatible_printers[index] == current_printer_system_name) {
|
||||||
else
|
process_compatible = true;
|
||||||
process_compatible = std::find(current_print_compatible_printers.begin(), current_print_compatible_printers.end(), current_printer_system_name) != current_print_compatible_printers.end();
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
if (!process_compatible && current_print_compatible_printers.empty())
|
if (!process_compatible && current_print_compatible_printers.empty())
|
||||||
{
|
{
|
||||||
BOOST_LOG_TRIVIAL(info) << boost::format("old 3mf, no compatible printers, set to compatible");
|
BOOST_LOG_TRIVIAL(info) << boost::format("old 3mf, no compatible printers, set to compatible");
|
||||||
@@ -3057,10 +2937,8 @@ int CLI::run(int argc, char **argv)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
//ORCA: was a //todo — compute the user's overrides instead of writing an empty column.
|
//todo: support user machine preset's different settings
|
||||||
different_settings[filament_count+1] = new_printer_config_is_system
|
different_settings[filament_count+1] = "";
|
||||||
? std::string()
|
|
||||||
: cli_different_settings(load_machine_config, new_printer_system_name, Preset::TYPE_PRINTER);
|
|
||||||
if (new_printer_config_is_system)
|
if (new_printer_config_is_system)
|
||||||
inherits_group[filament_count+1] = "";
|
inherits_group[filament_count+1] = "";
|
||||||
else
|
else
|
||||||
@@ -3202,14 +3080,8 @@ int CLI::run(int argc, char **argv)
|
|||||||
print_compatible_printers = std::move(current_print_compatible_printers);
|
print_compatible_printers = std::move(current_print_compatible_printers);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
//ORCA: was a //todo. Prefer a value the loaded JSON already carried, otherwise
|
//todo: support system process preset
|
||||||
// compute the overrides against the system parent.
|
different_settings[0] = "";
|
||||||
if (!different_process_setting.empty())
|
|
||||||
different_settings[0] = different_process_setting;
|
|
||||||
else
|
|
||||||
different_settings[0] = new_process_config_is_system
|
|
||||||
? std::string()
|
|
||||||
: cli_different_settings(load_process_config, new_process_system_name, Preset::TYPE_PRINT);
|
|
||||||
if (new_process_config_is_system)
|
if (new_process_config_is_system)
|
||||||
inherits_group[0] = "";
|
inherits_group[0] = "";
|
||||||
else
|
else
|
||||||
@@ -3396,16 +3268,6 @@ int CLI::run(int argc, char **argv)
|
|||||||
int filament_index = load_filaments_index[index];
|
int filament_index = load_filaments_index[index];
|
||||||
std::vector<std::string> different_keys;
|
std::vector<std::string> different_keys;
|
||||||
|
|
||||||
//ORCA: diff before load_default_gcodes_to_config, the way the process and machine
|
|
||||||
// slots above already do. That call materialises absent gcode keys via
|
|
||||||
// option(..., true), and DynamicConfig::diff only compares keys present in
|
|
||||||
// both configs -- so a gcode key the leaf did not carry would go from "not
|
|
||||||
// compared" to "compared as empty against the parent" and land in the column
|
|
||||||
// as an override the user never made.
|
|
||||||
std::string filament_different_settings;
|
|
||||||
if (load_filament_count > 0)
|
|
||||||
filament_different_settings = cli_different_settings(config, load_filaments_inherit[index], Preset::TYPE_FILAMENT);
|
|
||||||
|
|
||||||
load_default_gcodes_to_config(config, Preset::TYPE_FILAMENT);
|
load_default_gcodes_to_config(config, Preset::TYPE_FILAMENT);
|
||||||
|
|
||||||
if (load_filament_count > 0) {
|
if (load_filament_count > 0) {
|
||||||
@@ -3417,8 +3279,8 @@ int CLI::run(int argc, char **argv)
|
|||||||
opt_filament_settings->set_at(filament_name_setting, filament_index-1, 0);
|
opt_filament_settings->set_at(filament_name_setting, filament_index-1, 0);
|
||||||
config.erase("filament_settings_id");
|
config.erase("filament_settings_id");
|
||||||
|
|
||||||
//ORCA: was a //todo — same treatment as process/machine above.
|
//todo: update different settings of filaments
|
||||||
different_settings[filament_index] = filament_different_settings;
|
different_settings[filament_index] = "";
|
||||||
inherits_group[filament_index] = load_filaments_inherit[index];
|
inherits_group[filament_index] = load_filaments_inherit[index];
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@@ -3723,15 +3585,6 @@ int CLI::run(int argc, char **argv)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// A mixed slot never reaches a nozzle, so its row and column stay empty, as in the GUI.
|
|
||||||
// Command line options are not merged into m_print_config yet, so they win here.
|
|
||||||
const ConfigOptionBools *is_mixed_opt = m_extra_config.option<ConfigOptionBools>("filament_is_mixed");
|
|
||||||
if (!is_mixed_opt)
|
|
||||||
is_mixed_opt = m_print_config.option<ConfigOptionBools>("filament_is_mixed");
|
|
||||||
auto is_mixed_slot = [is_mixed_opt](int idx) {
|
|
||||||
return is_mixed_opt && idx < static_cast<int>(is_mixed_opt->values.size()) && is_mixed_opt->values[idx];
|
|
||||||
};
|
|
||||||
|
|
||||||
for (size_t nozzle_id = 0; nozzle_id < new_extruder_count; ++nozzle_id) {
|
for (size_t nozzle_id = 0; nozzle_id < new_extruder_count; ++nozzle_id) {
|
||||||
std::vector<double> flush_vol_mtx = get_flush_volumes_matrix(flush_vol_matrix, nozzle_id, new_extruder_count);
|
std::vector<double> flush_vol_mtx = get_flush_volumes_matrix(flush_vol_matrix, nozzle_id, new_extruder_count);
|
||||||
for (int from_idx = 0; from_idx < project_filament_count; from_idx++) {
|
for (int from_idx = 0; from_idx < project_filament_count; from_idx++) {
|
||||||
@@ -3741,7 +3594,7 @@ int CLI::run(int argc, char **argv)
|
|||||||
bool is_from_support = filament_is_support->get_at(from_idx);
|
bool is_from_support = filament_is_support->get_at(from_idx);
|
||||||
for (int to_idx = 0; to_idx < project_filament_count; to_idx++) {
|
for (int to_idx = 0; to_idx < project_filament_count; to_idx++) {
|
||||||
bool is_to_support = filament_is_support->get_at(to_idx);
|
bool is_to_support = filament_is_support->get_at(to_idx);
|
||||||
if (from_idx == to_idx || is_mixed_slot(from_idx) || is_mixed_slot(to_idx)) {
|
if (from_idx == to_idx) {
|
||||||
flush_vol_mtx[project_filament_count * from_idx + to_idx] = 0.f;
|
flush_vol_mtx[project_filament_count * from_idx + to_idx] = 0.f;
|
||||||
} else {
|
} else {
|
||||||
int flushing_volume = 0;
|
int flushing_volume = 0;
|
||||||
@@ -3878,113 +3731,12 @@ int CLI::run(int argc, char **argv)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//ORCA: settings passed on the command line (--sparse-infill-density 25% ...) override the loaded
|
|
||||||
// presets right here, so they belong in different_settings_to_system just as a preset
|
|
||||||
// override does. Without them re-opening the exported project in the GUI shows nothing
|
|
||||||
// modified and reverts those values to the system presets'.
|
|
||||||
//
|
|
||||||
// The keys come from m_config, not m_extra_config: read_cli() puts only what the user typed
|
|
||||||
// into m_config (setup() adds nothing but CLI-own defaults), whereas the CLI writes its own
|
|
||||||
// values into m_extra_config. Only keys whose value the override actually changed are
|
|
||||||
// recorded -- a typed value equal to the loaded one modifies nothing -- and each lands in
|
|
||||||
// the column(s) whose preset type owns it: [0] process, [1..n-2] filaments, [n-1] printer.
|
|
||||||
//
|
|
||||||
// "Changed" is judged the way the value is read: a list is compared entry by entry with a
|
|
||||||
// missing entry read as the first, as get_at() does -- so --nozzle-temperature 245 against
|
|
||||||
// 245,245,245 is no change, although the two serialize differently.
|
|
||||||
//
|
|
||||||
// A key the loaded config does not carry at all is always recorded, even if the typed value
|
|
||||||
// equals the built-in default. On reopen the GUI restores an unlisted key from the SYSTEM
|
|
||||||
// preset, which need not match that default: a 3MF written before an option existed leaves
|
|
||||||
// it absent here, and --sparse-infill-density 20% (the default) against a Prusa system 15%
|
|
||||||
// would otherwise go unrecorded and be reverted. Over-recording is cosmetic; under-recording
|
|
||||||
// loses the value.
|
|
||||||
std::map<std::string, std::unique_ptr<ConfigOption>> cli_override_before;
|
|
||||||
for (const std::string &key : m_config.keys()) {
|
|
||||||
if (!m_extra_config.has(key))
|
|
||||||
continue;
|
|
||||||
const ConfigOption *loaded = m_print_config.option(key);
|
|
||||||
cli_override_before[key].reset(loaded != nullptr ? loaded->clone() : nullptr); // null: always recorded
|
|
||||||
}
|
|
||||||
|
|
||||||
// Apply command line options to a more specific DynamicPrintConfig which provides normalize()
|
// Apply command line options to a more specific DynamicPrintConfig which provides normalize()
|
||||||
// (command line options override --load files)
|
// (command line options override --load files)
|
||||||
m_print_config.apply(m_extra_config, true);
|
m_print_config.apply(m_extra_config, true);
|
||||||
|
|
||||||
if (!cli_override_before.empty()) {
|
|
||||||
std::vector<std::string> &columns = m_print_config.option<ConfigOptionStrings>("different_settings_to_system", true)->values;
|
|
||||||
auto owned_by = [](const std::vector<std::string> &options, const std::string &key) {
|
|
||||||
return std::find(options.begin(), options.end(), key) != options.end();
|
|
||||||
};
|
|
||||||
auto add_to_column = [&columns](size_t index, const std::string &key) {
|
|
||||||
std::vector<std::string> keys;
|
|
||||||
Slic3r::unescape_strings_cstyle(columns[index], keys);
|
|
||||||
if (std::find(keys.begin(), keys.end(), key) == keys.end()) {
|
|
||||||
keys.push_back(key);
|
|
||||||
columns[index] = Slic3r::escape_strings_cstyle(keys);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
auto same_value = [](const ConfigOption *a, const ConfigOption *b) {
|
|
||||||
if (a == nullptr || b == nullptr)
|
|
||||||
return false;
|
|
||||||
const auto *va = dynamic_cast<const ConfigOptionVectorBase *>(a);
|
|
||||||
const auto *vb = dynamic_cast<const ConfigOptionVectorBase *>(b);
|
|
||||||
if (va == nullptr || vb == nullptr)
|
|
||||||
return va == vb && a->serialize() == b->serialize();
|
|
||||||
const std::vector<std::string> ea = va->vserialize(), eb = vb->vserialize();
|
|
||||||
if (ea.empty() || eb.empty())
|
|
||||||
return ea.empty() && eb.empty();
|
|
||||||
for (size_t i = 0; i < std::max(ea.size(), eb.size()); ++i)
|
|
||||||
if (ea[i < ea.size() ? i : 0] != eb[i < eb.size() ? i : 0])
|
|
||||||
return false;
|
|
||||||
return true;
|
|
||||||
};
|
|
||||||
//ORCA: always true after the resize to filament_count + 2 above, and nothing in between can
|
|
||||||
// shrink the column vector -- different_settings_to_system is not a CLI option. Kept as
|
|
||||||
// a check rather than an assert: release builds compile asserts out, so an assert would
|
|
||||||
// protect nothing, while a build with _GLIBCXX_ASSERTIONS would abort on columns[0].
|
|
||||||
if (columns.size() >= 2) {
|
|
||||||
for (const auto &[key, before] : cli_override_before) {
|
|
||||||
if (same_value(before.get(), m_print_config.option(key)))
|
|
||||||
continue;
|
|
||||||
bool recorded = false;
|
|
||||||
if (owned_by(Preset::print_options(), key)) {
|
|
||||||
add_to_column(0, key);
|
|
||||||
recorded = true;
|
|
||||||
}
|
|
||||||
if (owned_by(Preset::filament_options(), key)) {
|
|
||||||
for (size_t i = 1; i + 1 < columns.size(); ++i)
|
|
||||||
add_to_column(i, key);
|
|
||||||
recorded = true;
|
|
||||||
}
|
|
||||||
if (owned_by(Preset::printer_options(), key)) {
|
|
||||||
add_to_column(columns.size() - 1, key);
|
|
||||||
recorded = true;
|
|
||||||
}
|
|
||||||
if (recorded)
|
|
||||||
BOOST_LOG_TRIVIAL(info) << boost::format("CLI: override %1% recorded in different_settings_to_system") % key;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// Normalizing after importing the 3MFs / AMFs
|
// Normalizing after importing the 3MFs / AMFs
|
||||||
m_print_config.normalize_fdm();
|
m_print_config.normalize_fdm();
|
||||||
|
|
||||||
// A mixed slot is virtual but still needs a filament entry of its own. Without one, feature
|
|
||||||
// filament ids aimed at it fall outside the filament count, are reset to the first filament
|
|
||||||
// and the model silently prints in a single colour.
|
|
||||||
if (const auto *is_mixed_opt = m_print_config.option<ConfigOptionBools>("filament_is_mixed")) {
|
|
||||||
const auto &is_mixed = is_mixed_opt->values;
|
|
||||||
for (size_t slot = static_cast<size_t>(std::max(filament_count, 0)); slot < is_mixed.size(); ++slot) {
|
|
||||||
if (!is_mixed[slot])
|
|
||||||
continue;
|
|
||||||
BOOST_LOG_TRIVIAL(error) << boost::format("mixed filament slot %1% has no filament of its own, only %2% filaments are loaded; "
|
|
||||||
"load one filament per slot, including each mixed one")
|
|
||||||
% (slot + 1) % filament_count;
|
|
||||||
record_exit_reson(outfile_dir, CLI_MIXED_FILAMENT_INVALID, 0, cli_errors[CLI_MIXED_FILAMENT_INVALID], sliced_info);
|
|
||||||
flush_and_exit(CLI_MIXED_FILAMENT_INVALID);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
m_print_config.option<ConfigOptionEnum<PrinterTechnology>>("printer_technology", true)->value = printer_technology;
|
m_print_config.option<ConfigOptionEnum<PrinterTechnology>>("printer_technology", true)->value = printer_technology;
|
||||||
|
|
||||||
bool has_wipe_tower_position = m_print_config.option<ConfigOptionFloats>("wipe_tower_x") && m_print_config.option<ConfigOptionFloats>("wipe_tower_y");
|
bool has_wipe_tower_position = m_print_config.option<ConfigOptionFloats>("wipe_tower_x") && m_print_config.option<ConfigOptionFloats>("wipe_tower_y");
|
||||||
@@ -4039,15 +3791,6 @@ int CLI::run(int argc, char **argv)
|
|||||||
bool is_smooth_timelapse = false;
|
bool is_smooth_timelapse = false;
|
||||||
if (enable_timelapse && timelapse_type_opt && (timelapse_type_opt->getInt() == TimelapseType::tlSmooth))
|
if (enable_timelapse && timelapse_type_opt && (timelapse_type_opt->getInt() == TimelapseType::tlSmooth))
|
||||||
is_smooth_timelapse = true;
|
is_smooth_timelapse = true;
|
||||||
// A mixed filament swaps between its components every layer, so it needs the tower even when
|
|
||||||
// every loaded preset is the same.
|
|
||||||
if (disable_wipe_tower_after_mapping) {
|
|
||||||
if (const auto *is_mixed_opt = m_print_config.option<ConfigOptionBools>("filament_is_mixed");
|
|
||||||
is_mixed_opt && has_any_mixed_filament(is_mixed_opt->values)) {
|
|
||||||
disable_wipe_tower_after_mapping = false;
|
|
||||||
BOOST_LOG_TRIVIAL(info) << boost::format("%1%, set disable_wipe_tower_after_mapping back to false due to a mixed filament")%__LINE__;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (disable_wipe_tower_after_mapping) {
|
if (disable_wipe_tower_after_mapping) {
|
||||||
if (is_smooth_timelapse)
|
if (is_smooth_timelapse)
|
||||||
{
|
{
|
||||||
@@ -5083,7 +4826,7 @@ int CLI::run(int argc, char **argv)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((!arrange_cfg.is_seq_print && (assemble_plate.filaments_count > 1))||(enable_wrapping_detect && !current_wrapping_exclude_area.empty()))
|
if (!arrange_cfg.is_seq_print && (assemble_plate.filaments_count > 1)||(enable_wrapping_detect && !current_wrapping_exclude_area.empty()))
|
||||||
{
|
{
|
||||||
//prepare the wipe tower
|
//prepare the wipe tower
|
||||||
int plate_count = partplate_list.get_plate_count();
|
int plate_count = partplate_list.get_plate_count();
|
||||||
@@ -5369,7 +5112,7 @@ int CLI::run(int argc, char **argv)
|
|||||||
//skip this object due to be locked in plate
|
//skip this object due to be locked in plate
|
||||||
ap.itemid = locked_aps.size();
|
ap.itemid = locked_aps.size();
|
||||||
locked_aps.emplace_back(ap);
|
locked_aps.emplace_back(ap);
|
||||||
BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << boost::format(": skip locked instance, obj_id %1%, instance_id %2%") % oidx % inst_idx;
|
boost::nowide::cout <<__FUNCTION__ << boost::format(": skip locked instance, obj_id %1%, instance_id %2%") % oidx % inst_idx;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -5958,11 +5701,7 @@ int CLI::run(int argc, char **argv)
|
|||||||
//FIXME check for mixing the FFF / SLA parameters.
|
//FIXME check for mixing the FFF / SLA parameters.
|
||||||
// or better save fff_print_config vs. sla_print_config
|
// or better save fff_print_config vs. sla_print_config
|
||||||
//m_print_config.save(m_config.opt_string("save"));
|
//m_print_config.save(m_config.opt_string("save"));
|
||||||
const std::string &settings_file = m_config.opt_string(opt_key);
|
m_print_config.save_to_json(m_config.opt_string(opt_key), std::string("project_settings"), std::string("project"), std::string(SoftFever_VERSION));
|
||||||
if (settings_file == "-")
|
|
||||||
m_print_config.save_to_json(boost::nowide::cout, "project_settings", "project", SoftFever_VERSION, /*replace_invalid_utf8=*/true);
|
|
||||||
else
|
|
||||||
m_print_config.save_to_json(settings_file, std::string("project_settings"), std::string("project"), std::string(SoftFever_VERSION));
|
|
||||||
} else if (opt_key == "info") {
|
} else if (opt_key == "info") {
|
||||||
// --info works on unrepaired model
|
// --info works on unrepaired model
|
||||||
for (Model &model : m_models) {
|
for (Model &model : m_models) {
|
||||||
@@ -6258,36 +5997,6 @@ int CLI::run(int argc, char **argv)
|
|||||||
flush_and_exit(CLI_ONLY_ONE_TPU_SUPPORTED);
|
flush_and_exit(CLI_ONLY_ONE_TPU_SUPPORTED);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Same type gate as the GUI's Sidebar::has_broken_mixed_filament: refuse a plate that uses a
|
|
||||||
// mixed slot whose components are different filament types. Missing or out-of-range
|
|
||||||
// components never get here, validate() already rejects them for the whole project.
|
|
||||||
const auto *is_mixed_opt = m_print_config.option<ConfigOptionBools>("filament_is_mixed");
|
|
||||||
const auto *components_opt = m_print_config.option<ConfigOptionStrings>("filament_mixed_components");
|
|
||||||
if (is_mixed_opt && components_opt && has_any_mixed_filament(is_mixed_opt->values)) {
|
|
||||||
const auto &is_mixed = is_mixed_opt->values;
|
|
||||||
const auto &components = components_opt->values;
|
|
||||||
const size_t num_physical = static_cast<size_t>(filament_count) - static_cast<size_t>(std::count(is_mixed.begin(), is_mixed.end(), true));
|
|
||||||
std::vector<std::string> physical_types(num_physical);
|
|
||||||
for (size_t f_index = 0; f_index < num_physical; ++f_index) {
|
|
||||||
std::string displayed_type;
|
|
||||||
physical_types[f_index] = m_print_config.get_filament_type(displayed_type, static_cast<int>(f_index));
|
|
||||||
if (physical_types[f_index].empty())
|
|
||||||
physical_types[f_index] = "PLA";
|
|
||||||
}
|
|
||||||
const std::vector<size_t> mismatched_slots = check_mixed_filament_type_consistency(is_mixed, components, physical_types);
|
|
||||||
// plate_filaments has mixed slots expanded to their components; the gate needs the slots.
|
|
||||||
const std::vector<int> plate_slots = mismatched_slots.empty() ? std::vector<int>() :
|
|
||||||
part_plate->get_extruders_under_cli(true, m_print_config, false);
|
|
||||||
for (size_t slot : mismatched_slots) {
|
|
||||||
if (std::find(plate_slots.begin(), plate_slots.end(), static_cast<int>(slot) + 1) == plate_slots.end())
|
|
||||||
continue;
|
|
||||||
BOOST_LOG_TRIVIAL(error) << boost::format("plate %1%: mixed filament %2% mixes components of different filament types")
|
|
||||||
% (index + 1) % (slot + 1);
|
|
||||||
record_exit_reson(outfile_dir, CLI_MIXED_FILAMENT_INVALID, index + 1, cli_errors[CLI_MIXED_FILAMENT_INVALID], sliced_info);
|
|
||||||
flush_and_exit(CLI_MIXED_FILAMENT_INVALID);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (new_extruder_count > 1) {
|
if (new_extruder_count > 1) {
|
||||||
std::vector<std::vector<int>> unprintable_filament_vec;
|
std::vector<std::vector<int>> unprintable_filament_vec;
|
||||||
for (const std::set<int>& filamnt_ids : unprintable_filament_ids) {
|
for (const std::set<int>& filamnt_ids : unprintable_filament_ids) {
|
||||||
@@ -7740,13 +7449,6 @@ bool CLI::setup(int argc, char **argv)
|
|||||||
this->print_help();
|
this->print_help();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Orca: resolve here, while the process is still in the directory the user invoked it from.
|
|
||||||
// GUI_App's constructor moves the working directory to <data_dir>/log, long before the GUI
|
|
||||||
// opens these files in post_init(), and a relative path would then resolve against that.
|
|
||||||
for (std::string &input_file : m_input_files)
|
|
||||||
input_file = resolve_cli_input_path(input_file);
|
|
||||||
|
|
||||||
// Parse actions and transform options.
|
// Parse actions and transform options.
|
||||||
for (auto const &opt_key : opt_order) {
|
for (auto const &opt_key : opt_order) {
|
||||||
if (cli_actions_config_def.has(opt_key))
|
if (cli_actions_config_def.has(opt_key))
|
||||||
|
|||||||
@@ -297,7 +297,7 @@ int wmain(int argc, wchar_t **argv)
|
|||||||
// printf("Loading Slic3r library: %S\n", path_to_slic3r);
|
// printf("Loading Slic3r library: %S\n", path_to_slic3r);
|
||||||
HINSTANCE hInstance_Slic3r = LoadLibraryExW(path_to_slic3r, nullptr, 0);
|
HINSTANCE hInstance_Slic3r = LoadLibraryExW(path_to_slic3r, nullptr, 0);
|
||||||
if (hInstance_Slic3r == nullptr) {
|
if (hInstance_Slic3r == nullptr) {
|
||||||
printf("OrcaSlicer.dll was not loaded, error=%lu\n", GetLastError());
|
printf("OrcaSlicer.dll was not loaded, error=%d\n", GetLastError());
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
#include <boost/nowide/cstdio.hpp>
|
#include <boost/nowide/cstdio.hpp>
|
||||||
#include <boost/nowide/fstream.hpp>
|
#include <boost/nowide/fstream.hpp>
|
||||||
#include "StackWalker.h"
|
#include "stackwalker.h"
|
||||||
#include <eh.h>
|
#include <eh.h>
|
||||||
|
|
||||||
class CBaseException : public CStackWalker
|
class CBaseException : public CStackWalker
|
||||||
|
|||||||
@@ -364,7 +364,7 @@ void CStackWalker::GetModuleInformation(LPMODULE_INFO pmi)
|
|||||||
|
|
||||||
if (dwInfoSize > 0)
|
if (dwInfoSize > 0)
|
||||||
{
|
{
|
||||||
byte *lpData = new byte[dwInfoSize];
|
LPVOID lpData = new byte[dwInfoSize];
|
||||||
ZeroMemory(lpData, dwInfoSize * sizeof(byte));
|
ZeroMemory(lpData, dwInfoSize * sizeof(byte));
|
||||||
|
|
||||||
if (GetFileVersionInfo(pmi->szModulePath, dwHandle, dwInfoSize, lpData) > 0 )
|
if (GetFileVersionInfo(pmi->szModulePath, dwHandle, dwInfoSize, lpData) > 0 )
|
||||||
@@ -425,7 +425,7 @@ LPSTACKINFO CStackWalker::StackWalker(HANDLE hThread, const CONTEXT* context)
|
|||||||
else
|
else
|
||||||
c = *context;
|
c = *context;
|
||||||
|
|
||||||
STACKFRAME64 sf = {};
|
STACKFRAME64 sf = {0};
|
||||||
DWORD imageType;
|
DWORD imageType;
|
||||||
|
|
||||||
//intel X86
|
//intel X86
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ SplittedLine split_line(const PathType& path, const ExPolygons& clip, bool close
|
|||||||
|
|
||||||
// Convert the input path into an open ZPath
|
// Convert the input path into an open ZPath
|
||||||
ClipperZUtils::ZPath p;
|
ClipperZUtils::ZPath p;
|
||||||
p.reserve(path.size() + (closed ? 1 : 0));
|
p.reserve(path.size() + closed ? 1 : 0);
|
||||||
ClipperLib_Z::cInt z = 0;
|
ClipperLib_Z::cInt z = 0;
|
||||||
for (const auto& point : path) {
|
for (const auto& point : path) {
|
||||||
p.emplace_back(point.x(), point.y(), z);
|
p.emplace_back(point.x(), point.y(), z);
|
||||||
|
|||||||
@@ -42,9 +42,6 @@ namespace Slic3r {
|
|||||||
|
|
||||||
static const std::string VERSION_CHECK_URL = "https://check-version.orcaslicer.com/latest";
|
static const std::string VERSION_CHECK_URL = "https://check-version.orcaslicer.com/latest";
|
||||||
static const std::string PROFILE_UPDATE_URL = "https://check-version.orcaslicer.com/profile";
|
static const std::string PROFILE_UPDATE_URL = "https://check-version.orcaslicer.com/profile";
|
||||||
|
|
||||||
constexpr const char* CONFIG_ORCA_UPDATER_URL = "orca_updater_url";
|
|
||||||
|
|
||||||
static const std::string MODELS_STR = "models";
|
static const std::string MODELS_STR = "models";
|
||||||
|
|
||||||
const std::string AppConfig::SECTION_FILAMENTS = "filaments";
|
const std::string AppConfig::SECTION_FILAMENTS = "filaments";
|
||||||
@@ -638,11 +635,6 @@ void AppConfig::set_defaults()
|
|||||||
set_bool("use_printer_agents", false);
|
set_bool("use_printer_agents", false);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (get("enable_ota").empty())
|
|
||||||
{
|
|
||||||
set_bool("enable_ota", false);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Remove legacy window positions/sizes
|
// Remove legacy window positions/sizes
|
||||||
erase("app", "main_frame_maximized");
|
erase("app", "main_frame_maximized");
|
||||||
erase("app", "main_frame_pos");
|
erase("app", "main_frame_pos");
|
||||||
@@ -1823,10 +1815,7 @@ std::string AppConfig::version_check_url() const
|
|||||||
|
|
||||||
std::string AppConfig::profile_update_url() const
|
std::string AppConfig::profile_update_url() const
|
||||||
{
|
{
|
||||||
std::string orca_updater_url = get(CONFIG_ORCA_UPDATER_URL);
|
return PROFILE_UPDATE_URL;
|
||||||
if (orca_updater_url.empty())
|
|
||||||
return PROFILE_UPDATE_URL;
|
|
||||||
return orca_updater_url;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool AppConfig::exists()
|
bool AppConfig::exists()
|
||||||
|
|||||||
@@ -372,8 +372,6 @@ set(lisbslic3r_sources
|
|||||||
Preset.hpp
|
Preset.hpp
|
||||||
PrincipalComponents2D.cpp
|
PrincipalComponents2D.cpp
|
||||||
PrincipalComponents2D.hpp
|
PrincipalComponents2D.hpp
|
||||||
PublishSettings.cpp
|
|
||||||
PublishSettings.hpp
|
|
||||||
PrintApply.cpp
|
PrintApply.cpp
|
||||||
PrintBase.cpp
|
PrintBase.cpp
|
||||||
PrintBase.hpp
|
PrintBase.hpp
|
||||||
@@ -558,12 +556,6 @@ if (_opts)
|
|||||||
target_compile_options(libslic3r_cgal PRIVATE "${_opts_bad}")
|
target_compile_options(libslic3r_cgal PRIVATE "${_opts_bad}")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (IS_CLANG_CL)
|
|
||||||
# CGAL passes /fp:strict /fp:except-. clang-cl reports the second as overriding part of
|
|
||||||
# the first; the settings cc1 receives are the same ones MSVC produces from that pair.
|
|
||||||
target_compile_options(libslic3r_cgal PRIVATE -Wno-overriding-option)
|
|
||||||
endif ()
|
|
||||||
|
|
||||||
target_link_libraries(libslic3r_cgal PRIVATE ${_cgal_tgt} admesh libigl mcut boost_libs)
|
target_link_libraries(libslic3r_cgal PRIVATE ${_cgal_tgt} admesh libigl mcut boost_libs)
|
||||||
|
|
||||||
if (MSVC AND "${CMAKE_SIZEOF_VOID_P}" STREQUAL "4") # 32 bit MSVC workaround
|
if (MSVC AND "${CMAKE_SIZEOF_VOID_P}" STREQUAL "4") # 32 bit MSVC workaround
|
||||||
|
|||||||
@@ -7,7 +7,6 @@
|
|||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
#include <fstream>
|
#include <fstream>
|
||||||
#include <sstream>
|
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <iomanip>
|
#include <iomanip>
|
||||||
#include <regex>
|
#include <regex>
|
||||||
@@ -1516,19 +1515,6 @@ std::optional<PluginCapabilityRef> parse_capability_ref(const std::string& value
|
|||||||
|
|
||||||
//BBS: add json support
|
//BBS: add json support
|
||||||
void ConfigBase::save_to_json(const std::string &file, const std::string &name, const std::string &from, const std::string &version) const
|
void ConfigBase::save_to_json(const std::string &file, const std::string &name, const std::string &from, const std::string &version) const
|
||||||
{
|
|
||||||
// Serialize first: if that throws (invalid UTF-8), the existing file stays untouched.
|
|
||||||
std::ostringstream ss;
|
|
||||||
this->save_to_json(ss, name, from, version);
|
|
||||||
boost::nowide::ofstream c;
|
|
||||||
c.open(file, std::ios::out | std::ios::trunc);
|
|
||||||
c << ss.str();
|
|
||||||
c.close();
|
|
||||||
|
|
||||||
BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << ":" <<__LINE__ << boost::format(", saved config to %1%\n")%file;
|
|
||||||
}
|
|
||||||
|
|
||||||
void ConfigBase::save_to_json(std::ostream &os, const std::string &name, const std::string &from, const std::string &version, bool replace_invalid_utf8) const
|
|
||||||
{
|
{
|
||||||
json j;
|
json j;
|
||||||
//record the headers
|
//record the headers
|
||||||
@@ -1575,7 +1561,12 @@ void ConfigBase::save_to_json(std::ostream &os, const std::string &name, const s
|
|||||||
j["plugins"] = unique_refs;
|
j["plugins"] = unique_refs;
|
||||||
}
|
}
|
||||||
|
|
||||||
os << j.dump(1, '\t', false, replace_invalid_utf8 ? json::error_handler_t::replace : json::error_handler_t::strict) << std::endl;
|
boost::nowide::ofstream c;
|
||||||
|
c.open(file, std::ios::out | std::ios::trunc);
|
||||||
|
c << j.dump(1, '\t') << std::endl;
|
||||||
|
c.close();
|
||||||
|
|
||||||
|
BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << ":" <<__LINE__ << boost::format(", saved config to %1%\n")%file;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ConfigBase::save(const std::string &file) const
|
void ConfigBase::save(const std::string &file) const
|
||||||
|
|||||||
@@ -1006,7 +1006,6 @@ public:
|
|||||||
int getInt() const override { return this->value; }
|
int getInt() const override { return this->value; }
|
||||||
void setInt(int val) override { this->value = val; }
|
void setInt(int val) override { this->value = val; }
|
||||||
ConfigOption* clone() const override { return new ConfigOptionInt(*this); }
|
ConfigOption* clone() const override { return new ConfigOptionInt(*this); }
|
||||||
using ConfigOptionSingle<int>::operator==;
|
|
||||||
bool operator==(const ConfigOptionInt &rhs) const throw() { return this->value == rhs.value; }
|
bool operator==(const ConfigOptionInt &rhs) const throw() { return this->value == rhs.value; }
|
||||||
|
|
||||||
std::string serialize() const override
|
std::string serialize() const override
|
||||||
@@ -1049,7 +1048,6 @@ public:
|
|||||||
ConfigOptionType type() const override { return static_type(); }
|
ConfigOptionType type() const override { return static_type(); }
|
||||||
ConfigOption* clone() const override { return new ConfigOptionIntsTempl(*this); }
|
ConfigOption* clone() const override { return new ConfigOptionIntsTempl(*this); }
|
||||||
ConfigOptionIntsTempl& operator= (const ConfigOption *opt) { this->set(opt); return *this; }
|
ConfigOptionIntsTempl& operator= (const ConfigOption *opt) { this->set(opt); return *this; }
|
||||||
using ConfigOptionVector<int>::operator==;
|
|
||||||
bool operator==(const ConfigOptionIntsTempl &rhs) const throw() { return this->values == rhs.values; }
|
bool operator==(const ConfigOptionIntsTempl &rhs) const throw() { return this->values == rhs.values; }
|
||||||
bool operator< (const ConfigOptionIntsTempl &rhs) const throw() { return this->values < rhs.values; }
|
bool operator< (const ConfigOptionIntsTempl &rhs) const throw() { return this->values < rhs.values; }
|
||||||
// Could a special "nil" value be stored inside the vector, indicating undefined value?
|
// Could a special "nil" value be stored inside the vector, indicating undefined value?
|
||||||
@@ -1139,7 +1137,6 @@ public:
|
|||||||
ConfigOptionType type() const override { return static_type(); }
|
ConfigOptionType type() const override { return static_type(); }
|
||||||
ConfigOption* clone() const override { return new ConfigOptionString(*this); }
|
ConfigOption* clone() const override { return new ConfigOptionString(*this); }
|
||||||
ConfigOptionString& operator=(const ConfigOption *opt) { this->set(opt); return *this; }
|
ConfigOptionString& operator=(const ConfigOption *opt) { this->set(opt); return *this; }
|
||||||
using ConfigOptionSingle<std::string>::operator==;
|
|
||||||
bool operator==(const ConfigOptionString &rhs) const throw() { return this->value == rhs.value; }
|
bool operator==(const ConfigOptionString &rhs) const throw() { return this->value == rhs.value; }
|
||||||
bool operator< (const ConfigOptionString &rhs) const throw() { return this->value < rhs.value; }
|
bool operator< (const ConfigOptionString &rhs) const throw() { return this->value < rhs.value; }
|
||||||
bool empty() const { return this->value.empty(); }
|
bool empty() const { return this->value.empty(); }
|
||||||
@@ -1174,7 +1171,6 @@ public:
|
|||||||
ConfigOptionType type() const override { return static_type(); }
|
ConfigOptionType type() const override { return static_type(); }
|
||||||
ConfigOption* clone() const override { return new ConfigOptionStrings(*this); }
|
ConfigOption* clone() const override { return new ConfigOptionStrings(*this); }
|
||||||
ConfigOptionStrings& operator=(const ConfigOption *opt) { this->set(opt); return *this; }
|
ConfigOptionStrings& operator=(const ConfigOption *opt) { this->set(opt); return *this; }
|
||||||
using ConfigOptionVector<std::string>::operator==;
|
|
||||||
bool operator==(const ConfigOptionStrings &rhs) const throw() { return this->values == rhs.values; }
|
bool operator==(const ConfigOptionStrings &rhs) const throw() { return this->values == rhs.values; }
|
||||||
bool operator< (const ConfigOptionStrings &rhs) const throw() { return this->values < rhs.values; }
|
bool operator< (const ConfigOptionStrings &rhs) const throw() { return this->values < rhs.values; }
|
||||||
bool is_nil(size_t) const override { return false; }
|
bool is_nil(size_t) const override { return false; }
|
||||||
@@ -1219,7 +1215,6 @@ public:
|
|||||||
ConfigOptionType type() const override { return static_type(); }
|
ConfigOptionType type() const override { return static_type(); }
|
||||||
ConfigOption* clone() const override { return new ConfigOptionPercent(*this); }
|
ConfigOption* clone() const override { return new ConfigOptionPercent(*this); }
|
||||||
ConfigOptionPercent& operator= (const ConfigOption *opt) { this->set(opt); return *this; }
|
ConfigOptionPercent& operator= (const ConfigOption *opt) { this->set(opt); return *this; }
|
||||||
using ConfigOptionFloat::operator==;
|
|
||||||
bool operator==(const ConfigOptionPercent &rhs) const throw() { return this->value == rhs.value; }
|
bool operator==(const ConfigOptionPercent &rhs) const throw() { return this->value == rhs.value; }
|
||||||
bool operator< (const ConfigOptionPercent &rhs) const throw() { return this->value < rhs.value; }
|
bool operator< (const ConfigOptionPercent &rhs) const throw() { return this->value < rhs.value; }
|
||||||
|
|
||||||
@@ -1262,7 +1257,6 @@ public:
|
|||||||
ConfigOptionType type() const override { return static_type(); }
|
ConfigOptionType type() const override { return static_type(); }
|
||||||
ConfigOption* clone() const override { return new ConfigOptionPercentsTempl(*this); }
|
ConfigOption* clone() const override { return new ConfigOptionPercentsTempl(*this); }
|
||||||
ConfigOptionPercentsTempl& operator=(const ConfigOption *opt) { this->set(opt); return *this; }
|
ConfigOptionPercentsTempl& operator=(const ConfigOption *opt) { this->set(opt); return *this; }
|
||||||
using ConfigOptionFloatsTempl<NULLABLE>::operator==;
|
|
||||||
bool operator==(const ConfigOptionPercentsTempl &rhs) const throw() { return ConfigOptionFloatsTempl<NULLABLE>::vectors_equal(this->values, rhs.values); }
|
bool operator==(const ConfigOptionPercentsTempl &rhs) const throw() { return ConfigOptionFloatsTempl<NULLABLE>::vectors_equal(this->values, rhs.values); }
|
||||||
bool operator< (const ConfigOptionPercentsTempl &rhs) const throw() { return ConfigOptionFloatsTempl<NULLABLE>::vectors_lower(this->values, rhs.values); }
|
bool operator< (const ConfigOptionPercentsTempl &rhs) const throw() { return ConfigOptionFloatsTempl<NULLABLE>::vectors_lower(this->values, rhs.values); }
|
||||||
|
|
||||||
@@ -1508,7 +1502,6 @@ public:
|
|||||||
ConfigOptionType type() const override { return static_type(); }
|
ConfigOptionType type() const override { return static_type(); }
|
||||||
ConfigOption* clone() const override { return new ConfigOptionPoint(*this); }
|
ConfigOption* clone() const override { return new ConfigOptionPoint(*this); }
|
||||||
ConfigOptionPoint& operator=(const ConfigOption *opt) { this->set(opt); return *this; }
|
ConfigOptionPoint& operator=(const ConfigOption *opt) { this->set(opt); return *this; }
|
||||||
using ConfigOptionSingle<Vec2d>::operator==;
|
|
||||||
bool operator==(const ConfigOptionPoint &rhs) const throw() { return this->value == rhs.value; }
|
bool operator==(const ConfigOptionPoint &rhs) const throw() { return this->value == rhs.value; }
|
||||||
bool operator< (const ConfigOptionPoint &rhs) const throw() { return this->value < rhs.value; }
|
bool operator< (const ConfigOptionPoint &rhs) const throw() { return this->value < rhs.value; }
|
||||||
|
|
||||||
@@ -1546,7 +1539,6 @@ public:
|
|||||||
ConfigOptionType type() const override { return static_type(); }
|
ConfigOptionType type() const override { return static_type(); }
|
||||||
ConfigOption* clone() const override { return new ConfigOptionPoints(*this); }
|
ConfigOption* clone() const override { return new ConfigOptionPoints(*this); }
|
||||||
ConfigOptionPoints& operator= (const ConfigOption *opt) { this->set(opt); return *this; }
|
ConfigOptionPoints& operator= (const ConfigOption *opt) { this->set(opt); return *this; }
|
||||||
using ConfigOptionVector<Vec2d>::operator==;
|
|
||||||
bool operator==(const ConfigOptionPoints &rhs) const throw() { return this->values == rhs.values; }
|
bool operator==(const ConfigOptionPoints &rhs) const throw() { return this->values == rhs.values; }
|
||||||
bool operator< (const ConfigOptionPoints &rhs) const throw()
|
bool operator< (const ConfigOptionPoints &rhs) const throw()
|
||||||
{ return std::lexicographical_compare(this->values.begin(), this->values.end(), rhs.values.begin(), rhs.values.end(), [](const auto &l, const auto &r){ return l < r; }); }
|
{ return std::lexicographical_compare(this->values.begin(), this->values.end(), rhs.values.begin(), rhs.values.end(), [](const auto &l, const auto &r){ return l < r; }); }
|
||||||
@@ -1625,7 +1617,6 @@ public:
|
|||||||
ConfigOptionType type() const override { return static_type(); }
|
ConfigOptionType type() const override { return static_type(); }
|
||||||
ConfigOption* clone() const override { return new ConfigOptionPoint3(*this); }
|
ConfigOption* clone() const override { return new ConfigOptionPoint3(*this); }
|
||||||
ConfigOptionPoint3& operator=(const ConfigOption *opt) { this->set(opt); return *this; }
|
ConfigOptionPoint3& operator=(const ConfigOption *opt) { this->set(opt); return *this; }
|
||||||
using ConfigOptionSingle<Vec3d>::operator==;
|
|
||||||
bool operator==(const ConfigOptionPoint3 &rhs) const throw() { return this->value == rhs.value; }
|
bool operator==(const ConfigOptionPoint3 &rhs) const throw() { return this->value == rhs.value; }
|
||||||
bool operator< (const ConfigOptionPoint3 &rhs) const throw()
|
bool operator< (const ConfigOptionPoint3 &rhs) const throw()
|
||||||
{ return this->value.x() < rhs.value.x() || (this->value.x() == rhs.value.x() && (this->value.y() < rhs.value.y() || (this->value.y() == rhs.value.y() && this->value.z() < rhs.value.z()))); }
|
{ return this->value.x() < rhs.value.x() || (this->value.x() == rhs.value.x() && (this->value.y() < rhs.value.y() || (this->value.y() == rhs.value.y() && this->value.z() < rhs.value.z()))); }
|
||||||
@@ -1869,7 +1860,6 @@ public:
|
|||||||
bool getBool() const override { return this->value; }
|
bool getBool() const override { return this->value; }
|
||||||
ConfigOption* clone() const override { return new ConfigOptionBool(*this); }
|
ConfigOption* clone() const override { return new ConfigOptionBool(*this); }
|
||||||
ConfigOptionBool& operator=(const ConfigOption *opt) { this->set(opt); return *this; }
|
ConfigOptionBool& operator=(const ConfigOption *opt) { this->set(opt); return *this; }
|
||||||
using ConfigOptionSingle<bool>::operator==;
|
|
||||||
bool operator==(const ConfigOptionBool &rhs) const throw() { return this->value == rhs.value; }
|
bool operator==(const ConfigOptionBool &rhs) const throw() { return this->value == rhs.value; }
|
||||||
bool operator< (const ConfigOptionBool &rhs) const throw() { return int(this->value) < int(rhs.value); }
|
bool operator< (const ConfigOptionBool &rhs) const throw() { return int(this->value) < int(rhs.value); }
|
||||||
|
|
||||||
@@ -1921,7 +1911,6 @@ public:
|
|||||||
ConfigOptionType type() const override { return static_type(); }
|
ConfigOptionType type() const override { return static_type(); }
|
||||||
ConfigOption* clone() const override { return new ConfigOptionBoolsTempl(*this); }
|
ConfigOption* clone() const override { return new ConfigOptionBoolsTempl(*this); }
|
||||||
ConfigOptionBoolsTempl& operator=(const ConfigOption *opt) { this->set(opt); return *this; }
|
ConfigOptionBoolsTempl& operator=(const ConfigOption *opt) { this->set(opt); return *this; }
|
||||||
using ConfigOptionVector<unsigned char>::operator==;
|
|
||||||
bool operator==(const ConfigOptionBoolsTempl &rhs) const throw() { return this->values == rhs.values; }
|
bool operator==(const ConfigOptionBoolsTempl &rhs) const throw() { return this->values == rhs.values; }
|
||||||
bool operator< (const ConfigOptionBoolsTempl &rhs) const throw() { return this->values < rhs.values; }
|
bool operator< (const ConfigOptionBoolsTempl &rhs) const throw() { return this->values < rhs.values; }
|
||||||
// Could a special "nil" value be stored inside the vector, indicating undefined value?
|
// Could a special "nil" value be stored inside the vector, indicating undefined value?
|
||||||
@@ -2174,7 +2163,6 @@ public:
|
|||||||
ConfigOptionEnumsGenericTempl& operator= (const ConfigOption* opt) { this->set(opt); return *this; }
|
ConfigOptionEnumsGenericTempl& operator= (const ConfigOption* opt) { this->set(opt); return *this; }
|
||||||
bool operator< (const ConfigOptionInts& rhs) const throw() { return this->values < rhs.values; }
|
bool operator< (const ConfigOptionInts& rhs) const throw() { return this->values < rhs.values; }
|
||||||
|
|
||||||
using ConfigOptionInts::operator==;
|
|
||||||
bool operator==(const ConfigOptionInts& rhs) const
|
bool operator==(const ConfigOptionInts& rhs) const
|
||||||
{
|
{
|
||||||
if (rhs.type() != this->type())
|
if (rhs.type() != this->type())
|
||||||
@@ -2825,9 +2813,6 @@ public:
|
|||||||
|
|
||||||
//BBS: add json support
|
//BBS: add json support
|
||||||
void save_to_json(const std::string &file, const std::string &name, const std::string &from, const std::string &version) const;
|
void save_to_json(const std::string &file, const std::string &name, const std::string &from, const std::string &version) const;
|
||||||
// Same document, written to a stream. Invalid UTF-8 in a string value throws nlohmann's type_error unless
|
|
||||||
// replace_invalid_utf8 is set, which writes U+FFFD instead (for callers such as stdout with no handler).
|
|
||||||
void save_to_json(std::ostream &os, const std::string &name, const std::string &from, const std::string &version, bool replace_invalid_utf8 = false) const;
|
|
||||||
|
|
||||||
// Rebuild the in-memory "plugins" manifest (the "name;uuid;capability" references the plugin
|
// Rebuild the in-memory "plugins" manifest (the "name;uuid;capability" references the plugin
|
||||||
// dispatchers consume) from the plugin-backed options via the registered resolver. save_to_json()
|
// dispatchers consume) from the plugin-backed options via the registered resolver. save_to_json()
|
||||||
|
|||||||
@@ -968,10 +968,10 @@ EmbossStyles Emboss::get_font_list_by_register() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// TODO: Fix global function
|
// TODO: Fix global function
|
||||||
int CALLBACK EnumFamCallBack(const LOGFONT *lplf,
|
bool CALLBACK EnumFamCallBack(LPLOGFONT lplf,
|
||||||
const TEXTMETRIC *lpntm,
|
LPNEWTEXTMETRIC lpntm,
|
||||||
DWORD FontType,
|
DWORD FontType,
|
||||||
LPARAM aFontList)
|
LPVOID aFontList)
|
||||||
{
|
{
|
||||||
std::vector<std::wstring> *fontList =
|
std::vector<std::wstring> *fontList =
|
||||||
(std::vector<std::wstring> *) (aFontList);
|
(std::vector<std::wstring> *) (aFontList);
|
||||||
@@ -988,7 +988,7 @@ EmbossStyles Emboss::get_font_list_by_enumeration() {
|
|||||||
|
|
||||||
HDC hDC = GetDC(NULL);
|
HDC hDC = GetDC(NULL);
|
||||||
std::vector<std::wstring> font_names;
|
std::vector<std::wstring> font_names;
|
||||||
EnumFontFamilies(hDC, (LPCTSTR) NULL, EnumFamCallBack,
|
EnumFontFamilies(hDC, (LPCTSTR) NULL, (FONTENUMPROC) EnumFamCallBack,
|
||||||
(LPARAM) &font_names);
|
(LPARAM) &font_names);
|
||||||
|
|
||||||
EmbossStyles font_list;
|
EmbossStyles font_list;
|
||||||
|
|||||||
+52
-59
@@ -11,7 +11,7 @@
|
|||||||
|
|
||||||
#include "AABBTreeLines.hpp"
|
#include "AABBTreeLines.hpp"
|
||||||
#include "ExtrusionEntity.hpp"
|
#include "ExtrusionEntity.hpp"
|
||||||
#include "Fill.hpp"
|
#include "FillBase.hpp"
|
||||||
#include "FillRectilinear.hpp"
|
#include "FillRectilinear.hpp"
|
||||||
#include "FillLightning.hpp"
|
#include "FillLightning.hpp"
|
||||||
#include "FillConcentricInternal.hpp"
|
#include "FillConcentricInternal.hpp"
|
||||||
@@ -1234,33 +1234,6 @@ std::vector<SurfaceFill> group_fills(const Layer &layer, LockRegionParam &lock_p
|
|||||||
return surface_fills;
|
return surface_fills;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Orca: Anchors and printed infill must share the same body origin. Keep the choice
|
|
||||||
// here so per-model surface centering and separated sparse infill cannot drift apart.
|
|
||||||
static BoundingBox infill_bounding_box(const Layer &layer, const SurfaceFill &fill, const ExPolygon &expoly, BoundingBox bbox)
|
|
||||||
{
|
|
||||||
const auto ¶ms = fill.params;
|
|
||||||
const auto &config = layer.regions()[fill.region_id]->region().config();
|
|
||||||
const bool external = params.extrusion_role == erTopSolidInfill || params.extrusion_role == erBottomSurface;
|
|
||||||
const bool per_model = external && params.center_of_surface_pattern == CenterOfSurfacePattern::Each_Model &&
|
|
||||||
(params.pattern == ipArchimedeanChords || params.pattern == ipOctagramSpiral);
|
|
||||||
const bool separate = !external && params.separated_infills &&
|
|
||||||
(is_separable_infill_pattern(params.pattern) || !config.solid_infill_rotate_template.value.empty() ||
|
|
||||||
!config.sparse_infill_rotate_template.value.empty());
|
|
||||||
if (per_model || separate) {
|
|
||||||
double best_overlap = 0.;
|
|
||||||
for (size_t i = 0; i < layer.lslices.size() && i < layer.lslices_separated_component_bboxes.size(); ++i) {
|
|
||||||
const double overlap = area(intersection_ex(layer.lslices[i], expoly));
|
|
||||||
if (overlap > best_overlap) {
|
|
||||||
best_overlap = overlap;
|
|
||||||
const Point center = layer.lslices_separated_component_bboxes[i].center();
|
|
||||||
bbox = layer.object()->bounding_box();
|
|
||||||
bbox.translate(center.x(), center.y());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return bbox;
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifdef SLIC3R_DEBUG_SLICE_PROCESSING
|
#ifdef SLIC3R_DEBUG_SLICE_PROCESSING
|
||||||
void export_group_fills_to_svg(const char *path, const std::vector<SurfaceFill> &fills)
|
void export_group_fills_to_svg(const char *path, const std::vector<SurfaceFill> &fills)
|
||||||
{
|
{
|
||||||
@@ -1380,9 +1353,19 @@ void Layer::make_fills(FillAdaptive::Octree* adaptive_fill_octree, FillAdaptive:
|
|||||||
|
|
||||||
// Orca: Checking the filling of a centered surface by drawing for each model parts
|
// Orca: Checking the filling of a centered surface by drawing for each model parts
|
||||||
bool is_top_or_bottom = params.extrusion_role == erTopSolidInfill || params.extrusion_role == erBottomSurface;
|
bool is_top_or_bottom = params.extrusion_role == erTopSolidInfill || params.extrusion_role == erBottomSurface;
|
||||||
|
bool is_centered_infill = surface_fill.params.pattern == ipArchimedeanChords || surface_fill.params.pattern == ipOctagramSpiral;
|
||||||
if (is_top_or_bottom) {
|
if (is_top_or_bottom) {
|
||||||
params.center_of_surface_pattern = surface_fill.params.center_of_surface_pattern; // Orca: center of surface pattern
|
params.center_of_surface_pattern = surface_fill.params.center_of_surface_pattern; // Orca: center of surface pattern
|
||||||
}
|
}
|
||||||
|
// Orca: Each_Model centers the pattern on each model part's bbox; Each_Surface / Each_Assembly
|
||||||
|
// fall through to the default (whole-object) bounding box below.
|
||||||
|
bool is_per_model_center = is_top_or_bottom && params.center_of_surface_pattern == CenterOfSurfacePattern::Each_Model && is_centered_infill;
|
||||||
|
bool is_separate_infill = !is_top_or_bottom && surface_fill.params.separated_infills &&
|
||||||
|
(
|
||||||
|
is_separable_infill_pattern(surface_fill.params.pattern) ||
|
||||||
|
params.config->solid_infill_rotate_template != "" ||
|
||||||
|
params.config->sparse_infill_rotate_template != "" );
|
||||||
|
|
||||||
if( surface_fill.params.pattern == ipLockedZag ) {
|
if( surface_fill.params.pattern == ipLockedZag ) {
|
||||||
params.locked_zag = true;
|
params.locked_zag = true;
|
||||||
params.infill_lock_depth = surface_fill.params.infill_lock_depth;
|
params.infill_lock_depth = surface_fill.params.infill_lock_depth;
|
||||||
@@ -1406,8 +1389,34 @@ void Layer::make_fills(FillAdaptive::Octree* adaptive_fill_octree, FillAdaptive:
|
|||||||
params.can_reverse = false;
|
params.can_reverse = false;
|
||||||
for (ExPolygon& expoly : surface_fill.expolygons) {
|
for (ExPolygon& expoly : surface_fill.expolygons) {
|
||||||
|
|
||||||
// Orca: Reuse the body origin used for bridge anchoring, resetting it for each surface.
|
// Orca: separate infill / per-model pattern centering.
|
||||||
f->set_bounding_box(infill_bounding_box(*this, surface_fill, expoly, bbox));
|
//
|
||||||
|
// Center the pattern on each connected body of the object independently, so every piece
|
||||||
|
// is filled exactly as if it were sliced on its own: touching/overlapping parts merge
|
||||||
|
// into one body sharing a center, while separate parts and disconnected islands (even
|
||||||
|
// interleaved-but-not-touching ones, e.g. chain links) each get their own. The body each
|
||||||
|
// island belongs to, and its full bounding box, were resolved in 3D by PrintObject::
|
||||||
|
// infill() (lslices_separated_component_bboxes, aligned with this layer's lslices). We
|
||||||
|
// match this fill region to the island it overlaps most, then re-use the whole-object
|
||||||
|
// bounding box (origin-centered — identical extent to the default, so coverage and cost
|
||||||
|
// are unchanged) re-centered on that body.
|
||||||
|
if (is_per_model_center || is_separate_infill) {
|
||||||
|
double best_overlap = 0.;
|
||||||
|
BoundingBox best_component;
|
||||||
|
for (size_t r = 0; r < this->lslices.size() && r < this->lslices_separated_component_bboxes.size(); ++ r) {
|
||||||
|
const double overlap = area(intersection_ex(this->lslices[r], expoly));
|
||||||
|
if (overlap > best_overlap) {
|
||||||
|
best_overlap = overlap;
|
||||||
|
best_component = this->lslices_separated_component_bboxes[r];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (best_component.defined) {
|
||||||
|
const Point c = best_component.center();
|
||||||
|
BoundingBox part_bbox = bbox; // origin-centered, whole-object extent (from above)
|
||||||
|
part_bbox.translate(c.x(), c.y()); // re-center on this body
|
||||||
|
f->set_bounding_box(part_bbox);
|
||||||
|
}
|
||||||
|
} // - End: separate infill / per-model pattern centering
|
||||||
|
|
||||||
f->no_overlap_expolygons = intersection_ex(surface_fill.no_overlap_expolygons, ExPolygons() = {expoly}, ApplySafetyOffset::Yes);
|
f->no_overlap_expolygons = intersection_ex(surface_fill.no_overlap_expolygons, ExPolygons() = {expoly}, ApplySafetyOffset::Yes);
|
||||||
if (params.symmetric_infill_y_axis) {
|
if (params.symmetric_infill_y_axis) {
|
||||||
@@ -1574,14 +1583,8 @@ Polylines Layer::generate_sparse_infill_polylines_for_anchoring(FillAdaptive::Oc
|
|||||||
params.multiline = surface_fill.params.multiline;
|
params.multiline = surface_fill.params.multiline;
|
||||||
params.gyroid_optimized = surface_fill.params.gyroid_optimized;
|
params.gyroid_optimized = surface_fill.params.gyroid_optimized;
|
||||||
params.smooth_factor = surface_fill.params.smooth_factor;
|
params.smooth_factor = surface_fill.params.smooth_factor;
|
||||||
// Orca: Match make_fills() when choosing the origin of plane-path patterns.
|
|
||||||
// Without the sparse extrusion role, the filler uses each surface's bounds
|
|
||||||
// instead of the object's bounds, so bridge anchors shift away from printed infill.
|
|
||||||
params.extrusion_role = surface_fill.params.extrusion_role;
|
|
||||||
|
|
||||||
for (ExPolygon &expoly : surface_fill.expolygons) {
|
for (ExPolygon &expoly : surface_fill.expolygons) {
|
||||||
// Orca: Match the per-body origin of make_fills() before generating physical anchors.
|
|
||||||
f->set_bounding_box(infill_bounding_box(*this, surface_fill, expoly, bbox));
|
|
||||||
// Spacing is modified by the filler to indicate adjustments. Reset it for each expolygon.
|
// Spacing is modified by the filler to indicate adjustments. Reset it for each expolygon.
|
||||||
f->spacing = surface_fill.params.spacing;
|
f->spacing = surface_fill.params.spacing;
|
||||||
surface_fill.surface.expolygon = std::move(expoly);
|
surface_fill.surface.expolygon = std::move(expoly);
|
||||||
@@ -1595,25 +1598,6 @@ Polylines Layer::generate_sparse_infill_polylines_for_anchoring(FillAdaptive::Oc
|
|||||||
return sparse_infill_polylines;
|
return sparse_infill_polylines;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Returns the filament id (1-based) the region is ironed with, or -1 when the
|
|
||||||
// region is not ironed. AllSolid always irons. TopSurfaces and TopmostOnly need
|
|
||||||
// either some top shells or, in spiral mode, more than one bottom shell, and
|
|
||||||
// TopmostOnly additionally needs the layer to be the topmost one.
|
|
||||||
int Layer::choose_ironing_extruder(const PrintRegionConfig &cfg,
|
|
||||||
bool spiral_mode,
|
|
||||||
bool is_topmost_layer)
|
|
||||||
{
|
|
||||||
if (cfg.ironing_type == IroningType::NoIroning)
|
|
||||||
return -1;
|
|
||||||
const bool gate = (cfg.ironing_type == IroningType::AllSolid)
|
|
||||||
|| ((cfg.top_shell_layers > 0 || (spiral_mode && cfg.bottom_shell_layers > 1))
|
|
||||||
&& (cfg.ironing_type == IroningType::TopSurfaces
|
|
||||||
|| (cfg.ironing_type == IroningType::TopmostOnly && is_topmost_layer)));
|
|
||||||
if (!gate)
|
|
||||||
return -1;
|
|
||||||
return cfg.top_surface_filament_id;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Create ironing extrusions over top surfaces.
|
// Create ironing extrusions over top surfaces.
|
||||||
void Layer::make_ironing()
|
void Layer::make_ironing()
|
||||||
{
|
{
|
||||||
@@ -1683,10 +1667,19 @@ void Layer::make_ironing()
|
|||||||
if (! layerm->slices.empty()) {
|
if (! layerm->slices.empty()) {
|
||||||
IroningParams ironing_params;
|
IroningParams ironing_params;
|
||||||
const PrintRegionConfig &config = layerm->region().config();
|
const PrintRegionConfig &config = layerm->region().config();
|
||||||
ironing_params.extruder = Layer::choose_ironing_extruder(
|
if (config.ironing_type != IroningType::NoIroning &&
|
||||||
config,
|
(config.ironing_type == IroningType::AllSolid ||
|
||||||
/*spiral_mode=*/this->object()->print()->config().spiral_mode,
|
((config.top_shell_layers > 0 || (this->object()->print()->config().spiral_mode && config.bottom_shell_layers > 1)) &&
|
||||||
/*is_topmost_layer=*/layerm->layer()->upper_layer == nullptr);
|
(config.ironing_type == IroningType::TopSurfaces ||
|
||||||
|
(config.ironing_type == IroningType::TopmostOnly && layerm->layer()->upper_layer == nullptr))))) {
|
||||||
|
if (config.outer_wall_filament_id == config.top_surface_filament_id || config.wall_loops == 0) {
|
||||||
|
// Iron the whole face.
|
||||||
|
ironing_params.extruder = config.top_surface_filament_id;
|
||||||
|
} else {
|
||||||
|
// Iron just the infill.
|
||||||
|
ironing_params.extruder = config.top_surface_filament_id;
|
||||||
|
}
|
||||||
|
}
|
||||||
if (ironing_params.extruder != -1) {
|
if (ironing_params.extruder != -1) {
|
||||||
//TODO just_infill is currently not used.
|
//TODO just_infill is currently not used.
|
||||||
ironing_params.just_infill = false;
|
ironing_params.just_infill = false;
|
||||||
|
|||||||
@@ -14,12 +14,6 @@ namespace Slic3r {
|
|||||||
|
|
||||||
class ExtrusionEntityCollection;
|
class ExtrusionEntityCollection;
|
||||||
class LayerRegion;
|
class LayerRegion;
|
||||||
class PrintObject;
|
|
||||||
|
|
||||||
// Orca: Share the layer rotation calculation between infill generation and internal
|
|
||||||
// bridge angle selection so both interpret rotation templates in the same way.
|
|
||||||
double calculate_infill_rotation_angle(const PrintObject *object, size_t layer_id,
|
|
||||||
const double &fixed_infill_angle, const std::string &template_string);
|
|
||||||
|
|
||||||
// An interface class to Perl, aggregating an instance of a Fill and a FillData.
|
// An interface class to Perl, aggregating an instance of a Fill and a FillData.
|
||||||
class Filler
|
class Filler
|
||||||
|
|||||||
@@ -1395,8 +1395,8 @@ void Filler::_fill_surface_single(
|
|||||||
}
|
}
|
||||||
#endif /* ADAPTIVE_CUBIC_INFILL_DEBUG_OUTPUT */
|
#endif /* ADAPTIVE_CUBIC_INFILL_DEBUG_OUTPUT */
|
||||||
|
|
||||||
const auto hook_length = coordf_t(scale_(params.anchor_length));
|
const auto hook_length = coordf_t(std::min<float>(std::numeric_limits<coord_t>::max(), scale_(params.anchor_length)));
|
||||||
const auto hook_length_max = coordf_t(scale_(params.anchor_length_max));
|
const auto hook_length_max = coordf_t(std::min<float>(std::numeric_limits<coord_t>::max(), scale_(params.anchor_length_max)));
|
||||||
|
|
||||||
Polylines all_polylines_with_hooks = all_polylines.size() > 1 ? connect_lines_using_hooks(std::move(all_polylines), expolygon, this->spacing, hook_length, hook_length_max) : std::move(all_polylines);
|
Polylines all_polylines_with_hooks = all_polylines.size() > 1 ? connect_lines_using_hooks(std::move(all_polylines), expolygon, this->spacing, hook_length, hook_length_max) : std::move(all_polylines);
|
||||||
|
|
||||||
|
|||||||
@@ -3090,11 +3090,10 @@ bool FillRectilinear::fill_surface_trapezoidal(
|
|||||||
case 0: // Grid / Trapezoidal
|
case 0: // Grid / Trapezoidal
|
||||||
{
|
{
|
||||||
// Generate a non-crossing trapezoidal pattern to avoid overextrusion at intersections when `multiline > 1`.
|
// Generate a non-crossing trapezoidal pattern to avoid overextrusion at intersections when `multiline > 1`.
|
||||||
/*
|
// P2--P3
|
||||||
* P2--P3
|
// / \
|
||||||
* / \
|
// P0_P1/ \P4_
|
||||||
* P0_P1/ \P4_
|
//
|
||||||
*/
|
|
||||||
// P0xP1x=P4xP0x=d1/2
|
// P0xP1x=P4xP0x=d1/2
|
||||||
// P2xP3x=d1
|
// P2xP3x=d1
|
||||||
// P1yP2y=P2yP3y=d2
|
// P1yP2y=P2yP3y=d2
|
||||||
@@ -3172,12 +3171,10 @@ bool FillRectilinear::fill_surface_trapezoidal(
|
|||||||
case 1: // Triangular
|
case 1: // Triangular
|
||||||
{
|
{
|
||||||
// Generate a non-crossing trapezoidal pattern with a base line below.
|
// Generate a non-crossing trapezoidal pattern with a base line below.
|
||||||
/*
|
// P1-P2
|
||||||
* P1-P2
|
// / \
|
||||||
* / \
|
// P0/ \P3_P4
|
||||||
* P0/ \P3_P4
|
// ----------------
|
||||||
* ----------------
|
|
||||||
*/
|
|
||||||
// P1xP2x=P3xP4x=d2
|
// P1xP2x=P3xP4x=d2
|
||||||
// P0yP1y=P2yP3y=h-2d1
|
// P0yP1y=P2yP3y=h-2d1
|
||||||
//
|
//
|
||||||
|
|||||||
@@ -642,11 +642,6 @@ bool bbs_is_valid_object_type(const std::string& type)
|
|||||||
|
|
||||||
namespace Slic3r {
|
namespace Slic3r {
|
||||||
|
|
||||||
bool is_published_3mf_flag(const std::string &value)
|
|
||||||
{
|
|
||||||
return value == "1";
|
|
||||||
}
|
|
||||||
|
|
||||||
void PlateData::parse_filament_info(GCodeProcessorResult *result)
|
void PlateData::parse_filament_info(GCodeProcessorResult *result)
|
||||||
{
|
{
|
||||||
if (!result) return;
|
if (!result) return;
|
||||||
@@ -1183,20 +1178,6 @@ void PlateData::parse_filament_info(GCodeProcessorResult *result)
|
|||||||
// add backup & restore logic
|
// add backup & restore logic
|
||||||
bool _load_model_from_file(std::string filename, Model& model, PlateDataPtrs& plate_data_list, std::vector<Preset*>& project_presets, DynamicPrintConfig& config, ConfigSubstitutionContext& config_substitutions, Import3mfProgressFn proFn = nullptr,
|
bool _load_model_from_file(std::string filename, Model& model, PlateDataPtrs& plate_data_list, std::vector<Preset*>& project_presets, DynamicPrintConfig& config, ConfigSubstitutionContext& config_substitutions, Import3mfProgressFn proFn = nullptr,
|
||||||
BBLProject* project = nullptr, int plate_id = 0);
|
BBLProject* project = nullptr, int plate_id = 0);
|
||||||
|
|
||||||
// A minimal published 3MF carries no slicer tags (any tag would make old receivers show
|
|
||||||
// a baked-in, wrong "old version" popup on their geometry-only fallback), so it
|
|
||||||
// classifies as From_Other. It is still a fully structured OrcaSlicer file though:
|
|
||||||
// identified by its own metadata, it keeps BBS-grade geometry handling (no instance
|
|
||||||
// splitting, no transform baking, no renaming) in this build. Old receivers without the
|
|
||||||
// publish feature don't know the metadata and take their third-party geometry path.
|
|
||||||
// Reads the parse-time metadata: the model XML carries it before its resources, while
|
|
||||||
// m_model->model_info is only filled in after the whole XML has been parsed.
|
|
||||||
bool _is_published_3mf() const {
|
|
||||||
const auto it = this->model_info.metadata_items.find(ORCA_PUBLISHED_TAG);
|
|
||||||
return it != this->model_info.metadata_items.end() && is_published_3mf_flag(it->second);
|
|
||||||
}
|
|
||||||
|
|
||||||
bool _is_svg_shape_file(const std::string &filename) const;
|
bool _is_svg_shape_file(const std::string &filename) const;
|
||||||
bool _extract_from_archive(mz_zip_archive& archive, std::string const & path, std::function<bool (mz_zip_archive& archive, const mz_zip_archive_file_stat& stat)>, bool restore = false);
|
bool _extract_from_archive(mz_zip_archive& archive, std::string const & path, std::function<bool (mz_zip_archive& archive, const mz_zip_archive_file_stat& stat)>, bool restore = false);
|
||||||
bool _extract_xml_from_archive(mz_zip_archive& archive, std::string const & path, XML_StartElementHandler start_handler, XML_EndElementHandler end_handler);
|
bool _extract_xml_from_archive(mz_zip_archive& archive, std::string const & path, XML_StartElementHandler start_handler, XML_EndElementHandler end_handler);
|
||||||
@@ -2021,7 +2002,7 @@ void PlateData::parse_filament_info(GCodeProcessorResult *result)
|
|||||||
|
|
||||||
lock.close();
|
lock.close();
|
||||||
|
|
||||||
if (!m_is_bbl_3mf && !_is_published_3mf()) {
|
if (!m_is_bbl_3mf) {
|
||||||
// if the 3mf was not produced by OrcaSlicer and there is more than one instance,
|
// if the 3mf was not produced by OrcaSlicer and there is more than one instance,
|
||||||
// split the object in as many objects as instances
|
// split the object in as many objects as instances
|
||||||
BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << ":" << __LINE__ << boost::format(", found 3mf from other vendor, split as instance");
|
BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << ":" << __LINE__ << boost::format(", found 3mf from other vendor, split as instance");
|
||||||
@@ -3585,7 +3566,7 @@ void PlateData::parse_filament_info(GCodeProcessorResult *result)
|
|||||||
m_index_paths.insert({ object.first.second, object.first.first});
|
m_index_paths.insert({ object.first.second, object.first.first});
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!m_is_bbl_3mf && !_is_published_3mf()) {
|
if (!m_is_bbl_3mf) {
|
||||||
// if the 3mf was not produced by OrcaSlicer and there is only one object,
|
// if the 3mf was not produced by OrcaSlicer and there is only one object,
|
||||||
// set the object name to match the filename
|
// set the object name to match the filename
|
||||||
if (m_model->objects.size() == 1)
|
if (m_model->objects.size() == 1)
|
||||||
@@ -5308,7 +5289,7 @@ void PlateData::parse_filament_info(GCodeProcessorResult *result)
|
|||||||
|
|
||||||
TriangleMesh triangle_mesh(std::move(its), volume_data.mesh_stats);
|
TriangleMesh triangle_mesh(std::move(its), volume_data.mesh_stats);
|
||||||
|
|
||||||
if (!m_is_bbl_3mf && !_is_published_3mf()) {
|
if (!m_is_bbl_3mf) {
|
||||||
// if the 3mf was not produced by OrcaSlicer and there is only one instance,
|
// if the 3mf was not produced by OrcaSlicer and there is only one instance,
|
||||||
// bake the transformation into the geometry to allow the reload from disk command
|
// bake the transformation into the geometry to allow the reload from disk command
|
||||||
// to work properly
|
// to work properly
|
||||||
@@ -5954,7 +5935,6 @@ void PlateData::parse_filament_info(GCodeProcessorResult *result)
|
|||||||
bool m_save_gcode { false }; // whether to save gcode for normal save
|
bool m_save_gcode { false }; // whether to save gcode for normal save
|
||||||
bool m_skip_model { false }; // skip model when exporting .gcode.3mf
|
bool m_skip_model { false }; // skip model when exporting .gcode.3mf
|
||||||
bool m_skip_auxiliary { false }; // skip normal axuiliary files
|
bool m_skip_auxiliary { false }; // skip normal axuiliary files
|
||||||
bool m_minimal_published { false }; // published 3MF: omit the project config, the embedded preset files and the slicer tags
|
|
||||||
bool m_use_loaded_id { false }; // whether to use loaded id for identify_id
|
bool m_use_loaded_id { false }; // whether to use loaded id for identify_id
|
||||||
bool m_share_mesh { false }; // whether to share mesh between objects
|
bool m_share_mesh { false }; // whether to share mesh between objects
|
||||||
std::string m_thumbnail_middle = PRINTER_THUMBNAIL_MIDDLE_FILE;
|
std::string m_thumbnail_middle = PRINTER_THUMBNAIL_MIDDLE_FILE;
|
||||||
@@ -6054,7 +6034,6 @@ void PlateData::parse_filament_info(GCodeProcessorResult *result)
|
|||||||
m_skip_auxiliary = store_params.strategy & SaveStrategy::SkipAuxiliary;
|
m_skip_auxiliary = store_params.strategy & SaveStrategy::SkipAuxiliary;
|
||||||
m_share_mesh = store_params.strategy & SaveStrategy::ShareMesh;
|
m_share_mesh = store_params.strategy & SaveStrategy::ShareMesh;
|
||||||
m_from_backup_save = store_params.strategy & SaveStrategy::Backup;
|
m_from_backup_save = store_params.strategy & SaveStrategy::Backup;
|
||||||
m_minimal_published = store_params.strategy & SaveStrategy::MinimalPublished;
|
|
||||||
|
|
||||||
m_use_loaded_id = store_params.strategy & SaveStrategy::UseLoadedId;
|
m_use_loaded_id = store_params.strategy & SaveStrategy::UseLoadedId;
|
||||||
|
|
||||||
@@ -6464,10 +6443,7 @@ void PlateData::parse_filament_info(GCodeProcessorResult *result)
|
|||||||
|
|
||||||
// Adds slic3r print config file ("Metadata/Slic3r_PE.config").
|
// Adds slic3r print config file ("Metadata/Slic3r_PE.config").
|
||||||
// This file contains the content of FullPrintConfig / SLAFullPrintConfig.
|
// This file contains the content of FullPrintConfig / SLAFullPrintConfig.
|
||||||
// Omitted for minimal published 3MF: OrcaSlicer versions without the publish feature
|
if (config != nullptr) {
|
||||||
// then fall back to importing the geometry only, and new versions read the published
|
|
||||||
// payload from the model metadata instead.
|
|
||||||
if (config != nullptr && !m_minimal_published) {
|
|
||||||
// BBS: change to json format
|
// BBS: change to json format
|
||||||
// if (!_add_print_config_file_to_archive(archive, *config)) {
|
// if (!_add_print_config_file_to_archive(archive, *config)) {
|
||||||
if (!_add_project_config_file_to_archive(archive, *config, model)) { return false; }
|
if (!_add_project_config_file_to_archive(archive, *config, model)) { return false; }
|
||||||
@@ -6480,8 +6456,8 @@ void PlateData::parse_filament_info(GCodeProcessorResult *result)
|
|||||||
if (cb_cancel) return false;
|
if (cb_cancel) return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// BBS: add project config (omitted for minimal published 3MF)
|
// BBS: add project config
|
||||||
if (!m_minimal_published && project_presets.size() > 0) {
|
if (project_presets.size() > 0) {
|
||||||
// BBS: add project embedded preset files
|
// BBS: add project embedded preset files
|
||||||
_add_project_embedded_presets_to_archive(archive, model, project_presets);
|
_add_project_embedded_presets_to_archive(archive, model, project_presets);
|
||||||
|
|
||||||
@@ -6953,31 +6929,10 @@ void PlateData::parse_filament_info(GCodeProcessorResult *result)
|
|||||||
// Orca: PRIVACY: do not store creation & modification date in 3mf
|
// Orca: PRIVACY: do not store creation & modification date in 3mf
|
||||||
metadata_item_map[BBL_CREATION_DATE_TAG] = "";
|
metadata_item_map[BBL_CREATION_DATE_TAG] = "";
|
||||||
metadata_item_map[BBL_MODIFICATION_TAG] = "";
|
metadata_item_map[BBL_MODIFICATION_TAG] = "";
|
||||||
// Orca: Write the BambuStudio compatibility version string using SLIC3R_VERSION.
|
// Orca: Write the BambuStudio compatibility version string using SLIC3R_VERSION
|
||||||
// A minimal published 3MF writes no slicer tags at all: any tag would route old
|
metadata_item_map[BBL_APPLICATION_TAG] = (boost::format("%1%-%2%") % "BambuStudio" % SLIC3R_VERSION).str();
|
||||||
// receivers onto a geometry-only fallback whose baked-in popup misreports the
|
|
||||||
// file ("old OrcaSlicer version" / "BambuStudio"), while tag-less files classify
|
|
||||||
// as From_Other and import the geometry silently.
|
|
||||||
if (m_minimal_published) {
|
|
||||||
// metadata_item_map is seeded from the input file's metadata_items above, so a
|
|
||||||
// project opened from a regular Orca/BBS 3MF still carries the slicer-identifying
|
|
||||||
// tags it came with. Erase every one of them - not just the two most common -
|
|
||||||
// so a published 3MF is fully tag-less: old receivers classify it as From_Other
|
|
||||||
// and import the geometry silently instead of showing a baked-in "old version"
|
|
||||||
// popup, and no version marker survives to seed a later re-save.
|
|
||||||
metadata_item_map.erase(BBL_APPLICATION_TAG);
|
|
||||||
metadata_item_map.erase(ORCASLICER_TAG);
|
|
||||||
metadata_item_map.erase(BBS_3MF_VERSION);
|
|
||||||
metadata_item_map.erase(BBS_3MF_VERSION1);
|
|
||||||
} else {
|
|
||||||
metadata_item_map[BBL_APPLICATION_TAG] = (boost::format("%1%-%2%") % "BambuStudio" % SLIC3R_VERSION).str();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
// The Bambu 3MF version marker is part of the slicer identity: omit it for a minimal
|
metadata_item_map[BBS_3MF_VERSION] = std::to_string(VERSION_BBS_3MF);
|
||||||
// published file along with the tags erased above (skipping the overwrite alone would
|
|
||||||
// leave the value the source file seeded into metadata_item_map).
|
|
||||||
if (!m_minimal_published)
|
|
||||||
metadata_item_map[BBS_3MF_VERSION] = std::to_string(VERSION_BBS_3MF);
|
|
||||||
|
|
||||||
if (!model.mk_name.empty()) {
|
if (!model.mk_name.empty()) {
|
||||||
metadata_item_map[BBL_MAKERLAB_TAG] = xml_escape(model.mk_name);
|
metadata_item_map[BBL_MAKERLAB_TAG] = xml_escape(model.mk_name);
|
||||||
@@ -7000,11 +6955,7 @@ void PlateData::parse_filament_info(GCodeProcessorResult *result)
|
|||||||
BOOST_LOG_TRIVIAL(info) << "bbs_3mf: save key= " << item.first << ", value = " << item.second;
|
BOOST_LOG_TRIVIAL(info) << "bbs_3mf: save key= " << item.first << ", value = " << item.second;
|
||||||
stream << " <" << METADATA_TAG << " name=\"" << item.first << "\">"
|
stream << " <" << METADATA_TAG << " name=\"" << item.first << "\">"
|
||||||
<< xml_escape(item.second) << "</" << METADATA_TAG << ">\n";
|
<< xml_escape(item.second) << "</" << METADATA_TAG << ">\n";
|
||||||
if (item.first == BBL_APPLICATION_TAG && !m_minimal_published) {
|
if (item.first == BBL_APPLICATION_TAG) {
|
||||||
// The OrcaSlicer tag is only written for files that carry the Application
|
|
||||||
// tag, which a minimal published 3MF erases (see the map assignment above):
|
|
||||||
// the explicit !m_minimal_published guard keeps the tag-less guarantee from
|
|
||||||
// depending on that erase happening to run first.
|
|
||||||
stream << " <" << METADATA_TAG << " name=\"" << ORCASLICER_TAG << "\">"
|
stream << " <" << METADATA_TAG << " name=\"" << ORCASLICER_TAG << "\">"
|
||||||
<< xml_escape(SoftFever_VERSION) << "</" << METADATA_TAG << ">\n";
|
<< xml_escape(SoftFever_VERSION) << "</" << METADATA_TAG << ">\n";
|
||||||
}
|
}
|
||||||
@@ -8844,7 +8795,7 @@ public:
|
|||||||
auto model = object.get_model();
|
auto model = object.get_model();
|
||||||
auto o = m_temp_model.add_object(object);
|
auto o = m_temp_model.add_object(object);
|
||||||
int backup_id = model->get_object_backup_id(object);
|
int backup_id = model->get_object_backup_id(object);
|
||||||
push_task({ AddObject, (size_t) backup_id, object.get_model()->get_backup_path(), o, { 1 } });
|
push_task({ AddObject, (size_t) backup_id, object.get_model()->get_backup_path(), o, 1 });
|
||||||
}
|
}
|
||||||
|
|
||||||
void remove_object_mesh(ModelObject& object) {
|
void remove_object_mesh(ModelObject& object) {
|
||||||
@@ -8854,7 +8805,7 @@ public:
|
|||||||
void backup_soon() {
|
void backup_soon() {
|
||||||
boost::lock_guard lock(m_mutex);
|
boost::lock_guard lock(m_mutex);
|
||||||
m_other_changes_backup = true;
|
m_other_changes_backup = true;
|
||||||
m_tasks.push_back({ Backup, 0, std::string(), nullptr, { ++m_task_seq } });
|
m_tasks.push_back({ Backup, 0, std::string(), nullptr, ++m_task_seq });
|
||||||
m_cond.notify_all();
|
m_cond.notify_all();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -8872,7 +8823,7 @@ public:
|
|||||||
m_ui_tasks.clear();
|
m_ui_tasks.clear();
|
||||||
m_tasks.clear();
|
m_tasks.clear();
|
||||||
}
|
}
|
||||||
m_tasks.push_back({ RemoveBackup, model.id().id, model.get_backup_path(), nullptr, { removeAll } });
|
m_tasks.push_back({ RemoveBackup, model.id().id, model.get_backup_path(), nullptr, removeAll });
|
||||||
++m_task_seq;
|
++m_task_seq;
|
||||||
if (model.is_need_backup()) {
|
if (model.is_need_backup()) {
|
||||||
m_other_changes = false;
|
m_other_changes = false;
|
||||||
@@ -9087,7 +9038,7 @@ public:
|
|||||||
else
|
else
|
||||||
m_cond.wait(lock);
|
m_cond.wait(lock);
|
||||||
if (m_interval > 0 && boost::get_system_time() > m_next_backup) {
|
if (m_interval > 0 && boost::get_system_time() > m_next_backup) {
|
||||||
m_tasks.push_back({ Backup, 0, std::string(), nullptr, { ++m_task_seq } });
|
m_tasks.push_back({ Backup, 0, std::string(), nullptr, ++m_task_seq });
|
||||||
m_next_backup += boost::posix_time::seconds(m_interval);
|
m_next_backup += boost::posix_time::seconds(m_interval);
|
||||||
// Maybe wakeup from power sleep
|
// Maybe wakeup from power sleep
|
||||||
if (m_next_backup < boost::get_system_time())
|
if (m_next_backup < boost::get_system_time())
|
||||||
@@ -9183,126 +9134,6 @@ std::string bbs_3mf_get_thumbnail(const char *path)
|
|||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
|
|
||||||
namespace {
|
|
||||||
|
|
||||||
// Parses just the model-file <metadata> elements, mirroring the importer's
|
|
||||||
// _handle_start_metadata/_handle_end_metadata (attribute-order independent, entity-unescaped,
|
|
||||||
// whitespace tolerant). Stops the parser as soon as the published flag node is read so the
|
|
||||||
// geometry/resources that follow are skipped, which keeps the per-file cost small.
|
|
||||||
struct PublishedXmlProbe
|
|
||||||
{
|
|
||||||
XML_Parser parser{nullptr};
|
|
||||||
bool in_metadata{false};
|
|
||||||
bool found{false};
|
|
||||||
bool published{false};
|
|
||||||
std::string curr_name;
|
|
||||||
std::string curr_value;
|
|
||||||
|
|
||||||
static std::string attribute(const char** attrs, const char* key)
|
|
||||||
{
|
|
||||||
if (attrs == nullptr)
|
|
||||||
return std::string();
|
|
||||||
// expat hands the attrs as a NULL-terminated {name, value, ...} array.
|
|
||||||
for (unsigned int a = 0; attrs[a] != nullptr; a += 2)
|
|
||||||
if (::strcmp(attrs[a], key) == 0 && attrs[a + 1] != nullptr)
|
|
||||||
return attrs[a + 1];
|
|
||||||
return std::string();
|
|
||||||
}
|
|
||||||
|
|
||||||
static void XMLCALL start(void* user_data, const char* name, const char** attrs)
|
|
||||||
{
|
|
||||||
auto* self = static_cast<PublishedXmlProbe*>(user_data);
|
|
||||||
if (::strcmp(name, METADATA_TAG) == 0) {
|
|
||||||
self->in_metadata = true;
|
|
||||||
self->curr_name = attribute(attrs, NAME_ATTR);
|
|
||||||
self->curr_value.clear();
|
|
||||||
} else {
|
|
||||||
self->in_metadata = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static void XMLCALL characters(void* user_data, const XML_Char* s, int len)
|
|
||||||
{
|
|
||||||
auto* self = static_cast<PublishedXmlProbe*>(user_data);
|
|
||||||
if (self->in_metadata)
|
|
||||||
self->curr_value.append(s, len);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void XMLCALL end(void* user_data, const char* name)
|
|
||||||
{
|
|
||||||
auto* self = static_cast<PublishedXmlProbe*>(user_data);
|
|
||||||
if (!self->in_metadata || ::strcmp(name, METADATA_TAG) != 0)
|
|
||||||
return;
|
|
||||||
self->in_metadata = false;
|
|
||||||
if (self->curr_name == ORCA_PUBLISHED_TAG) {
|
|
||||||
self->published = is_published_3mf_flag(xml_unescape(self->curr_value));
|
|
||||||
self->found = true;
|
|
||||||
if (self->parser != nullptr)
|
|
||||||
XML_StopParser(self->parser, false);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
} // namespace
|
|
||||||
|
|
||||||
bool bbs_3mf_is_published(const std::string &path)
|
|
||||||
{
|
|
||||||
mz_zip_archive archive;
|
|
||||||
mz_zip_zero_struct(&archive);
|
|
||||||
|
|
||||||
struct close_lock
|
|
||||||
{
|
|
||||||
mz_zip_archive *archive;
|
|
||||||
void close()
|
|
||||||
{
|
|
||||||
if (archive) {
|
|
||||||
close_zip_reader(archive);
|
|
||||||
archive = nullptr;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
~close_lock() { close(); }
|
|
||||||
} lock{&archive};
|
|
||||||
|
|
||||||
if (!open_zip_reader(&archive, path))
|
|
||||||
return false;
|
|
||||||
|
|
||||||
// Read just the model XML (the metadata node sits before the resources, so the probe below
|
|
||||||
// stops early) rather than by a raw substring match; no geometry parsing.
|
|
||||||
int index = mz_zip_reader_locate_file(&archive, MODEL_FILE.c_str(), nullptr, 0);
|
|
||||||
if (index < 0)
|
|
||||||
return false;
|
|
||||||
mz_zip_archive_file_stat stat;
|
|
||||||
if (!mz_zip_reader_file_stat(&archive, index, &stat))
|
|
||||||
return false;
|
|
||||||
std::string xml(stat.m_uncomp_size, '\0');
|
|
||||||
if (!mz_zip_reader_extract_to_mem(&archive, index, xml.data(), xml.size(), 0))
|
|
||||||
return false;
|
|
||||||
|
|
||||||
XML_Parser parser = XML_ParserCreate(nullptr);
|
|
||||||
if (parser == nullptr)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
PublishedXmlProbe probe;
|
|
||||||
probe.parser = parser;
|
|
||||||
XML_SetUserData(parser, &probe);
|
|
||||||
XML_SetElementHandler(parser, PublishedXmlProbe::start, PublishedXmlProbe::end);
|
|
||||||
XML_SetCharacterDataHandler(parser, PublishedXmlProbe::characters);
|
|
||||||
// Never resolve external entities from a file we are only probing.
|
|
||||||
XML_SetExternalEntityRefHandler(parser, nullptr);
|
|
||||||
XML_SetEntityDeclHandler(parser, nullptr);
|
|
||||||
|
|
||||||
const XML_Status status = XML_Parse(parser, xml.data(), static_cast<int>(xml.size()), 1);
|
|
||||||
// XML_StopParser(parser, false) from the end handler makes XML_Parse return
|
|
||||||
// XML_STATUS_ERROR with XML_ERROR_ABORTED - treat that as success (we stopped on the flag).
|
|
||||||
const bool parse_ok = (status == XML_STATUS_OK) ||
|
|
||||||
(XML_GetErrorCode(parser) == XML_ERROR_ABORTED && probe.found);
|
|
||||||
XML_ParserFree(parser);
|
|
||||||
|
|
||||||
if (!parse_ok)
|
|
||||||
return false;
|
|
||||||
return probe.published;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool load_gcode_3mf_from_stream(std::istream &data, DynamicPrintConfig *config, Model *model, PlateDataPtrs *plate_data_list, Semver *file_version)
|
bool load_gcode_3mf_from_stream(std::istream &data, DynamicPrintConfig *config, Model *model, PlateDataPtrs *plate_data_list, Semver *file_version)
|
||||||
{
|
{
|
||||||
CNumericLocalesSetter locales_setter;
|
CNumericLocalesSetter locales_setter;
|
||||||
|
|||||||
@@ -159,28 +159,12 @@ enum class SaveStrategy
|
|||||||
SkipAuxiliary = 1 << 9,
|
SkipAuxiliary = 1 << 9,
|
||||||
UseLoadedId = 1 << 10,
|
UseLoadedId = 1 << 10,
|
||||||
ShareMesh = 1 << 11,
|
ShareMesh = 1 << 11,
|
||||||
// Keep this separate from SplitModel, which uses the 0x1000 bit as part of its
|
|
||||||
// production-extension value.
|
|
||||||
MinimalPublished = 1 << 13,
|
|
||||||
|
|
||||||
SplitModel = 0x1000 | ProductionExt,
|
SplitModel = 0x1000 | ProductionExt,
|
||||||
Encrypted = SecureContentExt | SplitModel,
|
Encrypted = SecureContentExt | SplitModel,
|
||||||
Backup = 0x10000 | WithGcode | Silence | SkipStatic | SplitModel,
|
Backup = 0x10000 | WithGcode | Silence | SkipStatic | SplitModel,
|
||||||
};
|
};
|
||||||
|
|
||||||
// Model metadata keys of a "published" 3MF (see MinimalPublished): the flag marks a minimal,
|
|
||||||
// tag-less publish export, the others carry the author-selected settings payload. Namespaced
|
|
||||||
// with the "orca_published" prefix because metadata_items round-trips verbatim through other
|
|
||||||
// slicers, where a bare "published" key could collide.
|
|
||||||
inline constexpr const char *ORCA_PUBLISHED_TAG = "orca_published";
|
|
||||||
inline constexpr const char *ORCA_PUBLISHED_KEYS_TAG = "orca_published_keys";
|
|
||||||
inline constexpr const char *ORCA_PUBLISHED_MATERIAL_TAG = "orca_published_material_keys";
|
|
||||||
inline constexpr const char *ORCA_PUBLISHED_CONFIG_TAG = "orca_published_config";
|
|
||||||
|
|
||||||
// Published files are produced with "1". The importer and the GUI loader both gate on this
|
|
||||||
// exact value, so a "0"/"false"/unknown value is rejected consistently.
|
|
||||||
bool is_published_3mf_flag(const std::string &value);
|
|
||||||
|
|
||||||
inline SaveStrategy operator | (SaveStrategy lhs, SaveStrategy rhs)
|
inline SaveStrategy operator | (SaveStrategy lhs, SaveStrategy rhs)
|
||||||
{
|
{
|
||||||
using T = std::underlying_type_t <SaveStrategy>;
|
using T = std::underlying_type_t <SaveStrategy>;
|
||||||
@@ -293,9 +277,6 @@ extern bool load_bbs_3mf(const char* path, DynamicPrintConfig* config, ConfigSub
|
|||||||
|
|
||||||
extern std::string bbs_3mf_get_thumbnail(const char * path);
|
extern std::string bbs_3mf_get_thumbnail(const char * path);
|
||||||
|
|
||||||
// Lightweight check: does this 3mf carry the "published" (orca_published == "1") marker? Only reads the 3D/3dmodel.model metadata node
|
|
||||||
extern bool bbs_3mf_is_published(const std::string &path);
|
|
||||||
|
|
||||||
extern bool load_gcode_3mf_from_stream(std::istream & data, DynamicPrintConfig* config, Model* model, PlateDataPtrs* plate_data_list,
|
extern bool load_gcode_3mf_from_stream(std::istream & data, DynamicPrintConfig* config, Model* model, PlateDataPtrs* plate_data_list,
|
||||||
Semver* file_version);
|
Semver* file_version);
|
||||||
|
|
||||||
|
|||||||
@@ -6308,13 +6308,8 @@ LayerResult GCode::process_layer(
|
|||||||
all_label_ids.insert(inst.label_object_id);
|
all_label_ids.insert(inst.label_object_id);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
// Orca: A scheduled extruder may have no object instances on this layer.
|
std::vector<size_t> filament_instances_id(all_label_ids.begin(), all_label_ids.end());
|
||||||
// Clear any pending mask so it cannot be emitted for the wrong toolchange.
|
m_filament_instances_code = _encode_label_ids_to_base64(filament_instances_id);
|
||||||
m_filament_instances_code.clear();
|
|
||||||
if (!all_label_ids.empty()) {
|
|
||||||
std::vector<size_t> filament_instances_id(all_label_ids.begin(), all_label_ids.end());
|
|
||||||
m_filament_instances_code = _encode_label_ids_to_base64(filament_instances_id);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// The inline _extrude hook may already have taken the snapshot mid-extrusion on a
|
// The inline _extrude hook may already have taken the snapshot mid-extrusion on a
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user