mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-09-16 21:42:43 +00:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
88586eea44 |
@@ -1,5 +1,5 @@
|
||||
name: 🐞 Bug Report
|
||||
description: Something behaves incorrectly while Orca Slicer keeps running
|
||||
description: File a bug report
|
||||
labels: ["bug"]
|
||||
body:
|
||||
- type: markdown
|
||||
@@ -10,8 +10,6 @@ body:
|
||||
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.
|
||||
|
||||
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.
|
||||
- type: checkboxes
|
||||
attributes:
|
||||
@@ -49,7 +47,7 @@ body:
|
||||
id: os_type
|
||||
attributes:
|
||||
label: "Operating System (OS)"
|
||||
description: "What OSes are you experiencing issues on?"
|
||||
description: "What OSes are you are experiencing issues on?"
|
||||
multiple: true
|
||||
options:
|
||||
- Linux
|
||||
@@ -88,7 +86,7 @@ body:
|
||||
id: reproduce_steps
|
||||
attributes:
|
||||
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: |
|
||||
1. Go to '...'
|
||||
2. Click on '...'
|
||||
@@ -110,23 +108,28 @@ body:
|
||||
description: What should happen after the above steps?
|
||||
validations:
|
||||
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
|
||||
id: file_uploads
|
||||
attributes:
|
||||
label: Project file & Debug log uploads
|
||||
description: |
|
||||
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.
|
||||
description: Drop the project file and debug log here
|
||||
placeholder: |
|
||||
Zipped project file
|
||||
Zipped log folder
|
||||
Project File: `File` -> `Save project as...` then zip it & drop it here
|
||||
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:
|
||||
required: true
|
||||
- type: checkboxes
|
||||
@@ -141,5 +144,7 @@ body:
|
||||
label: Anything else?
|
||||
description: |
|
||||
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:
|
||||
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:
|
||||
include: ${{ fromJSON(vars.SELF_HOSTED
|
||||
&& '[{"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
|
||||
# Don't run scheduled builds on forks:
|
||||
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 }}
|
||||
uses: ./.github/workflows/unit_tests.yml
|
||||
with:
|
||||
os: windows-11-vs2026-arm
|
||||
os: windows-11-arm
|
||||
artifact: ${{ github.sha }}-tests-windows-arm64
|
||||
test-dir: build-arm64/tests
|
||||
unit_tests_macos_arm64:
|
||||
@@ -283,42 +283,21 @@ jobs:
|
||||
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"
|
||||
shell: bash
|
||||
# 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.
|
||||
# Manage flatpak-builder cache externally so PRs restore but never upload
|
||||
- name: Restore flatpak-builder cache
|
||||
if: github.event_name == 'pull_request'
|
||||
uses: actions/cache/restore@v6
|
||||
with:
|
||||
path: |
|
||||
.flatpak-builder/*
|
||||
!.flatpak-builder/ccache
|
||||
path: .flatpak-builder
|
||||
key: ${{ steps.fp_cache_key.outputs.key }}
|
||||
restore-keys: flatpak-builder-${{ matrix.variant.arch }}-
|
||||
- name: Save/restore flatpak-builder cache
|
||||
if: github.event_name != 'pull_request'
|
||||
uses: actions/cache@v6
|
||||
with:
|
||||
path: |
|
||||
.flatpak-builder/*
|
||||
!.flatpak-builder/ccache
|
||||
path: .flatpak-builder
|
||||
key: ${{ steps.fp_cache_key.outputs.key }}
|
||||
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
|
||||
run: |
|
||||
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\"|}" \
|
||||
scripts/flatpak/com.orcaslicer.OrcaSlicer.yml
|
||||
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
|
||||
run: ./scripts/flatpak/check_manifest_cacheable.sh
|
||||
shell: bash
|
||||
@@ -366,50 +318,9 @@ jobs:
|
||||
with:
|
||||
bundle: OrcaSlicer-Linux-flatpak_${{ env.ver }}_${{ matrix.variant.arch }}.flatpak
|
||||
manifest-path: scripts/flatpak/com.orcaslicer.OrcaSlicer.yml
|
||||
# cache only turns on flatpak-builder --ccache; the caching itself is above.
|
||||
cache: true
|
||||
restore-cache: false
|
||||
save-cache: false
|
||||
cache: false
|
||||
arch: ${{ matrix.variant.arch }}
|
||||
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
|
||||
uses: actions/upload-artifact@v7
|
||||
with:
|
||||
|
||||
@@ -76,60 +76,6 @@ jobs:
|
||||
if (-not (Test-Path "$cmakeBin\cmake.exe")) { throw "cmake.exe not found at $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
|
||||
if: runner.os != 'Windows'
|
||||
run: |
|
||||
@@ -724,41 +670,3 @@ jobs:
|
||||
asset_name: orca_custom_preset_tests.zip
|
||||
asset_content_type: application/octet-stream
|
||||
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:
|
||||
contents: read
|
||||
steps:
|
||||
# Doxygen with call graphs over all of src/ outgrows the runner's RAM;
|
||||
# replace the runner's swapfile with an 8 GB one.
|
||||
- name: Grow swap space
|
||||
run: |
|
||||
set -euo pipefail
|
||||
sudo swapoff -a
|
||||
sudo rm -f /swapfile
|
||||
sudo fallocate -l 8G /swapfile
|
||||
sudo chmod 600 /swapfile
|
||||
sudo mkswap /swapfile
|
||||
sudo swapon /swapfile
|
||||
free -h
|
||||
- uses: thejerrybao/setup-swap-space@v1
|
||||
with:
|
||||
swap-space-path: /swapfile
|
||||
swap-size-gb: 8
|
||||
remove-existing-swap-files: true
|
||||
|
||||
- name: Checkout repository
|
||||
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,3 +54,4 @@ __pycache__/
|
||||
*.opc
|
||||
/.test/
|
||||
docs/superpowers/
|
||||
ctest_results.xml
|
||||
+54
-88
@@ -4,10 +4,6 @@ endif()
|
||||
|
||||
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
|
||||
# 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)
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall" )
|
||||
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.
|
||||
# disabled - never wanted. Off everywhere, so it never warns or errors.
|
||||
# demoted - wanted, not cleared yet. Still warns, does not error.
|
||||
# On GCC and Clang, no return from a non-void function is a warning only. Here, we make it an error.
|
||||
add_compile_options(-Werror=return-type)
|
||||
|
||||
# Disabled.
|
||||
set(warnings_disabled
|
||||
reorder # members initialised in an order we chose
|
||||
sign-compare # signed/unsigned comparisons throughout
|
||||
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 ()
|
||||
# Since some portions of code are just commented out or put under conditional compilation, there are
|
||||
# a bunch of warning related to unused functions and variables. Suppress those warnings to not pollute
|
||||
# compilers diagnostics output with warnings we not going to look at
|
||||
add_compile_options(-Wno-unused-function -Wno-unused-variable -Wno-unused-but-set-variable -Wno-unused-label -Wno-unused-local-typedefs)
|
||||
|
||||
# GCC is not built in CI, so don't throw errors CI won't catch.
|
||||
if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
|
||||
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 ()
|
||||
# Ignore signed/unsigned comparison warnings
|
||||
add_compile_options(-Wno-sign-compare)
|
||||
|
||||
# Demoted. Remove a name once its category is cleared on every compiler.
|
||||
set(warnings_demoted)
|
||||
if (APPLE)
|
||||
list(APPEND warnings_demoted
|
||||
# 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 mismatch of tabs and spaces throughout the project can sometimes
|
||||
# cause this warning to appear even though the indentation is fine.
|
||||
# Some includes also cause the warning
|
||||
add_compile_options(-Wno-misleading-indentation)
|
||||
|
||||
# The list mixes names not every compiler has, so add each exception only where the
|
||||
# compiler knows the warning. Probe with the positive -W<name>, which an unknown
|
||||
# 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
|
||||
# -W<name>=1 and demote with the trailing =.
|
||||
include(CheckCXXCompilerFlag)
|
||||
foreach (category IN LISTS warnings_demoted)
|
||||
string(MAKE_C_IDENTIFIER "ORCA_HAS_W_${category}" _orca_has_w)
|
||||
check_cxx_compiler_flag("-W${category}" ${_orca_has_w})
|
||||
if (${_orca_has_w})
|
||||
add_compile_options(-Wno-error=${category})
|
||||
else ()
|
||||
check_cxx_compiler_flag("-W${category}=1" ${_orca_has_w}_arg)
|
||||
if (${${_orca_has_w}_arg})
|
||||
add_compile_options(-Wno-error=${category}=)
|
||||
endif ()
|
||||
endif ()
|
||||
endforeach ()
|
||||
# Disable warning if enum value does not have a corresponding case in switch statement
|
||||
add_compile_options(-Wno-switch)
|
||||
|
||||
# removes LOTS of extraneous Eigen warnings (GCC only supports it since 6.1)
|
||||
# https://eigen.tuxfamily.org/bz/show_bug.cgi?id=1221
|
||||
if("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang" OR CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 6.0)
|
||||
add_compile_options(-Wno-ignored-attributes) # Tamas: Eigen include dirs are marked as SYSTEM
|
||||
endif()
|
||||
|
||||
# Clang reports legacy OpenGL calls as deprecated. Turn off the warning for now
|
||||
# to reduce the clutter, we know about this one. It should be reenabled after
|
||||
# we finally get rid of the deprecated code.
|
||||
if("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang")
|
||||
add_compile_options(-Wno-deprecated-declarations)
|
||||
endif()
|
||||
|
||||
if((${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang" OR ${CMAKE_CXX_COMPILER_ID} STREQUAL "AppleClang") AND ${CMAKE_CXX_COMPILER_VERSION} VERSION_GREATER 15)
|
||||
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
|
||||
if(FLATPAK)
|
||||
@@ -652,6 +615,10 @@ if ((NOT MSVC OR IS_CLANG_CL) AND ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" OR
|
||||
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()
|
||||
|
||||
if (SLIC3R_ASAN)
|
||||
@@ -1241,9 +1208,8 @@ endif ()
|
||||
if (NOT SLIC3R_WARNINGS)
|
||||
add_compile_options(-w)
|
||||
elseif (MSVC AND NOT IS_CLANG_CL)
|
||||
# /we4715 is C4715, no return from a non-void function, an error on the GNU/Clang
|
||||
# builds under -Werror. MSVC is not in that model, so this stays a single promoted
|
||||
# warning.
|
||||
# /we4715 is C4715, no return from a non-void function, matching the
|
||||
# -Werror=return-type the GNU/Clang builds apply.
|
||||
add_compile_options(/W3 /we4715)
|
||||
endif ()
|
||||
|
||||
|
||||
@@ -256,13 +256,6 @@ function(add_precompiled_header _target _input)
|
||||
message(STATUS "Adding precompiled header ${_input} to target ${_target}.")
|
||||
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)
|
||||
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")
|
||||
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(
|
||||
wxWidgets
|
||||
GIT_REPOSITORY "https://github.com/SoftFever/Orca-deps-wxWidgets"
|
||||
GIT_TAG v3.3.2
|
||||
GIT_SHALLOW ON
|
||||
GIT_SUBMODULES 3rdparty/catch 3rdparty/pcre 3rdparty/libwebp
|
||||
PATCH_COMMAND ${_wx_patch_command}
|
||||
DEPENDS ${PNG_PKG} ${ZLIB_PKG} ${EXPAT_PKG} ${JPEG_PKG}
|
||||
CMAKE_ARGS
|
||||
-DwxBUILD_PRECOMP=ON
|
||||
|
||||
@@ -162,7 +162,7 @@ static bool stl_read(stl_file *stl, FILE *fp, int first_facet, bool first, Impor
|
||||
rewind(fp);
|
||||
try{
|
||||
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) {
|
||||
char* mw_position = strstr(solid_name, "MW");
|
||||
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 model_id_str[128];
|
||||
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 (strcmp(version_str, "1.0") == 0) {
|
||||
model_id = model_id_str;
|
||||
|
||||
@@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\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"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
@@ -2293,6 +2293,8 @@ msgstr ""
|
||||
msgid "%s has been removed."
|
||||
msgstr ""
|
||||
|
||||
msgid "Switching application language"
|
||||
msgstr ""
|
||||
|
||||
msgid "Select the language"
|
||||
msgstr ""
|
||||
@@ -4569,9 +4571,6 @@ msgid ""
|
||||
"No - Cancel enabling spiral mode"
|
||||
msgstr ""
|
||||
|
||||
msgid "N/A"
|
||||
msgstr ""
|
||||
|
||||
msgid "Printing"
|
||||
msgstr ""
|
||||
|
||||
@@ -4995,7 +4994,9 @@ msgstr ""
|
||||
|
||||
#, possible-c-format, possible-boost-format
|
||||
msgid ""
|
||||
"Is it %s%% or %s %s?"
|
||||
"Is it %s%% or %s %s?\n"
|
||||
"YES for %s%%, \n"
|
||||
"NO for %s %s."
|
||||
msgstr ""
|
||||
|
||||
#, possible-boost-format
|
||||
@@ -5018,6 +5019,9 @@ msgstr ""
|
||||
msgid "Invalid format. Expected vector format: \"%1%\""
|
||||
msgstr ""
|
||||
|
||||
msgid "N/A"
|
||||
msgstr ""
|
||||
|
||||
msgid "System agents"
|
||||
msgstr ""
|
||||
|
||||
@@ -5947,12 +5951,6 @@ msgstr ""
|
||||
msgid "Save current project as"
|
||||
msgstr ""
|
||||
|
||||
msgid "Publish 3MF"
|
||||
msgstr ""
|
||||
|
||||
msgid "Export a 3MF file with the selected settings embedded"
|
||||
msgstr ""
|
||||
|
||||
msgid "Import 3MF/STL/STEP/SVG/OBJ/AMF"
|
||||
msgstr ""
|
||||
|
||||
@@ -7698,12 +7696,6 @@ msgstr ""
|
||||
msgid "Customized Preset"
|
||||
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!"
|
||||
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."
|
||||
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."
|
||||
msgstr ""
|
||||
|
||||
@@ -8290,6 +8271,8 @@ msgstr ""
|
||||
msgid "Language selection"
|
||||
msgstr ""
|
||||
|
||||
msgid "Switching application language while some presets are modified."
|
||||
msgstr ""
|
||||
|
||||
msgid "Asia-Pacific"
|
||||
msgstr ""
|
||||
@@ -9141,6 +9124,9 @@ msgstr ""
|
||||
msgid "Note: The preparation may take several minutes. Please be patient."
|
||||
msgstr ""
|
||||
|
||||
msgid "Publish"
|
||||
msgstr ""
|
||||
|
||||
msgid "Publish was canceled"
|
||||
msgstr ""
|
||||
|
||||
@@ -9156,64 +9142,6 @@ msgstr ""
|
||||
msgid "Jump to webpage"
|
||||
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
|
||||
msgid "Save %s as"
|
||||
msgstr ""
|
||||
@@ -19409,15 +19337,6 @@ msgstr ""
|
||||
msgid "Skipping objects."
|
||||
msgstr ""
|
||||
|
||||
msgid "Material Ratio"
|
||||
msgstr ""
|
||||
|
||||
msgid "Model Height"
|
||||
msgstr ""
|
||||
|
||||
msgid "Ratio"
|
||||
msgstr ""
|
||||
|
||||
msgid "Select Filament"
|
||||
msgstr ""
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \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"
|
||||
"Last-Translator: \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."
|
||||
msgstr "%s s'ha eliminat."
|
||||
|
||||
msgid "Switching application language"
|
||||
msgstr "Canvi d'idioma de l'aplicació"
|
||||
|
||||
msgid "Select the language"
|
||||
msgstr "Seleccioneu l'idioma"
|
||||
@@ -4993,9 +4995,6 @@ msgstr ""
|
||||
"Sí: canviar aquesta configuració i activar el mode d'espiral automàticament\n"
|
||||
"No - Renunciar a utilitzar el mode espiral aquesta vegada"
|
||||
|
||||
msgid "N/A"
|
||||
msgstr "N/D"
|
||||
|
||||
msgid "Printing"
|
||||
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
|
||||
msgid ""
|
||||
"Is it %s%% or %s %s?"
|
||||
"Is it %s%% or %s %s?\n"
|
||||
"YES for %s%%, \n"
|
||||
"NO for %s %s."
|
||||
msgstr ""
|
||||
"És %s%% or %s %s?"
|
||||
"És %s%% or %s %s?\n"
|
||||
"SÍ per %s%%.\n"
|
||||
"NO per %s %s."
|
||||
|
||||
#, boost-format
|
||||
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%\""
|
||||
msgstr "Format no vàlid. Format vectorial esperat: \"%1%\""
|
||||
|
||||
msgid "N/A"
|
||||
msgstr "N/D"
|
||||
|
||||
# AI Translated
|
||||
msgid "System agents"
|
||||
msgstr "Agents del sistema"
|
||||
@@ -6415,12 +6421,6 @@ msgstr "Desa el projecte com a"
|
||||
msgid "Save current project as"
|
||||
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"
|
||||
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"
|
||||
msgstr "Perfil personalitzat"
|
||||
|
||||
msgid "Some published settings could not be applied:"
|
||||
msgstr ""
|
||||
|
||||
msgid "Some filament slots were changed:"
|
||||
msgstr ""
|
||||
|
||||
# AI Translated
|
||||
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!"
|
||||
@@ -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."
|
||||
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."
|
||||
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"
|
||||
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"
|
||||
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."
|
||||
msgstr "Nota: La preparació pot trigar uns quants minuts. Si us plau, sigui pacient."
|
||||
|
||||
msgid "Publish"
|
||||
msgstr "Publicar"
|
||||
|
||||
msgid "Publish was canceled"
|
||||
msgstr "La publicació ha estat cancel·lada"
|
||||
|
||||
@@ -9910,64 +9898,6 @@ msgstr "Carregant dades"
|
||||
msgid "Jump to webpage"
|
||||
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
|
||||
msgid "Save %s as"
|
||||
msgstr "Desar %s com a"
|
||||
@@ -21457,15 +21387,6 @@ msgstr "Aquesta acció no es pot desfer. Continuar?"
|
||||
msgid "Skipping objects."
|
||||
msgstr "Ometent objectes."
|
||||
|
||||
msgid "Material Ratio"
|
||||
msgstr ""
|
||||
|
||||
msgid "Model Height"
|
||||
msgstr ""
|
||||
|
||||
msgid "Ratio"
|
||||
msgstr ""
|
||||
|
||||
msgid "Select Filament"
|
||||
msgstr "Seleccioneu filament"
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Orca Slicer\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"
|
||||
"Last-Translator: Jakub Hencl\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."
|
||||
msgstr "%s bylo odstraněno."
|
||||
|
||||
msgid "Switching application language"
|
||||
msgstr "Přepnutí jazyka aplikace"
|
||||
|
||||
msgid "Select the language"
|
||||
msgstr "Zvolte jazyk"
|
||||
@@ -4951,10 +4953,6 @@ msgstr ""
|
||||
"Ano – změnit tato nastavení a automaticky povolit spirálový režim\n"
|
||||
"Ne – tentokrát nepoužít spirálový režim"
|
||||
|
||||
# AI Translated
|
||||
msgid "N/A"
|
||||
msgstr "N/A"
|
||||
|
||||
msgid "Printing"
|
||||
msgstr "Tisk"
|
||||
|
||||
@@ -5386,9 +5384,13 @@ msgstr "Hodnota %s je mimo rozsah. Platný rozsah je od %d do %d."
|
||||
|
||||
#, c-format, boost-format
|
||||
msgid ""
|
||||
"Is it %s%% or %s %s?"
|
||||
"Is it %s%% or %s %s?\n"
|
||||
"YES for %s%%, \n"
|
||||
"NO for %s %s."
|
||||
msgstr ""
|
||||
"Je to %s%% nebo %s %s?"
|
||||
"Je to %s%% nebo %s %s?\n"
|
||||
"ANO pro %s%%,\n"
|
||||
"NE pro %s %s."
|
||||
|
||||
#, boost-format
|
||||
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%\""
|
||||
msgstr "Neplatný formát. Očekávaný vektorový formát: \"%1%\""
|
||||
|
||||
# AI Translated
|
||||
msgid "N/A"
|
||||
msgstr "N/A"
|
||||
|
||||
# AI Translated
|
||||
msgid "System agents"
|
||||
msgstr "Systémoví agenti"
|
||||
@@ -6376,12 +6382,6 @@ msgstr "Uložit projekt jako"
|
||||
msgid "Save current project as"
|
||||
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"
|
||||
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"
|
||||
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!"
|
||||
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."
|
||||
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."
|
||||
msgstr "Typ trysky není nastaven. Nastavte prosím trysku a zkuste to znovu."
|
||||
|
||||
@@ -8876,6 +8859,8 @@ msgstr "Chcete pokračovat?"
|
||||
msgid "Language selection"
|
||||
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"
|
||||
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."
|
||||
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"
|
||||
msgstr "Publikování bylo zrušeno"
|
||||
|
||||
@@ -9858,64 +9846,6 @@ msgstr "Nahrávání dat"
|
||||
msgid "Jump to webpage"
|
||||
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
|
||||
msgid "Save %s as"
|
||||
msgstr "Uložit %s jako"
|
||||
@@ -21401,15 +21331,6 @@ msgstr "Tuto akci nelze vrátit zpět. Pokračovat?"
|
||||
msgid "Skipping objects."
|
||||
msgstr "Přeskakování objektů."
|
||||
|
||||
msgid "Material Ratio"
|
||||
msgstr ""
|
||||
|
||||
msgid "Model Height"
|
||||
msgstr ""
|
||||
|
||||
msgid "Ratio"
|
||||
msgstr ""
|
||||
|
||||
# AI Translated
|
||||
msgid "Select Filament"
|
||||
msgstr "Vybrat filament"
|
||||
|
||||
@@ -3,7 +3,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Orca Slicer\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"
|
||||
"Last-Translator: Heiko Liebscher <hliebschergmail.com>\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."
|
||||
msgstr "%s wurde entfernt."
|
||||
|
||||
msgid "Switching application language"
|
||||
msgstr "Wechsel der Sprache"
|
||||
|
||||
msgid "Select the language"
|
||||
msgstr "Sprache wählen"
|
||||
@@ -4857,9 +4859,6 @@ msgstr ""
|
||||
"Ja - Diese Einstellungen ändern und den Spiralmodus automatisch aktivieren\n"
|
||||
"Nein - Spiralmodus nicht aktivieren"
|
||||
|
||||
msgid "N/A"
|
||||
msgstr "Nicht verfügbar"
|
||||
|
||||
msgid "Printing"
|
||||
msgstr "Drucken"
|
||||
|
||||
@@ -5291,9 +5290,13 @@ msgstr "Wert %s ist außerhalb des Bereichs. Der gültige Bereich liegt zwischen
|
||||
|
||||
#, c-format, boost-format
|
||||
msgid ""
|
||||
"Is it %s%% or %s %s?"
|
||||
"Is it %s%% or %s %s?\n"
|
||||
"YES for %s%%, \n"
|
||||
"NO for %s %s."
|
||||
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
|
||||
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%\""
|
||||
msgstr "Ungültiges Format. Erwartetes Vektorformat: \"%1%\""
|
||||
|
||||
msgid "N/A"
|
||||
msgstr "Nicht verfügbar"
|
||||
|
||||
# AI Translated
|
||||
msgid "System agents"
|
||||
msgstr "Systemagenten"
|
||||
@@ -6268,12 +6274,6 @@ msgstr "Projekt speichern als"
|
||||
msgid "Save current project as"
|
||||
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"
|
||||
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"
|
||||
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!"
|
||||
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."
|
||||
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."
|
||||
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"
|
||||
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"
|
||||
msgstr "Asien-Pazifik"
|
||||
@@ -9677,6 +9662,9 @@ msgstr "Zur Modellveröffentlichungs-Webseite springen"
|
||||
msgid "Note: The preparation may take several minutes. Please be patient."
|
||||
msgstr "Hinweis: Die Vorbereitung kann einige Minuten dauern. Bitte haben Sie Geduld."
|
||||
|
||||
msgid "Publish"
|
||||
msgstr "Veröffentlichen"
|
||||
|
||||
msgid "Publish was canceled"
|
||||
msgstr "Veröffentlichung wurde abgebrochen"
|
||||
|
||||
@@ -9692,64 +9680,6 @@ msgstr "Daten werden hochgeladen"
|
||||
msgid "Jump to webpage"
|
||||
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
|
||||
msgid "Save %s as"
|
||||
msgstr "%s speichern als"
|
||||
@@ -20886,15 +20816,6 @@ msgstr "Diese Aktion kann nicht rückgängig gemacht werden. Fortsetzen?"
|
||||
msgid "Skipping objects."
|
||||
msgstr "Objekte werden übersprungen."
|
||||
|
||||
msgid "Material Ratio"
|
||||
msgstr ""
|
||||
|
||||
msgid "Model Height"
|
||||
msgstr ""
|
||||
|
||||
msgid "Ratio"
|
||||
msgstr ""
|
||||
|
||||
msgid "Select Filament"
|
||||
msgstr "Filament auswählen"
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Orca Slicer\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"
|
||||
"Last-Translator: Alexandre Folle de Menezes\n"
|
||||
"Language-Team: \n"
|
||||
@@ -2289,6 +2289,8 @@ msgstr ""
|
||||
msgid "%s has been removed."
|
||||
msgstr ""
|
||||
|
||||
msgid "Switching application language"
|
||||
msgstr ""
|
||||
|
||||
msgid "Select the language"
|
||||
msgstr ""
|
||||
@@ -4565,9 +4567,6 @@ msgid ""
|
||||
"No - Cancel enabling spiral mode"
|
||||
msgstr ""
|
||||
|
||||
msgid "N/A"
|
||||
msgstr ""
|
||||
|
||||
msgid "Printing"
|
||||
msgstr ""
|
||||
|
||||
@@ -4991,7 +4990,9 @@ msgstr ""
|
||||
|
||||
#, c-format, boost-format
|
||||
msgid ""
|
||||
"Is it %s%% or %s %s?"
|
||||
"Is it %s%% or %s %s?\n"
|
||||
"YES for %s%%, \n"
|
||||
"NO for %s %s."
|
||||
msgstr ""
|
||||
|
||||
#, boost-format
|
||||
@@ -5014,6 +5015,9 @@ msgstr ""
|
||||
msgid "Invalid format. Expected vector format: \"%1%\""
|
||||
msgstr ""
|
||||
|
||||
msgid "N/A"
|
||||
msgstr ""
|
||||
|
||||
msgid "System agents"
|
||||
msgstr ""
|
||||
|
||||
@@ -5943,12 +5947,6 @@ msgstr ""
|
||||
msgid "Save current project as"
|
||||
msgstr ""
|
||||
|
||||
msgid "Publish 3MF"
|
||||
msgstr ""
|
||||
|
||||
msgid "Export a 3MF file with the selected settings embedded"
|
||||
msgstr ""
|
||||
|
||||
msgid "Import 3MF/STL/STEP/SVG/OBJ/AMF"
|
||||
msgstr ""
|
||||
|
||||
@@ -7694,12 +7692,6 @@ msgstr ""
|
||||
msgid "Customized Preset"
|
||||
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!"
|
||||
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."
|
||||
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."
|
||||
msgstr ""
|
||||
|
||||
@@ -8286,6 +8267,8 @@ msgstr ""
|
||||
msgid "Language selection"
|
||||
msgstr ""
|
||||
|
||||
msgid "Switching application language while some presets are modified."
|
||||
msgstr ""
|
||||
|
||||
msgid "Asia-Pacific"
|
||||
msgstr ""
|
||||
@@ -9137,6 +9120,9 @@ msgstr ""
|
||||
msgid "Note: The preparation may take several minutes. Please be patient."
|
||||
msgstr ""
|
||||
|
||||
msgid "Publish"
|
||||
msgstr ""
|
||||
|
||||
msgid "Publish was canceled"
|
||||
msgstr ""
|
||||
|
||||
@@ -9152,64 +9138,6 @@ msgstr ""
|
||||
msgid "Jump to webpage"
|
||||
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
|
||||
msgid "Save %s as"
|
||||
msgstr ""
|
||||
@@ -19405,15 +19333,6 @@ msgstr ""
|
||||
msgid "Skipping objects."
|
||||
msgstr ""
|
||||
|
||||
msgid "Material Ratio"
|
||||
msgstr ""
|
||||
|
||||
msgid "Model Height"
|
||||
msgstr ""
|
||||
|
||||
msgid "Ratio"
|
||||
msgstr ""
|
||||
|
||||
msgid "Select Filament"
|
||||
msgstr ""
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Orca Slicer\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"
|
||||
"Last-Translator: Ian A. Bassi <>\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."
|
||||
msgstr "Se ha eliminado %s."
|
||||
|
||||
msgid "Switching application language"
|
||||
msgstr "Cambiando el idioma de la aplicación"
|
||||
|
||||
msgid "Select the language"
|
||||
msgstr "Seleccionar el idioma"
|
||||
@@ -4727,9 +4729,6 @@ msgstr ""
|
||||
"Sí - Cambiar estos ajustes y activar el modo espiral automáticamente\n"
|
||||
"No - Dejar de usar el modo espiral esta vez"
|
||||
|
||||
msgid "N/A"
|
||||
msgstr "N/A"
|
||||
|
||||
msgid "Printing"
|
||||
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
|
||||
msgid ""
|
||||
"Is it %s%% or %s %s?"
|
||||
"Is it %s%% or %s %s?\n"
|
||||
"YES for %s%%, \n"
|
||||
"NO for %s %s."
|
||||
msgstr ""
|
||||
"¿Es %s%% o %s %s?"
|
||||
"¿Es %s%% o %s %s?\n"
|
||||
"SÍ para %s%%, \n"
|
||||
"NO para %s %s."
|
||||
|
||||
#, boost-format
|
||||
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%\""
|
||||
msgstr "Formato inválido. Formato de vector esperado: \"%1%\""
|
||||
|
||||
msgid "N/A"
|
||||
msgstr "N/A"
|
||||
|
||||
msgid "System agents"
|
||||
msgstr "Agentes del sistema"
|
||||
|
||||
@@ -6123,12 +6129,6 @@ msgstr "Guardar proyecto como"
|
||||
msgid "Save current project as"
|
||||
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"
|
||||
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"
|
||||
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!"
|
||||
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."
|
||||
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."
|
||||
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"
|
||||
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"
|
||||
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."
|
||||
msgstr "Nota: La preparación puede llevar varios minutos. Por favor, sea paciente."
|
||||
|
||||
msgid "Publish"
|
||||
msgstr "Publicar"
|
||||
|
||||
msgid "Publish was canceled"
|
||||
msgstr "La publicación fue cancelada"
|
||||
|
||||
@@ -9449,64 +9437,6 @@ msgstr "Cargando datos"
|
||||
msgid "Jump to webpage"
|
||||
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
|
||||
msgid "Save %s as"
|
||||
msgstr "Guardar %s como"
|
||||
@@ -20479,15 +20409,6 @@ msgstr "Esta acción no se puede deshacer. ¿Continuar?"
|
||||
msgid "Skipping objects."
|
||||
msgstr "Omitiendo objetos."
|
||||
|
||||
msgid "Material Ratio"
|
||||
msgstr ""
|
||||
|
||||
msgid "Model Height"
|
||||
msgstr ""
|
||||
|
||||
msgid "Ratio"
|
||||
msgstr ""
|
||||
|
||||
msgid "Select Filament"
|
||||
msgstr "Seleccionar Filamento"
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \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"
|
||||
"Last-Translator: Manu Goiogana <mgoiogana@gmail.com>\n"
|
||||
"Language-Team: \n"
|
||||
@@ -2390,6 +2390,8 @@ msgstr "Eguneratze bat dago erabilgarri. Ireki aurrezarpen-paketeen elkarrizketa
|
||||
msgid "%s has been removed."
|
||||
msgstr "%s kendu da."
|
||||
|
||||
msgid "Switching application language"
|
||||
msgstr "Aplikazioaren hizkuntza aldatzen"
|
||||
|
||||
msgid "Select the language"
|
||||
msgstr "Hautatu hizkuntza"
|
||||
@@ -4769,9 +4771,6 @@ msgstr ""
|
||||
"Bai - Aldatu ezarpen hauek eta gaitu espiral/loreontzi modua automatikoki\n"
|
||||
"Ez - Utzi bertan behera espiral modua gaitzea"
|
||||
|
||||
msgid "N/A"
|
||||
msgstr "N/A"
|
||||
|
||||
msgid "Printing"
|
||||
msgstr "Inprimatzen"
|
||||
|
||||
@@ -5203,9 +5202,13 @@ msgstr "%s balioa tartetik kanpo dago. Baliozko tartea %d eta %d artekoa da."
|
||||
|
||||
#, c-format, boost-format
|
||||
msgid ""
|
||||
"Is it %s%% or %s %s?"
|
||||
"Is it %s%% or %s %s?\n"
|
||||
"YES for %s%%, \n"
|
||||
"NO for %s %s."
|
||||
msgstr ""
|
||||
"%s%% edo %s %s da?"
|
||||
"%s%% edo %s %s da?\n"
|
||||
"BAI %s%%-(r)entzat,\n"
|
||||
"EZ %s %s-(r)entzat."
|
||||
|
||||
#, boost-format
|
||||
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%\""
|
||||
msgstr "Formatuak ez du balio. Espero den formatu bektoriala: \"%1%\""
|
||||
|
||||
msgid "N/A"
|
||||
msgstr "N/A"
|
||||
|
||||
msgid "System agents"
|
||||
msgstr "Sistema-agenteak"
|
||||
|
||||
@@ -6169,12 +6175,6 @@ msgstr "Gorde proiektua honela"
|
||||
msgid "Save current project as"
|
||||
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"
|
||||
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"
|
||||
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!"
|
||||
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."
|
||||
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."
|
||||
msgstr "Pita mota ez dago ezarrita. Ezarri pita eta saiatu berriro."
|
||||
|
||||
@@ -8604,6 +8587,8 @@ msgstr "Jarraitu nahi duzu?"
|
||||
msgid "Language selection"
|
||||
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"
|
||||
msgstr "Asia-Pazifikoa"
|
||||
@@ -9520,6 +9505,9 @@ msgstr "Joan modeloa argitaratzeko web-orrira"
|
||||
msgid "Note: The preparation may take several minutes. Please be patient."
|
||||
msgstr "Oharra: prestaketak minutu batzuk iraun ditzake. Izan pazientzia."
|
||||
|
||||
msgid "Publish"
|
||||
msgstr "Argitaratu"
|
||||
|
||||
msgid "Publish was canceled"
|
||||
msgstr "Argitaratzea bertan behera utzi da"
|
||||
|
||||
@@ -9535,64 +9523,6 @@ msgstr "Datuak igotzen"
|
||||
msgid "Jump to webpage"
|
||||
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
|
||||
msgid "Save %s as"
|
||||
msgstr "Gorde %s honela"
|
||||
@@ -20666,15 +20596,6 @@ msgstr "Ekintza hau ezin da desegin. Jarraitu?"
|
||||
msgid "Skipping objects."
|
||||
msgstr "Objektuak saltatzen."
|
||||
|
||||
msgid "Material Ratio"
|
||||
msgstr ""
|
||||
|
||||
msgid "Model Height"
|
||||
msgstr ""
|
||||
|
||||
msgid "Ratio"
|
||||
msgstr ""
|
||||
|
||||
msgid "Select Filament"
|
||||
msgstr "Hautatu filamentua"
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Orca Slicer\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"
|
||||
"Last-Translator: \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."
|
||||
msgstr "%s a été supprimé."
|
||||
|
||||
msgid "Switching application language"
|
||||
msgstr "Changer la langue de l'application"
|
||||
|
||||
msgid "Select the language"
|
||||
msgstr "Sélectionner la langue"
|
||||
@@ -4807,9 +4809,6 @@ msgstr ""
|
||||
"Oui - Modifiez ces paramètres et activez automatiquement le mode spirale/vase\n"
|
||||
"Non - Annuler l'activation du mode spirale"
|
||||
|
||||
msgid "N/A"
|
||||
msgstr "N/A"
|
||||
|
||||
msgid "Printing"
|
||||
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
|
||||
msgid ""
|
||||
"Is it %s%% or %s %s?"
|
||||
"Is it %s%% or %s %s?\n"
|
||||
"YES for %s%%, \n"
|
||||
"NO for %s %s."
|
||||
msgstr ""
|
||||
"Est-ce %s%% ou %s %s ?"
|
||||
"Est-ce %s%% ou %s %s ?\n"
|
||||
"OUI pour %s%%, \n"
|
||||
"NON pour %s %s."
|
||||
|
||||
#, boost-format
|
||||
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%\""
|
||||
msgstr "Format invalide. Format vectoriel attendu : \"%1%\""
|
||||
|
||||
msgid "N/A"
|
||||
msgstr "N/A"
|
||||
|
||||
# AI Translated
|
||||
msgid "System agents"
|
||||
msgstr "Agents système"
|
||||
@@ -6217,12 +6223,6 @@ msgstr "Enregistrer le projet sous"
|
||||
msgid "Save current project as"
|
||||
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"
|
||||
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"
|
||||
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!"
|
||||
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."
|
||||
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."
|
||||
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"
|
||||
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"
|
||||
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."
|
||||
msgstr "Remarque : La préparation peut prendre plusieurs minutes. Veuillez patienter."
|
||||
|
||||
msgid "Publish"
|
||||
msgstr "Publier"
|
||||
|
||||
msgid "Publish was canceled"
|
||||
msgstr "La publication a été annulée"
|
||||
|
||||
@@ -9606,64 +9594,6 @@ msgstr "Téléversement des données"
|
||||
msgid "Jump to webpage"
|
||||
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
|
||||
msgid "Save %s as"
|
||||
msgstr "Enregistrer %s sous"
|
||||
@@ -20778,15 +20708,6 @@ msgstr "Cette action ne peut pas être annulée. Continuer ?"
|
||||
msgid "Skipping objects."
|
||||
msgstr "Ignorer des objets."
|
||||
|
||||
msgid "Material Ratio"
|
||||
msgstr ""
|
||||
|
||||
msgid "Model Height"
|
||||
msgstr ""
|
||||
|
||||
msgid "Ratio"
|
||||
msgstr ""
|
||||
|
||||
msgid "Select Filament"
|
||||
msgstr "Sélectionner le filament"
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Orca Slicer\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"
|
||||
"MIME-Version: 1.0\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."
|
||||
msgstr "%s eltávolítva."
|
||||
|
||||
msgid "Switching application language"
|
||||
msgstr "Alkalmazás nyelvének váltása"
|
||||
|
||||
msgid "Select the language"
|
||||
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"
|
||||
"Nem - Most ne kapcsold be a spirál módot"
|
||||
|
||||
# AI Translated
|
||||
msgid "N/A"
|
||||
msgstr "N/A"
|
||||
|
||||
msgid "Printing"
|
||||
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
|
||||
msgid ""
|
||||
"Is it %s%% or %s %s?"
|
||||
"Is it %s%% or %s %s?\n"
|
||||
"YES for %s%%, \n"
|
||||
"NO for %s %s."
|
||||
msgstr ""
|
||||
"%s%% vagy %s %s?"
|
||||
"%s%% vagy %s %s?\n"
|
||||
"IGEN %s%%, \n"
|
||||
"NEM %s %s."
|
||||
|
||||
#, boost-format
|
||||
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%\""
|
||||
msgstr "Érvénytelen formátum. Elvárt vektor formátum: \"%1%\""
|
||||
|
||||
# AI Translated
|
||||
msgid "N/A"
|
||||
msgstr "N/A"
|
||||
|
||||
# AI Translated
|
||||
msgid "System agents"
|
||||
msgstr "Rendszerügynökök"
|
||||
@@ -6319,12 +6325,6 @@ msgstr "Projekt mentése másként"
|
||||
msgid "Save current project as"
|
||||
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"
|
||||
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"
|
||||
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!"
|
||||
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."
|
||||
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."
|
||||
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"
|
||||
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"
|
||||
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."
|
||||
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"
|
||||
msgstr "A közzététel törlésre került"
|
||||
|
||||
@@ -9766,64 +9754,6 @@ msgstr "Adatok feltöltése"
|
||||
msgid "Jump to webpage"
|
||||
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
|
||||
msgid "Save %s as"
|
||||
msgstr "%s mentése"
|
||||
@@ -21180,15 +21110,6 @@ msgstr "Ez a művelet nem vonható vissza. Folytatod?"
|
||||
msgid "Skipping objects."
|
||||
msgstr "Objektumok kihagyása."
|
||||
|
||||
msgid "Material Ratio"
|
||||
msgstr ""
|
||||
|
||||
msgid "Model Height"
|
||||
msgstr ""
|
||||
|
||||
msgid "Ratio"
|
||||
msgstr ""
|
||||
|
||||
msgid "Select Filament"
|
||||
msgstr "Filament kiválasztása"
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Orca Slicer\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"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: \n"
|
||||
@@ -2466,6 +2466,8 @@ msgstr "È disponibile un aggiornamento. Apri la finestra di dialogo del bundle
|
||||
msgid "%s has been removed."
|
||||
msgstr "%s è stato rimosso."
|
||||
|
||||
msgid "Switching application language"
|
||||
msgstr "Cambio lingua applicazione"
|
||||
|
||||
msgid "Select the language"
|
||||
msgstr "Seleziona la lingua"
|
||||
@@ -4905,9 +4907,6 @@ msgstr ""
|
||||
"Sì - Modifica queste impostazioni ed abilita la modalità spirale automaticamente\n"
|
||||
"No - Annulla l'attivazione della modalità a spirale"
|
||||
|
||||
msgid "N/A"
|
||||
msgstr "N/D"
|
||||
|
||||
msgid "Printing"
|
||||
msgstr "Stampa"
|
||||
|
||||
@@ -5339,9 +5338,13 @@ msgstr "Il valore %s è fuori intervallo. L'intervallo valido è da %d a %d."
|
||||
|
||||
#, c-format, boost-format
|
||||
msgid ""
|
||||
"Is it %s%% or %s %s?"
|
||||
"Is it %s%% or %s %s?\n"
|
||||
"YES for %s%%, \n"
|
||||
"NO for %s %s."
|
||||
msgstr ""
|
||||
"È %s%% o %s %s?"
|
||||
"È %s%% o %s %s?\n"
|
||||
"Sì per %s%%, \n"
|
||||
"NO per %s %s."
|
||||
|
||||
#, boost-format
|
||||
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%\""
|
||||
msgstr "Formato non valido. Formato vettoriale previsto: \"%1%\""
|
||||
|
||||
msgid "N/A"
|
||||
msgstr "N/D"
|
||||
|
||||
# AI Translated
|
||||
msgid "System agents"
|
||||
msgstr "Agenti di sistema"
|
||||
@@ -6321,12 +6327,6 @@ msgstr "Salva progetto con nome"
|
||||
msgid "Save current project as"
|
||||
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"
|
||||
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"
|
||||
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!"
|
||||
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."
|
||||
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."
|
||||
msgstr "Il tipo di ugello non è impostato. Impostare l'ugello e riprovare."
|
||||
|
||||
@@ -8801,6 +8784,8 @@ msgstr "Vuoi continuare?"
|
||||
msgid "Language selection"
|
||||
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"
|
||||
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."
|
||||
msgstr "Nota: la preparazione può richiedere alcuni minuti. Si prega di avere pazienza."
|
||||
|
||||
msgid "Publish"
|
||||
msgstr "Pubblica"
|
||||
|
||||
msgid "Publish was canceled"
|
||||
msgstr "La pubblicazione è stata annullata"
|
||||
|
||||
@@ -9784,64 +9772,6 @@ msgstr "Caricamento dati"
|
||||
msgid "Jump to webpage"
|
||||
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
|
||||
msgid "Save %s as"
|
||||
msgstr "Salva %s con nome"
|
||||
@@ -21204,15 +21134,6 @@ msgstr "Questa azione non può essere annullata. Continuare?"
|
||||
msgid "Skipping objects."
|
||||
msgstr "Salto degli oggetti."
|
||||
|
||||
msgid "Material Ratio"
|
||||
msgstr ""
|
||||
|
||||
msgid "Model Height"
|
||||
msgstr ""
|
||||
|
||||
msgid "Ratio"
|
||||
msgstr ""
|
||||
|
||||
msgid "Select Filament"
|
||||
msgstr "Seleziona filamento"
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Orca Slicer\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"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: \n"
|
||||
@@ -2473,6 +2473,8 @@ msgstr "アップデートが利用可能です。プリセットバンドルの
|
||||
msgid "%s has been removed."
|
||||
msgstr "%sを削除しました。"
|
||||
|
||||
msgid "Switching application language"
|
||||
msgstr "アプリケーション言語の切り替え"
|
||||
|
||||
msgid "Select the language"
|
||||
msgstr "言語を選択"
|
||||
@@ -4918,10 +4920,6 @@ msgstr ""
|
||||
"はい - 変更して、スパイラルモードを有効にします\n"
|
||||
"いいえ - 変更せず、スパイラルモードを有効しません"
|
||||
|
||||
# AI Translated
|
||||
msgid "N/A"
|
||||
msgstr "N/A"
|
||||
|
||||
msgid "Printing"
|
||||
msgstr "造形中"
|
||||
|
||||
@@ -5353,9 +5351,12 @@ msgstr "値%sは範囲外です。有効な範囲は%dから%dです。"
|
||||
|
||||
#, c-format, boost-format
|
||||
msgid ""
|
||||
"Is it %s%% or %s %s?"
|
||||
"Is it %s%% or %s %s?\n"
|
||||
"YES for %s%%, \n"
|
||||
"NO for %s %s."
|
||||
msgstr ""
|
||||
"%s%% か、それとも %s %sですか?"
|
||||
"%s%% か、それとも %s %sですか?\n"
|
||||
"%s%% の場合ははい、 %s %s はいいえ。"
|
||||
|
||||
#, boost-format
|
||||
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%\""
|
||||
msgstr "無効なフォーマット、%1%であるはずです。"
|
||||
|
||||
# AI Translated
|
||||
msgid "N/A"
|
||||
msgstr "N/A"
|
||||
|
||||
# AI Translated
|
||||
msgid "System agents"
|
||||
msgstr "システムエージェント"
|
||||
@@ -6331,12 +6336,6 @@ msgstr "プロジェクトを名前を付けて保存"
|
||||
msgid "Save current project as"
|
||||
msgstr "プロジェクトを名前を付けて保存"
|
||||
|
||||
msgid "Publish 3MF"
|
||||
msgstr ""
|
||||
|
||||
msgid "Export a 3MF file with the selected settings embedded"
|
||||
msgstr ""
|
||||
|
||||
msgid "Import 3MF/STL/STEP/SVG/OBJ/AMF"
|
||||
msgstr "3MF/STL/STEP/SVG/OBJ/AMFをインポート"
|
||||
|
||||
@@ -8178,12 +8177,6 @@ msgstr "これらのプリセット内のG-codeがマシンに損傷を与えな
|
||||
msgid "Customized Preset"
|
||||
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!"
|
||||
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."
|
||||
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."
|
||||
msgstr "ノズルタイプが設定されていません。ノズルを設定して再試行してください。"
|
||||
|
||||
@@ -8820,6 +8802,8 @@ msgstr "続行しますか?"
|
||||
msgid "Language selection"
|
||||
msgstr "言語選択"
|
||||
|
||||
msgid "Switching application language while some presets are modified."
|
||||
msgstr "アプリケーション言語を切り替える時に、プリセットの変更があります"
|
||||
|
||||
msgid "Asia-Pacific"
|
||||
msgstr "アジア太平洋地域"
|
||||
@@ -9792,6 +9776,9 @@ msgstr "モデル公開ページに移動"
|
||||
msgid "Note: The preparation may take several minutes. Please be patient."
|
||||
msgstr "注意: 準備するには数分かかる場合があります、暫くお待ち下さい。"
|
||||
|
||||
msgid "Publish"
|
||||
msgstr "公開する"
|
||||
|
||||
msgid "Publish was canceled"
|
||||
msgstr "公開は取り消しました"
|
||||
|
||||
@@ -9807,64 +9794,6 @@ msgstr "データをアップロード中"
|
||||
msgid "Jump to webpage"
|
||||
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
|
||||
msgid "Save %s as"
|
||||
msgstr "%sを名前つけて保存"
|
||||
@@ -21749,15 +21678,6 @@ msgstr "この操作は元に戻せません。続行しますか?"
|
||||
msgid "Skipping objects."
|
||||
msgstr "オブジェクトをスキップ中。"
|
||||
|
||||
msgid "Material Ratio"
|
||||
msgstr ""
|
||||
|
||||
msgid "Model Height"
|
||||
msgstr ""
|
||||
|
||||
msgid "Ratio"
|
||||
msgstr ""
|
||||
|
||||
msgid "Select Filament"
|
||||
msgstr "フィラメントを選択"
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Orca Slicer\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"
|
||||
"Last-Translator: crwusiz <crwusiz@gmail.com>\n"
|
||||
"Language-Team: \n"
|
||||
@@ -2481,6 +2481,8 @@ msgstr "사용 가능한 업데이트가 있습니다. 사전 설정 번들 대
|
||||
msgid "%s has been removed."
|
||||
msgstr "%s이(가) 제거되었습니다."
|
||||
|
||||
msgid "Switching application language"
|
||||
msgstr "응용 프로그램 언어 전환"
|
||||
|
||||
msgid "Select the language"
|
||||
msgstr "언어 선택"
|
||||
@@ -4929,10 +4931,6 @@ msgstr ""
|
||||
"예 - 이 설정을 변경하고 나선 모드를 자동으로 활성화합니다\n"
|
||||
"아니오 - 이번에는 나선 모드 사용을 포기합니다"
|
||||
|
||||
# AI Translated
|
||||
msgid "N/A"
|
||||
msgstr "해당 없음"
|
||||
|
||||
msgid "Printing"
|
||||
msgstr "출력 중"
|
||||
|
||||
@@ -5364,9 +5362,13 @@ msgstr "값 %s이 범위를 벗어났습니다. 유효한 범위는 %d에서 %d
|
||||
|
||||
#, c-format, boost-format
|
||||
msgid ""
|
||||
"Is it %s%% or %s %s?"
|
||||
"Is it %s%% or %s %s?\n"
|
||||
"YES for %s%%, \n"
|
||||
"NO for %s %s."
|
||||
msgstr ""
|
||||
"%s%% 또는 %s %s입니까?"
|
||||
"%s%% 또는 %s %s입니까?\n"
|
||||
"%s%%에 대해 예,\n"
|
||||
"%s %s에 대해 아니요."
|
||||
|
||||
#, boost-format
|
||||
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%\""
|
||||
msgstr "잘못된 형식입니다. 필요한 벡터 형식: \"%1%\""
|
||||
|
||||
# AI Translated
|
||||
msgid "N/A"
|
||||
msgstr "해당 없음"
|
||||
|
||||
# AI Translated
|
||||
msgid "System agents"
|
||||
msgstr "시스템 에이전트"
|
||||
@@ -6344,12 +6350,6 @@ msgstr "프로젝트 다른 이름으로 저장"
|
||||
msgid "Save current project as"
|
||||
msgstr "현재 프로젝트 다른 이름으로 저장"
|
||||
|
||||
msgid "Publish 3MF"
|
||||
msgstr ""
|
||||
|
||||
msgid "Export a 3MF file with the selected settings embedded"
|
||||
msgstr ""
|
||||
|
||||
msgid "Import 3MF/STL/STEP/SVG/OBJ/AMF"
|
||||
msgstr "3MF/STL/STEP/SVG/OBJ/AMF 가져오기"
|
||||
|
||||
@@ -8195,12 +8195,6 @@ msgstr "이러한 사전 설정 내의 Gcode가 기계 손상을 방지할 수
|
||||
msgid "Customized Preset"
|
||||
msgstr "사용자 정의 프리셋"
|
||||
|
||||
msgid "Some published settings could not be applied:"
|
||||
msgstr ""
|
||||
|
||||
msgid "Some filament slots were changed:"
|
||||
msgstr ""
|
||||
|
||||
# AI Translated
|
||||
msgid "Component name(s) inside step file not in UTF-8 format!"
|
||||
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."
|
||||
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."
|
||||
msgstr "노즐 유형이 설정되지 않았습니다. 노즐을 설정하고 다시 시도하세요."
|
||||
|
||||
@@ -8854,6 +8837,8 @@ msgstr "계속하시겠습니까?"
|
||||
msgid "Language selection"
|
||||
msgstr "언어 선택"
|
||||
|
||||
msgid "Switching application language while some presets are modified."
|
||||
msgstr "일부 사전 설정이 수정되는 동안 응용 프로그램 언어를 전환합니다."
|
||||
|
||||
msgid "Asia-Pacific"
|
||||
msgstr "아시아 태평양"
|
||||
@@ -9880,6 +9865,9 @@ msgstr "모델 게시 웹 페이지로 이동"
|
||||
msgid "Note: The preparation may take several minutes. Please be patient."
|
||||
msgstr "참고: 준비하는 데 몇 분 정도 걸릴 수 있습니다. 조금만 기다려 주십시오."
|
||||
|
||||
msgid "Publish"
|
||||
msgstr "게시"
|
||||
|
||||
msgid "Publish was canceled"
|
||||
msgstr "게시가 취소되었습니다"
|
||||
|
||||
@@ -9896,64 +9884,6 @@ msgstr "데이터 업로드 중"
|
||||
msgid "Jump to webpage"
|
||||
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
|
||||
msgid "Save %s as"
|
||||
msgstr "%s을(를) 다음으로 저장"
|
||||
@@ -21606,15 +21536,6 @@ msgstr "이 작업은 취소할 수 없습니다. 계속하시겠습니까?"
|
||||
msgid "Skipping objects."
|
||||
msgstr "물체 건너뛰기"
|
||||
|
||||
msgid "Material Ratio"
|
||||
msgstr ""
|
||||
|
||||
msgid "Model Height"
|
||||
msgstr ""
|
||||
|
||||
msgid "Ratio"
|
||||
msgstr ""
|
||||
|
||||
msgid "Select Filament"
|
||||
msgstr "필라멘트 선택"
|
||||
|
||||
|
||||
@@ -136,7 +136,6 @@ src/slic3r/GUI/BackgroundSlicingProcess.cpp
|
||||
src/slic3r/GUI/BedShapeDialog.cpp
|
||||
src/slic3r/GUI/BedShapeDialog.hpp
|
||||
src/slic3r/GUI/ConfigManipulation.cpp
|
||||
src/slic3r/GUI/ConfigValueFormatter.cpp
|
||||
src/slic3r/GUI/DeviceManager.cpp
|
||||
src/slic3r/GUI/DeviceErrorDialog.cpp
|
||||
src/slic3r/GUI/ExtraRenderers.cpp
|
||||
@@ -176,7 +175,6 @@ src/slic3r/GUI/ProgressStatusBar.cpp
|
||||
src/slic3r/GUI/PlateSettingsDialog.cpp
|
||||
src/slic3r/GUI/PrivacyUpdateDialog.cpp
|
||||
src/slic3r/GUI/PublishDialog.cpp
|
||||
src/slic3r/GUI/PublishSettingsDialog.cpp
|
||||
src/slic3r/GUI/SavePresetDialog.cpp
|
||||
src/slic3r/GUI/Search.cpp
|
||||
src/slic3r/GUI/Selection.cpp
|
||||
|
||||
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \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"
|
||||
"Last-Translator: Gintaras Kučinskas <sharanchius@gmail.com>\n"
|
||||
"Language-Team: \n"
|
||||
@@ -2449,6 +2449,8 @@ msgstr "Yra prieinamas atnaujinimas. Atidarykite profilių paketo dialogo langą
|
||||
msgid "%s has been removed."
|
||||
msgstr "%s buvo pašalintas."
|
||||
|
||||
msgid "Switching application language"
|
||||
msgstr "Perjungiama programos kalba"
|
||||
|
||||
msgid "Select the language"
|
||||
msgstr "Pasirinkite kalbą"
|
||||
@@ -4891,9 +4893,6 @@ msgstr ""
|
||||
"Taip – pakeisti šiuos nustatymus ir automatiškai įjungti spiralinį režimą\n"
|
||||
"Ne – nenaudoti spiralinio režimo"
|
||||
|
||||
msgid "N/A"
|
||||
msgstr "N/A"
|
||||
|
||||
msgid "Printing"
|
||||
msgstr "Spausdinimas"
|
||||
|
||||
@@ -5325,9 +5324,13 @@ msgstr "Reikšmė %s yra už ribų. Galimas diapazonas yra nuo %d iki %d."
|
||||
|
||||
#, c-format, boost-format
|
||||
msgid ""
|
||||
"Is it %s%% or %s %s?"
|
||||
"Is it %s%% or %s %s?\n"
|
||||
"YES for %s%%, \n"
|
||||
"NO for %s %s."
|
||||
msgstr ""
|
||||
"Ar tai %s%% ar %s %s?"
|
||||
"Ar tai %s%% ar %s %s?\n"
|
||||
"TAIP %s%%, \n"
|
||||
"NE %s %s."
|
||||
|
||||
#, boost-format
|
||||
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%\""
|
||||
msgstr "Netinkamas formatas. Tinkamas vektorinis formatas: \"%1%\""
|
||||
|
||||
msgid "N/A"
|
||||
msgstr "N/A"
|
||||
|
||||
# AI Translated
|
||||
msgid "System agents"
|
||||
msgstr "Sisteminiai agentai"
|
||||
@@ -6306,12 +6312,6 @@ msgstr "Įrašyti projektą kaip"
|
||||
msgid "Save current project as"
|
||||
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"
|
||||
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"
|
||||
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!"
|
||||
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."
|
||||
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."
|
||||
msgstr "Purkštuko tipas nenustatytas. Nustatykite purkštuką ir bandykite dar kartą."
|
||||
|
||||
@@ -8791,6 +8774,8 @@ msgstr "Ar norite tęsti?"
|
||||
msgid "Language selection"
|
||||
msgstr "Kalbos pasirinkimas"
|
||||
|
||||
msgid "Switching application language while some presets are modified."
|
||||
msgstr "Keičiama programos kalba, kai yra pakeistų profilių."
|
||||
|
||||
msgid "Asia-Pacific"
|
||||
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."
|
||||
msgstr "Pastaba: paruošimas gali užtrukti kelias minutes. Būkite kantrūs."
|
||||
|
||||
msgid "Publish"
|
||||
msgstr "Talpinti"
|
||||
|
||||
msgid "Publish was canceled"
|
||||
msgstr "Publikavimas buvo atšauktas"
|
||||
|
||||
@@ -9723,64 +9711,6 @@ msgstr "Įkeliami duomenys"
|
||||
msgid "Jump to webpage"
|
||||
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
|
||||
msgid "Save %s as"
|
||||
msgstr "Išsaugoti %s kaip"
|
||||
@@ -20935,15 +20865,6 @@ msgstr "Šio veiksmo atšaukti nebus galima. Tęsti?"
|
||||
msgid "Skipping objects."
|
||||
msgstr "Praleidžiami objektai."
|
||||
|
||||
msgid "Material Ratio"
|
||||
msgstr ""
|
||||
|
||||
msgid "Model Height"
|
||||
msgstr ""
|
||||
|
||||
msgid "Ratio"
|
||||
msgstr ""
|
||||
|
||||
msgid "Select Filament"
|
||||
msgstr "Pasirinkti giją"
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Orca Slicer\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"
|
||||
"Last-Translator: \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."
|
||||
msgstr "%s is verwijderd."
|
||||
|
||||
msgid "Switching application language"
|
||||
msgstr "De taal van de applicatie wordt aangepast"
|
||||
|
||||
msgid "Select the language"
|
||||
msgstr "Kies de taal"
|
||||
@@ -5323,9 +5325,6 @@ msgstr ""
|
||||
"Ja - Pas de instellingen aan en zet de vaas modus automatisch aan\n"
|
||||
"Nee - Pas de vaas modus deze keer niet toe"
|
||||
|
||||
msgid "N/A"
|
||||
msgstr "N/B"
|
||||
|
||||
msgid "Printing"
|
||||
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
|
||||
msgid ""
|
||||
"Is it %s%% or %s %s?"
|
||||
"Is it %s%% or %s %s?\n"
|
||||
"YES for %s%%, \n"
|
||||
"NO for %s %s."
|
||||
msgstr ""
|
||||
"Is het %s%% or %s %s?"
|
||||
"Is het %s%% or %s %s?\n"
|
||||
"JA voor %s%%, \n"
|
||||
"NEE voor %s %s."
|
||||
|
||||
#, boost-format
|
||||
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%\""
|
||||
msgstr "Onjuist formaat. Het Vector formaat wordt verwacht: \"%1%\""
|
||||
|
||||
msgid "N/A"
|
||||
msgstr "N/B"
|
||||
|
||||
# AI Translated
|
||||
msgid "System agents"
|
||||
msgstr "Systeemagenten"
|
||||
@@ -6882,12 +6888,6 @@ msgstr "Bewaar project als"
|
||||
msgid "Save current project as"
|
||||
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"
|
||||
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"
|
||||
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!"
|
||||
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."
|
||||
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
|
||||
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."
|
||||
@@ -9596,6 +9579,8 @@ msgstr "Wilt u doorgaan?"
|
||||
msgid "Language selection"
|
||||
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"
|
||||
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."
|
||||
msgstr "Notitie: het voorbereiden kan enkele minuten duren. Even geduld alstublieft."
|
||||
|
||||
msgid "Publish"
|
||||
msgstr "Publiceren"
|
||||
|
||||
msgid "Publish was canceled"
|
||||
msgstr "Het publiceren is geannuleerd"
|
||||
|
||||
@@ -10657,64 +10645,6 @@ msgstr "Gegevens uploaden"
|
||||
msgid "Jump to webpage"
|
||||
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
|
||||
msgid "Save %s as"
|
||||
msgstr "Bewaar %s als"
|
||||
@@ -23315,15 +23245,6 @@ msgstr "Deze actie kan niet ongedaan worden gemaakt. Doorgaan?"
|
||||
msgid "Skipping objects."
|
||||
msgstr "Objecten worden overgeslagen."
|
||||
|
||||
msgid "Material Ratio"
|
||||
msgstr ""
|
||||
|
||||
msgid "Model Height"
|
||||
msgstr ""
|
||||
|
||||
msgid "Ratio"
|
||||
msgstr ""
|
||||
|
||||
msgid "Select Filament"
|
||||
msgstr "Selecteer filament"
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: OrcaSlicer 2.3.0-rc\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"
|
||||
"Last-Translator: Krzysztof Morga <<tlumaczeniebs@gmail.com>>\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."
|
||||
msgstr "%s został usunięty."
|
||||
|
||||
msgid "Switching application language"
|
||||
msgstr "Zmiana języka aplikacji"
|
||||
|
||||
msgid "Select the language"
|
||||
msgstr "Wybierz język"
|
||||
@@ -5011,10 +5013,6 @@ msgstr ""
|
||||
"Tak - Zmień te ustawienia automatycznie i włącz tryb Wazy\n"
|
||||
"Nie - Zrezygnuj tym razem z używania trybu Wazy"
|
||||
|
||||
# AI Translated
|
||||
msgid "N/A"
|
||||
msgstr "Nie dotyczy"
|
||||
|
||||
msgid "Printing"
|
||||
msgstr "Drukowanie"
|
||||
|
||||
@@ -5452,9 +5450,13 @@ msgstr "Wartość %s jest spoza zakresu. Poprawny zakres wynosi od %d do %d."
|
||||
|
||||
#, c-format, boost-format
|
||||
msgid ""
|
||||
"Is it %s%% or %s %s?"
|
||||
"Is it %s%% or %s %s?\n"
|
||||
"YES for %s%%, \n"
|
||||
"NO for %s %s."
|
||||
msgstr ""
|
||||
"Czy to %s%% czy %s %s?"
|
||||
"Czy to %s%% czy %s %s?\n"
|
||||
"TAK dla %s%%,\n"
|
||||
"NIE dla %s %s."
|
||||
|
||||
#, boost-format
|
||||
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%\""
|
||||
msgstr "Nieprawidłowy format. Oczekiwano formatu wektorowego: „%1%”"
|
||||
|
||||
# AI Translated
|
||||
msgid "N/A"
|
||||
msgstr "Nie dotyczy"
|
||||
|
||||
# AI Translated
|
||||
msgid "System agents"
|
||||
msgstr "Agenci systemowi"
|
||||
@@ -6463,12 +6469,6 @@ msgstr "Zapisz projekt jako"
|
||||
msgid "Save current project as"
|
||||
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"
|
||||
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"
|
||||
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!"
|
||||
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."
|
||||
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."
|
||||
msgstr "Nie ustawiono typu dyszy Wprowadź ustawienia dyszy i spróbuj ponownie."
|
||||
|
||||
@@ -9010,6 +8993,8 @@ msgstr "Czy kontynuować?"
|
||||
msgid "Language selection"
|
||||
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"
|
||||
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."
|
||||
msgstr "Uwaga: Przygotowanie może zająć kilka minut. Proszę o cierpliwość."
|
||||
|
||||
msgid "Publish"
|
||||
msgstr "Opublikuj"
|
||||
|
||||
msgid "Publish was canceled"
|
||||
msgstr "Publikacja została anulowana"
|
||||
|
||||
@@ -10052,64 +10040,6 @@ msgstr "Przesyłanie danych"
|
||||
msgid "Jump to webpage"
|
||||
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
|
||||
msgid "Save %s as"
|
||||
msgstr "Zapisz %s jako"
|
||||
@@ -21793,15 +21723,6 @@ msgstr "Tego działania nie będzie można cofnąć. Kontynuować?"
|
||||
msgid "Skipping objects."
|
||||
msgstr "Pomijanie obiektów."
|
||||
|
||||
msgid "Material Ratio"
|
||||
msgstr ""
|
||||
|
||||
msgid "Model Height"
|
||||
msgstr ""
|
||||
|
||||
msgid "Ratio"
|
||||
msgstr ""
|
||||
|
||||
msgid "Select 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℃."
|
||||
#~ 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"
|
||||
#~ msgstr "Pozwól na kilka filamentów na tej samej płycie"
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Orca Slicer\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"
|
||||
"Last-Translator: Alexandre Folle de Menezes\n"
|
||||
"Language-Team: Portuguese, Brazilian\n"
|
||||
@@ -2128,7 +2128,7 @@ msgid ""
|
||||
"OrcaSlicer has attempted to recreate the configuration file.\n"
|
||||
"Please note, application settings will be lost, but printer profiles will not be affected."
|
||||
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"
|
||||
"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."
|
||||
msgstr "%s foi removido."
|
||||
|
||||
msgid "Switching application language"
|
||||
msgstr "Alternando o idioma do aplicativo"
|
||||
|
||||
msgid "Select the language"
|
||||
msgstr "Selecione o idioma"
|
||||
@@ -4741,9 +4743,6 @@ msgstr ""
|
||||
"Sim - Alterar essas configurações e ativar o modo espiral/vaso automaticamente\n"
|
||||
"Não - Cancelar ativação do modo espiral"
|
||||
|
||||
msgid "N/A"
|
||||
msgstr "N/D"
|
||||
|
||||
msgid "Printing"
|
||||
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
|
||||
msgid ""
|
||||
"Is it %s%% or %s %s?"
|
||||
"Is it %s%% or %s %s?\n"
|
||||
"YES for %s%%, \n"
|
||||
"NO for %s %s."
|
||||
msgstr ""
|
||||
"É %s%% ou %s %s?"
|
||||
"É %s%% ou %s %s?\n"
|
||||
"SIM para %s%%, \n"
|
||||
"NÃO para %s %s."
|
||||
|
||||
#, boost-format
|
||||
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%\""
|
||||
msgstr "Formato inválido. Formato de vetor esperado: \"%1%\""
|
||||
|
||||
msgid "N/A"
|
||||
msgstr "N/D"
|
||||
|
||||
msgid "System agents"
|
||||
msgstr "Agentes do sistema"
|
||||
|
||||
@@ -6139,12 +6145,6 @@ msgstr "Salvar projeto como"
|
||||
msgid "Save current project as"
|
||||
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"
|
||||
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."
|
||||
|
||||
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."
|
||||
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"
|
||||
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!"
|
||||
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."
|
||||
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."
|
||||
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"
|
||||
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"
|
||||
msgstr "Ásia-Pacífico"
|
||||
@@ -8633,7 +8618,7 @@ msgstr ""
|
||||
"\n"
|
||||
"Deseja baixar e instalar esta versão agora?\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"
|
||||
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."
|
||||
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"
|
||||
"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"
|
||||
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."
|
||||
msgstr "Nota: A preparação pode levar vários minutos. Por favor, seja paciente."
|
||||
|
||||
msgid "Publish"
|
||||
msgstr "Publicar"
|
||||
|
||||
msgid "Publish was canceled"
|
||||
msgstr "Publicação cancelada"
|
||||
|
||||
@@ -9508,64 +9496,6 @@ msgstr "Enviando dados"
|
||||
msgid "Jump to webpage"
|
||||
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
|
||||
msgid "Save %s as"
|
||||
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."
|
||||
msgstr "O mapeamento de bicos atual pode gerar um desperdício adicional de %0.2f g."
|
||||
|
||||
# AI Translated
|
||||
#, c-format, boost-format
|
||||
msgid "Recommended filament arrangement saves %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"
|
||||
msgstr "Interno"
|
||||
|
||||
# AI Translated
|
||||
#, c-format, boost-format
|
||||
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"
|
||||
@@ -9836,12 +9768,15 @@ msgstr "%s com espaço inferior a 20MB. O timelapse pode não ser salvo corretam
|
||||
msgid "Clean up files"
|
||||
msgstr "Limpar arquivos"
|
||||
|
||||
# AI Translated
|
||||
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."
|
||||
|
||||
# AI Translated
|
||||
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."
|
||||
|
||||
# AI Translated
|
||||
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."
|
||||
|
||||
@@ -9877,6 +9812,7 @@ msgstr "Atualizando informações dos hotends (%d/%d)."
|
||||
msgid "There are not enough available hotends currently."
|
||||
msgstr "Não há hotends disponíveis em quantidade suficiente no momento."
|
||||
|
||||
# AI Translated
|
||||
msgid "Please complete the hotend rack setup and try again."
|
||||
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)."
|
||||
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."
|
||||
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."
|
||||
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."
|
||||
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."
|
||||
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
|
||||
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."
|
||||
|
||||
# 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."
|
||||
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."
|
||||
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."
|
||||
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."
|
||||
msgstr "Esta impressora não suporta a imprimir todas as placas."
|
||||
|
||||
# AI Translated
|
||||
#, 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."
|
||||
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."
|
||||
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."
|
||||
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."
|
||||
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"
|
||||
|
||||
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"
|
||||
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"
|
||||
msgstr "Pesquisar nas predefinições"
|
||||
|
||||
# AI Translated
|
||||
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."
|
||||
|
||||
# AI Translated
|
||||
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."
|
||||
|
||||
@@ -10294,7 +10242,7 @@ msgid "Are you sure you want to enable this option?"
|
||||
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?"
|
||||
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."
|
||||
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"
|
||||
msgstr "Scripts de pós-processamento"
|
||||
|
||||
# AI Translated
|
||||
msgid "Slicing Pipeline Plugin"
|
||||
msgstr "Plugin de Pipeline de Fatiamento"
|
||||
|
||||
@@ -10510,8 +10459,9 @@ msgstr "Temperatura da câmara de impressão"
|
||||
msgid "Chamber temperature"
|
||||
msgstr "Temperatura da câmara"
|
||||
|
||||
# AI Translated
|
||||
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"
|
||||
msgstr "Alvo"
|
||||
@@ -10749,6 +10699,7 @@ msgstr "Limites de altura da camada"
|
||||
msgid "Z-Hop"
|
||||
msgstr "Z-Hop"
|
||||
|
||||
# AI Translated
|
||||
msgid ""
|
||||
"The Retract before wipe option could be only 100% when using the Firmware Retraction mode.\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"
|
||||
msgstr "Uma das predefinições não existe"
|
||||
|
||||
# AI Translated
|
||||
msgid "Compared presets has different printer technology"
|
||||
msgstr "As predefinições comparadas têm tecnologia de impressora diferente"
|
||||
|
||||
@@ -11390,8 +11342,9 @@ msgstr "Entrar"
|
||||
msgid "Login failed. Please try again."
|
||||
msgstr "Falha no login. Tente novamente."
|
||||
|
||||
# AI Translated
|
||||
msgid "parse json failed"
|
||||
msgstr "falha ao processar o json"
|
||||
msgstr "falha ao analisar o json"
|
||||
|
||||
msgid "[Action Required] "
|
||||
msgstr "[Ação Necessária] "
|
||||
@@ -11582,6 +11535,7 @@ msgctxt "Keyboard Shortcut"
|
||||
msgid "Space"
|
||||
msgstr "Espaço"
|
||||
|
||||
# AI Translated
|
||||
msgid "Open actions speed dial"
|
||||
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"
|
||||
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."
|
||||
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?"
|
||||
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?"
|
||||
msgstr "Onde encontrar o IP e o Código de Acesso da sua impressora?"
|
||||
|
||||
# AI Translated
|
||||
msgid "How to trouble shooting"
|
||||
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."
|
||||
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"
|
||||
msgstr "G-code de mudança de tipo de extrusão do processo"
|
||||
|
||||
# AI Translated
|
||||
msgid "Filament change extrusion role G-code"
|
||||
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"
|
||||
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"
|
||||
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."
|
||||
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."
|
||||
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."
|
||||
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."
|
||||
msgstr "O filamento da torre de purga não pode ser um filamento misto."
|
||||
|
||||
@@ -12739,6 +12701,7 @@ msgstr ""
|
||||
msgid "Internal bridge flow ratio"
|
||||
msgstr "Taxa de fluxo em ponte interna"
|
||||
|
||||
# AI Translated
|
||||
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"
|
||||
"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"
|
||||
"0 para desativar."
|
||||
|
||||
# AI Translated
|
||||
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."
|
||||
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"
|
||||
msgstr "Ordem intra-camada"
|
||||
|
||||
# AI Translated
|
||||
msgid ""
|
||||
"Order in which object instances are visited within a single layer, which controls how much travel is spent moving between them.\n"
|
||||
"\n"
|
||||
@@ -13215,7 +13181,7 @@ msgid "mm/s² or %"
|
||||
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."
|
||||
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"
|
||||
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."
|
||||
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"
|
||||
msgid "s"
|
||||
msgstr "s"
|
||||
@@ -14101,47 +14068,61 @@ msgstr "Material de suporte"
|
||||
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."
|
||||
|
||||
# AI Translated
|
||||
msgid "Is mixed filament"
|
||||
msgstr "É filamento misto"
|
||||
|
||||
# AI Translated
|
||||
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"
|
||||
|
||||
# AI Translated
|
||||
msgid "Mixed filament components"
|
||||
msgstr "Componentes do filamento misto"
|
||||
|
||||
# AI Translated
|
||||
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\""
|
||||
|
||||
# AI Translated
|
||||
msgid "Mixed filament sublayer ratios"
|
||||
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\""
|
||||
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"
|
||||
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."
|
||||
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"
|
||||
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%."
|
||||
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"
|
||||
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."
|
||||
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"
|
||||
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."
|
||||
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"
|
||||
msgstr "Filamento imprimível"
|
||||
@@ -14232,7 +14213,7 @@ msgid "Insert solid layers"
|
||||
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."
|
||||
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"
|
||||
msgstr "Multilinhas de Preenchimento"
|
||||
@@ -14310,9 +14291,11 @@ msgstr "TPMS-FK"
|
||||
msgid "Gyroid"
|
||||
msgstr "Giroide"
|
||||
|
||||
# AI Translated
|
||||
msgid "Sparse infill smooth factor"
|
||||
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."
|
||||
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."
|
||||
|
||||
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."
|
||||
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."
|
||||
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"
|
||||
"Set to -1 to disable it."
|
||||
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"
|
||||
"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"
|
||||
@@ -14804,7 +14787,7 @@ msgid ""
|
||||
"Set to 0 to deactivate."
|
||||
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"
|
||||
"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."
|
||||
|
||||
msgid "Time cost"
|
||||
@@ -14851,11 +14834,13 @@ msgstr "Com que tipo de G-code a impressora é compatível."
|
||||
msgid "Klipper"
|
||||
msgstr "Klipper"
|
||||
|
||||
# AI Translated
|
||||
msgid "Skip G-code config block"
|
||||
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."
|
||||
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"
|
||||
msgstr "Impressora Modificada para Pellets"
|
||||
@@ -14903,13 +14888,13 @@ msgid "Sparse infill rotation template"
|
||||
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."
|
||||
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"
|
||||
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."
|
||||
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"
|
||||
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"
|
||||
msgstr "A força máxima de saída permitida do eixo Y"
|
||||
|
||||
# AI Translated
|
||||
msgctxt "Newton"
|
||||
msgid "N"
|
||||
msgstr "N"
|
||||
@@ -15385,6 +15371,7 @@ msgstr "Massa da mesa do eixo Y"
|
||||
msgid "The machine bed mass load of Y axis"
|
||||
msgstr "A carga de massa da mesa do equipamento no eixo Y"
|
||||
|
||||
# AI Translated
|
||||
msgctxt "gram"
|
||||
msgid "g"
|
||||
msgstr "g"
|
||||
@@ -15909,7 +15896,7 @@ msgid "Z-hop height"
|
||||
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."
|
||||
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"
|
||||
msgstr "Limite inferior do Z-hop"
|
||||
@@ -15990,7 +15977,7 @@ msgid "Has filament switcher"
|
||||
msgstr "Tem trocador de filamentos"
|
||||
|
||||
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"
|
||||
msgstr "Comprimento extra na retração"
|
||||
@@ -16107,7 +16094,7 @@ msgid "Scarf joint speed"
|
||||
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%."
|
||||
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"
|
||||
msgstr "Taxa de fluxo da costura em bisel"
|
||||
@@ -16177,7 +16164,7 @@ msgid "Wipe speed"
|
||||
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%."
|
||||
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"
|
||||
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"
|
||||
"\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"
|
||||
msgstr "Ativado"
|
||||
@@ -16356,10 +16343,10 @@ msgid "Preheat steps"
|
||||
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."
|
||||
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}."
|
||||
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"
|
||||
msgstr "G-code Inicial"
|
||||
@@ -16380,7 +16367,7 @@ msgid "Manual Filament Change"
|
||||
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."
|
||||
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"
|
||||
msgstr "Tipo de torre de purga"
|
||||
@@ -16936,9 +16923,11 @@ msgstr ""
|
||||
"\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."
|
||||
|
||||
# AI Translated
|
||||
msgid "Mixed color sublayer"
|
||||
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."
|
||||
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."
|
||||
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."
|
||||
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."
|
||||
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."
|
||||
|
||||
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"
|
||||
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."
|
||||
msgstr "O arquivo contém polígonos com mais de 4 vértices."
|
||||
@@ -19125,7 +19115,7 @@ msgid "Serial"
|
||||
msgstr "Série"
|
||||
|
||||
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"
|
||||
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"
|
||||
|
||||
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"
|
||||
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
|
||||
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."
|
||||
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"
|
||||
msgstr "Ativar atribuição inteligente de filamento: Atribui um filamento a vários bicos para maximizar a economia"
|
||||
|
||||
# AI Translated
|
||||
msgid "File Saving"
|
||||
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."
|
||||
|
||||
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."
|
||||
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."
|
||||
msgstr "Ignorando objetos."
|
||||
|
||||
msgid "Material Ratio"
|
||||
msgstr ""
|
||||
|
||||
msgid "Model Height"
|
||||
msgstr ""
|
||||
|
||||
msgid "Ratio"
|
||||
msgstr ""
|
||||
|
||||
msgid "Select Filament"
|
||||
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?)"
|
||||
#~ 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 ""
|
||||
#~ "Layer height is too small.\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"
|
||||
#~ "\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 ""
|
||||
#~ "Controls the density (spacing) of internal bridge lines. 100% means solid bridge. Default is 100%.\n"
|
||||
@@ -21589,7 +21580,7 @@ msgstr ""
|
||||
#~ "\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"
|
||||
#~ "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."
|
||||
#~ 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"
|
||||
|
||||
#~ 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"
|
||||
#~ msgstr "Definir Posição"
|
||||
|
||||
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: OrcaSlicer V2.5.0\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"
|
||||
"Last-Translator: Felix14_v2\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."
|
||||
msgstr "%s был удалён."
|
||||
|
||||
msgid "Switching application language"
|
||||
msgstr "Изменение языка приложения"
|
||||
|
||||
msgid "Select the language"
|
||||
msgstr "Выбор языка"
|
||||
@@ -4889,11 +4891,6 @@ msgid ""
|
||||
"No - Cancel enabling spiral mode"
|
||||
msgstr "Использовать эти настройки и режим вазы?"
|
||||
|
||||
# Не знаю, как и почему, но это, похоже, исправляет "вопросики" вместо
|
||||
# символов
|
||||
msgid "N/A"
|
||||
msgstr "–"
|
||||
|
||||
msgid "Printing"
|
||||
msgstr "Печать"
|
||||
|
||||
@@ -5335,9 +5332,13 @@ msgstr "Значение %s выходит за пределы допустим
|
||||
|
||||
#, c-format, boost-format
|
||||
msgid ""
|
||||
"Is it %s%% or %s %s?"
|
||||
"Is it %s%% or %s %s?\n"
|
||||
"YES for %s%%, \n"
|
||||
"NO for %s %s."
|
||||
msgstr ""
|
||||
"Имелось ввиду %s%% или %s %s?"
|
||||
"Имелось ввиду %s%%? (введено %s %s)\n"
|
||||
"Да – изменить на %s%%\n"
|
||||
"Нет – оставить %s %s."
|
||||
|
||||
#, boost-format
|
||||
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%\""
|
||||
msgstr "Недопустимый формат. Ожидаемый векторный формат: \"%1%\""
|
||||
|
||||
# Не знаю, как и почему, но это, похоже, исправляет "вопросики" вместо
|
||||
# символов
|
||||
msgid "N/A"
|
||||
msgstr "–"
|
||||
|
||||
msgid "System agents"
|
||||
msgstr "Системные агенты"
|
||||
|
||||
@@ -6372,12 +6378,6 @@ msgstr "Сохранить проект как"
|
||||
msgid "Save current project as"
|
||||
msgstr "Сохранить текущий проект как"
|
||||
|
||||
msgid "Publish 3MF"
|
||||
msgstr ""
|
||||
|
||||
msgid "Export a 3MF file with the selected settings embedded"
|
||||
msgstr ""
|
||||
|
||||
msgid "Import 3MF/STL/STEP/SVG/OBJ/AMF"
|
||||
msgstr "Импорт 3MF/STL/STEP/SVG/OBJ/AMF"
|
||||
|
||||
@@ -8212,12 +8212,6 @@ msgstr "Во избежание повреждения принтера убед
|
||||
msgid "Customized Preset"
|
||||
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!"
|
||||
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."
|
||||
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."
|
||||
msgstr "Не указан тип сопла. Укажите его и попробуйте ещё раз."
|
||||
|
||||
@@ -8846,6 +8829,8 @@ msgstr "Хотите продолжить?"
|
||||
msgid "Language selection"
|
||||
msgstr "Выбор языка"
|
||||
|
||||
msgid "Switching application language while some presets are modified."
|
||||
msgstr "Смена языка приложения при изменении некоторых профилей."
|
||||
|
||||
msgid "Asia-Pacific"
|
||||
msgstr "Азиатско-Тихоокеанский"
|
||||
@@ -9785,6 +9770,9 @@ msgstr "Перейти на веб-страницу публикации мод
|
||||
msgid "Note: The preparation may take several minutes. Please be patient."
|
||||
msgstr "Примечание: подготовка может занять несколько минут. Пожалуйста, наберитесь терпения."
|
||||
|
||||
msgid "Publish"
|
||||
msgstr "Опубликовать"
|
||||
|
||||
msgid "Publish was canceled"
|
||||
msgstr "Публикация была отменена"
|
||||
|
||||
@@ -9800,64 +9788,6 @@ msgstr "Отправка данных"
|
||||
msgid "Jump to webpage"
|
||||
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
|
||||
msgid "Save %s as"
|
||||
msgstr "Сохранить %s как"
|
||||
@@ -21611,15 +21541,6 @@ msgstr "Это действие необратимо. Продолжить?"
|
||||
msgid "Skipping objects."
|
||||
msgstr "Исключение объектов."
|
||||
|
||||
msgid "Material Ratio"
|
||||
msgstr ""
|
||||
|
||||
msgid "Model Height"
|
||||
msgstr ""
|
||||
|
||||
msgid "Ratio"
|
||||
msgstr ""
|
||||
|
||||
msgid "Select Filament"
|
||||
msgstr "Выбрать материал"
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Orca Slicer\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"
|
||||
"MIME-Version: 1.0\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."
|
||||
msgstr "%s har tagits bort."
|
||||
|
||||
msgid "Switching application language"
|
||||
msgstr "Byt applikationsspråk"
|
||||
|
||||
msgid "Select the language"
|
||||
msgstr "Välj språk"
|
||||
@@ -5385,10 +5387,6 @@ msgstr ""
|
||||
"JA -Ändra dessa inställningar och möjliggör Spiral läge automatiskt\n"
|
||||
"NEJ -Avbryt Spiral läge denna gång"
|
||||
|
||||
# AI Translated
|
||||
msgid "N/A"
|
||||
msgstr "Ej tillämpligt"
|
||||
|
||||
msgid "Printing"
|
||||
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
|
||||
msgid ""
|
||||
"Is it %s%% or %s %s?"
|
||||
"Is it %s%% or %s %s?\n"
|
||||
"YES for %s%%, \n"
|
||||
"NO for %s %s."
|
||||
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
|
||||
#, 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%\""
|
||||
msgstr "Ogiltligt format. Förväntat vector format: \"%1%\""
|
||||
|
||||
# AI Translated
|
||||
msgid "N/A"
|
||||
msgstr "Ej tillämpligt"
|
||||
|
||||
# AI Translated
|
||||
msgid "System agents"
|
||||
msgstr "Systemagenter"
|
||||
@@ -6966,12 +6972,6 @@ msgstr "Spara Projekt som"
|
||||
msgid "Save current project as"
|
||||
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"
|
||||
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"
|
||||
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!"
|
||||
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."
|
||||
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
|
||||
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."
|
||||
@@ -9688,6 +9671,8 @@ msgstr "Fortsätta?"
|
||||
msgid "Language selection"
|
||||
msgstr "Språkval"
|
||||
|
||||
msgid "Switching application language while some presets are modified."
|
||||
msgstr "Byter språk medans inställningarna ändras."
|
||||
|
||||
msgid "Asia-Pacific"
|
||||
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."
|
||||
msgstr "Notera: Förberedelserna kan ta flera minuter. Vänligen vänta."
|
||||
|
||||
msgid "Publish"
|
||||
msgstr "Publicera"
|
||||
|
||||
msgid "Publish was canceled"
|
||||
msgstr "Publiceringen avbröts"
|
||||
|
||||
@@ -10771,64 +10759,6 @@ msgstr "Laddar upp data"
|
||||
msgid "Jump to webpage"
|
||||
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
|
||||
msgid "Save %s as"
|
||||
msgstr "Spara %s som"
|
||||
@@ -23583,15 +23513,6 @@ msgstr "Åtgärden kan inte ångras. Vill du fortsätta?"
|
||||
msgid "Skipping objects."
|
||||
msgstr "Hoppar över objekt."
|
||||
|
||||
msgid "Material Ratio"
|
||||
msgstr ""
|
||||
|
||||
msgid "Model Height"
|
||||
msgstr ""
|
||||
|
||||
msgid "Ratio"
|
||||
msgstr ""
|
||||
|
||||
msgid "Select Filament"
|
||||
msgstr "Välj filament"
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Orca Slicer\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"
|
||||
"Last-Translator: Icezaza\n"
|
||||
"Language-Team: Thai\n"
|
||||
@@ -2456,6 +2456,8 @@ msgstr "มีอัปเดตพร้อมใช้งาน เปิด
|
||||
msgid "%s has been removed."
|
||||
msgstr "ลบ %s แล้ว"
|
||||
|
||||
msgid "Switching application language"
|
||||
msgstr "การเปลี่ยนภาษาของแอปพลิเคชัน"
|
||||
|
||||
msgid "Select the language"
|
||||
msgstr "เลือกภาษา"
|
||||
@@ -4885,9 +4887,6 @@ msgstr ""
|
||||
"ใช่ - เปลี่ยนการตั้งค่าเหล่านี้และเปิดใช้งานโหมดเกลียวโดยอัตโนมัติ\n"
|
||||
"ไม่ - เลิกใช้โหมดเกลียวในครั้งนี้"
|
||||
|
||||
msgid "N/A"
|
||||
msgstr "ไม่มี"
|
||||
|
||||
msgid "Printing"
|
||||
msgstr "กำลังพิมพ์"
|
||||
|
||||
@@ -5319,9 +5318,13 @@ msgstr "ค่า %s อยู่นอกช่วง ช่วงที่ถ
|
||||
|
||||
#, c-format, boost-format
|
||||
msgid ""
|
||||
"Is it %s%% or %s %s?"
|
||||
"Is it %s%% or %s %s?\n"
|
||||
"YES for %s%%, \n"
|
||||
"NO for %s %s."
|
||||
msgstr ""
|
||||
"มันคือ %s%% หรือ %s %s?"
|
||||
"มันคือ %s%% หรือ %s %s?\n"
|
||||
"ใช่สำหรับ %s%% \n"
|
||||
"ไม่ สำหรับ %s %s"
|
||||
|
||||
#, boost-format
|
||||
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%\""
|
||||
msgstr "รูปแบบไม่ถูกต้อง รูปแบบเวกเตอร์ที่ต้องการ: \"%1%\""
|
||||
|
||||
msgid "N/A"
|
||||
msgstr "ไม่มี"
|
||||
|
||||
# AI Translated
|
||||
msgid "System agents"
|
||||
msgstr "เอเจนต์ระบบ"
|
||||
@@ -6298,12 +6304,6 @@ msgstr "บันทึกโปรเจกต์เป็น"
|
||||
msgid "Save current project as"
|
||||
msgstr "บันทึกโครงการปัจจุบันเป็น"
|
||||
|
||||
msgid "Publish 3MF"
|
||||
msgstr ""
|
||||
|
||||
msgid "Export a 3MF file with the selected settings embedded"
|
||||
msgstr ""
|
||||
|
||||
msgid "Import 3MF/STL/STEP/SVG/OBJ/AMF"
|
||||
msgstr "นำเข้า 3MF/STL/STEP/SVG/OBJ/AMF"
|
||||
|
||||
@@ -8118,12 +8118,6 @@ msgstr "โปรดยืนยันว่ารหัส G ภายในค
|
||||
msgid "Customized Preset"
|
||||
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!"
|
||||
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."
|
||||
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."
|
||||
msgstr "ไม่ได้ตั้งค่าประเภทหัวฉีด โปรดตั้งหัวฉีดแล้วลองอีกครั้ง"
|
||||
|
||||
@@ -8752,6 +8735,8 @@ msgstr "ต้องการดำเนินการต่อหรือไ
|
||||
msgid "Language selection"
|
||||
msgstr "การเลือกภาษา"
|
||||
|
||||
msgid "Switching application language while some presets are modified."
|
||||
msgstr "การสลับภาษาของแอปพลิเคชันในขณะที่มีการแก้ไขค่าที่ตั้งไว้บางส่วน"
|
||||
|
||||
msgid "Asia-Pacific"
|
||||
msgstr "เอเชียแปซิฟิก"
|
||||
@@ -9682,6 +9667,9 @@ msgstr "ข้ามไปที่โมเดลเผยแพร่หน้
|
||||
msgid "Note: The preparation may take several minutes. Please be patient."
|
||||
msgstr "หมายเหตุ: การเตรียมการอาจใช้เวลาหลายนาที กรุณาอดทน."
|
||||
|
||||
msgid "Publish"
|
||||
msgstr "เผยแพร่"
|
||||
|
||||
msgid "Publish was canceled"
|
||||
msgstr "การเผยแพร่ถูกยกเลิก"
|
||||
|
||||
@@ -9697,64 +9685,6 @@ msgstr "กำลังอัพโหลดข้อมูล"
|
||||
msgid "Jump to webpage"
|
||||
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
|
||||
msgid "Save %s as"
|
||||
msgstr "บันทึก %s เป็น"
|
||||
@@ -20961,15 +20891,6 @@ msgstr "การทำงานนี้ไม่สามารถย้อน
|
||||
msgid "Skipping objects."
|
||||
msgstr "ข้ามวัตถุ"
|
||||
|
||||
msgid "Material Ratio"
|
||||
msgstr ""
|
||||
|
||||
msgid "Model Height"
|
||||
msgstr ""
|
||||
|
||||
msgid "Ratio"
|
||||
msgstr ""
|
||||
|
||||
msgid "Select Filament"
|
||||
msgstr "เลือกเส้นพลาสติก"
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Orca Slicer\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"
|
||||
"Last-Translator: GlauTech\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."
|
||||
msgstr "%s kaldırıldı."
|
||||
|
||||
msgid "Switching application language"
|
||||
msgstr "Uygulama dilini değiştirme"
|
||||
|
||||
msgid "Select the language"
|
||||
msgstr "Dili seçin"
|
||||
@@ -4947,10 +4949,6 @@ msgstr ""
|
||||
"Evet - Bu ayarları değiştirin ve spiral modunu otomatik olarak etkinleştirin\n"
|
||||
"Hayır - Bu sefer spiral modunu kullanmaktan vazgeçin"
|
||||
|
||||
# AI Translated
|
||||
msgid "N/A"
|
||||
msgstr "Yok"
|
||||
|
||||
msgid "Printing"
|
||||
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
|
||||
msgid ""
|
||||
"Is it %s%% or %s %s?"
|
||||
"Is it %s%% or %s %s?\n"
|
||||
"YES for %s%%, \n"
|
||||
"NO for %s %s."
|
||||
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
|
||||
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%\""
|
||||
msgstr "Geçersiz format. Beklenen vektör formatı: \"%1%\""
|
||||
|
||||
# AI Translated
|
||||
msgid "N/A"
|
||||
msgstr "Yok"
|
||||
|
||||
# AI Translated
|
||||
msgid "System agents"
|
||||
msgstr "Sistem aracıları"
|
||||
@@ -6366,12 +6372,6 @@ msgstr "Projeyi farklı kaydet"
|
||||
msgid "Save current project as"
|
||||
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"
|
||||
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"
|
||||
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!"
|
||||
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."
|
||||
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."
|
||||
msgstr "Nozul tipi ayarlanmamış. Lütfen nozulu ayarlayın ve tekrar deneyin."
|
||||
|
||||
@@ -8854,6 +8837,8 @@ msgstr "Devam etmek istiyor musun?"
|
||||
msgid "Language selection"
|
||||
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"
|
||||
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."
|
||||
msgstr "Not: Hazırlık birkaç dakika sürebilir. Lütfen sabırlı olun."
|
||||
|
||||
msgid "Publish"
|
||||
msgstr "Yayınla"
|
||||
|
||||
msgid "Publish was canceled"
|
||||
msgstr "Yayınlama iptal edildi"
|
||||
|
||||
@@ -9841,64 +9829,6 @@ msgstr "Veriler yükleniyor"
|
||||
msgid "Jump to webpage"
|
||||
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
|
||||
msgid "Save %s as"
|
||||
msgstr "%s'yi farklı kaydet"
|
||||
@@ -21388,15 +21318,6 @@ msgstr "Bu eylem geri alınamaz. Devam etmek?"
|
||||
msgid "Skipping objects."
|
||||
msgstr "Nesneleri atlama."
|
||||
|
||||
msgid "Material Ratio"
|
||||
msgstr ""
|
||||
|
||||
msgid "Model Height"
|
||||
msgstr ""
|
||||
|
||||
msgid "Ratio"
|
||||
msgstr ""
|
||||
|
||||
msgid "Select Filament"
|
||||
msgstr "Filament Seçin"
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: orcaslicerua\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"
|
||||
"Last-Translator: Andrij Mizyk <andm1zyk@proton.me>\n"
|
||||
"Language-Team: Ukrainian\n"
|
||||
@@ -2424,6 +2424,8 @@ msgstr "Доступне оновлення. Відкрийте вікно на
|
||||
msgid "%s has been removed."
|
||||
msgstr "%s вилучено."
|
||||
|
||||
msgid "Switching application language"
|
||||
msgstr "Зміна мови програми"
|
||||
|
||||
msgid "Select the language"
|
||||
msgstr "Вибрати мову"
|
||||
@@ -4885,9 +4887,6 @@ msgstr ""
|
||||
"Так – змінити ці налаштування та автоматично включити режим спіральна ваза\n"
|
||||
"Ні - цього разу відмовитися від використання режиму спіральна ваза"
|
||||
|
||||
msgid "N/A"
|
||||
msgstr "Н/Д"
|
||||
|
||||
msgid "Printing"
|
||||
msgstr "Друк"
|
||||
|
||||
@@ -5330,9 +5329,13 @@ msgstr "Значення %s знаходиться за межами діапа
|
||||
|
||||
#, c-format, boost-format
|
||||
msgid ""
|
||||
"Is it %s%% or %s %s?"
|
||||
"Is it %s%% or %s %s?\n"
|
||||
"YES for %s%%, \n"
|
||||
"NO for %s %s."
|
||||
msgstr ""
|
||||
"Це %s%% або %s %s?"
|
||||
"Це %s%% або %s %s?\n"
|
||||
"ТАК для %s%%, \n"
|
||||
"НІ для %s %s."
|
||||
|
||||
#, boost-format
|
||||
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%\""
|
||||
msgstr "Невірний формат. Очікуваний векторний формат: \"%1%\""
|
||||
|
||||
msgid "N/A"
|
||||
msgstr "Н/Д"
|
||||
|
||||
# AI Translated
|
||||
msgid "System agents"
|
||||
msgstr "Системні агенти"
|
||||
@@ -6335,12 +6341,6 @@ msgstr "Зберегти проєкт як"
|
||||
msgid "Save current project as"
|
||||
msgstr "Зберегти поточний проєкт як"
|
||||
|
||||
msgid "Publish 3MF"
|
||||
msgstr ""
|
||||
|
||||
msgid "Export a 3MF file with the selected settings embedded"
|
||||
msgstr ""
|
||||
|
||||
msgid "Import 3MF/STL/STEP/SVG/OBJ/AMF"
|
||||
msgstr "Імпорт 3MF/STL/STEP/SVG/OBJ/AMF"
|
||||
|
||||
@@ -8223,12 +8223,6 @@ msgstr "Будь ласка, підтвердьте, що G-коди в цих
|
||||
msgid "Customized Preset"
|
||||
msgstr "Пристосований пресет"
|
||||
|
||||
msgid "Some published settings could not be applied:"
|
||||
msgstr ""
|
||||
|
||||
msgid "Some filament slots were changed:"
|
||||
msgstr ""
|
||||
|
||||
# AI Translated
|
||||
msgid "Component name(s) inside step file not in UTF-8 format!"
|
||||
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."
|
||||
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."
|
||||
msgstr "Тип сопла не встановлений. Будь ласка, оберіть сопло та спробуйте ще раз."
|
||||
|
||||
@@ -8868,6 +8851,8 @@ msgstr "Ви хочете продовжувати?"
|
||||
msgid "Language selection"
|
||||
msgstr "Вибір мови"
|
||||
|
||||
msgid "Switching application language while some presets are modified."
|
||||
msgstr "Зміна мови програми при зміні деяких профілів."
|
||||
|
||||
msgid "Asia-Pacific"
|
||||
msgstr "Азіатсько-Тихоокеанський регіон"
|
||||
@@ -9829,6 +9814,9 @@ msgstr "Перейти на веб-сторінку публікації мод
|
||||
msgid "Note: The preparation may take several minutes. Please be patient."
|
||||
msgstr "Примітка. Підготовка може тривати кілька хвилин. Будь ласка, будьте терплячі."
|
||||
|
||||
msgid "Publish"
|
||||
msgstr "Публікувати"
|
||||
|
||||
msgid "Publish was canceled"
|
||||
msgstr "Публікація скасована"
|
||||
|
||||
@@ -9844,64 +9832,6 @@ msgstr "Відвантаження даних"
|
||||
msgid "Jump to webpage"
|
||||
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
|
||||
msgid "Save %s as"
|
||||
msgstr "Зберегти %s як"
|
||||
@@ -21565,15 +21495,6 @@ msgstr "Дію не можливо завершити. Продовжити?"
|
||||
msgid "Skipping objects."
|
||||
msgstr "Пропускання обʼєктів."
|
||||
|
||||
msgid "Material Ratio"
|
||||
msgstr ""
|
||||
|
||||
msgid "Model Height"
|
||||
msgstr ""
|
||||
|
||||
msgid "Ratio"
|
||||
msgstr ""
|
||||
|
||||
msgid "Select Filament"
|
||||
msgstr "Вибрати філамент"
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Orca Slicer\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"
|
||||
"Last-Translator: \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."
|
||||
msgstr "%s đã bị xóa."
|
||||
|
||||
msgid "Switching application language"
|
||||
msgstr "Đang chuyển ngôn ngữ ứng dụng"
|
||||
|
||||
msgid "Select the language"
|
||||
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"
|
||||
"No - Từ bỏ dùng chế độ spiral lần này"
|
||||
|
||||
# AI Translated
|
||||
msgid "N/A"
|
||||
msgstr "N/A"
|
||||
|
||||
msgid "Printing"
|
||||
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
|
||||
msgid ""
|
||||
"Is it %s%% or %s %s?"
|
||||
"Is it %s%% or %s %s?\n"
|
||||
"YES for %s%%, \n"
|
||||
"NO for %s %s."
|
||||
msgstr ""
|
||||
"Là %s%% hay %s %s?"
|
||||
"Là %s%% hay %s %s?\n"
|
||||
"YES cho %s%%, \n"
|
||||
"NO cho %s %s."
|
||||
|
||||
#, boost-format
|
||||
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%\""
|
||||
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
|
||||
msgid "System agents"
|
||||
msgstr "Tác nhân hệ thống"
|
||||
@@ -6683,12 +6689,6 @@ msgstr "Lưu dự án thành"
|
||||
msgid "Save current project as"
|
||||
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"
|
||||
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"
|
||||
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!"
|
||||
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."
|
||||
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
|
||||
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."
|
||||
@@ -9303,6 +9286,8 @@ msgstr "Bạn có muốn tiếp tục?"
|
||||
msgid "Language selection"
|
||||
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"
|
||||
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."
|
||||
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"
|
||||
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"
|
||||
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
|
||||
msgid "Save %s as"
|
||||
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."
|
||||
msgstr "Đang bỏ qua các vật thể."
|
||||
|
||||
msgid "Material Ratio"
|
||||
msgstr ""
|
||||
|
||||
msgid "Model Height"
|
||||
msgstr ""
|
||||
|
||||
msgid "Ratio"
|
||||
msgstr ""
|
||||
|
||||
# AI Translated
|
||||
msgid "Select Filament"
|
||||
msgstr "Chọn filament"
|
||||
|
||||
@@ -6,7 +6,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Slic3rPE\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"
|
||||
"Last-Translator: Handle <mail@bysb.net>\n"
|
||||
"Language-Team: \n"
|
||||
@@ -2361,6 +2361,8 @@ msgstr "有更新可用。打开预设包对话框进行更新。"
|
||||
msgid "%s has been removed."
|
||||
msgstr "%s 已被移除。"
|
||||
|
||||
msgid "Switching application language"
|
||||
msgstr "切换应用程序语言"
|
||||
|
||||
msgid "Select the language"
|
||||
msgstr "选择语言"
|
||||
@@ -4741,9 +4743,6 @@ msgstr ""
|
||||
"是 - 自动调整这些设置并开启旋转模式\n"
|
||||
"否 - 暂不使用旋转模式"
|
||||
|
||||
msgid "N/A"
|
||||
msgstr "不适用"
|
||||
|
||||
msgid "Printing"
|
||||
msgstr "打印中"
|
||||
|
||||
@@ -5175,9 +5174,13 @@ msgstr "值 %s 超出了范围,有效的范围是从 %d 到 %d 。"
|
||||
|
||||
#, c-format, boost-format
|
||||
msgid ""
|
||||
"Is it %s%% or %s %s?"
|
||||
"Is it %s%% or %s %s?\n"
|
||||
"YES for %s%%, \n"
|
||||
"NO for %s %s."
|
||||
msgstr ""
|
||||
"%s%%还是%s %s?"
|
||||
"%s%%还是%s %s?\n"
|
||||
"是:%s%%\n"
|
||||
"否:%s %s"
|
||||
|
||||
#, boost-format
|
||||
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%\""
|
||||
msgstr "无效格式,应该是\"%1%\"这种数组格式"
|
||||
|
||||
msgid "N/A"
|
||||
msgstr "不适用"
|
||||
|
||||
# AI Translated
|
||||
msgid "System agents"
|
||||
msgstr "系统代理"
|
||||
@@ -6153,12 +6159,6 @@ msgstr "项目另存为"
|
||||
msgid "Save current project as"
|
||||
msgstr "项目另存为"
|
||||
|
||||
msgid "Publish 3MF"
|
||||
msgstr ""
|
||||
|
||||
msgid "Export a 3MF file with the selected settings embedded"
|
||||
msgstr ""
|
||||
|
||||
msgid "Import 3MF/STL/STEP/SVG/OBJ/AMF"
|
||||
msgstr "导入 3MF/STL/STEP/SVG/OBJ/AMF"
|
||||
|
||||
@@ -7949,12 +7949,6 @@ msgstr "请确认这些预设中的G-codes是否安全,以防止对机器造
|
||||
msgid "Customized Preset"
|
||||
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!"
|
||||
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."
|
||||
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."
|
||||
msgstr "未设置喷嘴类型。请设置喷嘴并重试。"
|
||||
|
||||
@@ -8581,6 +8564,8 @@ msgstr "是否继续?"
|
||||
msgid "Language selection"
|
||||
msgstr "语言选择"
|
||||
|
||||
msgid "Switching application language while some presets are modified."
|
||||
msgstr "在切换应用语言之前发现某些参数预设有更改。"
|
||||
|
||||
msgid "Asia-Pacific"
|
||||
msgstr "亚太"
|
||||
@@ -9504,6 +9489,9 @@ msgstr "跳转到发布页面"
|
||||
msgid "Note: The preparation may take several minutes. Please be patient."
|
||||
msgstr "提示:发布前需要一些准备时间,请耐心等待。"
|
||||
|
||||
msgid "Publish"
|
||||
msgstr "发布"
|
||||
|
||||
msgid "Publish was canceled"
|
||||
msgstr "发布已取消"
|
||||
|
||||
@@ -9519,64 +9507,6 @@ msgstr "正在上传数据"
|
||||
msgid "Jump to webpage"
|
||||
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
|
||||
msgid "Save %s as"
|
||||
msgstr "另存%s为"
|
||||
@@ -20709,15 +20639,6 @@ msgstr "此操作无法撤消。继续?"
|
||||
msgid "Skipping objects."
|
||||
msgstr "跳过对象。"
|
||||
|
||||
msgid "Material Ratio"
|
||||
msgstr ""
|
||||
|
||||
msgid "Model Height"
|
||||
msgstr ""
|
||||
|
||||
msgid "Ratio"
|
||||
msgstr ""
|
||||
|
||||
msgid "Select Filament"
|
||||
msgstr "选择耗材"
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Orca Slicer\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"
|
||||
"Last-Translator: tntchn <15895303+tntchn@users.noreply.github.com>\n"
|
||||
"Language-Team: \n"
|
||||
@@ -2425,6 +2425,8 @@ msgstr "有可用的更新。請開啟預設組合對話框進行更新。"
|
||||
msgid "%s has been removed."
|
||||
msgstr "%s 已移除。"
|
||||
|
||||
msgid "Switching application language"
|
||||
msgstr "切換應用程式語言"
|
||||
|
||||
msgid "Select the language"
|
||||
msgstr "選擇語言"
|
||||
@@ -4870,9 +4872,6 @@ msgstr ""
|
||||
"是 - 自動調整這些設定並啟用花瓶模式\n"
|
||||
"否 - 不使用花瓶模式"
|
||||
|
||||
msgid "N/A"
|
||||
msgstr "不適用"
|
||||
|
||||
msgid "Printing"
|
||||
msgstr "列印中"
|
||||
|
||||
@@ -5304,9 +5303,13 @@ msgstr "數值 %s 超出範圍。有效範圍是從 %d 到 %d。"
|
||||
|
||||
#, c-format, boost-format
|
||||
msgid ""
|
||||
"Is it %s%% or %s %s?"
|
||||
"Is it %s%% or %s %s?\n"
|
||||
"YES for %s%%, \n"
|
||||
"NO for %s %s."
|
||||
msgstr ""
|
||||
"是 %s%% 還是 %s %s?"
|
||||
"是 %s%% 還是 %s %s?\n"
|
||||
"選『是』代表 %s%%,\n"
|
||||
"選『否』代表 %s %s。"
|
||||
|
||||
#, boost-format
|
||||
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%\""
|
||||
msgstr "無效格式,應該是「%1%」這種格式"
|
||||
|
||||
msgid "N/A"
|
||||
msgstr "不適用"
|
||||
|
||||
# AI Translated
|
||||
msgid "System agents"
|
||||
msgstr "系統代理程式"
|
||||
@@ -6283,12 +6289,6 @@ msgstr "另存專案為"
|
||||
msgid "Save current project as"
|
||||
msgstr "將目前專案另存為"
|
||||
|
||||
msgid "Publish 3MF"
|
||||
msgstr ""
|
||||
|
||||
msgid "Export a 3MF file with the selected settings embedded"
|
||||
msgstr ""
|
||||
|
||||
msgid "Import 3MF/STL/STEP/SVG/OBJ/AMF"
|
||||
msgstr "匯入 3MF/STL/STEP/SVG/OBJ/AMF"
|
||||
|
||||
@@ -8110,12 +8110,6 @@ msgstr "請確認這些預設中的 G-code 是安全的,以防止對列印裝
|
||||
msgid "Customized Preset"
|
||||
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!"
|
||||
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."
|
||||
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."
|
||||
msgstr "噴嘴類型尚未設定。請設定噴嘴後再試一次。"
|
||||
|
||||
@@ -8747,6 +8730,8 @@ msgstr "是否繼續?"
|
||||
msgid "Language selection"
|
||||
msgstr "語言選擇"
|
||||
|
||||
msgid "Switching application language while some presets are modified."
|
||||
msgstr "在切換應用程式語言之前發現某些參數預設有更改。"
|
||||
|
||||
msgid "Asia-Pacific"
|
||||
msgstr "亞太"
|
||||
@@ -9677,6 +9662,9 @@ msgstr "發布頁面"
|
||||
msgid "Note: The preparation may take several minutes. Please be patient."
|
||||
msgstr "提示:發布前需要一些準備時間,請耐心等待。"
|
||||
|
||||
msgid "Publish"
|
||||
msgstr "發布"
|
||||
|
||||
msgid "Publish was canceled"
|
||||
msgstr "發布已取消"
|
||||
|
||||
@@ -9692,64 +9680,6 @@ msgstr "正在上傳資料"
|
||||
msgid "Jump to webpage"
|
||||
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
|
||||
msgid "Save %s as"
|
||||
msgstr "另存 %s 為"
|
||||
@@ -20902,15 +20832,6 @@ msgstr "此操作無法撤消。繼續?"
|
||||
msgid "Skipping objects."
|
||||
msgstr "跳過物件。"
|
||||
|
||||
msgid "Material Ratio"
|
||||
msgstr ""
|
||||
|
||||
msgid "Model Height"
|
||||
msgstr ""
|
||||
|
||||
msgid "Ratio"
|
||||
msgstr ""
|
||||
|
||||
msgid "Select Filament"
|
||||
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">
|
||||
<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"/>
|
||||
<svg width="25" height="25" xmlns="http://www.w3.org/2000/svg" fill="none">
|
||||
|
||||
<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>
|
||||
|
Before Width: | Height: | Size: 332 B After Width: | Height: | Size: 312 B |
+6
@@ -324,6 +324,12 @@
|
||||
"slow_down_min_speed": [
|
||||
"20"
|
||||
],
|
||||
"supertack_plate_temp": [
|
||||
"35"
|
||||
],
|
||||
"supertack_plate_temp_initial_layer": [
|
||||
"35"
|
||||
],
|
||||
"support_material_interface_fan_speed": [
|
||||
"-1"
|
||||
],
|
||||
|
||||
+6
@@ -318,6 +318,12 @@
|
||||
"slow_down_min_speed": [
|
||||
"20"
|
||||
],
|
||||
"supertack_plate_temp": [
|
||||
"35"
|
||||
],
|
||||
"supertack_plate_temp_initial_layer": [
|
||||
"35"
|
||||
],
|
||||
"support_material_interface_fan_speed": [
|
||||
"-1"
|
||||
],
|
||||
|
||||
+6
@@ -324,6 +324,12 @@
|
||||
"slow_down_min_speed": [
|
||||
"20"
|
||||
],
|
||||
"supertack_plate_temp": [
|
||||
"35"
|
||||
],
|
||||
"supertack_plate_temp_initial_layer": [
|
||||
"35"
|
||||
],
|
||||
"support_material_interface_fan_speed": [
|
||||
"-1"
|
||||
],
|
||||
|
||||
+6
@@ -324,6 +324,12 @@
|
||||
"slow_down_min_speed": [
|
||||
"20"
|
||||
],
|
||||
"supertack_plate_temp": [
|
||||
"35"
|
||||
],
|
||||
"supertack_plate_temp_initial_layer": [
|
||||
"35"
|
||||
],
|
||||
"support_material_interface_fan_speed": [
|
||||
"-1"
|
||||
],
|
||||
|
||||
@@ -309,6 +309,12 @@
|
||||
"slow_down_min_speed": [
|
||||
"20"
|
||||
],
|
||||
"supertack_plate_temp": [
|
||||
"35"
|
||||
],
|
||||
"supertack_plate_temp_initial_layer": [
|
||||
"35"
|
||||
],
|
||||
"support_material_interface_fan_speed": [
|
||||
"-1"
|
||||
],
|
||||
|
||||
+6
@@ -318,6 +318,12 @@
|
||||
"slow_down_min_speed": [
|
||||
"20"
|
||||
],
|
||||
"supertack_plate_temp": [
|
||||
"35"
|
||||
],
|
||||
"supertack_plate_temp_initial_layer": [
|
||||
"35"
|
||||
],
|
||||
"support_material_interface_fan_speed": [
|
||||
"-1"
|
||||
],
|
||||
|
||||
+6
@@ -324,6 +324,12 @@
|
||||
"slow_down_min_speed": [
|
||||
"20"
|
||||
],
|
||||
"supertack_plate_temp": [
|
||||
"35"
|
||||
],
|
||||
"supertack_plate_temp_initial_layer": [
|
||||
"35"
|
||||
],
|
||||
"support_material_interface_fan_speed": [
|
||||
"-1"
|
||||
],
|
||||
|
||||
+6
@@ -324,6 +324,12 @@
|
||||
"slow_down_min_speed": [
|
||||
"10"
|
||||
],
|
||||
"supertack_plate_temp": [
|
||||
"35"
|
||||
],
|
||||
"supertack_plate_temp_initial_layer": [
|
||||
"35"
|
||||
],
|
||||
"support_material_interface_fan_speed": [
|
||||
"-1"
|
||||
],
|
||||
|
||||
+6
@@ -318,6 +318,12 @@
|
||||
"slow_down_min_speed": [
|
||||
"20"
|
||||
],
|
||||
"supertack_plate_temp": [
|
||||
"35"
|
||||
],
|
||||
"supertack_plate_temp_initial_layer": [
|
||||
"35"
|
||||
],
|
||||
"support_material_interface_fan_speed": [
|
||||
"-1"
|
||||
],
|
||||
|
||||
@@ -309,6 +309,12 @@
|
||||
"slow_down_min_speed": [
|
||||
"20"
|
||||
],
|
||||
"supertack_plate_temp": [
|
||||
"35"
|
||||
],
|
||||
"supertack_plate_temp_initial_layer": [
|
||||
"35"
|
||||
],
|
||||
"support_material_interface_fan_speed": [
|
||||
"-1"
|
||||
],
|
||||
|
||||
@@ -25,12 +25,6 @@
|
||||
"hot_plate_temp_initial_layer": [
|
||||
"80"
|
||||
],
|
||||
"supertack_plate_temp": [
|
||||
"60"
|
||||
],
|
||||
"supertack_plate_temp_initial_layer": [
|
||||
"60"
|
||||
],
|
||||
"slow_down_for_layer_cooling": [
|
||||
"1"
|
||||
],
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "Flashforge",
|
||||
"url": "",
|
||||
"version": "02.04.00.06",
|
||||
"version": "02.04.00.05",
|
||||
"force_update": "0",
|
||||
"description": "Flashforge configurations",
|
||||
"machine_model_list": [
|
||||
@@ -439,22 +439,6 @@
|
||||
"name": "0.14mm Standard @FF AD5X 0.25 nozzle",
|
||||
"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",
|
||||
"sub_path": "process/0.14mm Standard @Flashforge AD5M 0.25 Nozzle.json"
|
||||
@@ -2919,10 +2903,6 @@
|
||||
"name": "Flashforge AD5X 0.4 nozzle",
|
||||
"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",
|
||||
"sub_path": "machine/Flashforge Creator 5 0.4 nozzle.json"
|
||||
@@ -2935,10 +2915,6 @@
|
||||
"name": "Flashforge Creator 5 0.8 nozzle",
|
||||
"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",
|
||||
"sub_path": "machine/Flashforge Creator 5 Pro 0.4 nozzle.json"
|
||||
|
||||
@@ -87,12 +87,6 @@
|
||||
"support_material_interface_fan_speed": [
|
||||
"90"
|
||||
],
|
||||
"supertack_plate_temp": [
|
||||
"60"
|
||||
],
|
||||
"supertack_plate_temp_initial_layer": [
|
||||
"60"
|
||||
],
|
||||
"temperature_vitrification": [
|
||||
"70"
|
||||
]
|
||||
|
||||
@@ -93,12 +93,6 @@
|
||||
"support_material_interface_fan_speed": [
|
||||
"90"
|
||||
],
|
||||
"supertack_plate_temp": [
|
||||
"60"
|
||||
],
|
||||
"supertack_plate_temp_initial_layer": [
|
||||
"60"
|
||||
],
|
||||
"temperature_vitrification": [
|
||||
"70"
|
||||
],
|
||||
|
||||
@@ -90,12 +90,6 @@
|
||||
"support_material_interface_fan_speed": [
|
||||
"90"
|
||||
],
|
||||
"supertack_plate_temp": [
|
||||
"60"
|
||||
],
|
||||
"supertack_plate_temp_initial_layer": [
|
||||
"60"
|
||||
],
|
||||
"temperature_vitrification": [
|
||||
"70"
|
||||
]
|
||||
|
||||
@@ -96,12 +96,6 @@
|
||||
"support_material_interface_fan_speed": [
|
||||
"90"
|
||||
],
|
||||
"supertack_plate_temp": [
|
||||
"60"
|
||||
],
|
||||
"supertack_plate_temp_initial_layer": [
|
||||
"60"
|
||||
],
|
||||
"temperature_vitrification": [
|
||||
"70"
|
||||
],
|
||||
|
||||
@@ -90,12 +90,6 @@
|
||||
"support_material_interface_fan_speed": [
|
||||
"90"
|
||||
],
|
||||
"supertack_plate_temp": [
|
||||
"60"
|
||||
],
|
||||
"supertack_plate_temp_initial_layer": [
|
||||
"60"
|
||||
],
|
||||
"temperature_vitrification": [
|
||||
"70"
|
||||
]
|
||||
|
||||
@@ -96,12 +96,6 @@
|
||||
"support_material_interface_fan_speed": [
|
||||
"90"
|
||||
],
|
||||
"supertack_plate_temp": [
|
||||
"60"
|
||||
],
|
||||
"supertack_plate_temp_initial_layer": [
|
||||
"60"
|
||||
],
|
||||
"temperature_vitrification": [
|
||||
"70"
|
||||
],
|
||||
|
||||
@@ -28,12 +28,6 @@
|
||||
"textured_plate_temp_initial_layer": [
|
||||
"85"
|
||||
],
|
||||
"supertack_plate_temp": [
|
||||
"60"
|
||||
],
|
||||
"supertack_plate_temp_initial_layer": [
|
||||
"60"
|
||||
],
|
||||
"slow_down_for_layer_cooling": [
|
||||
"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",
|
||||
"name": "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",
|
||||
"family": "Flashforge",
|
||||
"bed_model": "flashforge_c5_buildplate_model.stl",
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
"type": "machine_model",
|
||||
"name": "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",
|
||||
"family": "Flashforge",
|
||||
"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": [
|
||||
"45"
|
||||
],
|
||||
"chamber_temperature": [
|
||||
"55"
|
||||
],
|
||||
"close_fan_the_first_x_layers": [
|
||||
"3"
|
||||
],
|
||||
|
||||
@@ -14,15 +14,9 @@
|
||||
"box_temperature": [
|
||||
"55"
|
||||
],
|
||||
"chamber_temperature": [
|
||||
"55"
|
||||
],
|
||||
"close_fan_the_first_x_layers": [
|
||||
"3"
|
||||
],
|
||||
"during_print_exhaust_fan_speed": [
|
||||
"0"
|
||||
],
|
||||
"cool_plate_temp_initial_layer": [
|
||||
"60"
|
||||
],
|
||||
|
||||
@@ -14,15 +14,9 @@
|
||||
"box_temperature": [
|
||||
"60"
|
||||
],
|
||||
"chamber_temperature": [
|
||||
"55"
|
||||
],
|
||||
"close_fan_the_first_x_layers": [
|
||||
"3"
|
||||
],
|
||||
"during_print_exhaust_fan_speed": [
|
||||
"0"
|
||||
],
|
||||
"cool_plate_temp_initial_layer": [
|
||||
"80"
|
||||
],
|
||||
|
||||
@@ -14,15 +14,9 @@
|
||||
"box_temperature": [
|
||||
"60"
|
||||
],
|
||||
"chamber_temperature": [
|
||||
"55"
|
||||
],
|
||||
"close_fan_the_first_x_layers": [
|
||||
"3"
|
||||
],
|
||||
"during_print_exhaust_fan_speed": [
|
||||
"0"
|
||||
],
|
||||
"cool_plate_temp_initial_layer": [
|
||||
"80"
|
||||
],
|
||||
|
||||
@@ -14,8 +14,8 @@
|
||||
"box_temperature": [
|
||||
"65"
|
||||
],
|
||||
"chamber_temperature": [
|
||||
"55"
|
||||
"chamber_temperatures": [
|
||||
"0"
|
||||
],
|
||||
"close_fan_the_first_x_layers": [
|
||||
"3"
|
||||
|
||||
@@ -14,9 +14,6 @@
|
||||
"box_temperature": [
|
||||
"60"
|
||||
],
|
||||
"chamber_temperature": [
|
||||
"55"
|
||||
],
|
||||
"close_fan_the_first_x_layers": [
|
||||
"3"
|
||||
],
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "Snapmaker",
|
||||
"version": "02.04.00.13",
|
||||
"version": "02.04.00.12",
|
||||
"force_update": "0",
|
||||
"description": "Snapmaker configurations",
|
||||
"machine_model_list": [
|
||||
|
||||
+5
-5
@@ -15,13 +15,13 @@
|
||||
"1"
|
||||
],
|
||||
"cool_plate_temp": [
|
||||
"100"
|
||||
"105"
|
||||
],
|
||||
"cool_plate_temp_initial_layer": [
|
||||
"100"
|
||||
"105"
|
||||
],
|
||||
"eng_plate_temp": [
|
||||
"100"
|
||||
"105"
|
||||
],
|
||||
"eng_plate_temp_initial_layer": [
|
||||
"100"
|
||||
@@ -48,7 +48,7 @@
|
||||
"Polymaker"
|
||||
],
|
||||
"hot_plate_temp": [
|
||||
"100"
|
||||
"105"
|
||||
],
|
||||
"hot_plate_temp_initial_layer": [
|
||||
"100"
|
||||
@@ -72,7 +72,7 @@
|
||||
"110.8"
|
||||
],
|
||||
"textured_plate_temp": [
|
||||
"100"
|
||||
"105"
|
||||
],
|
||||
"textured_plate_temp_initial_layer": [
|
||||
"100"
|
||||
|
||||
+8
-8
@@ -15,16 +15,16 @@
|
||||
"1"
|
||||
],
|
||||
"cool_plate_temp": [
|
||||
"100"
|
||||
"105"
|
||||
],
|
||||
"cool_plate_temp_initial_layer": [
|
||||
"100"
|
||||
"105"
|
||||
],
|
||||
"eng_plate_temp": [
|
||||
"100"
|
||||
"105"
|
||||
],
|
||||
"eng_plate_temp_initial_layer": [
|
||||
"100"
|
||||
"105"
|
||||
],
|
||||
"fan_cooling_layer_time": [
|
||||
"12"
|
||||
@@ -51,10 +51,10 @@
|
||||
"Polymaker"
|
||||
],
|
||||
"hot_plate_temp": [
|
||||
"100"
|
||||
"105"
|
||||
],
|
||||
"hot_plate_temp_initial_layer": [
|
||||
"100"
|
||||
"105"
|
||||
],
|
||||
"nozzle_temperature": [
|
||||
"300"
|
||||
@@ -81,10 +81,10 @@
|
||||
"110"
|
||||
],
|
||||
"textured_plate_temp": [
|
||||
"100"
|
||||
"105"
|
||||
],
|
||||
"textured_plate_temp_initial_layer": [
|
||||
"100"
|
||||
"105"
|
||||
],
|
||||
"filament_type": [
|
||||
"ABS"
|
||||
|
||||
@@ -9,10 +9,10 @@
|
||||
""
|
||||
],
|
||||
"hot_plate_temp": [
|
||||
"100"
|
||||
"110"
|
||||
],
|
||||
"hot_plate_temp_initial_layer": [
|
||||
"100"
|
||||
"105"
|
||||
],
|
||||
"overhang_fan_speed": [
|
||||
"20"
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
""
|
||||
],
|
||||
"hot_plate_temp": [
|
||||
"100"
|
||||
"110"
|
||||
],
|
||||
"hot_plate_temp_initial_layer": [
|
||||
"100"
|
||||
|
||||
@@ -415,9 +415,7 @@ img.ModelThumbnail {
|
||||
border-width: 1px;
|
||||
border-style: solid;
|
||||
border-radius: 4px;
|
||||
border-color: var(--border-color);
|
||||
background-color: var(--bg-color);
|
||||
color: var(--fg-color-text);
|
||||
background-color: inherit;
|
||||
position: absolute;
|
||||
left: 50%;
|
||||
top: 200px;
|
||||
@@ -425,17 +423,13 @@ img.ModelThumbnail {
|
||||
}
|
||||
|
||||
#NoticeBar {
|
||||
background-color: var(--main-color);
|
||||
background-color:#00f0d8;
|
||||
height: 40px;
|
||||
line-height: 40px;
|
||||
color: #fff;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#NoticeBar.notice-error {
|
||||
background-color: var(--button-bg-alert);
|
||||
}
|
||||
|
||||
#NoticeContent {
|
||||
padding: 4mm 10mm;
|
||||
}
|
||||
|
||||
@@ -37,34 +37,6 @@ function HandleStudio( pVal )
|
||||
{
|
||||
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 )
|
||||
@@ -106,13 +78,9 @@ function HandleModelList( pVal )
|
||||
}
|
||||
|
||||
//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 )
|
||||
{
|
||||
$(".OneVendorBlock[vendor='"+key+"'] .PrinterArea").empty().append( ModelHtml[key] );
|
||||
$(".OneVendorBlock[vendor='"+key+"'] .PrinterArea").append( ModelHtml[key] );
|
||||
}
|
||||
|
||||
//Update Checkbox
|
||||
@@ -375,9 +343,6 @@ function OnExit()
|
||||
let nTotal=ModelSelect.length;
|
||||
|
||||
if( nTotal==0 ) {
|
||||
let noticeBar = document.getElementById("NoticeBar");
|
||||
noticeBar.classList.add("notice-error");
|
||||
noticeBar.textContent = "Error";
|
||||
ShowNotice(1);
|
||||
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()
|
||||
{
|
||||
var tSend={};
|
||||
|
||||
@@ -82,7 +82,6 @@
|
||||
</div>
|
||||
<div id="AcceptArea">
|
||||
<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="ButtonStyleRegular ButtonTypeChoice trans" tid="t38" id="PreBtn" onclick="CancelSelect()">Cancel</div>
|
||||
</div>
|
||||
|
||||
@@ -717,7 +717,6 @@ body
|
||||
border-radius: 8px;
|
||||
width: 184px;
|
||||
height: 184px;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.FileItem img
|
||||
@@ -729,19 +728,6 @@ body
|
||||
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
|
||||
{
|
||||
white-space: nowrap;
|
||||
@@ -750,35 +736,6 @@ body
|
||||
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
|
||||
{
|
||||
color: #A8A8A8;
|
||||
|
||||
@@ -305,19 +305,15 @@ function ShowRecentFileList( pList )
|
||||
let sImg=OneFile["image"] || sImages[sPath];
|
||||
let sTime=OneFile['time'];
|
||||
let sName=OneFile['project_name'];
|
||||
let sPublished=OneFile['published'] == '1';
|
||||
sImages[sPath] = sImg;
|
||||
|
||||
//let index=sPath.lastIndexOf('\\')>0?sPath.lastIndexOf('\\'):sPath.lastIndexOf('\/');
|
||||
//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+'" >'+
|
||||
'<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="FileNamePack">'+sBadge+'<div class="FileName TextS1">'+sName+'</div></div>'+
|
||||
'<div class="FileImg" ><img src="'+sImg+'" onerror="this.onerror=null;this.src=\'img/d.png\';" alt="No Image" /></div>'+
|
||||
'<div class="FileName TextS1">'+sName+'</div>'+
|
||||
'<div class="FileDate">'+sTime+'</div>'+
|
||||
'</div>';
|
||||
|
||||
|
||||
@@ -1,146 +0,0 @@
|
||||
# /// script
|
||||
# requires-python = ">=3.12"
|
||||
#
|
||||
# [tool.orcaslicer.plugin]
|
||||
# name = "Dock Panel Demo"
|
||||
# description = "Opens a dockable panel beside the 3D view that lists the objects on the plate."
|
||||
# author = "OrcaSlicer"
|
||||
# version = "0.0.1"
|
||||
# ///
|
||||
"""Dock Panel Demo -- orca.host.ui.create_dock_panel().
|
||||
|
||||
Run it from the Plugins dialog. It opens an HTML panel docked on the right of the 3D view, in the
|
||||
same dock area as the sidebar. Drag its caption to dock it on another side (or float it, where the
|
||||
platform allows), hide it from the page and run the plugin again to bring it back, or close it with
|
||||
its close button or from the page.
|
||||
|
||||
page --orca.postMessage({command: 'refresh'})--> plugin.on_message()
|
||||
page --orca.postMessage({command: 'hide'})--> plugin.on_message() -> panel.hide()
|
||||
page --orca.close()--> panel closes, plugin.on_close()
|
||||
plugin --panel.post({command: 'objects', ...})--> page (orca.onMessage)
|
||||
"""
|
||||
import orca
|
||||
|
||||
PAGE = """
|
||||
<style>
|
||||
body { margin: 0; padding: 12px; font-size: 13px; }
|
||||
h3 { margin: 0 0 4px; font-size: 14px; }
|
||||
.note { margin: 0 0 12px; color: var(--orca-muted); font-size: 12px; }
|
||||
.actions { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 12px; }
|
||||
.actions button.quiet { background: transparent; color: var(--orca-fg); border-color: var(--orca-border); }
|
||||
table { width: 100%; border-collapse: collapse; }
|
||||
td.count { text-align: right; font-variant-numeric: tabular-nums; }
|
||||
#status { margin-top: 10px; color: var(--orca-muted); font-size: 12px; }
|
||||
</style>
|
||||
|
||||
<h3>Objects on the plate</h3>
|
||||
<p class="note">Docked beside the 3D view. Drag the caption to move it.</p>
|
||||
|
||||
<div class="actions">
|
||||
<button type="button" id="refresh">Refresh</button>
|
||||
<button type="button" id="hide" class="quiet">Hide</button>
|
||||
<button type="button" id="close" class="quiet">Close</button>
|
||||
</div>
|
||||
|
||||
<table>
|
||||
<thead><tr><th>Name</th><th>Parts</th><th>Copies</th></tr></thead>
|
||||
<tbody id="rows"></tbody>
|
||||
</table>
|
||||
<p id="status">Waiting for the plugin...</p>
|
||||
|
||||
<script>
|
||||
(function () {
|
||||
function text(value) {
|
||||
var span = document.createElement("span");
|
||||
span.textContent = value;
|
||||
return span.innerHTML;
|
||||
}
|
||||
|
||||
function render(message) {
|
||||
var rows = document.getElementById("rows");
|
||||
var status = document.getElementById("status");
|
||||
if (message.error) {
|
||||
rows.innerHTML = "";
|
||||
status.textContent = message.error;
|
||||
return;
|
||||
}
|
||||
rows.innerHTML = message.objects.map(function (object) {
|
||||
return "<tr><td>" + text(object.name) + "</td><td class=\\"count\\">" + object.volumes +
|
||||
"</td><td class=\\"count\\">" + object.instances + "</td></tr>";
|
||||
}).join("");
|
||||
status.textContent = message.objects.length + " object(s), refreshed " + new Date().toLocaleTimeString();
|
||||
}
|
||||
|
||||
orca.onMessage(function (message) {
|
||||
if (message && message.command === "objects")
|
||||
render(message);
|
||||
});
|
||||
|
||||
document.getElementById("refresh").addEventListener("click", function () {
|
||||
orca.postMessage({ command: "refresh" });
|
||||
});
|
||||
document.getElementById("hide").addEventListener("click", function () {
|
||||
orca.postMessage({ command: "hide" });
|
||||
});
|
||||
document.getElementById("close").addEventListener("click", function () {
|
||||
orca.close();
|
||||
});
|
||||
|
||||
orca.postMessage({ command: "refresh" });
|
||||
})();
|
||||
</script>
|
||||
"""
|
||||
|
||||
|
||||
def plate_objects():
|
||||
try:
|
||||
model = orca.host.model()
|
||||
except RuntimeError as error:
|
||||
return {"command": "objects", "error": str(error)}
|
||||
return {
|
||||
"command": "objects",
|
||||
"objects": [
|
||||
{"name": obj.name or "(unnamed)", "volumes": obj.volume_count(), "instances": obj.instance_count()}
|
||||
for obj in model.objects()
|
||||
],
|
||||
}
|
||||
|
||||
|
||||
class DockPanelDemo(orca.script.ScriptPluginCapabilityBase):
|
||||
panel = None
|
||||
|
||||
def get_name(self):
|
||||
return "Dock Panel Demo"
|
||||
|
||||
def execute(self):
|
||||
# The capability instance lives as long as the plugin, so a second run finds the open panel.
|
||||
if self.panel is not None and self.panel.is_open():
|
||||
self.panel.show()
|
||||
return orca.ExecutionResult.success("Dock Panel Demo is already open.")
|
||||
self.panel = orca.host.ui.create_dock_panel(
|
||||
html=PAGE,
|
||||
title="Dock Panel Demo",
|
||||
dock="right",
|
||||
width=320,
|
||||
height=480,
|
||||
on_message=self.on_message,
|
||||
on_close=self.on_close,
|
||||
)
|
||||
return orca.ExecutionResult.success("Dock Panel Demo opened.")
|
||||
|
||||
# Called on the UI thread when the page posts.
|
||||
def on_message(self, message):
|
||||
command = (message or {}).get("command")
|
||||
if command == "refresh":
|
||||
self.panel.post(plate_objects())
|
||||
elif command == "hide":
|
||||
self.panel.hide()
|
||||
|
||||
def on_close(self):
|
||||
self.panel = None
|
||||
|
||||
|
||||
@orca.plugin
|
||||
class DockPanelDemoPlugin(orca.base):
|
||||
def register_capabilities(self):
|
||||
orca.register_capability(DockPanelDemo)
|
||||
@@ -17,6 +17,24 @@ cd "${ROOT_DIR}" || exit 1
|
||||
TEST_DIR="${1:-build/tests}"
|
||||
BUILD_CONFIG="${2:-}"
|
||||
|
||||
# The slic3rutils plugin-host tests build numpy arrays through the CPython copied next
|
||||
# to the test binary (see tests/slic3rutils/CMakeLists.txt); that runtime ships pip but
|
||||
# no numpy, so those tests SKIP without it. Install it into that interpreter's own
|
||||
# site-packages -- no PYTHONPATH needed, and re-checked every run because a rebuild of
|
||||
# the test target wipes and re-copies the runtime. Needs network on the first run only;
|
||||
# a failure here is not fatal, the tests just keep skipping.
|
||||
find_args=("${TEST_DIR}" \( -path '*/python/bin/python3' -o -path '*/python/python.exe' \))
|
||||
# Multi-config trees hold one copy per configuration; only bootstrap the one being run.
|
||||
[ -n "${BUILD_CONFIG}" ] && find_args+=(-path "*/${BUILD_CONFIG}/*")
|
||||
python_exe="$(find "${find_args[@]}" -print -quit 2>/dev/null)"
|
||||
if [ -z "${python_exe}" ]; then
|
||||
echo "No bundled Python under ${TEST_DIR}; numpy-backed binding tests will skip."
|
||||
elif ! "${python_exe}" -c "import numpy" >/dev/null 2>&1; then
|
||||
echo "Installing numpy into the embedded test interpreter (${python_exe})..."
|
||||
"${python_exe}" -m pip install --quiet --disable-pip-version-check --retries 1 "numpy<3" \
|
||||
|| echo "numpy install failed; numpy-backed binding tests will skip."
|
||||
fi
|
||||
|
||||
# Run the whole suite, excluding tests tagged [NotWorking].
|
||||
# --no-tests=error fails the job if the filter matches nothing (instead of passing green).
|
||||
args=(--test-dir "${TEST_DIR}" -LE "NotWorking" --no-tests=error --output-junit "$(pwd)/ctest_results.xml" --output-on-failure -j)
|
||||
|
||||
@@ -22,7 +22,6 @@
|
||||
Match regexes; each must match at least one output line
|
||||
NotMatch regexes; none may match any output line
|
||||
NotExists paths that must not exist after the case runs
|
||||
DateStampedZip require a bundle date from during this case's invocation
|
||||
|
||||
.PARAMETER Name
|
||||
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
|
||||
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 = @(
|
||||
'argument handling'
|
||||
@{ Name = 'no arguments prints help'; Args = @(); DryRun = $false
|
||||
@@ -321,12 +326,12 @@ $cases = @(
|
||||
Contains = @('OrcaSlicer_dep_win-x64_')
|
||||
NotContains = @('-clang', '-Release') }
|
||||
@{ 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
|
||||
# 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')
|
||||
Env = @{ PATH = 'C:\Windows\system32;C:\Windows' }
|
||||
DateStampedZip = $true }
|
||||
Match = @($stampPattern) }
|
||||
@{ Name = '-p packs without rebuilding'; Args = @('-p')
|
||||
Match = @('^\+ .*(7z\.exe a|tar\.exe -a -c -f) ')
|
||||
NotContains = @('cmake -S deps') }
|
||||
@@ -856,7 +861,7 @@ function Invoke-BuildScript {
|
||||
|
||||
$knownFields = @(
|
||||
'Name', 'Args', 'ExpectExit', 'DryRun', 'First', 'Env',
|
||||
'Contains', 'NotContains', 'Match', 'NotMatch', 'NotExists', 'DateStampedZip'
|
||||
'Contains', 'NotContains', 'Match', 'NotMatch', 'NotExists'
|
||||
)
|
||||
|
||||
function Test-Case {
|
||||
@@ -871,9 +876,7 @@ function Test-Case {
|
||||
$expect = 0
|
||||
if ($Case.ContainsKey('ExpectExit')) { $expect = $Case['ExpectExit'] }
|
||||
|
||||
$started = Get-Date
|
||||
$result = Invoke-BuildScript -Arguments $argv -Environment $Case['Env']
|
||||
$finished = Get-Date
|
||||
|
||||
$problems = @()
|
||||
|
||||
@@ -899,15 +902,6 @@ function Test-Case {
|
||||
$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 ($line in @($lines | Where-Object { $_ -match $pattern })) {
|
||||
$problems += "line matches /$pattern/: $line"
|
||||
|
||||
+72
-389
@@ -53,8 +53,6 @@ using namespace nlohmann;
|
||||
|
||||
#include "libslic3r/libslic3r.h"
|
||||
#include "libslic3r/Config.hpp"
|
||||
#include "libslic3r/FilamentMixer.hpp"
|
||||
#include "libslic3r/Preset.hpp"
|
||||
#include "libslic3r/Geometry.hpp"
|
||||
#include "libslic3r/GCode.hpp"
|
||||
#include "libslic3r/Model.hpp"
|
||||
@@ -79,9 +77,8 @@ using namespace nlohmann;
|
||||
#include "libslic3r/ObjColorUtils.hpp"
|
||||
|
||||
#include "OrcaSlicer.hpp"
|
||||
#include <wx/filename.h>
|
||||
#include <wx/stdpaths.h>
|
||||
//BBS: add exception handler for win32
|
||||
#include <wx/stdpaths.h>
|
||||
#ifdef WIN32
|
||||
#include "dev-utils/BaseException.h"
|
||||
#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_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_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_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."}
|
||||
@@ -1387,25 +1383,6 @@ int CLI::run(int argc, char **argv)
|
||||
if (downward_check_option)
|
||||
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;
|
||||
if (start_gui) {
|
||||
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> 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;
|
||||
//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;
|
||||
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;
|
||||
@@ -1952,7 +1925,7 @@ int CLI::run(int argc, char **argv)
|
||||
}
|
||||
}
|
||||
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);
|
||||
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;
|
||||
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)
|
||||
return cli_preset_bundle.get();
|
||||
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.
|
||||
std::unique_ptr<PresetBundle> system_preset_resolver;
|
||||
auto resolve_preset = [&ensure_cli_preset_bundle, &system_preset_resolver](const std::string &file, DynamicPrintConfig &config,
|
||||
auto resolve_preset = [&ensure_cli_preset_bundle, config_substitution_rule](const std::string &file, DynamicPrintConfig &config,
|
||||
std::string &config_type, const std::string &config_from,
|
||||
bool probe_type, std::string &error) {
|
||||
const auto *inherits = config.option<ConfigOptionString>(BBL_JSON_KEY_INHERITS);
|
||||
if (!probe_type && (inherits == nullptr || inherits->value.empty()))
|
||||
return true;
|
||||
|
||||
std::unique_ptr<PresetBundle> source_bundle;
|
||||
PresetBundle *bundle = nullptr;
|
||||
bool allow_source_manifest = false;
|
||||
if (config_from == "system") {
|
||||
if (!system_preset_resolver)
|
||||
system_preset_resolver = std::make_unique<PresetBundle>();
|
||||
bundle = system_preset_resolver.get();
|
||||
source_bundle = std::make_unique<PresetBundle>();
|
||||
bundle = source_bundle.get();
|
||||
allow_source_manifest = true;
|
||||
} else {
|
||||
bundle = ensure_cli_preset_bundle(error);
|
||||
@@ -2075,52 +2046,7 @@ int CLI::run(int argc, char **argv)
|
||||
error, allow_source_manifest);
|
||||
};
|
||||
|
||||
//ORCA: list the keys a user preset overrides relative to its system parent, for the
|
||||
// `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,
|
||||
auto load_config_file = [config_substitution_rule, &resolve_preset](const std::string& file, DynamicPrintConfig& config, std::string& config_type,
|
||||
std::string& config_name, std::string& filament_id, std::string& config_from) {
|
||||
if (! boost::filesystem::exists(file)) {
|
||||
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);
|
||||
}
|
||||
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);
|
||||
}
|
||||
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++) {
|
||||
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_process_name.empty()) {
|
||||
//new process + new printer: both configs came from --load-settings
|
||||
process_compatible = check_compat(load_process_config, load_machine_config, new_printer_system_name);
|
||||
for (int index = 0; index < new_print_compatible_printers.size(); index++) {
|
||||
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%")
|
||||
%new_printer_name %new_printer_system_name %new_process_name %new_process_system_name %process_compatible;
|
||||
}
|
||||
else {
|
||||
//3MF-embedded process vs new printer. current_process_full_config is only populated from
|
||||
//profiles/BBL/process_full/, so for every other vendor fall back to the 3MF's own project
|
||||
//config in m_print_config, with its renamed compatibility keys translated back (see
|
||||
//cli_process_compat_config above). Without this a 3MF built from a condition-only process
|
||||
//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);
|
||||
for (int index = 0; index < current_print_compatible_printers.size(); index++) {
|
||||
if (current_print_compatible_printers[index] == new_printer_system_name) {
|
||||
process_compatible = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
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;
|
||||
}
|
||||
}
|
||||
else if (!new_process_name.empty()) {
|
||||
//new process vs 3MF-embedded printer. As above, current_printer_full_config only resolves for
|
||||
//BBL profiles; otherwise evaluate against the 3MF's own project config in m_print_config, which
|
||||
//holds the embedded printer's printer_notes / nozzle_diameter.
|
||||
{
|
||||
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);
|
||||
for (int index = 0; index < new_print_compatible_printers.size(); index++) {
|
||||
if (new_print_compatible_printers[index] == current_printer_system_name) {
|
||||
process_compatible = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
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;
|
||||
}
|
||||
else {
|
||||
//both sides 3MF-embedded (pure reprocess)
|
||||
if (!current_process_full_config.empty() && !current_printer_full_config.empty())
|
||||
process_compatible = check_compat(current_process_full_config, current_printer_full_config, current_printer_system_name);
|
||||
else
|
||||
process_compatible = std::find(current_print_compatible_printers.begin(), current_print_compatible_printers.end(), current_printer_system_name) != current_print_compatible_printers.end();
|
||||
//check the compatible of old printer&&process
|
||||
for (int index = 0; index < current_print_compatible_printers.size(); index++) {
|
||||
if (current_print_compatible_printers[index] == current_printer_system_name) {
|
||||
process_compatible = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!process_compatible && current_print_compatible_printers.empty())
|
||||
{
|
||||
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 {
|
||||
//ORCA: was a //todo — compute the user's overrides instead of writing an empty column.
|
||||
different_settings[filament_count+1] = new_printer_config_is_system
|
||||
? std::string()
|
||||
: cli_different_settings(load_machine_config, new_printer_system_name, Preset::TYPE_PRINTER);
|
||||
//todo: support user machine preset's different settings
|
||||
different_settings[filament_count+1] = "";
|
||||
if (new_printer_config_is_system)
|
||||
inherits_group[filament_count+1] = "";
|
||||
else
|
||||
@@ -3202,14 +3080,8 @@ int CLI::run(int argc, char **argv)
|
||||
print_compatible_printers = std::move(current_print_compatible_printers);
|
||||
}
|
||||
else {
|
||||
//ORCA: was a //todo. Prefer a value the loaded JSON already carried, otherwise
|
||||
// compute the overrides against the system parent.
|
||||
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);
|
||||
//todo: support system process preset
|
||||
different_settings[0] = "";
|
||||
if (new_process_config_is_system)
|
||||
inherits_group[0] = "";
|
||||
else
|
||||
@@ -3396,16 +3268,6 @@ int CLI::run(int argc, char **argv)
|
||||
int filament_index = load_filaments_index[index];
|
||||
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);
|
||||
|
||||
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);
|
||||
config.erase("filament_settings_id");
|
||||
|
||||
//ORCA: was a //todo — same treatment as process/machine above.
|
||||
different_settings[filament_index] = filament_different_settings;
|
||||
//todo: update different settings of filaments
|
||||
different_settings[filament_index] = "";
|
||||
inherits_group[filament_index] = load_filaments_inherit[index];
|
||||
}
|
||||
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) {
|
||||
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++) {
|
||||
@@ -3741,7 +3594,7 @@ int CLI::run(int argc, char **argv)
|
||||
bool is_from_support = filament_is_support->get_at(from_idx);
|
||||
for (int to_idx = 0; to_idx < project_filament_count; 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;
|
||||
} else {
|
||||
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()
|
||||
// (command line options override --load files)
|
||||
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
|
||||
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;
|
||||
|
||||
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;
|
||||
if (enable_timelapse && timelapse_type_opt && (timelapse_type_opt->getInt() == TimelapseType::tlSmooth))
|
||||
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 (is_smooth_timelapse)
|
||||
{
|
||||
@@ -4272,7 +4015,7 @@ int CLI::run(int argc, char **argv)
|
||||
}
|
||||
};
|
||||
|
||||
auto check_plate_wipe_tower = [get_print_sequence, is_smooth_timelapse](Slic3r::GUI::PartPlate* plate, int plate_index, DynamicPrintConfig& print_config, plate_obj_size_info_t &plate_obj_size_info) {
|
||||
auto check_plate_wipe_tower = [get_print_sequence, is_smooth_timelapse, new_extruder_count](Slic3r::GUI::PartPlate* plate, int plate_index, DynamicPrintConfig& print_config, plate_obj_size_info_t &plate_obj_size_info) {
|
||||
plate_obj_size_info.obj_bbox= plate->get_objects_bounding_box();
|
||||
BOOST_LOG_TRIVIAL(info) << boost::format("plate %1%, object bbox: min {%2%, %3%, %4%} - max {%5%, %6%, %7%}")
|
||||
%(plate_index+1) %plate_obj_size_info.obj_bbox.min.x() % plate_obj_size_info.obj_bbox.min.y() % plate_obj_size_info.obj_bbox.min.z() %plate_obj_size_info.obj_bbox.max.x() % plate_obj_size_info.obj_bbox.max.y() % plate_obj_size_info.obj_bbox.max.z();
|
||||
@@ -4316,13 +4059,22 @@ int CLI::run(int argc, char **argv)
|
||||
plate_obj_size_info.wipe_x = wipe_x_option->get_at(plate_index);
|
||||
plate_obj_size_info.wipe_y = wipe_y_option->get_at(plate_index);
|
||||
|
||||
// Body and brim from one estimate: resolving an auto (-1) brim against a different
|
||||
// height would size the two halves of the same tower from two different objects.
|
||||
const WipeTowerFootprint footprint = plate->estimate_wipe_tower_footprint(print_config, filaments_cnt);
|
||||
float brim_width = float(footprint.brim_width);
|
||||
ConfigOptionFloat* width_option = print_config.option<ConfigOptionFloat>("prime_tower_width", true);
|
||||
plate_obj_size_info.wipe_width = width_option->value;
|
||||
|
||||
plate_obj_size_info.wipe_width = footprint.width;
|
||||
plate_obj_size_info.wipe_depth = footprint.depth;
|
||||
ConfigOptionFloat* brim_width_option = print_config.option<ConfigOptionFloat>("prime_tower_brim_width", true);
|
||||
float brim_width = brim_width_option->value;
|
||||
if (brim_width < 0) brim_width = WipeTower::get_auto_brim_by_height((float)plate_obj_size_info.obj_bbox.max.z());
|
||||
|
||||
ConfigOptionFloat* volume_option = print_config.option<ConfigOptionFloat>("prime_volume", true);
|
||||
float wipe_volume = volume_option->value;
|
||||
|
||||
const ConfigOptionBool * wrapping_detection = print_config.option<ConfigOptionBool>("enable_wrapping_detection");
|
||||
bool enable_wrapping = (wrapping_detection != nullptr) && wrapping_detection->value;
|
||||
|
||||
Vec3d wipe_tower_size = plate->estimate_wipe_tower_size(print_config, plate_obj_size_info.wipe_width, wipe_volume, new_extruder_count, filaments_cnt, false, enable_wrapping);
|
||||
plate_obj_size_info.wipe_width = wipe_tower_size(0);
|
||||
plate_obj_size_info.wipe_depth = wipe_tower_size(1);
|
||||
|
||||
Vec3d origin = plate->get_origin();
|
||||
Vec3d start(origin(0) + plate_obj_size_info.wipe_x - brim_width, origin(1) + plate_obj_size_info.wipe_y, 0.f);
|
||||
@@ -5083,16 +4835,13 @@ 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
|
||||
int plate_count = partplate_list.get_plate_count();
|
||||
|
||||
auto printer_structure_opt = m_print_config.option<ConfigOptionEnum<PrinterStructure>>("printer_structure");
|
||||
// This margin only pre-adjusts the default away from the near edges;
|
||||
// estimate_wipe_tower_polygon below computes the real clamped position.
|
||||
float tower_brim_width = m_print_config.option<ConfigOptionFloat>("prime_tower_brim_width", true)->value;
|
||||
if (tower_brim_width < 0.f) tower_brim_width = 8.f; // auto: object heights unknown here, 8 mm is the auto cap
|
||||
const float tower_brim_width = m_print_config.option<ConfigOptionFloat>("prime_tower_width", true)->value;
|
||||
const float tower_margin = WIPE_TOWER_MARGIN + tower_brim_width;
|
||||
|
||||
// set the default position, the same with print config(left top)
|
||||
@@ -5126,7 +4875,7 @@ int CLI::run(int argc, char **argv)
|
||||
wipe_y_option->set_at(&wt_y_opt, i, 0);
|
||||
|
||||
Vec3d wipe_tower_size, wipe_tower_pos;
|
||||
ArrangePolygon wipe_tower_ap = cur_plate->estimate_wipe_tower_polygon(m_print_config, i, wipe_tower_pos, wipe_tower_size, assemble_plate.filaments_count, true);
|
||||
ArrangePolygon wipe_tower_ap = cur_plate->estimate_wipe_tower_polygon(m_print_config, i, wipe_tower_pos, wipe_tower_size, new_extruder_count, assemble_plate.filaments_count, true);
|
||||
|
||||
//update the new wp position
|
||||
wt_x_opt.value = wipe_tower_pos(0);
|
||||
@@ -5369,7 +5118,7 @@ int CLI::run(int argc, char **argv)
|
||||
//skip this object due to be locked in plate
|
||||
ap.itemid = locked_aps.size();
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -5389,10 +5138,7 @@ int CLI::run(int argc, char **argv)
|
||||
int extruder_size = used_filament_set.size();
|
||||
|
||||
auto printer_structure_opt = m_print_config.option<ConfigOptionEnum<PrinterStructure>>("printer_structure");
|
||||
// This margin only pre-adjusts the default away from the near edges;
|
||||
// estimate_wipe_tower_polygon below computes the real clamped position.
|
||||
float tower_brim_width = m_print_config.option<ConfigOptionFloat>("prime_tower_brim_width", true)->value;
|
||||
if (tower_brim_width < 0.f) tower_brim_width = 8.f; // auto: object heights unknown here, 8 mm is the auto cap
|
||||
const float tower_brim_width = m_print_config.option<ConfigOptionFloat>("prime_tower_width", true)->value;
|
||||
const float tower_margin = WIPE_TOWER_MARGIN + tower_brim_width;
|
||||
// set the default position, the same with print config(left top)
|
||||
float x = WIPE_TOWER_DEFAULT_X_POS;
|
||||
@@ -5429,7 +5175,7 @@ int CLI::run(int argc, char **argv)
|
||||
}
|
||||
|
||||
Vec3d wipe_tower_size, wipe_tower_pos;
|
||||
ArrangePolygon wipe_tower_ap = partplate_list.get_plate(plate_index_valid)->estimate_wipe_tower_polygon(m_print_config, plate_index_valid, wipe_tower_pos, wipe_tower_size, extruder_size, true);
|
||||
ArrangePolygon wipe_tower_ap = partplate_list.get_plate(plate_index_valid)->estimate_wipe_tower_polygon(m_print_config, plate_index_valid, wipe_tower_pos, wipe_tower_size, new_extruder_count, extruder_size, true);
|
||||
|
||||
//update the new wp position
|
||||
if (bedid < plate_count) {
|
||||
@@ -5530,16 +5276,22 @@ int CLI::run(int argc, char **argv)
|
||||
|
||||
//float depth = v * (filaments_cnt - 1) / (layer_height * w);
|
||||
|
||||
const WipeTowerFootprint footprint = cur_plate->estimate_wipe_tower_footprint(m_print_config, filaments_cnt);
|
||||
Vec3d wipe_tower_size(footprint.width, footprint.depth, footprint.height);
|
||||
const ConfigOptionBool *wrapping_detection = m_print_config.option<ConfigOptionBool>("enable_wrapping_detection");
|
||||
bool enable_wrapping = (wrapping_detection != nullptr) && wrapping_detection->value;
|
||||
|
||||
Vec3d wipe_tower_size = cur_plate->estimate_wipe_tower_size(m_print_config, w, v, new_extruder_count, filaments_cnt, false, enable_wrapping);
|
||||
Vec3d plate_origin = cur_plate->get_origin();
|
||||
int plate_width, plate_depth;
|
||||
double plate_height;
|
||||
partplate_list.get_plate_size(plate_width, plate_depth, plate_height);
|
||||
float depth = wipe_tower_size(1);
|
||||
// Brim already resolved against the height the body was sized from.
|
||||
float margin = 15.f, wp_brim_width = float(footprint.brim_width);
|
||||
BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << boost::format("arrange wipe_tower: wp_brim_width %1%")%wp_brim_width;
|
||||
float margin = 15.f, wp_brim_width = 0.f;
|
||||
ConfigOption *wipe_tower_brim_width_opt = m_print_config.option("prime_tower_brim_width");
|
||||
if (wipe_tower_brim_width_opt ) {
|
||||
wp_brim_width = wipe_tower_brim_width_opt->getFloat();
|
||||
if (wp_brim_width < 0) wp_brim_width = WipeTower::get_auto_brim_by_height((float) wipe_tower_size.z());
|
||||
BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << boost::format("arrange wipe_tower: wp_brim_width %1%")%wp_brim_width;
|
||||
}
|
||||
w = wipe_tower_size(0);
|
||||
|
||||
BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << boost::format("arrange wipe_tower: x=%1%, y=%2%, width=%3%, depth=%4%, angle=%5%, prime_volume=%6%, filaments_cnt=%7%, layer_height=%8%, plate_width=%9%, plate_depth=%10%")
|
||||
@@ -5958,11 +5710,7 @@ int CLI::run(int argc, char **argv)
|
||||
//FIXME check for mixing the FFF / SLA parameters.
|
||||
// or better save fff_print_config vs. sla_print_config
|
||||
//m_print_config.save(m_config.opt_string("save"));
|
||||
const std::string &settings_file = m_config.opt_string(opt_key);
|
||||
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));
|
||||
m_print_config.save_to_json(m_config.opt_string(opt_key), std::string("project_settings"), std::string("project"), std::string(SoftFever_VERSION));
|
||||
} else if (opt_key == "info") {
|
||||
// --info works on unrepaired model
|
||||
for (Model &model : m_models) {
|
||||
@@ -6059,34 +5807,6 @@ int CLI::run(int argc, char **argv)
|
||||
//Print fff_print;
|
||||
std::vector<size_t> plate_triangle_counts(partplate_list.get_plate_count(), 0);
|
||||
|
||||
// The stored (or default) tower position may not fit the tower these plates
|
||||
// need, and no CLI placement site runs on a plain slice - mirror the GUI's
|
||||
// reload clamp and fit every plate's tower into the printable area first.
|
||||
if (m_print_config.option<ConfigOptionBool>("enable_prime_tower", true)->value) {
|
||||
for (int index = 0; index < partplate_list.get_plate_count(); index++) {
|
||||
if ((plate_to_slice != 0) && (plate_to_slice != (index + 1)))
|
||||
continue;
|
||||
Slic3r::GUI::PartPlate *plate = partplate_list.get_plate(index);
|
||||
// Printing by object disables the tower only with more than one instance.
|
||||
bool is_seq_print = false;
|
||||
get_print_sequence(plate, m_print_config, is_seq_print);
|
||||
if (is_seq_print && plate->printable_instance_size() > 1)
|
||||
continue;
|
||||
// An empty estimate is a plate that prints no tower (one filament and
|
||||
// neither smooth timelapse, wrapping detection nor a raft).
|
||||
Vec3d wt_pos, wt_size;
|
||||
plate->estimate_wipe_tower_polygon(m_print_config, index, wt_pos, wt_size);
|
||||
if (wt_size(0) < EPSILON || wt_size(1) < EPSILON)
|
||||
continue;
|
||||
ConfigOptionFloat wt_x_opt((float) wt_pos(0));
|
||||
ConfigOptionFloat wt_y_opt((float) wt_pos(1));
|
||||
m_print_config.option<ConfigOptionFloats>("wipe_tower_x", true)->set_at(&wt_x_opt, index, 0);
|
||||
m_print_config.option<ConfigOptionFloats>("wipe_tower_y", true)->set_at(&wt_y_opt, index, 0);
|
||||
BOOST_LOG_TRIVIAL(info) << boost::format("plate %1%: wipe tower clamped to {%2%, %3%}, size {%4%, %5%}")
|
||||
% (index + 1) % wt_pos(0) % wt_pos(1) % wt_size(0) % wt_size(1);
|
||||
}
|
||||
}
|
||||
|
||||
while(!finished)
|
||||
{
|
||||
//BBS: slice every partplate one by one
|
||||
@@ -6258,36 +5978,6 @@ int CLI::run(int argc, char **argv)
|
||||
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) {
|
||||
std::vector<std::vector<int>> unprintable_filament_vec;
|
||||
for (const std::set<int>& filamnt_ids : unprintable_filament_ids) {
|
||||
@@ -7740,13 +7430,6 @@ bool CLI::setup(int argc, char **argv)
|
||||
this->print_help();
|
||||
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.
|
||||
for (auto const &opt_key : opt_order) {
|
||||
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);
|
||||
HINSTANCE hInstance_Slic3r = LoadLibraryExW(path_to_slic3r, nullptr, 0);
|
||||
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;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#pragma once
|
||||
#include <boost/nowide/cstdio.hpp>
|
||||
#include <boost/nowide/fstream.hpp>
|
||||
#include "StackWalker.h"
|
||||
#include "stackwalker.h"
|
||||
#include <eh.h>
|
||||
|
||||
class CBaseException : public CStackWalker
|
||||
|
||||
@@ -8,11 +8,7 @@
|
||||
#define NANOSVGRAST_IMPLEMENTATION
|
||||
#include "nanosvg/nanosvgrast.h"
|
||||
|
||||
#include "libslic3r/BoundingBox.hpp"
|
||||
#include "libslic3r/GCode.hpp"
|
||||
#include "libslic3r/GCode/WipeTower.hpp"
|
||||
#include "libslic3r/GCode/WipeTowerEstimate.hpp"
|
||||
#include "libslic3r/Geometry.hpp"
|
||||
#include "libslic3r/Preset.hpp"
|
||||
#include "libslic3r/Config.hpp"
|
||||
#include "libslic3r/PresetBundle.hpp"
|
||||
@@ -120,45 +116,15 @@ Vec2d printable_area_center(const DynamicPrintConfig &cfg)
|
||||
return 0.5 * (lo + hi);
|
||||
}
|
||||
|
||||
// Put the prime tower where the GUI and CLI would before slicing. The config default (x 15, y 220)
|
||||
// lies off any bed shallower than the tower, and generation rejects an off-plate tower instead of
|
||||
// exporting it. Beside the centred cube, clear of the edge exclusion strips some beds carry, then
|
||||
// pulled inside the printable outline by the tower's own estimated footprint, with a few mm of
|
||||
// clearance so the conflict checker never sees the two touch.
|
||||
void place_wipe_tower(DynamicPrintConfig &cfg, const Vec2d ¢er)
|
||||
{
|
||||
const auto *area = cfg.option<ConfigOptionPoints>("printable_area");
|
||||
if (area == nullptr || area->values.size() < 3)
|
||||
return;
|
||||
const WipeTowerFootprint footprint = estimate_wipe_tower_footprint(cfg, resolve_wipe_tower_type(cfg), {0, 1}, cfg.opt_float("layer_height"), 10.);
|
||||
if (footprint.depth < EPSILON)
|
||||
return;
|
||||
const double margin = WIPE_TOWER_MARGIN + footprint.brim_width;
|
||||
// The position is the tower's own origin; a rotated tower extends from it in another
|
||||
// direction, so place the rotated box's extents rather than the origin.
|
||||
Slic3r::Polygon box({Point::new_scale(0., 0.), Point::new_scale(footprint.width, 0.), Point::new_scale(footprint.width, footprint.depth), Point::new_scale(0., footprint.depth)});
|
||||
box.rotate(Geometry::deg2rad(cfg.opt_float("wipe_tower_rotation_angle")));
|
||||
const BoundingBox local = get_extents(box);
|
||||
const Vec2d lo = unscale(local.min);
|
||||
const Vec2d size = unscale(local.max) - lo;
|
||||
Vec2d pos(center.x() + 5. + margin + 5. - lo.x(), center.y() - size.y() / 2. - lo.y());
|
||||
box.translate(Point::new_scale(pos.x(), pos.y()));
|
||||
const Vec2f move = WipeTower::move_box_inside_polygon(get_extents(box), Polygons{Polygon::new_scale(area->values)}, scaled<coord_t>(margin));
|
||||
pos += move.cast<double>();
|
||||
cfg.option<ConfigOptionFloats>("wipe_tower_x", true)->values = {pos.x()};
|
||||
cfg.option<ConfigOptionFloats>("wipe_tower_y", true)->values = {pos.y()};
|
||||
}
|
||||
|
||||
// Slice one centered cube that switches from filament 1 to filament 2 partway up, so exactly one
|
||||
// filament change fires, then export. The change drives the printer's own change_filament_gcode: on a
|
||||
// single-nozzle machine it rides the AMS prime tower (append_tcr), on a multi-nozzle machine it routes
|
||||
// through the nozzle swap (set_extruder / append_tcr2) - the engine picks the path from the printer's
|
||||
// topology, so one model covers both. An undefined placeholder in any shipped custom g-code throws
|
||||
// Slic3r::PlaceholderParserError from export.
|
||||
std::string slice_two_color_cube_and_export(DynamicPrintConfig cfg, bool is_bbl)
|
||||
std::string slice_two_color_cube_and_export(const DynamicPrintConfig &cfg, bool is_bbl)
|
||||
{
|
||||
const Vec2d center = printable_area_center(cfg);
|
||||
place_wipe_tower(cfg, center);
|
||||
TriangleMesh m = make_cube(10, 10, 10);
|
||||
m.translate(float(center.x() - 5.), float(center.y() - 5.), 0.f);
|
||||
|
||||
|
||||
@@ -364,7 +364,7 @@ void CStackWalker::GetModuleInformation(LPMODULE_INFO pmi)
|
||||
|
||||
if (dwInfoSize > 0)
|
||||
{
|
||||
byte *lpData = new byte[dwInfoSize];
|
||||
LPVOID lpData = new byte[dwInfoSize];
|
||||
ZeroMemory(lpData, dwInfoSize * sizeof(byte));
|
||||
|
||||
if (GetFileVersionInfo(pmi->szModulePath, dwHandle, dwInfoSize, lpData) > 0 )
|
||||
@@ -425,7 +425,7 @@ LPSTACKINFO CStackWalker::StackWalker(HANDLE hThread, const CONTEXT* context)
|
||||
else
|
||||
c = *context;
|
||||
|
||||
STACKFRAME64 sf = {};
|
||||
STACKFRAME64 sf = {0};
|
||||
DWORD imageType;
|
||||
|
||||
//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
|
||||
ClipperZUtils::ZPath p;
|
||||
p.reserve(path.size() + (closed ? 1 : 0));
|
||||
p.reserve(path.size() + closed ? 1 : 0);
|
||||
ClipperLib_Z::cInt z = 0;
|
||||
for (const auto& point : path) {
|
||||
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 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";
|
||||
|
||||
const std::string AppConfig::SECTION_FILAMENTS = "filaments";
|
||||
@@ -638,11 +635,6 @@ void AppConfig::set_defaults()
|
||||
set_bool("use_printer_agents", false);
|
||||
}
|
||||
|
||||
if (get("enable_ota").empty())
|
||||
{
|
||||
set_bool("enable_ota", false);
|
||||
}
|
||||
|
||||
// Remove legacy window positions/sizes
|
||||
erase("app", "main_frame_maximized");
|
||||
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 orca_updater_url = get(CONFIG_ORCA_UPDATER_URL);
|
||||
if (orca_updater_url.empty())
|
||||
return PROFILE_UPDATE_URL;
|
||||
return orca_updater_url;
|
||||
return PROFILE_UPDATE_URL;
|
||||
}
|
||||
|
||||
bool AppConfig::exists()
|
||||
|
||||
@@ -272,8 +272,6 @@ set(lisbslic3r_sources
|
||||
GCode/WipeTower2.hpp
|
||||
GCode/WipeTower.cpp
|
||||
GCode/WipeTower.hpp
|
||||
GCode/WipeTowerEstimate.cpp
|
||||
GCode/WipeTowerEstimate.hpp
|
||||
GCodeWriter.cpp
|
||||
GCodeWriter.hpp
|
||||
Geometry/ArcWelder.hpp
|
||||
@@ -372,8 +370,6 @@ set(lisbslic3r_sources
|
||||
Preset.hpp
|
||||
PrincipalComponents2D.cpp
|
||||
PrincipalComponents2D.hpp
|
||||
PublishSettings.cpp
|
||||
PublishSettings.hpp
|
||||
PrintApply.cpp
|
||||
PrintBase.cpp
|
||||
PrintBase.hpp
|
||||
@@ -558,12 +554,6 @@ if (_opts)
|
||||
target_compile_options(libslic3r_cgal PRIVATE "${_opts_bad}")
|
||||
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)
|
||||
|
||||
if (MSVC AND "${CMAKE_SIZEOF_VOID_P}" STREQUAL "4") # 32 bit MSVC workaround
|
||||
|
||||
@@ -7,7 +7,6 @@
|
||||
#include <algorithm>
|
||||
#include <assert.h>
|
||||
#include <fstream>
|
||||
#include <sstream>
|
||||
#include <iostream>
|
||||
#include <iomanip>
|
||||
#include <regex>
|
||||
@@ -1516,19 +1515,6 @@ std::optional<PluginCapabilityRef> parse_capability_ref(const std::string& value
|
||||
|
||||
//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
|
||||
{
|
||||
// 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;
|
||||
//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;
|
||||
}
|
||||
|
||||
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
|
||||
|
||||
@@ -1006,7 +1006,6 @@ public:
|
||||
int getInt() const override { return this->value; }
|
||||
void setInt(int val) override { this->value = val; }
|
||||
ConfigOption* clone() const override { return new ConfigOptionInt(*this); }
|
||||
using ConfigOptionSingle<int>::operator==;
|
||||
bool operator==(const ConfigOptionInt &rhs) const throw() { return this->value == rhs.value; }
|
||||
|
||||
std::string serialize() const override
|
||||
@@ -1049,7 +1048,6 @@ public:
|
||||
ConfigOptionType type() const override { return static_type(); }
|
||||
ConfigOption* clone() const override { return new ConfigOptionIntsTempl(*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; }
|
||||
// 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(); }
|
||||
ConfigOption* clone() const override { return new ConfigOptionString(*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 empty() const { return this->value.empty(); }
|
||||
@@ -1174,7 +1171,6 @@ public:
|
||||
ConfigOptionType type() const override { return static_type(); }
|
||||
ConfigOption* clone() const override { return new ConfigOptionStrings(*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 is_nil(size_t) const override { return false; }
|
||||
@@ -1219,7 +1215,6 @@ public:
|
||||
ConfigOptionType type() const override { return static_type(); }
|
||||
ConfigOption* clone() const override { return new ConfigOptionPercent(*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; }
|
||||
|
||||
@@ -1262,7 +1257,6 @@ public:
|
||||
ConfigOptionType type() const override { return static_type(); }
|
||||
ConfigOption* clone() const override { return new ConfigOptionPercentsTempl(*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_lower(this->values, rhs.values); }
|
||||
|
||||
@@ -1508,7 +1502,6 @@ public:
|
||||
ConfigOptionType type() const override { return static_type(); }
|
||||
ConfigOption* clone() const override { return new ConfigOptionPoint(*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; }
|
||||
|
||||
@@ -1546,7 +1539,6 @@ public:
|
||||
ConfigOptionType type() const override { return static_type(); }
|
||||
ConfigOption* clone() const override { return new ConfigOptionPoints(*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 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(); }
|
||||
ConfigOption* clone() const override { return new ConfigOptionPoint3(*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.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; }
|
||||
ConfigOption* clone() const override { return new ConfigOptionBool(*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 int(this->value) < int(rhs.value); }
|
||||
|
||||
@@ -1921,7 +1911,6 @@ public:
|
||||
ConfigOptionType type() const override { return static_type(); }
|
||||
ConfigOption* clone() const override { return new ConfigOptionBoolsTempl(*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; }
|
||||
// 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; }
|
||||
bool operator< (const ConfigOptionInts& rhs) const throw() { return this->values < rhs.values; }
|
||||
|
||||
using ConfigOptionInts::operator==;
|
||||
bool operator==(const ConfigOptionInts& rhs) const
|
||||
{
|
||||
if (rhs.type() != this->type())
|
||||
@@ -2825,9 +2813,6 @@ public:
|
||||
|
||||
//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;
|
||||
// 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
|
||||
// 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
|
||||
int CALLBACK EnumFamCallBack(const LOGFONT *lplf,
|
||||
const TEXTMETRIC *lpntm,
|
||||
DWORD FontType,
|
||||
LPARAM aFontList)
|
||||
bool CALLBACK EnumFamCallBack(LPLOGFONT lplf,
|
||||
LPNEWTEXTMETRIC lpntm,
|
||||
DWORD FontType,
|
||||
LPVOID aFontList)
|
||||
{
|
||||
std::vector<std::wstring> *fontList =
|
||||
(std::vector<std::wstring> *) (aFontList);
|
||||
@@ -988,7 +988,7 @@ EmbossStyles Emboss::get_font_list_by_enumeration() {
|
||||
|
||||
HDC hDC = GetDC(NULL);
|
||||
std::vector<std::wstring> font_names;
|
||||
EnumFontFamilies(hDC, (LPCTSTR) NULL, EnumFamCallBack,
|
||||
EnumFontFamilies(hDC, (LPCTSTR) NULL, (FONTENUMPROC) EnumFamCallBack,
|
||||
(LPARAM) &font_names);
|
||||
|
||||
EmbossStyles font_list;
|
||||
|
||||
+52
-59
@@ -11,7 +11,7 @@
|
||||
|
||||
#include "AABBTreeLines.hpp"
|
||||
#include "ExtrusionEntity.hpp"
|
||||
#include "Fill.hpp"
|
||||
#include "FillBase.hpp"
|
||||
#include "FillRectilinear.hpp"
|
||||
#include "FillLightning.hpp"
|
||||
#include "FillConcentricInternal.hpp"
|
||||
@@ -1234,33 +1234,6 @@ std::vector<SurfaceFill> group_fills(const Layer &layer, LockRegionParam &lock_p
|
||||
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
|
||||
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
|
||||
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) {
|
||||
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 ) {
|
||||
params.locked_zag = true;
|
||||
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;
|
||||
for (ExPolygon& expoly : surface_fill.expolygons) {
|
||||
|
||||
// Orca: Reuse the body origin used for bridge anchoring, resetting it for each surface.
|
||||
f->set_bounding_box(infill_bounding_box(*this, surface_fill, expoly, bbox));
|
||||
// Orca: separate infill / per-model pattern centering.
|
||||
//
|
||||
// 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);
|
||||
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.gyroid_optimized = surface_fill.params.gyroid_optimized;
|
||||
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) {
|
||||
// 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.
|
||||
f->spacing = surface_fill.params.spacing;
|
||||
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;
|
||||
}
|
||||
|
||||
// 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.
|
||||
void Layer::make_ironing()
|
||||
{
|
||||
@@ -1683,10 +1667,19 @@ void Layer::make_ironing()
|
||||
if (! layerm->slices.empty()) {
|
||||
IroningParams ironing_params;
|
||||
const PrintRegionConfig &config = layerm->region().config();
|
||||
ironing_params.extruder = Layer::choose_ironing_extruder(
|
||||
config,
|
||||
/*spiral_mode=*/this->object()->print()->config().spiral_mode,
|
||||
/*is_topmost_layer=*/layerm->layer()->upper_layer == nullptr);
|
||||
if (config.ironing_type != IroningType::NoIroning &&
|
||||
(config.ironing_type == IroningType::AllSolid ||
|
||||
((config.top_shell_layers > 0 || (this->object()->print()->config().spiral_mode && config.bottom_shell_layers > 1)) &&
|
||||
(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) {
|
||||
//TODO just_infill is currently not used.
|
||||
ironing_params.just_infill = false;
|
||||
|
||||
@@ -14,12 +14,6 @@ namespace Slic3r {
|
||||
|
||||
class ExtrusionEntityCollection;
|
||||
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.
|
||||
class Filler
|
||||
|
||||
@@ -1395,8 +1395,8 @@ void Filler::_fill_surface_single(
|
||||
}
|
||||
#endif /* ADAPTIVE_CUBIC_INFILL_DEBUG_OUTPUT */
|
||||
|
||||
const auto hook_length = coordf_t(scale_(params.anchor_length));
|
||||
const auto hook_length_max = coordf_t(scale_(params.anchor_length_max));
|
||||
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(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);
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user