Merge branch 'main' into zaa

This commit is contained in:
SoftFever
2026-04-28 16:57:02 +08:00
committed by GitHub
11158 changed files with 1904567 additions and 1867499 deletions
+9
View File
@@ -11,6 +11,15 @@ body:
For this, please use the [Feature request](https://github.com/OrcaSlicer/OrcaSlicer/issues/new?assignees=&labels=&projects=&template=feature_request.yml) issue type or you can discuss your idea on our [Discord server](https://discord.gg/P4VE9UY9gJ) with others.
Before filing, please check if the issue already exists (either open or closed) by using the search bar on the issues page. If it does, comment there. Even if it's closed, we can reopen it based on your comment.
- type: checkboxes
attributes:
label: Is this issue reproducible in the latest nightly build?
description: >
Please verify this issue still happens in the latest nightly build first. It may already be fixed there:
[Nightly builds](https://github.com/OrcaSlicer/OrcaSlicer/releases/tag/nightly-builds).
options:
- label: I have checked the latest nightly build and the issue is still reproducible
required: true
- type: checkboxes
attributes:
label: Is there an existing issue for this problem?
+6
View File
@@ -19,3 +19,9 @@
<!--
> Please describe the tests that you have conducted to verify the changes made in this PR.
-->
<!--
> A guide for users on how to download the artifacts from this PR.
-->
[How to Download Pull Requests Artifacts for Testing](https://www.orcaslicer.com/wiki/how_to_download_pr_artifacts)
+2 -1
View File
@@ -136,7 +136,7 @@ jobs:
files: "ctest_results.xml"
- name: Delete Test Artifact
if: success()
uses: geekyeggo/delete-artifact@v5
uses: geekyeggo/delete-artifact@v6
with:
name: ${{ github.sha }}-tests
flatpak:
@@ -160,6 +160,7 @@ jobs:
runner: ubuntu-24.04-arm
# Don't run scheduled builds on forks; skip entirely on self-hosted runners
if: ${{ !cancelled() && !vars.SELF_HOSTED && (github.event_name != 'schedule' || github.repository == 'OrcaSlicer/OrcaSlicer') }}
runs-on: ${{ matrix.variant.runner }}
env:
date:
+1 -1
View File
@@ -52,7 +52,7 @@ jobs:
- name: setup dev on Windows
if: runner.os == 'Windows'
uses: microsoft/setup-msbuild@v2
uses: microsoft/setup-msbuild@v3
- name: Get the date on Ubuntu and macOS
if: runner.os != 'Windows'
+17 -5
View File
@@ -155,7 +155,7 @@ jobs:
- name: Delete intermediate per-arch artifacts
if: runner.os == 'macOS' && inputs.macos-combine-only
uses: geekyeggo/delete-artifact@v5
uses: geekyeggo/delete-artifact@v6
with:
name: |
OrcaSlicer_Mac_bundle_arm64_${{ github.sha }}
@@ -275,7 +275,7 @@ jobs:
# Windows
- name: setup MSVC
if: runner.os == 'Windows'
uses: microsoft/setup-msbuild@v2
uses: microsoft/setup-msbuild@v3
- name: Install nsis
if: runner.os == 'Windows' && !vars.SELF_HOSTED
@@ -286,9 +286,10 @@ jobs:
- name: Build slicer Win
if: runner.os == 'Windows'
working-directory: ${{ github.workspace }}
env:
WindowsSdkDir: 'C:\Program Files (x86)\Windows Kits\10\'
WindowsSDKVersion: '10.0.26100.0\'
# Orca: Removed Netfabb STL fixing service support in favor of CGAL.
# env:
# WindowsSdkDir: 'C:\Program Files (x86)\Windows Kits\10\'
# WindowsSDKVersion: '10.0.26100.0\'
run: .\build_release_vs.bat slicer
- name: Create installer Win
@@ -382,6 +383,7 @@ jobs:
shell: bash
run: |
./build_linux.sh -istrlL
./scripts/check_appimage_libs.sh ./build/package ./build/package/bin/orca-slicer
mv -n ./build/OrcaSlicer_Linux_V${{ env.ver_pure }}.AppImage ./build/OrcaSlicer_Linux_AppImage${{ env.ubuntu-ver-str }}_${{ env.ver }}.AppImage
chmod +x ./build/OrcaSlicer_Linux_AppImage${{ env.ubuntu-ver-str }}_${{ env.ver }}.AppImage
tar -cvpf build_tests.tar build/tests
@@ -398,6 +400,16 @@ jobs:
retention-days: 5
if-no-files-found: error
- name: Run external slicer regression tests
if: runner.os == 'Linux'
timeout-minutes: 20
shell: bash
run: |
test_repo_dir="${{ runner.temp }}/orca-test-repo"
rm -rf "$test_repo_dir"
git clone --depth 1 https://github.com/OrcaSlicer/orca-test-repo.git "$test_repo_dir"
python3 "$test_repo_dir/run_test.py" "${{ github.workspace }}/build/package/bin/orca-slicer"
- name: Build orca_custom_preset_tests
if: github.ref == 'refs/heads/main' && runner.os == 'Linux' && !vars.SELF_HOSTED
working-directory: ${{ github.workspace }}/build/src/Release
+275
View File
@@ -0,0 +1,275 @@
name: PR Label Bot
on:
pull_request_target:
types:
- opened
- reopened
issue_comment:
types:
- created
permissions:
contents: read
pull-requests: write
issues: write
jobs:
request-label:
if: github.event_name == 'pull_request_target' && github.event.pull_request.author_association != 'COLLABORATOR' && github.event.pull_request.author_association != 'OWNER' && github.event.pull_request.author_association != 'MEMBER'
permissions:
contents: read
pull-requests: write
issues: write
runs-on: ubuntu-latest
steps:
- name: Ask PR author for label
uses: actions/github-script@v7
with:
script: |
function isPermissionDenied(error) {
return error && error.status === 403 && /Resource not accessible by integration/i.test(error.message || '');
}
const allowedLabels = [
'bug-fix',
'enhancement',
'Localization',
'profile',
'QoL',
'UI/UX',
'dependencies'
];
const pr = context.payload.pull_request;
const labelsList = `${allowedLabels
.slice(0, -1)
.map((label) => `\`${label}\``)
.join(', ')} and \`${allowedLabels[allowedLabels.length - 1]}\`.`;
const examplesText = [
'```',
'/bot add-label bug-fix',
'```',
'```',
'/bot add-label bug-fix, UI/UX',
'```',
'```',
'/bot remove-label bug-fix, UI/UX',
'```'
].join('\n');
try {
await github.rest.issues.createComment({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: pr.number,
body:
`Hi @${pr.user.login}, you can manage the labels for this PR by \`/bot add-label\` and \`/bot remove-label\`\n\n` +
`Allowed labels are:\n${labelsList}\n\n` +
`Examples:\n${examplesText}`
});
} catch (error) {
if (isPermissionDenied(error)) {
core.warning(
'Skipping PR comment because token cannot write. Enable Actions write permissions, ' +
'or run with a token that has issues:write and pull_requests:write.'
);
return;
}
throw error;
}
apply-label:
if: github.event_name == 'issue_comment'
permissions:
contents: read
pull-requests: write
issues: write
runs-on: ubuntu-latest
steps:
- name: Apply label command from PR author
uses: actions/github-script@v7
with:
script: |
function isPermissionDenied(error) {
return error && error.status === 403 && /Resource not accessible by integration/i.test(error.message || '');
}
const allowedLabels = [
'bug-fix',
'enhancement',
'Localization',
'profile',
'QoL',
'UI/UX',
'dependencies'
];
const issue = context.payload.issue;
if (!issue.pull_request) {
core.info('Ignoring comment that is not on a pull request.');
return;
}
const body = (context.payload.comment.body || '').trim();
const commandLine = body
.split('\n')
.map((line) => line.trim())
.find((line) => /^\/bot\s+(add-label|remove-label)(?:\s*:\s*|\s+)/i.test(line));
if (!commandLine) {
core.info('No /bot add-label or /bot remove-label command found.');
return;
}
const commandMatch = commandLine.match(/^\/bot\s+(add-label|remove-label)(?:\s*:\s*|\s+)(.+)\s*$/i);
if (!commandMatch) {
core.info('Label command format is invalid.');
return;
}
const action = commandMatch[1].toLowerCase() === 'add-label' ? 'add' : 'remove';
let labelsExpr = (commandMatch[2] || '').trim();
if (!labelsExpr) {
core.info('Label command is missing label name.');
return;
}
if (labelsExpr.startsWith('[') && labelsExpr.endsWith(']')) {
labelsExpr = labelsExpr.slice(1, -1).trim();
}
const requestedRawLabels = labelsExpr
.split(',')
.map((part) => part.trim())
.filter(Boolean);
if (!requestedRawLabels.length) {
core.info('No labels were provided in the command.');
return;
}
const { data: pr } = await github.rest.pulls.get({
owner: context.repo.owner,
repo: context.repo.repo,
pull_number: issue.number
});
const commenter = context.payload.comment.user.login;
if (commenter !== pr.user.login) {
core.info('Ignoring command because commenter is not the PR author.');
return;
}
const labelsByLower = new Map(
allowedLabels.map((label) => [label.toLowerCase(), label])
);
const resolvedLabels = [];
const invalidLabels = [];
for (const rawLabel of requestedRawLabels) {
const resolved = labelsByLower.get(rawLabel.toLowerCase());
if (resolved) {
resolvedLabels.push(resolved);
} else {
invalidLabels.push(rawLabel);
}
}
const uniqueRequestedLabels = [...new Set(resolvedLabels)];
if (action === 'add' && uniqueRequestedLabels.length) {
try {
await github.rest.issues.addLabels({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: issue.number,
labels: uniqueRequestedLabels
});
} catch (error) {
if (isPermissionDenied(error)) {
core.warning(
'Cannot add labels because token cannot write. Enable Actions write permissions, ' +
'or run with a token that has issues:write and pull_requests:write.'
);
return;
}
throw error;
}
core.info(`Added labels: ${uniqueRequestedLabels.join(', ')}`);
}
if (action === 'remove' && uniqueRequestedLabels.length) {
let removedCount = 0;
try {
for (const label of uniqueRequestedLabels) {
try {
await github.rest.issues.removeLabel({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: issue.number,
name: label
});
removedCount += 1;
} catch (error) {
if (isPermissionDenied(error)) {
core.warning(
'Cannot remove labels because token cannot write. Enable Actions write permissions, ' +
'or run with a token that has issues:write and pull_requests:write.'
);
return;
}
if (error.status === 404) {
core.info(`Label is not currently applied: ${label}`);
continue;
}
throw error;
}
}
core.info(`Removed labels count: ${removedCount}`);
} catch (error) {
throw error;
}
}
if (!uniqueRequestedLabels.length) {
core.info('No valid labels were provided in the command.');
}
if (invalidLabels.length) {
const allowedText = allowedLabels.map((label) => `\`${label}\``).join(', ');
const invalidText = invalidLabels.map((label) => `\`${label}\``).join(', ');
const validText = uniqueRequestedLabels.length
? `\n\nProcessed valid label(s): ${uniqueRequestedLabels.map((label) => `\`${label}\``).join(', ')}`
: '';
try {
await github.rest.issues.createComment({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: issue.number,
body:
`@${commenter} invalid label(s): ${invalidText}.${validText}\n\n` +
`Allowed labels: ${allowedText}\n\n` +
`Use:\n` +
`- \`/bot add-label label\`\n` +
`- \`/bot remove-label label\`\n` +
`- \`/bot add-label label1, label2\``
});
} catch (error) {
if (isPermissionDenied(error)) {
core.warning('Cannot post invalid-label feedback because token cannot write comments.');
return;
}
throw error;
}
}
const processedLabelsText = uniqueRequestedLabels.length ? uniqueRequestedLabels.join(', ') : '(none)';
core.info(`Processed label command: ${action} ${processedLabelsText}`);
+41 -50
View File
@@ -117,7 +117,7 @@ else()
set(SLIC3R_STATIC_INITIAL 1)
endif()
option(SLIC3R_STATIC "Compile OrcaSlicer with static libraries (Boost, TBB, glew)" ${SLIC3R_STATIC_INITIAL})
option(SLIC3R_STATIC "Compile OrcaSlicer with static libraries (Boost, TBB)" ${SLIC3R_STATIC_INITIAL})
option(SLIC3R_GUI "Compile OrcaSlicer with GUI components (OpenGL, wxWidgets)" 1)
option(SLIC3R_FHS "Assume OrcaSlicer is to be installed in a FHS directory structure" 0)
option(SLIC3R_PROFILE "Compile OrcaSlicer with an invasive Shiny profiler" 0)
@@ -323,43 +323,44 @@ set(CMAKE_POSITION_INDEPENDENT_CODE ON)
# WIN10SDK_PATH is used to point CMake to the WIN10 SDK installation directory.
# We pick it from environment if it is not defined in another way
if(WIN32)
if(NOT DEFINED WIN10SDK_PATH)
if(DEFINED ENV{WIN10SDK_PATH})
set(WIN10SDK_PATH "$ENV{WIN10SDK_PATH}")
endif()
endif()
if(DEFINED WIN10SDK_PATH)
#BBS: modify win10sdk_path
if (EXISTS "${WIN10SDK_PATH}/winrt/windows.graphics.printing3d.h")
set(WIN10SDK_INCLUDE_PATH "${WIN10SDK_PATH}")
else()
message("WIN10SDK_PATH is invalid: ${WIN10SDK_PATH}")
message("${WIN10SDK_PATH}/winrt/windows.graphics.printing3d.h was not found")
message("STL fixing by the Netfabb service will not be compiled")
unset(WIN10SDK_PATH)
endif()
else()
# Try to use the default Windows 10 SDK path.
if (DEFINED ENV{WindowsSdkDir} AND DEFINED ENV{WindowsSDKVersion})
set(WIN10SDK_INCLUDE_PATH "$ENV{WindowsSdkDir}/Include/$ENV{WindowsSDKVersion}")
else ()
set(WIN10SDK_INCLUDE_PATH "C:/Program Files (x86)/Windows Kits/10/Include/10.0.26100.0")
endif ()
if (NOT EXISTS "${WIN10SDK_INCLUDE_PATH}/winrt/windows.graphics.printing3d.h")
message("${WIN10SDK_INCLUDE_PATH}/winrt/windows.graphics.printing3d.h was not found")
message("STL fixing by the Netfabb service will not be compiled")
unset(WIN10SDK_INCLUDE_PATH)
endif()
endif()
if(WIN10SDK_INCLUDE_PATH)
message("Building with Win10 Netfabb STL fixing service support")
add_definitions(-DHAS_WIN10SDK)
include_directories(SYSTEM "${WIN10SDK_INCLUDE_PATH}")
else()
message("Building without Win10 Netfabb STL fixing service support")
endif()
endif()
# ORCA: Removed Netfabb STL fixing service support in favor of CGAL.
# if(WIN32)
# if(NOT DEFINED WIN10SDK_PATH)
# if(DEFINED ENV{WIN10SDK_PATH})
# set(WIN10SDK_PATH "$ENV{WIN10SDK_PATH}")
# endif()
# endif()
# if(DEFINED WIN10SDK_PATH)
# #BBS: modify win10sdk_path
# if (EXISTS "${WIN10SDK_PATH}/winrt/windows.graphics.printing3d.h")
# set(WIN10SDK_INCLUDE_PATH "${WIN10SDK_PATH}")
# else()
# message("WIN10SDK_PATH is invalid: ${WIN10SDK_PATH}")
# message("${WIN10SDK_PATH}/winrt/windows.graphics.printing3d.h was not found")
# message("STL fixing by the Netfabb service will not be compiled")
# unset(WIN10SDK_PATH)
# endif()
# else()
# # Try to use the default Windows 10 SDK path.
# if (DEFINED ENV{WindowsSdkDir} AND DEFINED ENV{WindowsSDKVersion})
# set(WIN10SDK_INCLUDE_PATH "$ENV{WindowsSdkDir}/Include/$ENV{WindowsSDKVersion}")
# else ()
# set(WIN10SDK_INCLUDE_PATH "C:/Program Files (x86)/Windows Kits/10/Include/10.0.26100.0")
# endif ()
# if (NOT EXISTS "${WIN10SDK_INCLUDE_PATH}/winrt/windows.graphics.printing3d.h")
# message("${WIN10SDK_INCLUDE_PATH}/winrt/windows.graphics.printing3d.h was not found")
# message("STL fixing by the Netfabb service will not be compiled")
# unset(WIN10SDK_INCLUDE_PATH)
# endif()
# endif()
# if(WIN10SDK_INCLUDE_PATH)
# message("Building with Win10 Netfabb STL fixing service support")
# add_definitions(-DHAS_WIN10SDK)
# include_directories(SYSTEM "${WIN10SDK_INCLUDE_PATH}")
# else()
# message("Building without Win10 Netfabb STL fixing service support")
# endif()
# endif()
if (APPLE)
message("OS X SDK Path: ${CMAKE_OSX_SYSROOT}")
@@ -694,16 +695,6 @@ if(APPLE AND CMAKE_VERSION VERSION_GREATER_EQUAL "4.0")
set(OPENGL_LIBRARIES "-framework OpenGL" CACHE STRING "OpenGL framework" FORCE)
endif()
set(GLEW_ROOT "${CMAKE_PREFIX_PATH}")
message("GLEW_ROOT: ${GLEW_ROOT}")
# Find glew or use bundled version
if (SLIC3R_STATIC AND NOT SLIC3R_STATIC_EXCLUDE_GLEW)
set(GLEW_USE_STATIC_LIBS ON)
set(GLEW_VERBOSE ON)
endif()
find_package(GLEW REQUIRED)
find_package(glfw3 REQUIRED)
# Find the Cereal serialization library
@@ -919,7 +910,7 @@ elseif (SLIC3R_FHS)
install(DIRECTORY ${SLIC3R_RESOURCES_DIR}/ DESTINATION ${SLIC3R_FHS_RESOURCES}
PATTERN "*/udev" EXCLUDE
)
install(FILES src/dev-utils/platform/unix/OrcaSlicer.desktop DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/applications)
install(FILES src/dev-utils/platform/unix/com.orcaslicer.OrcaSlicer.desktop DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/applications)
foreach(SIZE 32 128 192)
install(FILES ${SLIC3R_RESOURCES_DIR}/images/OrcaSlicer_${SIZE}px.png
DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/${SIZE}x${SIZE}/apps RENAME OrcaSlicer.png
@@ -928,7 +919,7 @@ elseif (SLIC3R_FHS)
elseif (CMAKE_MACOSX_BUNDLE)
# install(DIRECTORY "${SLIC3R_RESOURCES_DIR}/" DESTINATION "${CMAKE_INSTALL_PREFIX}/OrcaSlicer.app/Contents/resources")
else ()
install(FILES src/dev-utils/platform/unix/OrcaSlicer.desktop DESTINATION ${CMAKE_INSTALL_PREFIX}/resources/applications)
install(FILES src/dev-utils/platform/unix/com.orcaslicer.OrcaSlicer.desktop DESTINATION ${CMAKE_INSTALL_PREFIX}/resources/applications)
install(DIRECTORY "${SLIC3R_RESOURCES_DIR}/" DESTINATION "${CMAKE_INSTALL_PREFIX}/resources")
endif ()
+23 -5
View File
@@ -44,7 +44,7 @@ If you come across any of these in search results, please <b>report them</b> as
# Main features
- **[Advanced Calibration Tools](https://www.orcaslicer.com/wiki/Calibration)**
- **[Advanced Calibration Tools](https://www.orcaslicer.com/wiki/calibration_guide)**
Comprehensive suite: temperature towers, flow rate, retraction & more for optimal performance.
- **[Precise Wall](https://www.orcaslicer.com/wiki/quality_settings_precision#precise-wall) and [Seam Control](https://www.orcaslicer.com/wiki/quality_settings_seam)**
Adjust outer wall spacing and apply scarf seams to enhance print accuracy.
@@ -71,7 +71,7 @@ If you come across any of these in search results, please <b>report them</b> as
The [wiki](https://www.orcaslicer.com/wiki) aims to provide a detailed explanation of the slicer settings, including how to maximize their use and how to calibrate and set up your printer.
- **[Access the wiki here](https://www.orcaslicer.com/wiki)**
- **[Contribute to the wiki](https://www.orcaslicer.com/wiki/How-to-wiki)**
- **[Contribute to the wiki](https://www.orcaslicer.com/wiki/how_to_wiki)**
# Download
@@ -137,14 +137,32 @@ winget install --id=SoftFever.OrcaSlicer -e
![mac_security_setting](./SoftFever_doc/mac_security_setting.png)
</details>
## Linux (Ubuntu)
## Linux
1. If you run into trouble executing it, try this command in the terminal:
### Flathub (Recommended)
OrcaSlicer is available through FlatHub:
<a href='https://flathub.org/apps/com.orcaslicer.OrcaSlicer'><img width='240' alt='Download on Flathub' src='https://dl.flathub.org/assets/badges/flathub-badge-en.png'/></a>
Install from the command line:
```shell
flatpak install flathub com.orcaslicer.OrcaSlicer
flatpak run com.orcaslicer.OrcaSlicer
```
It can also be installed through graphical software managers (KDE Discover, GNOME Software, etc.) when Flathub is enabled. Search for **OrcaSlicer** in your software center.
### AppImage
1. Download App image from the [releases page](https://github.com/OrcaSlicer/OrcaSlicer/releases).
2. Double click the downloaded file to run it.
3. If you run into trouble executing it, try this command in the terminal:
`chmod +x /path_to_appimage/OrcaSlicer_Linux.AppImage`
# How to Compile
All updated build instructions for Windows, macOS, and Linux are now available on the official [OrcaSlicer Wiki - How to build](https://www.orcaslicer.com/wiki/How-to-build) page.
All updated build instructions for Windows, macOS, and Linux are now available on the official [OrcaSlicer Wiki - How to build](https://www.orcaslicer.com/wiki/how_to_build) page.
Please refer to the wiki to ensure you're following the latest and most accurate steps for your platform.
+305 -3
View File
@@ -8,7 +8,7 @@ SCRIPT_PATH=$(dirname "$(readlink -f "${0}")")
pushd "${SCRIPT_PATH}" > /dev/null
function usage() {
echo "Usage: ./${SCRIPT_NAME} [-1][-b][-c][-d][-D][-e][-h][-i][-j N][-p][-r][-s][-t][-u][-l][-L]"
echo "Usage: ./${SCRIPT_NAME} [-1][-b][-c][-d][-D][-e][-F][-g][-h][-i][-j N][-p][-r][-s][-t][-u][-l][-L]"
echo " -1: limit builds to one core (where possible)"
echo " -j N: limit builds to N cores (where possible)"
echo " -b: build in Debug mode"
@@ -17,6 +17,8 @@ function usage() {
echo " -d: download and build dependencies in ./deps/ (build prerequisite)"
echo " -D: dry run"
echo " -e: build in RelWithDebInfo mode"
echo " -F: rebuild the cached Docker/Podman runner image from scratch when used with -g"
echo " -g: run the requested build steps inside a Docker/Podman Ubuntu 24.04 container similar to the GitHub Actions Linux runner"
echo " -h: prints this help text"
echo " -i: build the Orca Slicer AppImage (optional)"
echo " -p: boost ccache hit rate by disabling precompiled headers (default: ON)"
@@ -28,6 +30,9 @@ function usage() {
echo " -L: use ld.lld as linker (if available)"
echo "For a first use, you want to './${SCRIPT_NAME} -u'"
echo " and then './${SCRIPT_NAME} -dsi'"
echo "For a GitHub Actions-like Linux build locally, use './${SCRIPT_NAME} -g -istrlL'"
echo "Use './${SCRIPT_NAME} -gF -istrlL' to rebuild the cached runner image first."
echo "Set ORCA_CONTAINER_CLI, ORCA_DOCKER_IMAGE, ORCA_DOCKER_BASE_IMAGE, or ORCA_DOCKER_CMAKE_VERSION to override the container runtime, cached image tag, base image, or CMake version."
}
SLIC3R_PRECOMPILED_HEADERS="ON"
@@ -35,60 +40,83 @@ SLIC3R_PRECOMPILED_HEADERS="ON"
unset name
BUILD_DIR=build
BUILD_CONFIG=Release
while getopts ":1j:bcCdDehiprstulL" opt ; do
FORWARDED_ARGS=()
while getopts ":1j:bcCdDeFghiprstulL" opt ; do
case ${opt} in
1 )
export CMAKE_BUILD_PARALLEL_LEVEL=1
FORWARDED_ARGS+=("-1")
;;
j )
export CMAKE_BUILD_PARALLEL_LEVEL=$OPTARG
FORWARDED_ARGS+=("-j" "$OPTARG")
;;
b )
BUILD_DIR=build-dbg
BUILD_CONFIG=Debug
FORWARDED_ARGS+=("-b")
;;
c )
CLEAN_BUILD=1
FORWARDED_ARGS+=("-c")
;;
C )
COLORED_OUTPUT="-DCOLORED_OUTPUT=ON"
FORWARDED_ARGS+=("-C")
;;
d )
BUILD_DEPS="1"
FORWARDED_ARGS+=("-d")
;;
D )
DRY_RUN="1"
FORWARDED_ARGS+=("-D")
;;
e )
BUILD_DIR=build-dbginfo
BUILD_CONFIG=RelWithDebInfo
FORWARDED_ARGS+=("-e")
;;
F )
CLEAN_DOCKER_IMAGE="1"
;;
g )
USE_DOCKER="1"
;;
h ) usage
exit 1
;;
i )
BUILD_IMAGE="1"
FORWARDED_ARGS+=("-i")
;;
p )
SLIC3R_PRECOMPILED_HEADERS="OFF"
FORWARDED_ARGS+=("-p")
;;
r )
SKIP_RAM_CHECK="1"
FORWARDED_ARGS+=("-r")
;;
s )
BUILD_ORCA="1"
FORWARDED_ARGS+=("-s")
;;
t )
BUILD_TESTS="1"
FORWARDED_ARGS+=("-t")
;;
u )
export UPDATE_LIB="1"
FORWARDED_ARGS+=("-u")
;;
l )
USE_CLANG="1"
FORWARDED_ARGS+=("-l")
;;
L )
USE_LLD="1"
FORWARDED_ARGS+=("-L")
;;
* )
echo "Unknown argument '${opt}', aborting."
@@ -102,6 +130,11 @@ if [ ${OPTIND} -eq 1 ] ; then
exit 1
fi
if [[ -n "${CLEAN_DOCKER_IMAGE}" ]] && [[ -z "${USE_DOCKER}" ]] ; then
echo "Error: -F requires -g."
exit 1
fi
function check_available_memory_and_disk() {
FREE_MEM_GB=$(free --gibi --total | grep 'Mem' | rev | cut --delimiter=" " --fields=1 | rev)
MIN_MEM_GB=10
@@ -139,6 +172,275 @@ function print_and_run() {
fi
}
function resolve_container_cli() {
if [[ -n "${ORCA_CONTAINER_CLI}" ]] ; then
if ! command -v "${ORCA_CONTAINER_CLI}" >/dev/null 2>&1 ; then
echo "Error: container runtime '${ORCA_CONTAINER_CLI}' was not found." >&2
exit 1
fi
echo "${ORCA_CONTAINER_CLI}"
return
fi
if command -v docker >/dev/null 2>&1 ; then
echo "docker"
return
fi
if command -v podman >/dev/null 2>&1 ; then
echo "podman"
return
fi
echo "Error: neither docker nor podman is available. Install one of them or set ORCA_CONTAINER_CLI." >&2
exit 1
}
function get_docker_runner_image() {
local base_image
local docker_cmake_version
local recipe_hash
local sanitized_base_image
local sanitized_cmake_version
if [[ -n "${ORCA_DOCKER_IMAGE}" ]] ; then
echo "${ORCA_DOCKER_IMAGE}"
return
fi
base_image="${ORCA_DOCKER_BASE_IMAGE:-ubuntu:24.04}"
docker_cmake_version="${ORCA_DOCKER_CMAKE_VERSION-4.3.0}"
recipe_hash=$(find "${SCRIPT_PATH}/build_linux.sh" "${SCRIPT_PATH}/scripts/linux.d" -type f -print0 | sort -z | xargs -0 cat | sha256sum | cut -c1-12)
sanitized_base_image=$(echo "${base_image}" | tr '/:@' '---' | tr -cs 'A-Za-z0-9_.-' '-')
sanitized_cmake_version=$(echo "${docker_cmake_version:-system}" | tr -cs 'A-Za-z0-9_.-' '-')
echo "orcaslicer-linux-builder:${sanitized_base_image}-cmake-${sanitized_cmake_version}-${recipe_hash}"
}
function docker_runner_dockerfile() {
cat <<'EOF'
ARG BASE_IMAGE=ubuntu:24.04
FROM ${BASE_IMAGE}
ARG CMAKE_VERSION=4.3.0
ENV DEBIAN_FRONTEND=noninteractive
SHELL ["/bin/bash", "-c"]
RUN apt-get update && apt-get install -y sudo ca-certificates curl tar
COPY build_linux.sh /tmp/orcaslicer/build_linux.sh
COPY scripts/linux.d /tmp/orcaslicer/scripts/linux.d
WORKDIR /tmp/orcaslicer
RUN chmod +x ./build_linux.sh
RUN ./build_linux.sh -ur
RUN if [[ -n "${CMAKE_VERSION}" ]] ; then \
case "$(uname -m)" in \
x86_64|amd64) cmake_arch="x86_64" ;; \
aarch64|arm64) cmake_arch="aarch64" ;; \
*) cmake_arch="" ;; \
esac ; \
if [[ -n "${cmake_arch}" ]] ; then \
cmake_root="/opt/cmake-${CMAKE_VERSION}-linux-${cmake_arch}" ; \
if ! curl -fsSL "https://github.com/Kitware/CMake/releases/download/v${CMAKE_VERSION}/cmake-${CMAKE_VERSION}-linux-${cmake_arch}.tar.gz" | tar -xz -C /opt ; then \
echo "Warning: failed to install CMake ${CMAKE_VERSION}; falling back to the distro cmake package." ; \
elif [[ -d "${cmake_root}" ]] ; then \
ln -sf "${cmake_root}/bin/"* /usr/local/bin/ ; \
fi ; \
else \
echo "Skipping GitHub Actions CMake install for unsupported architecture $(uname -m)." ; \
fi ; \
fi
RUN rm -rf /var/lib/apt/lists/* /tmp/orcaslicer
EOF
}
function ensure_docker_runner_image() {
local container_cli
local base_image
local runner_image
local docker_cmake_version
local image_exists="0"
local force_rebuild="0"
local -a build_cmd
container_cli="$1"
runner_image="$2"
base_image="${ORCA_DOCKER_BASE_IMAGE:-ubuntu:24.04}"
docker_cmake_version="${ORCA_DOCKER_CMAKE_VERSION-4.3.0}"
if "${container_cli}" image inspect "${runner_image}" >/dev/null 2>&1 ; then
image_exists="1"
fi
if [[ -n "${CLEAN_DOCKER_IMAGE}" ]] ; then
force_rebuild="1"
if [[ "${image_exists}" == "1" ]] ; then
echo "Removing cached container image ${runner_image} ..."
if [[ -z "${DRY_RUN}" ]] ; then
"${container_cli}" image rm -f "${runner_image}" >/dev/null
else
printf '%q ' "${container_cli}" image rm -f "${runner_image}"
echo
fi
image_exists="0"
fi
fi
if [[ "${image_exists}" == "1" ]] ; then
echo "Using cached container image ${runner_image}"
return
fi
build_cmd=(
"${container_cli}" build --pull
-t "${runner_image}"
--build-arg "BASE_IMAGE=${base_image}"
--build-arg "CMAKE_VERSION=${docker_cmake_version}"
)
if [[ "${force_rebuild}" == "1" ]] ; then
build_cmd+=(--no-cache)
fi
build_cmd+=(-f - "${SCRIPT_PATH}")
printf '%q ' "${build_cmd[@]}"
echo
if [[ -n "${DRY_RUN}" ]] ; then
return
fi
docker_runner_dockerfile | "${build_cmd[@]}"
}
function run_in_docker() {
local container_cli
local runner_image
local container_workspace
local host_uid
local host_gid
local host_user
local -a build_args
local -a container_env
container_cli=$(resolve_container_cli)
runner_image=$(get_docker_runner_image)
host_uid=$(id -u)
host_gid=$(id -g)
host_user="${USER:-orca}"
container_workspace="/__w/OrcaSlicer/OrcaSlicer"
build_args=()
for item in "${FORWARDED_ARGS[@]}" ; do
if [[ "${item}" == "-u" ]] || [[ "${item}" == "-D" ]] ; then
continue
fi
build_args+=("${item}")
done
container_env=(
-e "CI=true"
-e "GITHUB_ACTIONS=true"
-e "GITHUB_WORKSPACE=${container_workspace}"
-e "RUNNER_OS=Linux"
-e "RUNNER_TEMP=/tmp"
-e "HOST_UID=${host_uid}"
-e "HOST_GID=${host_gid}"
-e "HOST_USER=${host_user}"
)
if [[ -n "${CMAKE_BUILD_PARALLEL_LEVEL}" ]] ; then
container_env+=( -e "CMAKE_BUILD_PARALLEL_LEVEL=${CMAKE_BUILD_PARALLEL_LEVEL}" )
fi
if [[ -n "${ORCA_UPDATER_SIG_KEY}" ]] ; then
container_env+=( -e "ORCA_UPDATER_SIG_KEY=${ORCA_UPDATER_SIG_KEY}" )
fi
ensure_docker_runner_image "${container_cli}" "${runner_image}"
printf '%q ' "${container_cli}" run --rm -i \
-v "${SCRIPT_PATH}:${container_workspace}" \
-w "${container_workspace}" \
"${container_env[@]}" \
"${runner_image}" \
bash -s -- "${build_args[@]}"
echo
if [[ -n "${DRY_RUN}" ]] ; then
return
fi
"${container_cli}" run --rm -i \
-v "${SCRIPT_PATH}:${container_workspace}" \
-w "${container_workspace}" \
"${container_env[@]}" \
"${runner_image}" \
bash -s -- "${build_args[@]}" <<'EOF'
set -e
function create_builder_user() {
if [[ "${HOST_UID}" == "0" ]] ; then
HOST_USER=root
return
fi
if getent group "${HOST_GID}" >/dev/null 2>&1 ; then
HOST_GROUP=$(getent group "${HOST_GID}" | cut -d: -f1)
else
HOST_GROUP="orca-builder"
if getent group "${HOST_GROUP}" >/dev/null 2>&1 ; then
HOST_GROUP="orca-builder-${HOST_GID}"
fi
groupadd -g "${HOST_GID}" "${HOST_GROUP}"
fi
if getent passwd "${HOST_UID}" >/dev/null 2>&1 ; then
HOST_USER=$(getent passwd "${HOST_UID}" | cut -d: -f1)
usermod -g "${HOST_GROUP}" "${HOST_USER}"
elif id -u "${HOST_USER}" >/dev/null 2>&1 ; then
usermod -u "${HOST_UID}" -g "${HOST_GROUP}" "${HOST_USER}"
else
useradd -m -u "${HOST_UID}" -g "${HOST_GROUP}" -s /bin/bash "${HOST_USER}"
fi
echo "${HOST_USER} ALL=(ALL) NOPASSWD:ALL" >/etc/sudoers.d/orcaslicer-builder
chmod 0440 /etc/sudoers.d/orcaslicer-builder
}
create_builder_user
mkdir -p "${GITHUB_WORKSPACE}/deps/build/destdir"
chown -R "${HOST_UID}:${HOST_GID}" "${GITHUB_WORKSPACE}/deps/build"
if [[ -d "${GITHUB_WORKSPACE}/build" ]] ; then
chown -R "${HOST_UID}:${HOST_GID}" "${GITHUB_WORKSPACE}/build"
fi
if [[ -d "${GITHUB_WORKSPACE}/build-dbg" ]] ; then
chown -R "${HOST_UID}:${HOST_GID}" "${GITHUB_WORKSPACE}/build-dbg"
fi
if [[ -d "${GITHUB_WORKSPACE}/build-dbginfo" ]] ; then
chown -R "${HOST_UID}:${HOST_GID}" "${GITHUB_WORKSPACE}/build-dbginfo"
fi
sudo -H -u "${HOST_USER}" env \
CMAKE_BUILD_PARALLEL_LEVEL="${CMAKE_BUILD_PARALLEL_LEVEL-}" \
GITHUB_WORKSPACE="${GITHUB_WORKSPACE}" \
ORCA_UPDATER_SIG_KEY="${ORCA_UPDATER_SIG_KEY-}" \
bash -c '
set -e
cd "${GITHUB_WORKSPACE}"
if [[ "$#" -gt 0 ]] ; then
./build_linux.sh "$@"
else
echo "No build steps were requested after container setup."
fi
' bash "$@"
EOF
}
if [[ -n "${USE_DOCKER}" ]] ; then
run_in_docker
popd > /dev/null # ${SCRIPT_PATH}
exit 0
fi
# cmake 4.x compatibility workaround
export CMAKE_POLICY_VERSION_MINIMUM=3.5
@@ -215,7 +517,7 @@ if [[ -n "${BUILD_DEPS}" ]] ; then
fi
print_and_run cmake -S deps -B deps/$BUILD_DIR "${CMAKE_C_CXX_COMPILER_CLANG[@]}" "${CMAKE_LLD_LINKER_ARGS[@]}" -G Ninja "${COLORED_OUTPUT}" "${BUILD_ARGS[@]}"
print_and_run cmake --build deps/$BUILD_DIR
print_and_run cmake --build deps/$BUILD_DIR -j1
fi
if [[ -n "${BUILD_ORCA}" ]] || [[ -n "${BUILD_TESTS}" ]] ; then
+1
View File
@@ -18,6 +18,7 @@ orcaslicer_add_cmake_project(Boost
-DBOOST_EXCLUDE_LIBRARIES:STRING=contract|fiber|numpy|stacktrace|wave|test
-DBOOST_LOCALE_ENABLE_ICU:BOOL=OFF # do not link to libicu, breaks compatibility between distros
-DBUILD_TESTING:BOOL=OFF
-DBOOST_IOSTREAMS_ENABLE_BZIP2:BOOL=OFF # avoid libbz2 soname differences in AppImage builds
-DBOOST_IOSTREAMS_ENABLE_ZSTD:BOOL=OFF
"${_context_abi_line}"
"${_context_arch_line}"
+11 -4
View File
@@ -166,11 +166,18 @@ function(orcaslicer_add_cmake_project projectname)
endif ()
endif ()
set(_gen "")
set(_build_j "-j${NPROC}")
if (MSVC)
set(_gen CMAKE_GENERATOR "${DEP_MSVC_GEN}" CMAKE_GENERATOR_PLATFORM "${DEP_PLATFORM}")
set(_build_j "/m")
set(_gen CMAKE_GENERATOR "${DEP_MSVC_GEN}" CMAKE_GENERATOR_PLATFORM "${DEP_PLATFORM}")
else()
set(_gen "")
endif()
if ($ENV{CMAKE_BUILD_PARALLEL_LEVEL})
set(_build_j "") # assume environment will control --build parallel setting
elseif(MSVC)
set(_build_j "/m")
else()
set(_build_j "-j${NPROC}")
endif ()
if (NOT IS_CROSS_COMPILE OR NOT APPLE)
+7 -9
View File
@@ -6,22 +6,20 @@ else()
set(_build_static ON)
endif()
set(_glfw_platform_args "")
if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
set(_glfw_use_wayland "-DGLFW_USE_WAYLAND=ON")
else()
set(_glfw_use_wayland "-DGLFW_USE_WAYLAND=FF")
set(_glfw_platform_args -DGLFW_BUILD_WAYLAND=ON -DGLFW_BUILD_X11=ON)
endif()
orcaslicer_add_cmake_project(GLFW
URL https://github.com/glfw/glfw/archive/refs/tags/3.3.7.zip
URL_HASH SHA256=e02d956935e5b9fb4abf90e2c2e07c9a0526d7eacae8ee5353484c69a2a76cd0
#DEPENDS dep_Boost
URL https://github.com/glfw/glfw/archive/refs/tags/3.4.zip
URL_HASH SHA256=a133ddc3d3c66143eba9035621db8e0bcf34dba1ee9514a9e23e96afd39fd57a
CMAKE_ARGS
-DBUILD_SHARED_LIBS=${_build_shared}
-DBUILD_SHARED_LIBS=${_build_shared}
-DGLFW_BUILD_DOCS=OFF
-DGLFW_BUILD_EXAMPLES=OFF
-DGLFW_BUILD_TESTS=OFF
${_glfw_use_wayland}
-DGLFW_BUILD_TESTS=OFF
${_glfw_platform_args}
)
if (MSVC)
+2
View File
@@ -55,6 +55,8 @@ orcaslicer_add_cmake_project(OpenCV
-DWITH_VTK=OFF
-DWITH_JPEG=OFF
-DWITH_WEBP=OFF
-DWITH_TIFF=OFF
-DBUILD_TIFF=OFF
-DENABLE_PRECOMPILED_HEADERS=OFF
-DINSTALL_TESTS=OFF
-DINSTALL_C_EXAMPLES=OFF
+2 -1
View File
@@ -38,7 +38,7 @@ orcaslicer_add_cmake_project(
-DwxUSE_DETECT_SM=OFF
-DwxUSE_PRIVATE_FONTS=ON
-DwxUSE_OPENGL=ON
-DwxUSE_GLCANVAS_EGL=OFF
-DwxUSE_GLCANVAS_EGL=ON
-DwxUSE_WEBREQUEST=ON
-DwxUSE_WEBVIEW=ON
${_wx_edge}
@@ -52,6 +52,7 @@ orcaslicer_add_cmake_project(
-DwxUSE_ZLIB=sys
-DwxUSE_LIBJPEG=sys
-DwxUSE_LIBTIFF=OFF
-DwxUSE_LIBWEBP=builtin
-DwxUSE_EXPAT=sys
-DwxUSE_NANOSVG=OFF
)
+16 -1
View File
@@ -162,7 +162,7 @@ msgstr ""
msgid "Smart fill angle"
msgstr ""
msgid "On overhangs only"
msgid "On highlighted overhangs only"
msgstr ""
msgid "Auto support threshold angle: "
@@ -10183,6 +10183,9 @@ msgstr ""
msgid "Switch between Prepare/Preview"
msgstr ""
msgid "Toggle printable for object/part"
msgstr ""
msgid "Plater"
msgstr ""
@@ -12999,6 +13002,18 @@ msgstr ""
msgid "Travel speed of the first layer."
msgstr ""
msgid "First layer travel acceleration"
msgstr ""
msgid "Travel acceleration of first layer."
msgstr ""
msgid "First layer travel jerk"
msgstr ""
msgid "Travel jerk of first layer."
msgstr ""
msgid "Number of slow layers"
msgstr ""
+2 -2
View File
@@ -177,8 +177,8 @@ msgstr "Tipus d'eina"
msgid "Smart fill angle"
msgstr "Angle de farciment intel·ligent"
msgid "On overhangs only"
msgstr "Només als voladissos"
msgid "On highlighted overhangs only"
msgstr "Només als voladissos ressaltats"
msgid "Auto support threshold angle: "
msgstr "Angle llindar de suport automàtic: "
+2 -2
View File
@@ -170,8 +170,8 @@ msgstr "Typ nástroje"
msgid "Smart fill angle"
msgstr "Úhel chytrého vyplnění"
msgid "On overhangs only"
msgstr "Pouze na převisy"
msgid "On highlighted overhangs only"
msgstr "Pouze na zvýrazněné převisy"
msgid "Auto support threshold angle: "
msgstr "Automatický prahový úhel podpěr: "
+14 -2
View File
@@ -172,8 +172,8 @@ msgstr "Werkzeugtyp"
msgid "Smart fill angle"
msgstr "Intelligenter Füllwinkel"
msgid "On overhangs only"
msgstr "Nur an Überhängen"
msgid "On highlighted overhangs only"
msgstr "Nur an hervorgehobenen Überhängen"
msgid "Auto support threshold angle: "
msgstr "Winkel für automatische Supports: "
@@ -15193,6 +15193,18 @@ msgstr "Bewegung"
msgid "Travel speed of the first layer."
msgstr "Bewegungsgeschwindigkeit der ersten Schicht"
msgid "First layer travel acceleration"
msgstr "Eilgang Beschleunigung"
msgid "Travel acceleration of first layer."
msgstr "Eilgang Beschleunigung der ersten Schicht."
msgid "First layer travel jerk"
msgstr "Eilgang Ruck"
msgid "Travel jerk of first layer."
msgstr "Eilgang Ruck der ersten Schicht."
msgid "Number of slow layers"
msgstr "Anzahl der langsamen Schichten"
+14 -2
View File
@@ -158,7 +158,7 @@ msgstr ""
msgid "Smart fill angle"
msgstr ""
msgid "On overhangs only"
msgid "On highlighted overhangs only"
msgstr ""
msgid "Auto support threshold angle: "
@@ -2614,7 +2614,7 @@ msgid "Brim"
msgstr ""
msgid "Object/Part Setting"
msgstr "Object/part setting"
msgstr "Object/part settings"
msgid "Reset parameter"
msgstr ""
@@ -13280,6 +13280,18 @@ msgstr ""
msgid "Travel speed of the first layer."
msgstr ""
msgid "First layer travel acceleration"
msgstr ""
msgid "Travel acceleration of first layer."
msgstr ""
msgid "First layer travel jerk"
msgstr ""
msgid "Travel jerk of first layer."
msgstr ""
#, fuzzy
msgid "Number of slow layers"
msgstr "This is the number of top interface layers."
+120 -126
View File
@@ -113,7 +113,7 @@ msgid "Latest version"
msgstr "Última versión"
msgid "Support Painting"
msgstr "Pintar Soportes"
msgstr "Pintar soportes"
msgid "Ctrl+"
msgstr "Ctrl+"
@@ -125,7 +125,7 @@ msgid "Shift+"
msgstr "Shift+"
msgid "Mouse wheel"
msgstr "Rueda de ratón"
msgstr "Rueda del ratón"
msgid "Section view"
msgstr "Vista de la sección"
@@ -172,8 +172,8 @@ msgstr "Tipo de herramienta"
msgid "Smart fill angle"
msgstr "Ángulo de relleno en puente"
msgid "On overhangs only"
msgstr "Solo en voladizos"
msgid "On highlighted overhangs only"
msgstr "Solo en voladizos resaltados"
msgid "Auto support threshold angle: "
msgstr "Ángulo del umbral de soporte automático: "
@@ -201,7 +201,7 @@ msgid "No auto support"
msgstr "No auto soportes"
msgid "Support Generated"
msgstr "Soportes Generados"
msgstr "Soportes generados"
msgid "Gizmo-Place on Face"
msgstr "Herramienta de selección de faceta como base"
@@ -215,7 +215,7 @@ msgid ""
"the first %1% filaments will be available in painting tool."
msgstr ""
"El recuento de filamentos supera el número máximo que admite la herramienta "
"de pintura. Sólo los primeros %1% de filamentos estarán disponibles en la "
"de pintura. Sólo los primeros %1% filamentos estarán disponibles en la "
"herramienta de pintura."
msgid "Color Painting"
@@ -249,7 +249,7 @@ msgid "Smart fill"
msgstr "Relleno inteligente"
msgid "Bucket fill"
msgstr "Relleno de cubos"
msgstr "Relleno con cubo"
msgid "Height range"
msgstr "Rango de altura"
@@ -258,7 +258,7 @@ msgid "Enter"
msgstr "Enter"
msgid "Toggle Wireframe"
msgstr "Alternar Malla Alámbrica"
msgstr "Alternar malla alámbrica"
msgid "Remap filaments"
msgstr "Remapear filamentos"
@@ -389,10 +389,10 @@ msgid "Group Operations"
msgstr "Operaciones de grupo"
msgid "Set Orientation"
msgstr "Establecer Orientación"
msgstr "Establecer orientación"
msgid "Set Scale"
msgstr "Establecer Escala"
msgstr "Establecer escala"
msgid "Reset Position"
msgstr "Reiniciar posición"
@@ -407,7 +407,7 @@ msgid "World coordinates"
msgstr "Coordenadas globales"
msgid "Translate(Relative)"
msgstr "Traslación (Relativo)"
msgstr "Traslación (relativo)"
msgid "Reset current rotation to the value when open the rotation tool."
msgstr ""
@@ -506,13 +506,13 @@ msgid "Flap Angle"
msgstr "Ángulo de solapa"
msgid "Groove Angle"
msgstr "Ángulo de Ranura"
msgstr "Ángulo del surco"
msgid "Cut position"
msgstr "Posición de corte"
msgid "Build Volume"
msgstr "Volumen de Construcción"
msgstr "Volumen de construcción"
msgid "Part"
msgstr "Pieza"
@@ -606,7 +606,7 @@ msgid "Flip cut plane"
msgstr "Voltear plano de corte"
msgid "Groove change"
msgstr "Cambio de ranura"
msgstr "Cambio de surco"
msgid "Reset"
msgstr "Reiniciar"
@@ -685,11 +685,11 @@ msgid "Connector"
msgstr "Conector"
msgid "Cut by Plane"
msgstr "Corte por Plano"
msgstr "Corte por plano"
msgid "Non-manifold edges be caused by cut tool, do you want to fix it now?"
msgstr ""
"La operación de corte ha resultado en bordes no plegados, ¿Desea repararlos "
"La operación de corte ha resultado en bordes no plegados, ¿desea repararlos "
"ahora?"
msgid "Repairing model object"
@@ -699,7 +699,7 @@ msgid "Cut by line"
msgstr "Corte por Línea"
msgid "Delete connector"
msgstr "Borrar Conector"
msgstr "Borrar conector"
msgid "Mesh name"
msgstr "Nombre de la malla"
@@ -835,7 +835,7 @@ msgid "Text move"
msgstr "Text desplzado"
msgid "Set Mirror"
msgstr "Configurar Espejo"
msgstr "Configurar espejo"
msgid "Embossed text"
msgstr "Texto en relieve"
@@ -1350,11 +1350,11 @@ msgstr ""
#. TRN: An menu option to convert the SVG into an unmodifiable model part.
msgid "Bake"
msgstr "Hornear"
msgstr "Empotrar"
#. TRN: Tooltip for the menu item.
msgid "Bake into model as uneditable part"
msgstr "Hornear en el modelo como parte no editable"
msgstr "Fijar en el modelo como parte no editable"
msgid "Save as"
msgstr "Guardar como"
@@ -1574,7 +1574,7 @@ msgid "Feature 1"
msgstr "Característica 1"
msgid "Reverse rotation"
msgstr "Revertir Rotación"
msgstr "Revertir rotación"
msgid "Rotate around center:"
msgstr "Rotar alrededor del centro:"
@@ -1757,8 +1757,8 @@ msgid ""
"features.\n"
"Click Yes to install it now."
msgstr ""
"Orca Slicer requiere de la librería Microsoft WebView2 Runtime para la "
"funcianolidad de ciertas características.\n"
"Orca Slicer requiere la biblioteca Microsoft WebView2 Runtime para la "
"funcionalidad de ciertas características.\n"
"Haga clic en Sí para instalarlo ahora."
msgid "WebView2 Runtime"
@@ -1809,7 +1809,7 @@ msgstr ""
"perfiles de impresora no se verán afectados."
msgid "Rebuild"
msgstr "Reconstruir"
msgstr "Reconstruyendo"
msgid "Loading current presets"
msgstr "Cargando los perfiles actuales"
@@ -1851,8 +1851,7 @@ msgstr "Usuario desconectado"
msgid "new or open project file is not allowed during the slicing process!"
msgstr ""
"¡crear o abrir un archivo de proyecto nuevo no está permitido durante el "
"proceso de laminado!¡crear o abrir un archivo de proyecto nuevo no está "
"permitido durante el proceso de laminado!"
"proceso de laminado!"
msgid "Open Project"
msgstr "Abrir proyecto"
@@ -1972,13 +1971,13 @@ msgstr ""
"Configuración."
msgid "Import File"
msgstr "Importar Archivo"
msgstr "Importar archivo"
msgid "Choose files"
msgstr "Elija los archivos"
msgid "New Folder"
msgstr "Nueva Carpeta"
msgstr "Nueva carpeta"
msgid "Open"
msgstr "Abrir"
@@ -2015,19 +2014,19 @@ msgid "Strength"
msgstr "Fuerza"
msgid "Top Solid Layers"
msgstr "Capas Sólidas Superiores"
msgstr "Capas sólidas superiores"
msgid "Top Minimum Shell Thickness"
msgstr "Espesor Mínimo de la Cubierta Superior"
msgstr "Espesor mínimo de la cubierta superior"
msgid "Top Surface Density"
msgstr "Densidad de superficie superior"
msgid "Bottom Solid Layers"
msgstr "Capas Sólidas Inferiores"
msgstr "Capas sólidas inferiores"
msgid "Bottom Minimum Shell Thickness"
msgstr "Espesor Mínimo de la Cubierta Inferior"
msgstr "Espesor mínimo de la cubierta inferior"
msgid "Bottom Surface Density"
msgstr "Densidad de superficie inferior"
@@ -2036,13 +2035,13 @@ msgid "Ironing"
msgstr "Alisado"
msgid "Fuzzy Skin"
msgstr "Superficie Rugosa"
msgstr "Superficie rugosa"
msgid "Extruders"
msgstr "Extrusores"
msgid "Extrusion Width"
msgstr "Ancho de Extrusión"
msgstr "Ancho de extrusión"
msgid "Wipe options"
msgstr "Opciones de limpieza"
@@ -2123,7 +2122,7 @@ msgid "Orca Cube"
msgstr "Cubo Orca"
msgid "Orca Tolerance Test"
msgstr "Test de Tolerancia Orca"
msgstr "Test de tolerancia Orca"
msgid "3DBenchy"
msgstr "3DBenchy"
@@ -2141,7 +2140,7 @@ msgid "Stanford Bunny"
msgstr "Conejito Stanford"
msgid "Orca String Hell"
msgstr "Test de hilos de Orca \" String Hell\""
msgstr "Test de hilos de Orca «String Hell»"
msgid ""
"This model features text embossment on the top surface. For optimal results, "
@@ -2151,9 +2150,9 @@ msgid ""
"No - Do not change these settings for me"
msgstr ""
"Este modelo contiene texto en relieve en la superficie superior. Para "
"obtener resultados óptimos, es aconsejable establecer el \"Umbral de "
"perímetro (min_width_top_surface)\" a 0 para que \"Sólo un perímetro en las "
"superficies superiores\" funcione mejor.\n"
"obtener resultados óptimos, es aconsejable establecer el «Umbral de "
"perímetro (min_width_top_surface)» a 0 para que «Sólo un perímetro en las "
"superficies superiores» funcione mejor.\n"
"Sí - Cambiar estos ajustes automáticamente \n"
"No - No cambiar estos ajustes"
@@ -2164,7 +2163,7 @@ msgid "Text"
msgstr "Texto"
msgid "Height range Modifier"
msgstr "Modificador de rango de Altura"
msgstr "Modificador de rango de altura"
msgid "Add settings"
msgstr "Añadir ajustes"
@@ -2435,7 +2434,7 @@ msgid "Clone"
msgstr "Clonar"
msgid "Simplify Model"
msgstr "Simplificar Modelo"
msgstr "Simplificar modelo"
msgid "Subdivision mesh"
msgstr "Subdivisión de malla"
@@ -2450,7 +2449,7 @@ msgid "Drop"
msgstr "Soltar"
msgid "Edit Process Settings"
msgstr "Editar Ajustes de Proceso"
msgstr "Editar ajustes de proceso"
msgid "Copy Process Settings"
msgstr "Copiar configuración del proceso"
@@ -2462,7 +2461,7 @@ msgid "Edit print parameters for a single object"
msgstr "Editar los parámetros de impresión de un solo objeto"
msgid "Change Filament"
msgstr "Cambiar el Filamento"
msgstr "Cambiar el filamento"
msgid "Set Filament for selected items"
msgstr "Cambiar el filamento para los elementos seleccionados"
@@ -3457,7 +3456,7 @@ msgid "License"
msgstr "Licencia"
msgid "Orca Slicer is licensed under "
msgstr "Orca Slicer está licenciada sobre "
msgstr "Orca Slicer tiene licencia "
msgid "GNU Affero General Public License, version 3"
msgstr "GNU Affero General Public License, versión 3"
@@ -3466,7 +3465,7 @@ msgid "Orca Slicer is based on PrusaSlicer and BambuStudio"
msgstr "Orca Slicer se basa en PrusaSlicer y BambuStudio"
msgid "Libraries"
msgstr "Librerías"
msgstr "Bibliotecas"
msgid ""
"This software uses open source components whose copyright and other "
@@ -3501,7 +3500,7 @@ msgid "Version"
msgstr "Versión"
msgid "AMS Materials Setting"
msgstr "Ajustes de Materiales AMS"
msgstr "Ajustes de materiales AMS"
msgid "Confirm"
msgstr "Confirmar"
@@ -3530,10 +3529,10 @@ msgid "SN"
msgstr "SN"
msgid "Factors of Flow Dynamics Calibration"
msgstr "Factores de Calibración de Dinámicas de Flujo"
msgstr "Factores de calibración de dinámicas de flujo"
msgid "PA Profile"
msgstr "Perfil de Pressure advance"
msgstr "Perfil de «Pressure advance»"
msgid "Factor K"
msgstr "Factor K"
@@ -3547,7 +3546,7 @@ msgstr ""
msgid "Setting Virtual slot information while printing is not supported"
msgstr ""
"Ajuste de información de ranura Virtual mientras la impresión no sea "
"Ajuste de información de ranura virtual mientras la impresión no sea "
"soportada"
msgid "Are you sure you want to clear the filament information?"
@@ -4365,20 +4364,20 @@ msgstr ""
"seam_slope_start_height debe ser menor que layer_height.\n"
"Restableciendo a 0."
#, fuzzy, c-format, boost-format
#, c-format, boost-format
msgid ""
"Lock depth should smaller than skin depth.\n"
"Reset to 50% of skin depth."
"Reset to 50%% of skin depth."
msgstr ""
"La profundidad del bloqueo debe ser menor que la profundidad de la piel.\n"
"Restablecer al 50% de la profundidad de la piel."
"Restablecer al 50%% de la profundidad de la piel."
msgid ""
"Both [Extrusion] and [Combined] modes of Fuzzy Skin require the Arachne Wall "
"Generator to be enabled."
msgstr ""
"Tanto el modo [Extrusión] como el modo [Combinado] de Piel Difusa requieren "
"que el Generador de Muros Arachne esté habilitado."
"que el Generador de paredes Arachne esté habilitado."
msgid ""
"Change these settings automatically?\n"
@@ -4388,7 +4387,7 @@ msgid ""
msgstr ""
"¿Cambiar estos ajustes automáticamente?\n"
"Sí: habilitar el generador de muros Arachne\n"
"No: deshabilitar el generador de muros Arachne y establecer el modo "
"No: deshabilitar el generador de paredes Arachne y establecer el modo "
"[Desplazamiento] de la piel difusa"
msgid ""
@@ -4396,7 +4395,7 @@ msgid ""
"detection by probing is disabled, top shell layers is 0, sparse infill "
"density is 0 and timelapse type is traditional."
msgstr ""
"El modo espiral solo funciona cuando los bucles de pared son 1, el soporte "
"El modo espiral solo funciona cuando los bucles de perímetro son 1, el soporte "
"está desactivado, la detección de agrupamientos mediante sondeo está "
"desactivada, las capas superiores de la carcasa son 0, la densidad de "
"relleno es 0 y el tipo de lapso de tiempo es tradicional."
@@ -4424,7 +4423,7 @@ msgid "Heatbed preheating"
msgstr "Precalentamiento de la cama"
msgid "Vibration compensation"
msgstr "Compensación de Vibraciones"
msgstr "Compensación de vibraciones"
msgid "Changing filament"
msgstr "Cambiando el filamento"
@@ -4451,10 +4450,10 @@ msgid "Identifying build plate type"
msgstr "Identificando el tipo de cama de impresión"
msgid "Calibrating Micro Lidar"
msgstr "Calibrando Micro Lidar"
msgstr "Calibrando micro Lidar"
msgid "Homing toolhead"
msgstr "Homing del Cabezal"
msgstr "Homing del cabezal"
msgid "Cleaning nozzle tip"
msgstr "Limpiando la boquilla"
@@ -4490,7 +4489,7 @@ msgid "Filament loading"
msgstr "Carga de filamento"
msgid "Motor noise cancellation"
msgstr "Cancelación de Ruido de Motor"
msgstr "Cancelación de ruido del motor"
msgid "Pause (AMS offline)"
msgstr "Pausa (AMS sin conexión)"
@@ -7363,7 +7362,7 @@ msgid "Hardened Steel"
msgstr "Acero endurecido"
msgid "Stainless Steel"
msgstr "Acero Inoxidable"
msgstr "Acero inoxidable"
msgid "Tungsten Carbide"
msgstr "Carburo de tungsteno"
@@ -12436,7 +12435,7 @@ msgid ""
"Orca Slicer can upload G-code files to a printer host. This field should "
"contain the API Key or the password required for authentication."
msgstr ""
"OrcaSlicer puede cargar archivos G-Cpde a un host de impresora. Este campo "
"OrcaSlicer puede cargar archivos G-Code a un host de impresora. Este campo "
"debería contener una clave API o una contraseña requerida para la "
"autenticación."
@@ -15122,13 +15121,12 @@ msgstr ""
msgid "First layer height"
msgstr "Altura de la primera capa"
#, fuzzy
msgid ""
"Height of the first layer. Making the first layer height thicker can improve "
"build plate adhesion."
msgstr ""
"Altura de la primera capa. Hacer que la altura de la primera capa sea "
"ligeramente gruesa puede mejorar la adherencia con la cama de impresión."
"ligeramente más gruesa puede mejorar la adherencia con la cama de impresión."
msgid "Speed of the first layer except the solid infill part."
msgstr "Velocidad de la primera capa excepto la parte sólida de relleno."
@@ -16078,12 +16076,11 @@ msgstr "Todas las superficies superiores"
msgid "Topmost surface"
msgstr "Sólo la superficie superior"
#, fuzzy
msgid "All solid layers"
msgstr "Todas la capas sólidas"
msgstr "Todas las capas sólidas"
msgid "Ironing Pattern"
msgstr "Patrón de Alisado"
msgstr "Patrón de alisado"
msgid "The pattern that will be used when ironing."
msgstr "Patrón que se usará durante el alisado."
@@ -17339,13 +17336,12 @@ msgstr ""
msgid "Minimum sparse infill threshold"
msgstr "Umbral de área mínima de relleno de baja densidad"
#, fuzzy
msgid ""
"Sparse infill areas smaller than this threshold value are replaced by "
"internal solid infill."
msgstr ""
"El área de relleno de baja densidad que es menor que este valor de umbral se "
"sustituye por un relleno sólido interno."
"Las áreas de relleno de baja densidad con un tamaño por debajo de este umbral se "
"sustituyen por un relleno sólido interno."
msgid "Solid infill"
msgstr "Relleno sólido interno"
@@ -17357,7 +17353,7 @@ msgid ""
"Line width of internal solid infill. If expressed as a %, it will be "
"computed over the nozzle diameter."
msgstr ""
"Ancho de línea del relleno sólido interno. Si se expresa cómo %, se "
"Ancho de línea del relleno sólido interno. Si se expresa como %, se "
"calculará en base al diámetro de la boquilla."
msgid "Speed of internal solid infill, not the top and bottom surface."
@@ -17370,23 +17366,23 @@ msgid ""
"model into a single walled print with solid bottom layers. The final "
"generated model has no seam."
msgstr ""
"El modo espiral suaviza los movimientos z del contorno exterior. Convierte "
"El modo espiral suaviza los movimientos Z del contorno exterior. Convierte "
"un modelo sólido en una impresión de un solo perímetro con capas inferiores "
"sólidas. El modelo final generado no tiene costuras."
msgid "Smooth Spiral"
msgstr "Espiral Suave"
msgstr "Espiral suave"
msgid ""
"Smooth Spiral smooths out X and Y moves as well, resulting in no visible "
"seam at all, even in the XY directions on walls that are not vertical."
msgstr ""
"Espiral Suave suaviza también los movimientos en X e Y, con lo que no se "
"Espiral suave suaviza también los movimientos en X e Y, con lo que no se "
"aprecia ninguna costura, ni siquiera en las direcciones XY en perímetros que "
"no son verticales."
msgid "Max XY Smoothing"
msgstr "Suavizado XY Máximo"
msgstr "Suavizado XY máximo"
#, no-c-format, no-boost-format
msgid ""
@@ -18812,9 +18808,8 @@ msgstr ""
"propia característica. Se expresa en porcentaje en base al diámetro de la "
"boquilla."
#, fuzzy
msgid "Detect narrow internal solid infills"
msgstr "Detección de relleno interno estrecho"
msgstr "Detectar relleno sólido interno estrecho"
msgid ""
"This option will auto-detect narrow internal solid infill areas. If enabled, "
@@ -21105,19 +21100,19 @@ msgstr ""
"boquilla."
msgid "Printer Created Successfully"
msgstr "Éxito Creando la Impresora"
msgstr "Impresora creada con éxito"
msgid "Filament Created Successfully"
msgstr "Éxito Creando el Filamento"
msgstr "Filamento creado con éxito"
msgid "Printer Created"
msgstr "Impresora Creada"
msgstr "Impresora creada"
msgid "Please go to printer settings to edit your presets"
msgstr "Vaya a la configuración de la impresora para editar los perfiles"
msgid "Filament Created"
msgstr "Filamento Creado"
msgstr "Filamento creado"
msgid ""
"Please go to filament setting to edit your presets if you need.\n"
@@ -21148,7 +21143,7 @@ msgstr ""
"sincronización."
msgid "Printer Setting"
msgstr "Ajustes de Impresora"
msgstr "Ajustes de impresora"
msgid "Printer config bundle(.orca_printer)"
msgstr "Paquete de configuración de impresora(.orca_printer)"
@@ -21157,13 +21152,13 @@ msgid "Filament bundle(.orca_filament)"
msgstr "Paquete de filamento(.orca_filament)"
msgid "Printer presets(.zip)"
msgstr "Perfiles de Impresora(.zip)"
msgstr "Perfiles de impresora(.zip)"
msgid "Filament presets(.zip)"
msgstr "Perfiles de Filamento(.zip)"
msgstr "Perfiles de filamento(.zip)"
msgid "Process presets(.zip)"
msgstr "Perfiles de Proceso(.zip)"
msgstr "Perfiles de proceso(.zip)"
msgid "initialize fail"
msgstr "fallo inicializando"
@@ -21271,7 +21266,7 @@ msgstr ""
"operación de exportado de configuración."
msgid "Edit Filament"
msgstr "Editar Filamento"
msgstr "Editar filamento"
msgid "Filament presets under this filament"
msgstr "Perfiles de filamento basados en este filamento"
@@ -21292,7 +21287,7 @@ msgstr[0] "El siguiente perfil hereda de este perfil."
msgstr[1] "Los siguientes perfiles heredan de este perfil."
msgid "Delete Preset"
msgstr "Borrar Perfil"
msgstr "Borrar perfil"
msgid "Are you sure to delete the selected preset?"
msgstr "¿Está seguro de borrar el perfil seleccionado?"
@@ -21301,7 +21296,7 @@ msgid "Delete preset"
msgstr "Borrar perfil"
msgid "+ Add Preset"
msgstr "+ Añadir Perfil"
msgstr "+ Añadir perfil"
msgid ""
"All the filament presets belong to this filament would be deleted.\n"
@@ -21329,10 +21324,10 @@ msgid "The filament choice not find filament preset, please reselect it"
msgstr "Perfil de filamento no encontrado, por favor, seleccione otro"
msgid "[Delete Required]"
msgstr "[Necesario Eliminar]"
msgstr "[Necesario eliminar]"
msgid "Edit Preset"
msgstr "Editar Perfil"
msgstr "Editar perfil"
msgid "For more information, please check out Wiki"
msgstr "Para más información, consulte la Wiki"
@@ -21344,7 +21339,7 @@ msgid "Collapse"
msgstr "Colapsar"
msgid "Daily Tips"
msgstr "Consejos Diarios"
msgstr "Consejos diarios"
msgid ""
"The printer nozzle information has not been set.\n"
@@ -21455,7 +21450,7 @@ msgid "Physical Printer"
msgstr "Impresora física"
msgid "Print Host upload"
msgstr "Carga al Host de Impresión"
msgstr "Mandar al servidor de impresión"
msgid ""
"Select the network agent implementation for printer communication. Available "
@@ -21507,8 +21502,8 @@ msgid ""
"To use a custom CA file, please import your CA file into Certificate Store / "
"Keychain."
msgstr ""
"Para utilizar un archivo de CA personalizado, importe su archivo de CA a "
"Almacén de certificados / Llavero."
"Para utilizar un archivo de CA personalizado, importe su archivo de CA en el "
"Almacén de certificados/Llavero."
msgid "Login/Test"
msgstr "Inicio de sesión/Prueba"
@@ -21529,7 +21524,7 @@ msgid "Could not connect to AstroBox"
msgstr "No se ha podido conectar con AstroBox"
msgid "Note: AstroBox version 1.1.0 or higher is required."
msgstr "Nota: Se requiere la versión 1.1.0 de AstroBox como mínimo."
msgstr "Nota: Se requiere la versión de AstroBox 1.1.0 o superior."
msgid "Connection to Duet is working correctly."
msgstr "La conexión con Duet funciona correctamente."
@@ -21576,10 +21571,10 @@ msgid "Could not connect to OctoPrint"
msgstr "No se ha podido conectar con OctoPrint"
msgid "Note: OctoPrint version 1.1.0 or higher is required."
msgstr "Nota: Se requiere una versión de OctoPrint al menos 1.1.0."
msgstr "Nota: Se requiere la versión de OctoPrint 1.1.0 o superior."
msgid "Connection to Prusa SL1 / SL1S is working correctly."
msgstr "La conexión a Prusa SL1 / SL1S funciona correctamente."
msgstr "La conexión a Prusa SL1/SL1S funciona correctamente."
msgid "Could not connect to Prusa SLA"
msgstr "No se ha podido conectar con Prusa SLA"
@@ -21939,7 +21934,7 @@ msgstr ""
"Al imprimir este filamento, existe un riesgo de deformación y baja "
"resistencia de adherencia de capas. Para obtener mejores resultados, "
"consulte esta wiki: Consejos de impresión para materiales de alta "
"temperatura / Ingeniería."
"temperatura/ingeniería."
msgid ""
"When printing this filament, there's a risk of nozzle clogging, oozing, "
@@ -21949,7 +21944,7 @@ msgstr ""
"Al imprimir este filamento, existe un riesgo de obstrucción de la boquilla, "
"goteo, deformación y baja resistencia de adherencia de capas. Para obtener "
"mejores resultados, consulte esta wiki: Consejos de impresión para "
"materiales de alta temperatura / Ingeniería."
"materiales de alta temperatura/ingeniería."
msgid ""
"To get better transparent or translucent results with the corresponding "
@@ -22010,7 +22005,7 @@ msgid ""
"55D) and is compatible with the AMS. To get better printing quality, please "
"refer to this wiki: TPU printing guide."
msgstr ""
"Si va a imprimir un tipo de TPU blando, no lama con este perfil, y es solo "
"Si va a imprimir un tipo de TPU blando, no lamine con este perfil, y es solo "
"para TPU que tiene suficiente dureza (no menos de 55D) y es compatible con "
"el AMS. Para obtener una mejor calidad de impresión, consulte esta wiki: "
"Guía de impresión TPU."
@@ -22133,7 +22128,7 @@ msgid "Bed Leveling"
msgstr "Nivelación de la cama"
msgid "Flow Dynamic Calibration"
msgstr "Calibración Dinámica de Flujo"
msgstr "Calibración dinámica de flujo"
msgid "Send Options"
msgstr "Opciones de envío"
@@ -22145,7 +22140,7 @@ msgid ""
"printers at the same time. (It depends on how many devices can undergo "
"heating at the same time.)"
msgstr ""
"impresoras al mismo tiempo.(Depende de cuántos aparatos puedan calentarse al "
"impresoras al mismo tiempo (depende de cuántos aparatos puedan calentarse al "
"mismo tiempo)."
msgid "Wait"
@@ -22169,7 +22164,7 @@ msgstr "Seleccionar impresoras conectadas (0/6)"
#, c-format, boost-format
msgid "Select Connected Printers (%d/6)"
msgstr "Seleccionar Impresoras Conectadas (%d/6)"
msgstr "Seleccionar impresoras conectadas (%d/6)"
#, c-format, boost-format
msgid "The maximum number of printers that can be selected is %d"
@@ -22179,7 +22174,7 @@ msgid "No task"
msgstr "Sin tareas"
msgid "Edit Printers"
msgstr "Editar Impresoras"
msgstr "Editar impresoras"
msgid "Task Name"
msgstr "Nombre de la tarea"
@@ -22206,13 +22201,13 @@ msgid "Syncing"
msgstr "Sincronizando"
msgid "Printing Finish"
msgstr "Impresión Finalizada"
msgstr "Impresión finalizada"
msgid "Printing Failed"
msgstr "Impresión fallida"
msgid "Printing Pause"
msgstr "Impresión Pausada"
msgstr "Impresión pausada"
msgid "Pending"
msgstr "Pendiente"
@@ -22221,19 +22216,19 @@ msgid "Sending"
msgstr "Enviando"
msgid "Sending Finish"
msgstr "Envío Finalizado"
msgstr "Envío finalizado"
msgid "Sending Cancel"
msgstr "Envío Cancelado"
msgstr "Envío cancelado"
msgid "Sending Failed"
msgstr "Envío Fallido"
msgstr "Envío fallido"
msgid "Print Success"
msgstr "Impresión Exitosa"
msgstr "Impresión exitosa"
msgid "Print Failed"
msgstr "Error de Impresión"
msgstr "Error de impresión"
msgid "Removed"
msgstr "Eliminado"
@@ -22380,7 +22375,7 @@ msgid "Set the brim type of this object to \"painted\""
msgstr "Establecer el tipo de borde de este objeto a \"pintado\""
msgid " invalid brim ears"
msgstr " orejas de borde invalidos"
msgstr " orejas de borde inválidas"
msgid "Brim Ears"
msgstr "Orejas de borde"
@@ -22676,7 +22671,7 @@ msgid ""
"Did you know that <b>Reverse on odd</b> feature can significantly improve "
"the surface quality of your overhangs?"
msgstr ""
"Invertir en impar \n"
"Invertir en impar\n"
"¿Sabías que la función <b>Invertir en impar</b> puede mejorar "
"significativamente la calidad de la superficie de los voladizos?"
@@ -22696,7 +22691,7 @@ msgid ""
"Did you know that you can fix a corrupted 3D model to avoid a lot of slicing "
"problems on the Windows system?"
msgstr ""
"Arreglar modelo \n"
"Arreglar modelo\n"
"¿Sabías que puedes arreglar un modelo 3D dañado para evitar muchos problemas "
"de laminado en el sistema Windows?"
@@ -22754,7 +22749,7 @@ msgid ""
"Did you know that you use the Search tool to quickly find a specific Orca "
"Slicer setting?"
msgstr ""
"Funcionalidad de búsqueda \n"
"Funcionalidad de búsqueda\n"
"¿Sabía que puede utilizar la herramienta de búsqueda para encontrar "
"rápidamente un ajuste específico de Orca Slicer?"
@@ -22764,7 +22759,7 @@ msgid ""
"Did you know that you can reduce the number of triangles in a mesh using the "
"Simplify mesh feature? Right-click the model and select Simplify model."
msgstr ""
"Simplificar modelo \n"
"Simplificar modelo\n"
"¿Sabía que puede reducir el número de triángulos de una malla utilizando la "
"función Simplificar malla? Haga clic con el botón derecho del ratón en el "
"modelo y seleccione Simplificar modelo."
@@ -22785,7 +22780,7 @@ msgid ""
"Did you know that you can split a big object into small ones for easy "
"colorizing or printing?"
msgstr ""
"Dividir en Objetos/Partes\n"
"Dividir en objetos/partes\n"
"¿Sabías que puedes dividir un objeto grande en pequeños para colorearlo o "
"imprimirlo fácilmente?"
@@ -22796,7 +22791,7 @@ msgid ""
"part modifier? That way you can, for example, create easily resizable holes "
"directly in Orca Slicer."
msgstr ""
"Sustraer una parte \n"
"Sustraer una parte\n"
"¿Sabías que puedes sustraer una malla de otra utilizando el modificador "
"Parte negativa? De esta forma puedes, por ejemplo, crear agujeros fácilmente "
"redimensionables directamente en Orca Slicer."
@@ -22825,7 +22820,7 @@ msgstr ""
"Ubicación de la costura Z\n"
"¿Sabías que puedes personalizar la ubicación de la costura Z, e incluso "
"pintarla en tu impresión, para tenerla en un lugar menos visible? Esto "
"mejora el aspecto general de tu modelo. ¡Compruébalo!"
"mejora el aspecto general de tu modelo. ¡Pruébalo!"
#: resources/data/hints.ini: [hint:Fine-tuning for flow rate]
msgid ""
@@ -22858,9 +22853,9 @@ msgid ""
"Did you know that you can print a model even faster, by using the Adaptive "
"Layer Height option? Check it out!"
msgstr ""
"Acelere su impresión con la Altura Adaptable de Capa\n"
"Acelera tu impresión con la altura adaptable de capa\n"
"¿Sabías que puedes imprimir un modelo aún más rápido utilizando la opción "
"Altura Adaptable de Capa? ¡Compruébalo!"
"Altura adaptable de capa? ¡Pruébalo!"
#: resources/data/hints.ini: [hint:Support painting]
msgid ""
@@ -22870,7 +22865,7 @@ msgid ""
"model that actually need it."
msgstr ""
"Pintura de soportes\n"
"¿Sabías que puedes pintar los soportes en cualquier ubicación? Esta función "
"¿Sabías que puedes pintar la ubicación de tus soportes? Esta función "
"facilita la colocación de soportes sólo en las secciones donde realmente sea "
"necesario."
@@ -22884,7 +22879,7 @@ msgstr ""
"Diferentes tipos de soportes\n"
"¿Sabías que puedes elegir entre varios tipos de soportes? Los soportes en "
"forma de árbol son ideales para modelos orgánicos, ahorran filamento y "
"mejoran la velocidad de impresión. ¡Compruébalo!"
"mejoran la velocidad de impresión. ¡Pruébalo!"
#: resources/data/hints.ini: [hint:Printing Silk Filament]
msgid ""
@@ -22955,9 +22950,9 @@ msgid ""
"extruder/hotend clogging when printing lower temperature filament with a "
"higher enclosure temperature? More info about this in the Wiki."
msgstr ""
"¿Cuando es necesario imprimir con la puerta de la impresora abierta?\n"
"¿Cuándo es necesario imprimir con la puerta de la impresora abierta?\n"
"¿Sabías que la apertura de la puerta de la impresora puede reducir la "
"probabilidad de obstrucción del extrusor / cabezal al imprimir filamento de "
"probabilidad de obstrucción del extrusor/cabezal al imprimir filamento de "
"baja temperatura con una temperatura más alta de la cubierta? Más "
"información sobre esto en la Wiki."
@@ -22968,7 +22963,7 @@ msgid ""
"ABS, appropriately increasing the heatbed temperature can reduce the "
"probability of warping?"
msgstr ""
"Evite la deformación\n"
"Evita la deformación\n"
"¿Sabías que al imprimir materiales propensos a la deformación como el ABS, "
"aumentar adecuadamente la temperatura de la cama térmica puede reducir la "
"probabilidad de deformaciones?"
@@ -23974,7 +23969,6 @@ msgstr ""
#~ "Espaciado de las líneas de interfaz. Cero significa que la interfaz es "
#~ "sólida"
#, fuzzy
#~ msgid ""
#~ "Minimum thickness of thin features. Model features that are thinner than "
#~ "this value will not be printed, while features thicker than this value "
+2 -2
View File
@@ -176,8 +176,8 @@ msgstr "Type d'outil"
msgid "Smart fill angle"
msgstr "Angle de remplissage intelligent"
msgid "On overhangs only"
msgstr "Sur les surplombs uniquement"
msgid "On highlighted overhangs only"
msgstr "Uniquement sur les surplombs mis en évidence"
msgid "Auto support threshold angle: "
msgstr "Angle de seuil de support automatique : "
+16 -6
View File
@@ -169,8 +169,8 @@ msgstr "Eszköz típusa"
msgid "Smart fill angle"
msgstr "Okos kitöltési szög"
msgid "On overhangs only"
msgstr "Csak túlnyúlásokon"
msgid "On highlighted overhangs only"
msgstr "Csak a kiemelt túlnyúlásokon"
msgid "Auto support threshold angle: "
msgstr "Automatikus támasz szögének határértéke: "
@@ -14963,7 +14963,19 @@ msgid "First layer travel speed"
msgstr "Első réteg mozgási sebessége"
msgid "Travel speed of the first layer."
msgstr "Az első réteg utazási sebessége."
msgstr "Az első réteg mozgási sebessége."
msgid "First layer travel acceleration"
msgstr "Első réteg mozgási gyorsulása"
msgid "Travel acceleration of first layer."
msgstr "Az első réteg mozgási gyorsulása."
msgid "First layer travel jerk"
msgstr "Első réteg mozgási jerkje"
msgid "Travel jerk of first layer."
msgstr "Az első réteg mozgási jerkje."
msgid "Number of slow layers"
msgstr "Lassú rétegek száma"
@@ -22662,7 +22674,7 @@ msgstr ""
"Mikor nyomtass nyitott ajtóval\n"
"Tudtad, hogy a nyomtató ajtajának kinyitásával csökkentheted az extruder/"
"fejegység eltömődésének valószínűségét, ha alacsonyabb hőmérsékletű "
"filamentet nyomtatsz? További információ a Wikiben olvashatsz erről."
"filamentet nyomtatsz? További információ erről a Wikiben található."
#: resources/data/hints.ini: [hint:Avoid warping]
msgid ""
@@ -22738,5 +22750,3 @@ msgstr ""
#~ "maximális áramlás közül a kisebbik korlátozza. Kikapcsolva csak a "
#~ "felhasználó által megadott maximális áramlás érvényesül."
#~ msgid "Travel speed of First layer."
#~ msgstr "Az első réteg mozgási sebessége."
+2 -2
View File
@@ -172,8 +172,8 @@ msgstr "Tipo di strumento"
msgid "Smart fill angle"
msgstr "Angolo di riempimento intelligente"
msgid "On overhangs only"
msgstr "Solo sulle sporgenze"
msgid "On highlighted overhangs only"
msgstr "Solo sulle sporgenze evidenziate"
msgid "Auto support threshold angle: "
msgstr "Angolo di soglia per supporto automatico: "
+2 -2
View File
@@ -171,8 +171,8 @@ msgstr "ツールタイプ"
msgid "Smart fill angle"
msgstr "自動充填角度"
msgid "On overhangs only"
msgstr "オーバーハングのみ"
msgid "On highlighted overhangs only"
msgstr "強調表示されたオーバーハングのみ"
msgid "Auto support threshold angle: "
msgstr "自動サポート角度閾値"
+2 -2
View File
@@ -173,8 +173,8 @@ msgstr "도구 유형"
msgid "Smart fill angle"
msgstr "스마트 채우기 각도"
msgid "On overhangs only"
msgstr "오버행에만 칠하기"
msgid "On highlighted overhangs only"
msgstr "강조된 오버행에만 칠하기"
msgid "Auto support threshold angle: "
msgstr "자동 서포트 임계값 각도: "
+5 -2
View File
@@ -172,8 +172,8 @@ msgstr "Įrankio tipas"
msgid "Smart fill angle"
msgstr "Išmanaus užpildymo kampas"
msgid "On overhangs only"
msgstr "Tik kabantiems"
msgid "On highlighted overhangs only"
msgstr "Tik paryškintiems kabantiems"
msgid "Auto support threshold angle: "
msgstr "Automatinių atramų generavimo kampas: "
@@ -11223,6 +11223,9 @@ msgstr "Nutolinti"
msgid "Switch between Prepare/Preview"
msgstr "Perjungimas tarp Paruošti / Peržiūrėti"
msgid "Toggle printable for object/part"
msgstr "Perjungti objekto / dalies spausdinimą"
msgid "Plater"
msgstr "Plokštė"
+2 -2
View File
@@ -166,8 +166,8 @@ msgstr "Hulpmiddel type"
msgid "Smart fill angle"
msgstr "Slim vullen hoek"
msgid "On overhangs only"
msgstr "Alleen op overhangen"
msgid "On highlighted overhangs only"
msgstr "Alleen op gemarkeerde overhangen"
msgid "Auto support threshold angle: "
msgstr "Maximale hoek automatische ondersteuning: "
+2 -2
View File
@@ -164,8 +164,8 @@ msgstr "Typ narzędzia"
msgid "Smart fill angle"
msgstr "Kąt inteligentnego wypełniania"
msgid "On overhangs only"
msgstr "Tylko na nawisach"
msgid "On highlighted overhangs only"
msgstr "Tylko na podświetlonych nawisach"
msgid "Auto support threshold angle: "
msgstr "Automatyczny kąt progowy podpory: "
+3 -3
View File
@@ -178,8 +178,8 @@ msgstr "Tipo de ferramenta"
msgid "Smart fill angle"
msgstr "Ângulo de preenchimento inteligente"
msgid "On overhangs only"
msgstr "Apenas em saliências"
msgid "On highlighted overhangs only"
msgstr "Apenas em saliências destacadas"
msgid "Auto support threshold angle: "
msgstr "Ângulo limiar de suporte automático: "
@@ -4331,7 +4331,7 @@ msgstr ""
"seam_slope_start_height precisa ser menor que layer_height.\n"
"Redefinir para 0."
#, fuzzy, c-format, boost-format
#, no-c-format, no-boost-format
msgid ""
"Lock depth should smaller than skin depth.\n"
"Reset to 50% of skin depth."
+2 -2
View File
@@ -185,8 +185,8 @@ msgstr "Инструмент"
msgid "Smart fill angle"
msgstr "Угол для умной заливки"
msgid "On overhangs only"
msgstr "Только на нависаниях"
msgid "On highlighted overhangs only"
msgstr "Только на подсвеченных нависаниях"
msgid "Auto support threshold angle: "
msgstr "Пороговый угол автоподдержки: "
+2 -2
View File
@@ -163,8 +163,8 @@ msgstr "Verktygs typ"
msgid "Smart fill angle"
msgstr "Smart fyllningsvinkel"
msgid "On overhangs only"
msgstr "Endast på överhäng"
msgid "On highlighted overhangs only"
msgstr "Endast på markerade överhäng"
msgid "Auto support threshold angle: "
msgstr "Automatisk support tröskelsvinkel: "
File diff suppressed because it is too large Load Diff
+2 -2
View File
@@ -168,8 +168,8 @@ msgstr "Тип інструменту"
msgid "Smart fill angle"
msgstr "Кут розумного заповнення"
msgid "On overhangs only"
msgstr "Тільки на нависаннях"
msgid "On highlighted overhangs only"
msgstr "Тільки на підсвічених нависанняхх"
msgid "Auto support threshold angle: "
msgstr "Поріг кута автоматичної підтримки: "
+2 -2
View File
@@ -167,8 +167,8 @@ msgstr "Loại công cụ"
msgid "Smart fill angle"
msgstr "Góc tô thông minh"
msgid "On overhangs only"
msgstr "Chỉ trên overhang"
msgid "On highlighted overhangs only"
msgstr "Chỉ trên các overhang được làm nổi bật"
msgid "Auto support threshold angle: "
msgstr "Góc ngưỡng tự động support: "
+77 -77
View File
@@ -161,8 +161,8 @@ msgstr "工具类型"
msgid "Smart fill angle"
msgstr "智能填充角度"
msgid "On overhangs only"
msgstr "仅对悬垂区生效"
msgid "On highlighted overhangs only"
msgstr "仅对高亮悬垂区生效"
msgid "Auto support threshold angle: "
msgstr "自动支撑角度阈值:"
@@ -1764,7 +1764,7 @@ msgid "Choose one file (GCODE/3MF):"
msgstr "选择一个文件(GCODE/3MF):"
msgid "Ext"
msgstr "分机"
msgstr "Ext"
msgid "Some presets are modified."
msgstr "预设已被修改。"
@@ -2854,7 +2854,7 @@ msgstr "内环"
#. TRN To be shown in the main menu View->Top
msgid "Top"
msgstr ""
msgstr "顶部"
msgid ""
"The fan controls the temperature during printing to improve print quality. "
@@ -3677,7 +3677,7 @@ msgstr "更新剩余容量"
msgid ""
"AMS will attempt to estimate the remaining capacity of the Bambu Lab "
"filaments."
msgstr "AMS 将尝试估计 Bambu Lab 丝的剩余容量。"
msgstr "AMS 将尝试估计 Bambu Lab 耗材丝的剩余容量。"
msgid "AMS filament backup"
msgstr "AMS材料备份"
@@ -4813,7 +4813,7 @@ msgstr "当前切片结果的分组不是最佳的。"
#, boost-format
msgid "Increase %1%g filament and %2% changes compared to optimal grouping."
msgstr "与最佳分组相比,增加 %1%g 丝和 %2% 变化。"
msgstr "与最佳分组相比,增加 %1%g 耗材丝和 %2% 变化。"
#, boost-format
msgid ""
@@ -5088,11 +5088,11 @@ msgstr "对齐到Y轴"
msgctxt "Camera"
msgid "Left"
msgstr "左"
msgstr "左"
msgctxt "Camera"
msgid "Right"
msgstr "正确的"
msgstr ""
msgid "Add"
msgstr "添加"
@@ -5236,7 +5236,7 @@ msgstr "耗材丝 %s 放置在 %s 中,但生成的 G-code 路径超出了 %s
msgid ""
"Filaments %s are placed in the %s, but the generated G-code path exceeds the "
"printable range of the %s."
msgstr "丝 %s 放置在 %s 中,但生成的 G-code 路径超出了 %s 的可打印范围。"
msgstr "耗材丝 %s 放置在 %s 中,但生成的 G-code 路径超出了 %s 的可打印范围。"
#, c-format, boost-format
msgid ""
@@ -5248,7 +5248,7 @@ msgstr "耗材丝 %s 放置在 %s 中,但生成的 G-code 路径超出了 %s
msgid ""
"Filaments %s are placed in the %s, but the generated G-code path exceeds the "
"printable height of the %s."
msgstr "丝 %s 放置在 %s 中,但生成的 G-code 路径超出了 %s 的可打印高度。"
msgstr "耗材丝 %s 放置在 %s 中,但生成的 G-code 路径超出了 %s 的可打印高度。"
msgid "Open wiki for more information."
msgstr "打开维基百科了解更多信息。"
@@ -5258,7 +5258,7 @@ msgstr "只有正在编辑的对象是可见的。"
#, c-format, boost-format
msgid "Filaments %s cannot be printed directly on the surface of this plate."
msgstr "细丝 %s 不能直接打印在该板的表面上。"
msgstr "耗材 %s 不能直接打印在该板的表面上。"
msgid ""
"PLA and PETG filaments detected in the mixture. Adjust parameters according "
@@ -5475,13 +5475,13 @@ msgstr "顶部视图"
#. TRN To be shown in the main menu View->Bottom
msgid "Bottom"
msgstr ""
msgstr "底部"
msgid "Bottom View"
msgstr "底部视图"
msgid "Front"
msgstr "前"
msgstr "前"
msgid "Front View"
msgstr "前视图"
@@ -5726,13 +5726,13 @@ msgid "Pass 1"
msgstr "粗调"
msgid "Flow ratio test - Pass 1"
msgstr "流量比例测试 - 通过 1"
msgstr "流量比例测试 - 粗调"
msgid "Pass 2"
msgstr "调"
msgstr "调"
msgid "Flow ratio test - Pass 2"
msgstr "流量比例测试 - 通过 2"
msgstr "流量比例测试 - 微调"
msgid "YOLO (Recommended)"
msgstr "YOLO(推荐)"
@@ -5871,7 +5871,7 @@ msgid "The project is no longer available."
msgstr "此项目不可用。"
msgid "Filament Settings"
msgstr "打印丝设置"
msgstr "材料设置"
msgid ""
"Do you want to synchronize your personal data from Bambu Cloud?\n"
@@ -5880,7 +5880,7 @@ msgid ""
"2. The Filament presets\n"
"3. The Printer presets"
msgstr ""
"想从Bambu 云同步你的个人数据吗?\n"
"想从 Bambu 云同步你的个人数据吗?\n"
"包含如下信息:\n"
"1. 工艺预设\n"
"2. 打印丝预设\n"
@@ -5923,7 +5923,7 @@ msgid "Initializing..."
msgstr "正在初始化……"
msgid "Connection Failed. Please check the network and try again"
msgstr "接失败。请检查网络后重试"
msgstr "接失败。请检查网络后重试"
msgid ""
"Please check the network and try again. You can restart or update the "
@@ -6349,7 +6349,7 @@ msgid "Debug Info"
msgstr "调试信息"
msgid "Filament loading..."
msgstr "耗材丝进料..."
msgstr "耗材丝进料..."
msgid "No Storage"
msgstr "无存储"
@@ -6855,7 +6855,7 @@ msgid "Nozzle Clumping Detection"
msgstr "裹头检测"
msgid "Check if the nozzle is clumping by filaments or other foreign objects."
msgstr "检查喷嘴是否被细丝或其他异物堵塞。"
msgstr "检查喷嘴是否被耗材或其他异物堵塞。"
msgid "Detects air printing caused by nozzle clogging or filament grinding."
msgstr "检测由于喷嘴堵塞或耗材丝研磨造成的空打。"
@@ -7304,8 +7304,8 @@ msgid ""
"The object from file %s is too small, and maybe in meters or inches.\n"
" Do you want to scale to millimeters?"
msgstr ""
"文件 %s 中对象的尺寸似乎是以米或者英寸为单位定义的。\n"
"逆戟鲸切片器的内部单位为毫米。是否要转换成毫米?"
"文件 %s 中对象的尺寸过小,似乎是以米m或者英寸inch为单位定义的。\n"
"OrcaSlicer的内部单位为毫米mm。是否要转换成毫米mm"
msgid "Object too small"
msgstr "对象尺寸过小"
@@ -7547,7 +7547,7 @@ msgid ""
msgstr "未提供校准加速度。使用默认加速度值"
msgid "mm/s²"
msgstr "毫米/秒²"
msgstr "mm/s²"
msgid "No speeds provided for calibration. Use default optimal speed "
msgstr "未提供校准速度。使用默认最佳速度"
@@ -7609,10 +7609,10 @@ msgid "The current project has unsaved changes, save it before continue?"
msgstr "当前项目包含未保存的修改,是否先保存?"
msgid "Number of copies:"
msgstr "克隆数量:"
msgstr "复制数量:"
msgid "Copies of the selected object"
msgstr "所选对象的克隆数量"
msgstr "所选对象的复制数量"
msgid "Save G-code file as:"
msgstr "G-code文件另存为:"
@@ -7752,19 +7752,19 @@ msgstr "对象名字:%1%\n"
#, boost-format
msgid "Size: %1% x %2% x %3% in\n"
msgstr "大小:%1% x %2% x %3% 英寸\n"
msgstr "大小:%1% x %2% x %3% in\n"
#, boost-format
msgid "Size: %1% x %2% x %3% mm\n"
msgstr "大小: %1% x %2% x %3% 毫米\n"
msgstr "大小: %1% x %2% x %3% mm\n"
#, boost-format
msgid "Volume: %1% in³\n"
msgstr "体积: %1% 英寸³\n"
msgstr "体积: %1% in³\n"
#, boost-format
msgid "Volume: %1% mm³\n"
msgstr "体积: %1% 毫米³\n"
msgstr "体积: %1% mm³\n"
#, boost-format
msgid "Triangles: %1%\n"
@@ -7813,7 +7813,7 @@ msgid "rear"
msgstr "后部"
msgid "Switching the language requires application restart.\n"
msgstr "切换语言要重启应用程序。\n"
msgstr "切换语言要重启应用程序。\n"
msgid "Do you want to continue?"
msgstr "是否继续?"
@@ -7852,7 +7852,7 @@ msgid "The period of backup in seconds."
msgstr "备份的周期"
msgid "Bed Temperature Difference Warning"
msgstr "床温警告"
msgstr "床温度不同警告"
msgid ""
"Using filaments with significantly different temperatures may cause:\n"
@@ -7895,10 +7895,10 @@ msgid "General"
msgstr "常规"
msgid "Metric"
msgstr "公制"
msgstr "公制Metric"
msgid "Imperial"
msgstr "英制"
msgstr "英制Imperial"
msgid "Units"
msgstr "单位"
@@ -8027,7 +8027,7 @@ msgid "Optimizes filament area maximum height by chosen filament count."
msgstr "根据选定的耗材丝数量优化耗材区域最大高度"
msgid "Features"
msgstr "特"
msgstr "特"
msgid "Multi device management"
msgstr "多设备管理"
@@ -8422,13 +8422,13 @@ msgid "My Printer"
msgstr "我的打印机"
msgid "Left filaments"
msgstr "左细丝"
msgstr "左耗材"
msgid "AMS filaments"
msgstr "AMS 打印丝"
msgid "Right filaments"
msgstr "右细丝"
msgstr "右耗材"
msgid "Click to select filament color"
msgstr "点击设置材料颜色"
@@ -8651,10 +8651,10 @@ msgid "Send print job"
msgstr "发送打印作业"
msgid "On"
msgstr ""
msgstr ""
msgid "Not satisfied with the grouping of filaments? Regroup and slice ->"
msgstr "对丝的分组不满意?重组并切片 ->"
msgstr "对耗材丝的分组不满意?重组并切片 ->"
msgid "Manually change external spool during printing for multi-color printing"
msgstr "在打印过程中手动更换外部线轴以进行多色打印"
@@ -8807,7 +8807,7 @@ msgstr "名称长度超过限制。"
#, c-format, boost-format
msgid "Cost %dg filament and %d changes more than optimal grouping."
msgstr "成本 %dg 细丝和 %d 的变化超过最佳分组。"
msgstr "成本 %dg 耗材和 %d 的变化超过最佳分组。"
msgid "nozzle"
msgstr "喷嘴"
@@ -10094,7 +10094,7 @@ msgid "Append"
msgstr "追加"
msgid "Append to existing filaments"
msgstr "附加到现有细丝"
msgstr "附加到现有耗材"
msgid "Reset mapped extruders."
msgstr "重置匹配的耗材丝。"
@@ -10226,7 +10226,7 @@ msgid ""
msgstr "仅同步耗材丝类型和颜色,不包括插槽信息。"
msgid "Ext spool"
msgstr "外线轴"
msgstr "外置耗材盘"
msgid ""
"Please check whether the nozzle type of the device is the same as the preset "
@@ -10300,23 +10300,23 @@ msgid "For constant flow rate, hold %1% while dragging."
msgstr "为保持恒定流量,拖动时按住%1%"
msgid "ms"
msgstr "多发性硬化症"
msgstr "ms"
msgid "Total ramming"
msgstr "总顶压"
msgstr "总冲刷量"
msgid "Volume"
msgstr "体积"
msgid "Ramming line"
msgstr "顶压线"
msgstr "预冲刷线"
msgid ""
"Orca would re-calculate your flushing volumes everytime the filaments color "
"changed or filaments changed. You could disable the auto-calculate in Orca "
"Slicer > Preferences"
msgstr ""
"每次细丝颜色发生变化或细丝发生变化时,Orca 都会重新计算您的冲洗量。您可以在 "
"每次耗材颜色发生变化或耗材发生变化时,Orca 都会重新计算您的冲洗量。您可以在 "
"Orca Slicer > 首选项中禁用自动计算"
msgid "Flushing volume (mm³) for each filament pair."
@@ -11832,7 +11832,7 @@ msgid ""
"filament flow ratio, and if set, the object's flow ratio."
msgstr ""
"稍微减小该值(例如 0.9)以减少桥梁材料的用量,从而改善下垂。 实际使用的桥流量"
"是通过将该值乘以细丝流量比以及对象的流量比(如果已设置)来计算的。"
"是通过将该值乘以耗材流量比以及对象的流量比(如果已设置)来计算的。"
msgid "Internal bridge flow ratio"
msgstr "内部搭桥流量比例"
@@ -11847,7 +11847,7 @@ msgid ""
"object's flow ratio."
msgstr ""
"该值控制内部桥接层的厚度。这是稀疏填充的第一层。稍微减小该值(例如 0.9)可改"
"善稀疏填充的表面质量。 实际使用的内部桥流量是通过将该值乘以桥流量比、细丝流量"
"善稀疏填充的表面质量。 实际使用的内部桥流量是通过将该值乘以桥流量比、耗材流量"
"比以及对象的流量比(如果已设置)来计算的。"
msgid "Top surface flow ratio"
@@ -11861,7 +11861,7 @@ msgid ""
"with the filament flow ratio, and if set, the object's flow ratio."
msgstr ""
"该因素影响顶部固体填充的材料量。您可以稍微减少它以获得光滑的表面光洁度。 实际"
"使用的顶面流量是通过将该值乘以细丝流量比以及对象的流量比(如果已设置)来计算"
"使用的顶面流量是通过将该值乘以耗材流量比以及对象的流量比(如果已设置)来计算"
"的。"
msgid "Bottom surface flow ratio"
@@ -11904,7 +11904,7 @@ msgid ""
"The actual outer wall flow used is calculated by multiplying this value by "
"the filament flow ratio, and if set, the object's flow ratio."
msgstr ""
"该因素影响外墙材料的用量。 实际使用的外壁流量是通过将该值乘以细丝流量比以及对"
"该因素影响外墙材料的用量。 实际使用的外壁流量是通过将该值乘以耗材流量比以及对"
"象的流量比(如果已设置)来计算的。"
msgid "Inner wall flow ratio"
@@ -11916,7 +11916,7 @@ msgid ""
"The actual inner wall flow used is calculated by multiplying this value by "
"the filament flow ratio, and if set, the object's flow ratio."
msgstr ""
"该因素影响内壁材料的用量。 实际使用的内壁流量是通过将该值乘以细丝流量比以及对"
"该因素影响内壁材料的用量。 实际使用的内壁流量是通过将该值乘以耗材流量比以及对"
"象的流量比(如果已设置)来计算的。"
msgid "Overhang flow ratio"
@@ -11928,7 +11928,7 @@ msgid ""
"The actual overhang flow used is calculated by multiplying this value by the "
"filament flow ratio, and if set, the object's flow ratio."
msgstr ""
"该因素影响悬垂材料的数量。 实际使用的悬垂流量是通过将该值乘以细丝流量比以及对"
"该因素影响悬垂材料的数量。 实际使用的悬垂流量是通过将该值乘以耗材流量比以及对"
"象的流量比(如果已设置)来计算的。"
msgid "Sparse infill flow ratio"
@@ -11940,7 +11940,7 @@ msgid ""
"The actual sparse infill flow used is calculated by multiplying this value "
"by the filament flow ratio, and if set, the object's flow ratio."
msgstr ""
"该因素影响稀疏填充的材料量。 实际使用的稀疏填充流量是通过将该值乘以细丝流量比"
"该因素影响稀疏填充的材料量。 实际使用的稀疏填充流量是通过将该值乘以耗材流量比"
"以及对象的流量比(如果已设置)来计算的。"
msgid "Internal solid infill flow ratio"
@@ -11953,7 +11953,7 @@ msgid ""
"value by the filament flow ratio, and if set, the object's flow ratio."
msgstr ""
"该因素影响内部固体填充材料的数量。 实际使用的内部固体填充流量是通过将该值乘以"
"细丝流量比以及对象的流量比(如果已设置)来计算的。"
"耗材流量比以及对象的流量比(如果已设置)来计算的。"
msgid "Gap fill flow ratio"
msgstr "间隙填充流量比"
@@ -11964,11 +11964,11 @@ msgid ""
"The actual gap filling flow used is calculated by multiplying this value by "
"the filament flow ratio, and if set, the object's flow ratio."
msgstr ""
"该因素影响填充间隙的材料量。 实际使用的间隙填充流量是通过将该值乘以细丝流量比"
"该因素影响填充间隙的材料量。 实际使用的间隙填充流量是通过将该值乘以耗材流量比"
"以及对象的流量比(如果已设置)来计算的。"
msgid "Support flow ratio"
msgstr "支流量比"
msgstr "支流量比"
msgid ""
"This factor affects the amount of material for support.\n"
@@ -11976,11 +11976,11 @@ msgid ""
"The actual support flow used is calculated by multiplying this value by the "
"filament flow ratio, and if set, the object's flow ratio."
msgstr ""
"该因素影响支撑材料的数量。 实际使用的支撑流量是通过将该值乘以细丝流量比以及对"
"该因素影响支撑材料的数量。 实际使用的支撑流量是通过将该值乘以耗材流量比以及对"
"象的流量比(如果已设置)来计算的。"
msgid "Support interface flow ratio"
msgstr "支持接口流量比例"
msgstr "支撑面流量比例"
msgid ""
"This factor affects the amount of material for the support interface.\n"
@@ -11988,7 +11988,7 @@ msgid ""
"The actual support interface flow used is calculated by multiplying this "
"value by the filament flow ratio, and if set, the object's flow ratio."
msgstr ""
"该因素影响支撑界面的材料量。 实际使用的支撑界面流量是通过将该值乘以细丝流量比"
"该因素影响支撑界面的材料量。 实际使用的支撑界面流量是通过将该值乘以耗材流量比"
"以及对象的流量比(如果已设置)来计算的。"
msgid "Precise wall"
@@ -13049,10 +13049,10 @@ msgid ""
msgstr "打印此材料的所需的最小喷嘴硬度。零值表示不检查喷嘴硬度。"
msgid "Filament map to extruder"
msgstr "耗材图至挤出机"
msgstr "耗材映射到挤出机"
msgid "Filament map to extruder."
msgstr "耗材到挤出机。"
msgstr "耗材映射到挤出机。"
msgid "Auto For Flush"
msgstr "自动冲洗"
@@ -13851,7 +13851,7 @@ msgid ""
"the ironing flow for each filament type. Too high value results in "
"overextrusion on the surface."
msgstr ""
"针对熨烫流程的细丝特定覆盖。这使您可以为每种细丝类型定制熨烫流程。值太高会导"
"针对熨烫流程的耗材特定覆盖。这使您可以为每种耗材类型定制熨烫流程。值太高会导"
"致表面过度挤压。"
msgid "Ironing line spacing"
@@ -13861,7 +13861,7 @@ msgid ""
"Filament-specific override for ironing line spacing. This allows you to "
"customize the spacing between ironing lines for each filament type."
msgstr ""
"针对熨烫线间距的细丝特定覆盖。这使您可以自定义每种细丝类型的熨烫线之间的间"
"针对熨烫线间距的耗材特定覆盖。这使您可以自定义每种耗材类型的熨烫线之间的间"
"距。"
msgid "Ironing inset"
@@ -13871,7 +13871,7 @@ msgid ""
"Filament-specific override for ironing inset. This allows you to customize "
"the distance to keep from the edges when ironing for each filament type."
msgstr ""
"用于熨烫插入的丝特定覆盖。这使您可以自定义熨烫每种丝类型时与边缘保持的距"
"用于熨烫插入的耗材丝特定覆盖。这使您可以自定义熨烫每种耗材丝类型时与边缘保持的距"
"离。"
msgid "Ironing speed"
@@ -13881,7 +13881,7 @@ msgid ""
"Filament-specific override for ironing speed. This allows you to customize "
"the print speed of ironing lines for each filament type."
msgstr ""
"特定于耗材的熨烫速度优先。这允许您自定义每种丝类型的熨烫线的打印速度。"
"特定于耗材的熨烫速度优先。这允许您自定义每种耗材丝类型的熨烫线的打印速度。"
msgid ""
"Randomly jitter while printing the wall, so that the surface has a rough "
@@ -13948,7 +13948,7 @@ msgid ""
"displayed, and the model will not be sliced. You can choose this number "
"until this error is repeated."
msgstr ""
"模糊皮肤生成模式。仅适用于阿拉克尼\n"
"模糊皮肤生成模式。仅适用于Arachne\n"
"位移:经典模式,通过将喷嘴从原始路径向侧面移动来形成图案。\n"
"挤出:通过挤出塑料量而形成图案的模式。这是一种快速而直接的算法,没有不必要的"
"喷嘴抖动,可以产生平滑的图案。但它对于在整个阵列中形成松散的墙壁更有用。\n"
@@ -14868,7 +14868,7 @@ msgstr ""
"注意:此参数禁用圆弧拟合。"
msgid "mm³/s²"
msgstr "毫米立方/秒平方"
msgstr "mm³/s²"
msgid "Smoothing segment length"
msgstr "平滑段长度"
@@ -15213,7 +15213,7 @@ msgstr "切料回抽距离"
msgid ""
"Experimental feature: Retraction length before cutting off during filament "
"change."
msgstr "实验性选项在更换耗材丝时,切断前的回抽长度"
msgstr "实验性选项在更换耗材丝时,切断前的回抽长度"
msgid "Long retraction when extruder change"
msgstr "更换挤出机时长回缩"
@@ -15768,7 +15768,7 @@ msgstr ""
"不使用该值。"
msgid "∆℃"
msgstr "℃"
msgstr "℃"
msgid "Preheat time"
msgstr "预热时间"
@@ -15860,7 +15860,7 @@ msgid "Enable filament ramming"
msgstr "启用耗材尖端成型"
msgid "No sparse layers (beta)"
msgstr "无稀疏层 (实验)"
msgstr "无稀疏层 (实验功能"
msgid ""
"If enabled, the wipe tower will not be printed on layers with no tool "
@@ -19170,7 +19170,7 @@ msgid ""
"Note: If the only preset under this filament is deleted, the filament will "
"be deleted after exiting the dialog."
msgstr ""
"注意:如果在该耗材下仅有的预设被删除,那么在退出对话框后,该耗材将被删除。"
"注意:如果在该耗材下仅有的预设被删除,在关闭对话框后,该耗材将被删除。"
msgid "Presets inherited by other presets cannot be deleted"
msgstr "附属于其他预设的预设不能被删除。"
@@ -19341,7 +19341,7 @@ msgid "Success!"
msgstr "成功!"
msgid "Are you sure to log out?"
msgstr "您确定要注销吗?"
msgstr "您确定要登出吗?"
msgid "View print host webui in Device tab"
msgstr "在 设备 标签页中查看打印机主机的网页界面"
@@ -19760,7 +19760,7 @@ msgid ""
"set the outer wall speed to be 40 to 60 mm/s when slicing."
msgstr ""
"为了使打印件获得更高的光泽度,请在使用前将耗材干燥,并在切片时将外壁速度设置"
"为 40 至 60 毫米/秒。"
"为 40 至 60 mm/s。"
msgid ""
"This filament is only used to print models with a low density usually, and "
@@ -19793,7 +19793,7 @@ msgid ""
"the AMS. Printing it is of many requirements, and to get better printing "
"quality, please refer to this wiki: TPU printing guide."
msgstr ""
"该耗材具有足够高的硬度(约 67 D)并且与 AMS 兼容。打印此类耗材需要满足较多条"
"该耗材具有足够高的硬度(约 67D)并且与 AMS 兼容。打印此类耗材需要满足较多条"
"件,为了获得更好的打印质量,请参考这个英文wikiTPU printing guide(“TPU打印"
"指南”)"
@@ -19884,7 +19884,7 @@ msgid "The number of printers in use simultaneously cannot be equal to 0."
msgstr "同时使用的打印机数量不能等于0。"
msgid "Use External Spool"
msgstr "使用外置线卷"
msgstr "使用外置耗材盘"
msgid "Select Printers"
msgstr "选择打印机"
@@ -20642,7 +20642,7 @@ msgid ""
"Did you know that you can save wasted filament by flushing it into support/"
"objects/infill during filament change?"
msgstr ""
"冲刷到支/对象/填充中\n"
"冲刷到支/对象/填充中\n"
"你知道吗?你可以在换料时将它们冲入支撑/对象/填充,以节省浪费的料丝。"
#: resources/data/hints.ini: [hint:Improve strength]
@@ -20696,7 +20696,7 @@ msgstr ""
#~ msgstr "检查新版本"
#~ msgid "Detect spaghetti failure(scattered lose filament)."
#~ msgstr "检测炒面故障(散落的丝)。"
#~ msgstr "检测炒面故障(散落的耗材丝)。"
#~ msgid "Rotate of view"
#~ msgstr "旋转视图"
+2 -2
View File
@@ -166,8 +166,8 @@ msgstr "筆刷類型"
msgid "Smart fill angle"
msgstr "智慧填充角度"
msgid "On overhangs only"
msgstr "僅對懸空區生效"
msgid "On highlighted overhangs only"
msgstr "僅對高亮懸空區生效"
msgid "Auto support threshold angle: "
msgstr "自動支撐角度臨界值:"
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+20904 -20904
View File
File diff suppressed because it is too large Load Diff
+20316 -20316
View File
File diff suppressed because it is too large Load Diff
+20216 -20216
View File
File diff suppressed because it is too large Load Diff
+21800 -21800
View File
File diff suppressed because it is too large Load Diff
+20904 -20904
View File
File diff suppressed because it is too large Load Diff
+20316 -20316
View File
File diff suppressed because it is too large Load Diff
+20216 -20216
View File
File diff suppressed because it is too large Load Diff
+21800 -21800
View File
File diff suppressed because it is too large Load Diff
+20904 -20904
View File
File diff suppressed because it is too large Load Diff
+20316 -20316
View File
File diff suppressed because it is too large Load Diff
+20216 -20216
View File
File diff suppressed because it is too large Load Diff
+21800 -21800
View File
File diff suppressed because it is too large Load Diff
+20904 -20904
View File
File diff suppressed because it is too large Load Diff
+20316 -20316
View File
File diff suppressed because it is too large Load Diff
+20216 -20216
View File
File diff suppressed because it is too large Load Diff
+21800 -21800
View File
File diff suppressed because it is too large Load Diff
+20904 -20904
View File
File diff suppressed because it is too large Load Diff
+20316 -20316
View File
File diff suppressed because it is too large Load Diff
+20216 -20216
View File
File diff suppressed because it is too large Load Diff
+21800 -21800
View File
File diff suppressed because it is too large Load Diff
+20904 -20904
View File
File diff suppressed because it is too large Load Diff
+20316 -20316
View File
File diff suppressed because it is too large Load Diff
+20216 -20216
View File
File diff suppressed because it is too large Load Diff
+21800 -21800
View File
File diff suppressed because it is too large Load Diff
+20904 -20904
View File
File diff suppressed because it is too large Load Diff
+20316 -20316
View File
File diff suppressed because it is too large Load Diff
+20216 -20216
View File
File diff suppressed because it is too large Load Diff
+21800 -21800
View File
File diff suppressed because it is too large Load Diff
+20904 -20904
View File
File diff suppressed because it is too large Load Diff
+20316 -20316
View File
File diff suppressed because it is too large Load Diff
+20216 -20216
View File
File diff suppressed because it is too large Load Diff
+21800 -21800
View File
File diff suppressed because it is too large Load Diff
+20904 -20904
View File
File diff suppressed because it is too large Load Diff
+20316 -20316
View File
File diff suppressed because it is too large Load Diff
+20216 -20216
View File
File diff suppressed because it is too large Load Diff
+21800 -21800
View File
File diff suppressed because it is too large Load Diff
+20904 -20904
View File
File diff suppressed because it is too large Load Diff
+20316 -20316
View File
File diff suppressed because it is too large Load Diff
+20216 -20216
View File
File diff suppressed because it is too large Load Diff
+21800 -21800
View File
File diff suppressed because it is too large Load Diff
+20904 -20904
View File
File diff suppressed because it is too large Load Diff
+20316 -20316
View File
File diff suppressed because it is too large Load Diff
+20216 -20216
View File
File diff suppressed because it is too large Load Diff
+21800 -21800
View File
File diff suppressed because it is too large Load Diff
+20316 -20316
View File
File diff suppressed because it is too large Load Diff
+20904 -20904
View File
File diff suppressed because it is too large Load Diff
+20216 -20216
View File
File diff suppressed because it is too large Load Diff
+20904 -20904
View File
File diff suppressed because it is too large Load Diff
+20316 -20316
View File
File diff suppressed because it is too large Load Diff
+20216 -20216
View File
File diff suppressed because it is too large Load Diff
+21800 -21800
View File
File diff suppressed because it is too large Load Diff
+20904 -20904
View File
File diff suppressed because it is too large Load Diff
+20316 -20316
View File
File diff suppressed because it is too large Load Diff
+20216 -20216
View File
File diff suppressed because it is too large Load Diff
+21800 -21800
View File
File diff suppressed because it is too large Load Diff
+20904 -20904
View File
File diff suppressed because it is too large Load Diff
+20316 -20316
View File
File diff suppressed because it is too large Load Diff
+20216 -20216
View File
File diff suppressed because it is too large Load Diff
+21800 -21800
View File
File diff suppressed because it is too large Load Diff
+42 -42
View File
@@ -1,43 +1,43 @@
{
"version": "1.0.0.4",
"high_temp_filament": [
"ABS",
"ASA",
"ASA-CF",
"PC",
"PA",
"PA-CF",
"PA-GF",
"PA6-CF",
"PET-CF",
"PPS",
"PPS-CF",
"PPA-CF",
"PPA-GF",
"ABS-GF",
"ASA-AERO"
],
"low_temp_filament": [
"PLA",
"TPU",
"TPU-AMS",
"PLA-CF",
"PLA-AERO",
"PVA",
"BVOH",
"PCTG",
"PETG",
"PETG-CF",
"SBS"
],
"high_low_compatible_filament":[
"HIPS",
"PE",
"PP",
"EVA",
"PE-CF",
"PP-CF",
"PP-GF",
"PHA"
]
}
"version": "1.0.0.4",
"high_temp_filament": [
"ABS",
"ASA",
"ASA-CF",
"PC",
"PA",
"PA-CF",
"PA-GF",
"PA6-CF",
"PET-CF",
"PPS",
"PPS-CF",
"PPA-CF",
"PPA-GF",
"ABS-GF",
"ASA-AERO"
],
"low_temp_filament": [
"PLA",
"TPU",
"TPU-AMS",
"PLA-CF",
"PLA-AERO",
"PVA",
"BVOH",
"PCTG",
"PETG",
"PETG-CF",
"SBS"
],
"high_low_compatible_filament": [
"HIPS",
"PE",
"PP",
"EVA",
"PE-CF",
"PP-CF",
"PP-GF",
"PHA"
]
}

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