mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-08-24 12:08:25 +03:00
Compare commits
166 Commits
feature/up
...
feat/plugi
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
64d04a75f3 | ||
|
|
bf22ef2a82 | ||
|
|
f5f3d2221d | ||
|
|
8047141981 | ||
|
|
dfd3444ae7 | ||
|
|
872c660cb3 | ||
|
|
35db2cd89b | ||
|
|
1e87d56482 | ||
|
|
1c90ba78a5 | ||
|
|
bb1e68aa94 | ||
|
|
02f148123d | ||
|
|
7c55b07736 | ||
|
|
156e096a9b | ||
|
|
050ebbb1f4 | ||
|
|
e840187edc | ||
|
|
5be1f8f209 | ||
|
|
02736fee16 | ||
|
|
ffee402494 | ||
|
|
4fd7fdb3fa | ||
|
|
322dc9b6a6 | ||
|
|
6c0f5eee55 | ||
|
|
6a52ea1818 | ||
|
|
b6e4f52c05 | ||
|
|
ba22a87a0b | ||
|
|
542cd18d19 | ||
|
|
57092d5abd | ||
|
|
f529692ac0 | ||
|
|
728cf63c3d | ||
|
|
7580d8ef8c | ||
|
|
d5dbd96dd6 | ||
|
|
0225cadff0 | ||
|
|
c5aedd1cea | ||
|
|
78eef79ffe | ||
|
|
56d2c527cb | ||
|
|
fd23b74b99 | ||
|
|
50dfcff031 | ||
|
|
d322b1a156 | ||
|
|
ee6613a4b8 | ||
|
|
e9d421050e | ||
|
|
5e6895ddd2 | ||
|
|
6dbdb1d07e | ||
|
|
117ed0060d | ||
|
|
c5d2944ee0 | ||
|
|
5005ecc88b | ||
|
|
7be7f07551 | ||
|
|
54fe28ab08 | ||
|
|
b422636740 | ||
|
|
c806a09c7c | ||
|
|
1a8f39c5f7 | ||
|
|
9421e7fa9b | ||
|
|
af9fd10d7a | ||
|
|
74aed7a2bb | ||
|
|
8bff9aaf32 | ||
|
|
83723e2a7b | ||
|
|
e2fd46f82c | ||
|
|
b216813bf0 | ||
|
|
b3296fa199 | ||
|
|
6d9a9eeb04 | ||
|
|
8e243faa3a | ||
|
|
b5412221b6 | ||
|
|
f444176df8 | ||
|
|
a684c6daf6 | ||
|
|
7f10c73dce | ||
|
|
945520b827 | ||
|
|
b281c91b99 | ||
|
|
b57d7a67e2 | ||
|
|
18ca06ec6b | ||
|
|
32a4e0fb37 | ||
|
|
f9ed5843c0 | ||
|
|
7c73739e1a | ||
|
|
aa4e28b2b5 | ||
|
|
408db4b3b0 | ||
|
|
169189498e | ||
|
|
72784cfe91 | ||
|
|
ef4815b26c | ||
|
|
b97ca3c0ac | ||
|
|
f73566dd2b | ||
|
|
7fbfb7ba87 | ||
|
|
23bd320076 | ||
|
|
a10d9e77cf | ||
|
|
1d023216f2 | ||
|
|
dc2796209f | ||
|
|
194ef34080 | ||
|
|
4e1caa39eb | ||
|
|
38f5c84e7f | ||
|
|
4d8ce0e8a7 | ||
|
|
38cb1ae8d1 | ||
|
|
32f82b64e7 | ||
|
|
e56d7aeb80 | ||
|
|
4758dc6c68 | ||
|
|
596cbb8b2d | ||
|
|
6312caaf13 | ||
|
|
0051768206 | ||
|
|
1d078e005a | ||
|
|
82759d3899 | ||
|
|
59155f26ac | ||
|
|
79dcace1ac | ||
|
|
8dfc7a14b9 | ||
|
|
1534268183 | ||
|
|
501af81ba9 | ||
|
|
16c44940d2 | ||
|
|
40eab797c6 | ||
|
|
ca7fbfb007 | ||
|
|
7b404596e9 | ||
|
|
06ef58bad8 | ||
|
|
74c4a7e450 | ||
|
|
dbb991bf07 | ||
|
|
66d3f3f9c3 | ||
|
|
6b5c8af1c8 | ||
|
|
e72a3a65b2 | ||
|
|
1b71835337 | ||
|
|
f9fa1c117f | ||
|
|
6f3ca7d1b9 | ||
|
|
13ae3a1c90 | ||
|
|
fb36d5e73b | ||
|
|
abb2ab8d3f | ||
|
|
95b781745d | ||
|
|
80e64f80a6 | ||
|
|
477208a969 | ||
|
|
2e08b19d6b | ||
|
|
ea7117b7ca | ||
|
|
603a8f9c8f | ||
|
|
6a2a57bdf4 | ||
|
|
c8aacea176 | ||
|
|
4824a171f1 | ||
|
|
101f43b2d8 | ||
|
|
e01ac1f0a6 | ||
|
|
b51db32bb5 | ||
|
|
603b02f0e7 | ||
|
|
54dc5a2f1d | ||
|
|
303be94262 | ||
|
|
58bad17af9 | ||
|
|
ddce030322 | ||
|
|
2d4b431d5f | ||
|
|
acb0be6ed9 | ||
|
|
14b05a4d8e | ||
|
|
27c468754c | ||
|
|
88632710d5 | ||
|
|
d434e35488 | ||
|
|
7bd53b1283 | ||
|
|
6489b4cad3 | ||
|
|
71c4eebfc9 | ||
|
|
00f558aa18 | ||
|
|
3145f28bb7 | ||
|
|
29d4513694 | ||
|
|
0dc14aa876 | ||
|
|
013a9452af | ||
|
|
e00906a833 | ||
|
|
56c28fc102 | ||
|
|
5ede9711f5 | ||
|
|
6bcb809dd0 | ||
|
|
33dfb66aa5 | ||
|
|
ef7bfeda9c | ||
|
|
47ccca7f72 | ||
|
|
04e13200aa | ||
|
|
0013c1da34 | ||
|
|
5afc6ae9b2 | ||
|
|
adb0ca3dc3 | ||
|
|
08128911e3 | ||
|
|
0a7ac3f2ac | ||
|
|
d865e9e6e1 | ||
|
|
7aaeea2bd2 | ||
|
|
9e635925c8 | ||
|
|
ec22a58c40 | ||
|
|
a636243ec0 | ||
|
|
b9e1db41a0 |
10
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
10
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
@@ -32,9 +32,17 @@ body:
|
||||
attributes:
|
||||
label: OrcaSlicer Version
|
||||
description: Which version of Orca Slicer are you running? You can see the full version in `Help` -> `About Orca Slicer`.
|
||||
placeholder: e.g. 1.9.0
|
||||
placeholder: e.g. 2.5.0
|
||||
validations:
|
||||
required: true
|
||||
- type: input
|
||||
id: working_version
|
||||
attributes:
|
||||
label: Regression compared to a previous version
|
||||
description: Did it work in a previous version?
|
||||
placeholder: e.g. 2.3.2
|
||||
validations:
|
||||
required: false
|
||||
- type: dropdown
|
||||
id: os_type
|
||||
attributes:
|
||||
|
||||
6
.github/workflows/check_profiles.yml
vendored
6
.github/workflows/check_profiles.yml
vendored
@@ -1,8 +1,12 @@
|
||||
name: Check profiles
|
||||
on:
|
||||
pull_request:
|
||||
# release/* is included because pr-merge-bot.yml lets delegates merge into
|
||||
# it, and it gates on this workflow's result. Without it a delegated merge
|
||||
# into a release branch would run no profile validation at all.
|
||||
branches:
|
||||
- main
|
||||
- release/*
|
||||
paths:
|
||||
- 'resources/profiles/**'
|
||||
- ".github/workflows/check_profiles.yml"
|
||||
@@ -20,6 +24,8 @@ permissions:
|
||||
|
||||
jobs:
|
||||
check_profiles:
|
||||
# This job name is the check-run name pr-merge-bot.yml requires before a
|
||||
# delegated merge. Renaming it silently disables that gate.
|
||||
name: Check profiles
|
||||
runs-on: ubuntu-24.04
|
||||
steps:
|
||||
|
||||
510
.github/workflows/pr-merge-bot.yml
vendored
Normal file
510
.github/workflows/pr-merge-bot.yml
vendored
Normal file
@@ -0,0 +1,510 @@
|
||||
name: PR Merge Bot
|
||||
|
||||
# Merges a pull request on request from a delegated vendor profile maintainer.
|
||||
# The merge is performed by this workflow's GITHUB_TOKEN, so a delegate needs no
|
||||
# repository access.
|
||||
#
|
||||
# Commands, posted as a comment on the PR:
|
||||
# /bot merge squash-merge the PR
|
||||
# /bot merge --dry-run report the verdict without merging
|
||||
#
|
||||
# Merges only when the commenter holds a grant covering every changed path, the
|
||||
# PR targets main or release/*, and CI is green on the head commit. Otherwise it
|
||||
# comments naming the files that fell outside the grant.
|
||||
#
|
||||
# Grants come from the FOLDER_MERGERS variable in the `merge-delegation`
|
||||
# environment: one per line, `account: path`, `#` comments and blank lines
|
||||
# allowed. Paths may contain spaces. A vendor takes two grants, the folder and
|
||||
# its sibling bundle JSON:
|
||||
#
|
||||
# # Acme profiles
|
||||
# vendor-maintainer: resources/profiles/Acme/
|
||||
# vendor-maintainer: resources/profiles/Acme.json
|
||||
#
|
||||
# Edit the grant list (environment scope, so admin only):
|
||||
# gh variable set FOLDER_MERGERS --env merge-delegation --body "$(cat folder-mergers.txt)"
|
||||
# gh variable get FOLDER_MERGERS --env merge-delegation
|
||||
#
|
||||
# Stop all merging without touching this file:
|
||||
# gh variable set MERGE_BOT_DRY_RUN --body true
|
||||
|
||||
on:
|
||||
issue_comment:
|
||||
types:
|
||||
- created
|
||||
|
||||
# One merge attempt per PR at a time, so two quick comments cannot race.
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.event.issue.number }}
|
||||
cancel-in-progress: false
|
||||
|
||||
jobs:
|
||||
merge:
|
||||
# Skips the job unless a PR comment mentions the command.
|
||||
if: >-
|
||||
github.repository == 'OrcaSlicer/OrcaSlicer'
|
||||
&& github.event.issue.pull_request != null
|
||||
&& contains(github.event.comment.body, '/bot merge')
|
||||
permissions:
|
||||
contents: write # pulls.merge
|
||||
pull-requests: write # pulls.merge
|
||||
issues: write # feedback comment + reactions
|
||||
actions: write # re-dispatch build_all.yml after the merge
|
||||
runs-on: ubuntu-latest
|
||||
timeout-minutes: 10
|
||||
# Supplies FOLDER_MERGERS. Must carry no protection rules, or every
|
||||
# delegated merge would wait for a human reviewer.
|
||||
environment: merge-delegation
|
||||
steps:
|
||||
- name: Merge PR on behalf of a folder delegate
|
||||
uses: actions/github-script@v9
|
||||
env:
|
||||
# Read as env vars, never interpolated into the script body.
|
||||
FOLDER_MERGERS: ${{ vars.FOLDER_MERGERS }}
|
||||
MERGE_BOT_DRY_RUN: ${{ vars.MERGE_BOT_DRY_RUN }}
|
||||
with:
|
||||
script: |
|
||||
function isPermissionDenied(error) {
|
||||
return error && error.status === 403 && /Resource not accessible by integration/i.test(error.message || '');
|
||||
}
|
||||
|
||||
const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
|
||||
|
||||
const MARKER = '<!-- pr-merge-bot -->';
|
||||
// No grant may reach outside this root.
|
||||
const DELEGATABLE_ROOT = 'resources/profiles/';
|
||||
const ALLOWED_BASE_BRANCH = /^(?:main|release\/.+)$/;
|
||||
const MERGE_METHOD = 'squash';
|
||||
const REQUIRED_CHECK = 'Check profiles'; // job name in check_profiles.yml
|
||||
const MAX_CHANGED_FILES = 500; // policy cap, well under listFiles' 3000
|
||||
const LISTFILES_CAP = 3000;
|
||||
const MAX_REPORTED_FILES = 12;
|
||||
const MERGEABLE_ATTEMPTS = 5;
|
||||
const MERGEABLE_DELAY_MS = 2000;
|
||||
const OK_CONCLUSIONS = new Set(['success', 'neutral', 'skipped']);
|
||||
const REGULAR_FILE_MODES = new Set(['100644', '100755']);
|
||||
|
||||
// Paths refused whatever the grants say. Checked before grants, so
|
||||
// delegating a new root means removing it from this list too.
|
||||
const DENIED_PATTERNS = [
|
||||
/^\.github\//,
|
||||
/(^|\/)\.git(attributes|modules|ignore|config)$/,
|
||||
/^(?:src|deps|deps_src|tests|tools|cmake|sandboxes|scripts|docs?|localization|bbl)\//,
|
||||
/(^|\/)cmakelists\.txt$/,
|
||||
/\.cmake$/,
|
||||
/^build_[^/]*\.(?:sh|bat)$/,
|
||||
/^version\.inc$/,
|
||||
// Executables, including those inside the delegatable root.
|
||||
/\.(?:sh|bash|bat|cmd|ps1|py|js|mjs|cjs|ts|rb|pl|php)$/
|
||||
];
|
||||
|
||||
function parseGrants(raw) {
|
||||
// GitHub login: 1-39 chars, alphanumerics with single interior hyphens.
|
||||
const loginPattern = /^[A-Za-z0-9](?:[A-Za-z0-9]|-(?=[A-Za-z0-9])){0,38}$/;
|
||||
const grantsByLogin = new Map();
|
||||
const problems = [];
|
||||
|
||||
(raw || '').split(/\r?\n/).forEach((rawLine, index) => {
|
||||
const line = rawLine.trim();
|
||||
if (!line || line.startsWith('#')) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Splits on the first colon only, so paths may contain ':' and spaces.
|
||||
const separator = line.indexOf(':');
|
||||
if (separator === -1) {
|
||||
problems.push(`line ${index + 1}: expected \`account: path\``);
|
||||
return;
|
||||
}
|
||||
|
||||
const login = line.slice(0, separator).trim().replace(/^@/, '');
|
||||
const path = line.slice(separator + 1).trim().replace(/\/+$/, '');
|
||||
|
||||
if (!loginPattern.test(login)) {
|
||||
problems.push(`line ${index + 1}: \`${login}\` is not a valid GitHub account name`);
|
||||
return;
|
||||
}
|
||||
if (/[\\*?\u0000-\u001f\u007f]/.test(path) || path.split('/').includes('..') || path.includes('//')) {
|
||||
problems.push(`line ${index + 1}: invalid path (no globs, \`..\`, \`//\`, backslashes or control characters)`);
|
||||
return;
|
||||
}
|
||||
// Rejects anything outside the root, and the bare root itself.
|
||||
if (!path.startsWith(DELEGATABLE_ROOT) || path.length <= DELEGATABLE_ROOT.length) {
|
||||
problems.push(`line ${index + 1}: \`${path}\` is not inside \`${DELEGATABLE_ROOT}\``);
|
||||
return;
|
||||
}
|
||||
|
||||
const key = login.toLowerCase();
|
||||
grantsByLogin.set(key, (grantsByLogin.get(key) || []).concat(path));
|
||||
});
|
||||
|
||||
return { grantsByLogin, problems };
|
||||
}
|
||||
|
||||
function isDenied(path) {
|
||||
if (/[\\\u0000-\u001f\u007f]/.test(path) || path.startsWith('/') || path.split('/').includes('..')) {
|
||||
return true;
|
||||
}
|
||||
|
||||
const normalized = path.normalize('NFKC').toLowerCase();
|
||||
return DENIED_PATTERNS.some((pattern) => pattern.test(normalized));
|
||||
}
|
||||
|
||||
// Byte-exact match on directory boundaries, so a grant of
|
||||
// `.../Acme` covers neither `.../Acme Labs/x.json` nor `.../Acme.json`.
|
||||
function isGranted(path, grants) {
|
||||
return grants.some((grant) => path === grant || path.startsWith(`${grant}/`));
|
||||
}
|
||||
|
||||
// Both endpoints of a rename; both must satisfy the grant.
|
||||
function pathsFor(file) {
|
||||
return [file.filename, file.previous_filename].filter(Boolean);
|
||||
}
|
||||
|
||||
function formatList(items) {
|
||||
const unique = [...new Set(items)];
|
||||
const shown = unique.slice(0, MAX_REPORTED_FILES).map((item) => `- \`${item}\``);
|
||||
if (unique.length > MAX_REPORTED_FILES) {
|
||||
shown.push(`- …and ${unique.length - MAX_REPORTED_FILES} more`);
|
||||
}
|
||||
return shown.join('\n');
|
||||
}
|
||||
|
||||
const { owner, repo } = context.repo;
|
||||
const issue = context.payload.issue;
|
||||
const comment = context.payload.comment;
|
||||
|
||||
if (!issue.pull_request) {
|
||||
core.info('Ignoring comment that is not on a pull request.');
|
||||
return;
|
||||
}
|
||||
// Ignores a comment whose sender is not its author.
|
||||
if (context.payload.action !== 'created' || context.payload.sender.login !== comment.user.login) {
|
||||
core.warning('Ignoring comment whose sender does not match its author.');
|
||||
return;
|
||||
}
|
||||
if (comment.user.type !== 'User') {
|
||||
core.info('Ignoring bot-authored command.');
|
||||
return;
|
||||
}
|
||||
|
||||
const commandLine = (comment.body || '')
|
||||
.split('\n')
|
||||
.map((line) => line.trim())
|
||||
.find((line) => /^\/bot\s+merge\b/i.test(line));
|
||||
|
||||
if (!commandLine) {
|
||||
core.info('No /bot merge command found.');
|
||||
return;
|
||||
}
|
||||
|
||||
const commenter = comment.user.login;
|
||||
const { grantsByLogin, problems } = parseGrants(process.env.FOLDER_MERGERS);
|
||||
const grants = grantsByLogin.get(commenter.toLowerCase()) || [];
|
||||
|
||||
for (const problem of problems) {
|
||||
core.warning(`FOLDER_MERGERS ${problem}`);
|
||||
}
|
||||
|
||||
// Says nothing to accounts with no grant, so it cannot be used to spam.
|
||||
if (!grants.length) {
|
||||
core.info(`Ignoring /bot merge from @${commenter}: not listed in FOLDER_MERGERS.`);
|
||||
return;
|
||||
}
|
||||
|
||||
// Warns instead of failing when the token cannot post feedback.
|
||||
async function bestEffort(call, warning) {
|
||||
try {
|
||||
await call();
|
||||
} catch (error) {
|
||||
if (isPermissionDenied(error)) {
|
||||
core.warning(warning);
|
||||
return;
|
||||
}
|
||||
|
||||
throw error;
|
||||
}
|
||||
}
|
||||
|
||||
const react = (content) => bestEffort(
|
||||
() => github.rest.reactions.createForIssueComment({ owner, repo, comment_id: comment.id, content }),
|
||||
`Cannot add the "${content}" reaction because the token cannot write.`);
|
||||
|
||||
const say = (body) => bestEffort(
|
||||
() => github.rest.issues.createComment({ owner, repo, issue_number: issue.number, body: `${MARKER}\n${body}` }),
|
||||
'Cannot post a comment because the token cannot write comments.');
|
||||
|
||||
// Declines the command: warns in the log, reacts, explains on the PR.
|
||||
async function refuse(reason) {
|
||||
const configNote = problems.length
|
||||
? `\n\n\`FOLDER_MERGERS\` also has problems a maintainer needs to fix:\n${problems.map((problem) => `- ${problem}`).join('\n')}`
|
||||
: '';
|
||||
const grantsNote = `\n\n<details><summary>Your current grants</summary>\n\n${formatList(grants)}\n\n</details>`;
|
||||
|
||||
core.warning(`Refused /bot merge from @${commenter}: ${reason}`);
|
||||
await react('-1');
|
||||
await say(`@${commenter} I can't merge this PR: ${reason}${configNote}${grantsNote}`);
|
||||
}
|
||||
|
||||
await react('eyes');
|
||||
|
||||
const args = (commandLine.match(/^\/bot\s+merge\s*(.*)$/i)[1] || '').trim().split(/\s+/).filter(Boolean);
|
||||
const unknownArgs = args.filter((arg) => arg.toLowerCase() !== '--dry-run');
|
||||
const dryRun = String(process.env.MERGE_BOT_DRY_RUN || '').toLowerCase() === 'true'
|
||||
|| unknownArgs.length !== args.length;
|
||||
|
||||
if (unknownArgs.length) {
|
||||
return refuse(
|
||||
`I don't understand ${unknownArgs.map((arg) => `\`${arg}\``).join(', ')}. ` +
|
||||
'Usage: `/bot merge` or `/bot merge --dry-run`.'
|
||||
);
|
||||
}
|
||||
|
||||
// Refuses everything while the grant list is malformed.
|
||||
if (problems.length) {
|
||||
return refuse(
|
||||
'the `FOLDER_MERGERS` grant list has malformed lines, so I refuse every merge until it is fixed.'
|
||||
);
|
||||
}
|
||||
|
||||
let { data: pr } = await github.rest.pulls.get({
|
||||
owner,
|
||||
repo,
|
||||
pull_number: issue.number
|
||||
});
|
||||
|
||||
if (pr.merged) {
|
||||
return refuse('it is already merged.');
|
||||
}
|
||||
if (pr.state !== 'open') {
|
||||
return refuse(`its state is \`${pr.state}\`, not \`open\`.`);
|
||||
}
|
||||
if (pr.draft) {
|
||||
return refuse('it is still a draft. Mark it ready for review first.');
|
||||
}
|
||||
if (!ALLOWED_BASE_BRANCH.test(pr.base.ref)) {
|
||||
return refuse(`it targets \`${pr.base.ref}\`. Delegated merges are only allowed into \`main\` and \`release/*\`.`);
|
||||
}
|
||||
|
||||
// ---- folder scope ----
|
||||
const files = await github.paginate(github.rest.pulls.listFiles, {
|
||||
owner,
|
||||
repo,
|
||||
pull_number: pr.number,
|
||||
per_page: 100
|
||||
});
|
||||
|
||||
if (!files.length) {
|
||||
return refuse('it changes no files, so there is nothing to verify or merge.');
|
||||
}
|
||||
// Refuses when the file list is truncated or disagrees with the PR.
|
||||
if (files.length >= LISTFILES_CAP || files.length !== pr.changed_files) {
|
||||
return refuse(
|
||||
`it reports ${pr.changed_files} changed files but the API listed ${files.length}, ` +
|
||||
'so the file list is truncated and I cannot verify the folder scope. A maintainer must merge this one.'
|
||||
);
|
||||
}
|
||||
if (pr.changed_files > MAX_CHANGED_FILES) {
|
||||
return refuse(`it changes ${pr.changed_files} files; delegated merges are capped at ${MAX_CHANGED_FILES}.`);
|
||||
}
|
||||
|
||||
const deniedFiles = [];
|
||||
const outsideFiles = [];
|
||||
|
||||
for (const file of files) {
|
||||
for (const path of pathsFor(file)) {
|
||||
if (isDenied(path)) {
|
||||
deniedFiles.push(path);
|
||||
} else if (!isGranted(path, grants)) {
|
||||
outsideFiles.push(path);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (deniedFiles.length) {
|
||||
core.error(`@${commenter} attempted a delegated merge touching protected paths: ${deniedFiles.join(', ')}`);
|
||||
return refuse(
|
||||
'it touches paths that are never delegatable, whatever the grants say ' +
|
||||
`(CI, build, scripts or executable files):\n\n${formatList(deniedFiles)}\n\nA maintainer should look at this before it goes any further.`
|
||||
);
|
||||
}
|
||||
if (outsideFiles.length) {
|
||||
return refuse(
|
||||
`${outsideFiles.length} changed path(s) fall outside your grants:\n\n${formatList(outsideFiles)}\n\n` +
|
||||
'A vendor needs both grants: `resources/profiles/<Vendor>/` **and** `resources/profiles/<Vendor>.json`.'
|
||||
);
|
||||
}
|
||||
|
||||
// ---- file modes: rejects symlinks and submodules ----
|
||||
// Fetches the delegatable subtree only; listFiles does not report modes.
|
||||
const headSha = pr.head.sha;
|
||||
const { data: tree } = await github.rest.git.getTree({
|
||||
owner,
|
||||
repo,
|
||||
tree_sha: `${headSha}:${DELEGATABLE_ROOT.replace(/\/$/, '')}`,
|
||||
recursive: 'true'
|
||||
});
|
||||
|
||||
if (tree.truncated) {
|
||||
return refuse('the git tree is too large to verify file modes. A maintainer must merge this one.');
|
||||
}
|
||||
|
||||
// Entry paths are subtree-relative.
|
||||
const modesByPath = new Map(tree.tree.map((entry) => [`${DELEGATABLE_ROOT}${entry.path}`, entry.mode]));
|
||||
const irregularFiles = files
|
||||
.filter((file) => file.status !== 'removed')
|
||||
.map((file) => [file.filename, modesByPath.get(file.filename)])
|
||||
.filter(([, mode]) => !REGULAR_FILE_MODES.has(mode))
|
||||
.map(([path, mode]) => `${path} (mode ${mode || 'missing'})`);
|
||||
|
||||
if (irregularFiles.length) {
|
||||
core.error(`@${commenter} attempted a delegated merge with non-regular files: ${irregularFiles.join(', ')}`);
|
||||
return refuse(
|
||||
`it adds symlinks, submodules or files I cannot verify:\n\n${formatList(irregularFiles)}\n\nA maintainer should look at this before it goes any further.`
|
||||
);
|
||||
}
|
||||
|
||||
// ---- mergeability: waits for GitHub to compute it ----
|
||||
for (let attempt = 0; pr.mergeable === null && attempt < MERGEABLE_ATTEMPTS; attempt += 1) {
|
||||
core.info(`Mergeability not computed yet; retrying in ${MERGEABLE_DELAY_MS}ms.`);
|
||||
await sleep(MERGEABLE_DELAY_MS);
|
||||
({ data: pr } = await github.rest.pulls.get({
|
||||
owner,
|
||||
repo,
|
||||
pull_number: pr.number
|
||||
}));
|
||||
}
|
||||
|
||||
if (pr.mergeable === null) {
|
||||
return refuse('GitHub is still working out whether it can be merged. Try `/bot merge` again in a minute.');
|
||||
}
|
||||
if (!pr.mergeable) {
|
||||
return refuse(`it is not mergeable (\`${pr.mergeable_state}\`) - most likely a conflict with \`${pr.base.ref}\`.`);
|
||||
}
|
||||
|
||||
// ---- CI on the head commit ----
|
||||
const checkRuns = await github.paginate(github.rest.checks.listForRef, {
|
||||
owner,
|
||||
repo,
|
||||
ref: headSha,
|
||||
filter: 'latest',
|
||||
per_page: 100
|
||||
});
|
||||
const pendingChecks = checkRuns.filter((run) => run.status !== 'completed');
|
||||
const failedChecks = checkRuns.filter((run) => run.status === 'completed' && !OK_CONCLUSIONS.has(run.conclusion));
|
||||
|
||||
if (pendingChecks.length) {
|
||||
return refuse(
|
||||
`${pendingChecks.length} check(s) are still running on \`${headSha.slice(0, 7)}\`:\n\n` +
|
||||
`${formatList(pendingChecks.map((run) => run.name))}\n\nRe-run \`/bot merge\` once they finish.`
|
||||
);
|
||||
}
|
||||
if (failedChecks.length) {
|
||||
return refuse(
|
||||
`${failedChecks.length} check(s) are not green on \`${headSha.slice(0, 7)}\`:\n\n` +
|
||||
formatList(failedChecks.map((run) => `${run.name} (${run.conclusion})`))
|
||||
);
|
||||
}
|
||||
|
||||
const { data: combined } = await github.rest.repos.getCombinedStatusForRef({
|
||||
owner,
|
||||
repo,
|
||||
ref: headSha
|
||||
});
|
||||
// total_count 0 only means there are no legacy statuses.
|
||||
if (combined.total_count > 0 && combined.state !== 'success') {
|
||||
return refuse(
|
||||
`the combined commit status on \`${headSha.slice(0, 7)}\` is \`${combined.state}\`:\n\n` +
|
||||
formatList(combined.statuses.filter((status) => status.state !== 'success')
|
||||
.map((status) => `${status.context} (${status.state})`))
|
||||
);
|
||||
}
|
||||
|
||||
// Requires the check to have actually run, not merely to have not failed.
|
||||
const requiredCheck = checkRuns.find((run) =>
|
||||
run.name === REQUIRED_CHECK &&
|
||||
run.app && run.app.slug === 'github-actions' &&
|
||||
run.status === 'completed' && OK_CONCLUSIONS.has(run.conclusion));
|
||||
|
||||
if (!requiredCheck) {
|
||||
return refuse(
|
||||
`the \`${REQUIRED_CHECK}\` check has not succeeded on \`${headSha.slice(0, 7)}\`. ` +
|
||||
'If it never ran, a maintainer needs to approve the workflow run first.'
|
||||
);
|
||||
}
|
||||
|
||||
const scopeSummary = `${files.length} file(s), all within:\n${formatList(grants)}`;
|
||||
|
||||
if (dryRun) {
|
||||
core.info('Dry run: every gate passed, not merging.');
|
||||
await react('+1');
|
||||
await say(
|
||||
`@${commenter} **dry run** - this PR passes every gate and I *would* squash-merge it ` +
|
||||
`at \`${headSha.slice(0, 7)}\`.\n\nVerified scope: ${scopeSummary}`
|
||||
);
|
||||
return;
|
||||
}
|
||||
|
||||
// ---- re-validate, then merge ----
|
||||
// An unchanged head SHA means the verified file list still holds.
|
||||
const { data: fresh } = await github.rest.pulls.get({
|
||||
owner,
|
||||
repo,
|
||||
pull_number: pr.number
|
||||
});
|
||||
|
||||
if (fresh.head.sha !== headSha || fresh.base.ref !== pr.base.ref || fresh.state !== 'open' || fresh.merged || fresh.draft) {
|
||||
return refuse('it changed while I was checking it. Nothing was merged - re-run `/bot merge`.');
|
||||
}
|
||||
|
||||
let merged;
|
||||
try {
|
||||
// Pinned to the verified head: a moved head fails with 409.
|
||||
({ data: merged } = await github.rest.pulls.merge({
|
||||
owner,
|
||||
repo,
|
||||
pull_number: pr.number,
|
||||
sha: headSha,
|
||||
merge_method: MERGE_METHOD,
|
||||
commit_title: `${pr.title} (#${pr.number})`,
|
||||
commit_message:
|
||||
`Merged by /bot merge on behalf of @${commenter} (id ${comment.user.id}).\n` +
|
||||
`Grants: ${grants.join(', ')}\nHead: ${headSha}\n`
|
||||
}));
|
||||
} catch (error) {
|
||||
const hint = {
|
||||
403: 'the workflow token cannot write to the repository.',
|
||||
405: 'GitHub refused the merge - branch protection, a required review or check, a newly added CODEOWNERS file, or squash merging being disabled.',
|
||||
409: `the head commit moved after I verified it (was \`${headSha.slice(0, 7)}\`).`,
|
||||
422: 'GitHub rejected the merge as invalid.'
|
||||
}[error.status];
|
||||
|
||||
if (!hint) {
|
||||
throw error;
|
||||
}
|
||||
|
||||
await refuse(`${hint}\n\n> ${error.message}\n\nNothing was merged.`);
|
||||
core.setFailed(`Delegated merge failed: ${error.status} ${error.message}`);
|
||||
return;
|
||||
}
|
||||
|
||||
core.info(`Merged #${pr.number} as ${merged.sha}.`);
|
||||
await react('rocket');
|
||||
await say(
|
||||
`@${commenter} squash-merged into \`${pr.base.ref}\` as ${merged.sha}.\n\nVerified scope: ${scopeSummary}`
|
||||
);
|
||||
|
||||
// ---- re-kick the build ----
|
||||
// A GITHUB_TOKEN merge fires no push event, so build_all.yml would
|
||||
// otherwise never see these files.
|
||||
try {
|
||||
await github.rest.actions.createWorkflowDispatch({
|
||||
owner,
|
||||
repo,
|
||||
workflow_id: 'build_all.yml',
|
||||
ref: pr.base.ref
|
||||
});
|
||||
core.info(`Dispatched build_all.yml on ${pr.base.ref}.`);
|
||||
} catch (error) {
|
||||
core.warning(`Merged successfully, but dispatching build_all.yml failed: ${error.message}`);
|
||||
}
|
||||
34
AGENTS.md
34
AGENTS.md
@@ -30,6 +30,7 @@ ctest --test-dir ./tests/fff_print
|
||||
- C++17, selective C++20. PascalCase classes, snake_case functions/variables
|
||||
- `#pragma once` for headers. Smart pointers and RAII preferred
|
||||
- Parallelization via TBB — be mindful of shared state
|
||||
- Always use `SetSizerAndFit(sizer)` instead of `SetSizer(sizer)` on top level window. Unless `SetSizer` must be called before the full layout is built, call `sizer->SetSizeHints(window)` afterwards in this case.
|
||||
|
||||
## Key Entry Points
|
||||
|
||||
@@ -55,11 +56,36 @@ ctest --test-dir ./tests/fff_print
|
||||
- Add helper functions or utilities only when existing code cannot reasonably be reused. Avoid duplication.
|
||||
- Keep code concise and clear. Manually simplify AI generated bloated codes before review.
|
||||
- Include targeted tests or documented verification for behavior changes, especially in slicing logic, profiles, formats, and GUI defaults.
|
||||
- For profile changes (`resources/profiles/<Vendor>/**`), check that `version` in the sibling `resources/profiles/<Vendor>.json` was bumped.
|
||||
- For translation changes (`localization/i18n/**/*.po`), check that recurring terms match the [Localization glossary](https://github.com/OrcaSlicer/OrcaSlicer_WIKI/blob/main/guides/localization_glossary.md) for that language.
|
||||
|
||||
## Localization & translations
|
||||
|
||||
- Translation catalogs live in `localization/i18n/<lang>/OrcaSlicer_<lang>.po`.
|
||||
- When creating or reviewing translations, use the [Localization glossary](https://github.com/OrcaSlicer/OrcaSlicer_WIKI/blob/main/guides/localization_glossary.md) as the source of truth for recurring terms, so the same English term is always rendered the same way within a language and terms that must stay in English (brand/product names, acronyms, file formats, G-code, macros/variables) are not translated.
|
||||
- If a term's established translation changes, update both the affected `.po` files and the glossary so they stay in sync.
|
||||
- Only edit `msgstr` (never `msgid`); keep placeholders (`%s`, `%1%`, `\n`), context (`msgctxt`), and file encoding/line endings intact.
|
||||
Catalogs live in `localization/i18n/<lang>/OrcaSlicer_<lang>.po`; the template is `OrcaSlicer.pot`.
|
||||
See the [Localization guide](https://github.com/OrcaSlicer/OrcaSlicer_WIKI/blob/main/guides/localization_guide.md) for the human-facing version of these principles.
|
||||
|
||||
### Terminology
|
||||
|
||||
- Use the [Localization glossary](https://github.com/OrcaSlicer/OrcaSlicer_WIKI/blob/main/guides/localization_glossary.md) as the source of truth for recurring terms, so the same English term is always rendered the same way within a language, and terms that must stay in English (brand/product names, acronyms, materials, file formats, G-code tokens, macros/variables/identifiers) are not translated.
|
||||
- If a term's established translation changes, update both the affected `.po` files and the glossary (`localization_glossary.tsv`, then regenerate) so they stay in sync.
|
||||
- Translate the *meaning*, not the words. Check what the string actually controls before translating it — English reuses one word for different things. `Flow ratio` (multiplier), `Flow Rate` (throughput) and `Flow Dynamics` (pressure compensation) are three different terms; `extruder` may mean the toolhead, the feeder motor, or the nozzle depending on the string.
|
||||
- Reuse one template per recurring message shape (`Failed to connect to …`, `Are you sure you want to …?`), even where the English wording varies.
|
||||
|
||||
### Editing rules
|
||||
|
||||
- Only edit `msgstr` — **never** change `msgid`, and never "fix" wrong English in the translation alone. Report the source string instead.
|
||||
- Preserve exactly: placeholders (`%s`, `%d`, `%1%`, `%zu`, `%%`), every `\n` (count *and* position, including leading/trailing), leading/trailing spaces, HTML tags, `℃`, and the file's encoding and line endings.
|
||||
- **Never reorder positional arguments** in a `c-format` string. If the msgid is `%d` then `%s`, that order must hold — swapping them breaks at runtime.
|
||||
- `msgctxt` separates homonyms — always read it. `Back`/`Camera View` is the rear view of the 3D navigator, while `Back`/`Navigation` is the go-back button; `Top` exists in the *Alignment*, *Layers* and *Camera View* senses.
|
||||
- When a string needs disambiguating, add context in the source (`_L_CONTEXT`/`_u8L_CONTEXT`), don't work around it in the translation.
|
||||
- A literal `%` inside a string xgettext flagged `possible-c-format` will fail `msgfmt`. Fix it with a `// xgettext:no-c-format, no-boost-format` comment above the string in the source — do not mangle the translation or use `%%` in text that is never passed through printf.
|
||||
- Plural entries: read `nplurals` from the catalog's `Plural-Forms` header (it is **not** always 2 — ja/ko/zh/th/vi use 1, ru/cs/pl/lt use 3, uk uses 4). Each form must be genuinely inflected for its quantity; repeating one sentence across all forms is a bug in Slavic/Baltic languages, though it is correct for Turkish and Hungarian.
|
||||
- An entry whose `msgstr` equals its `msgid` is untranslated even though it is not empty; a plural entry with any empty form is likewise incomplete.
|
||||
- Mark machine-produced translations with an `# AI Translated` translator comment. Don't add it to a human translation you didn't actually rewrite.
|
||||
- Don't reflow or re-wrap unrelated entries — keep the diff limited to the strings you changed.
|
||||
|
||||
### Verifying
|
||||
|
||||
- `scripts/run_gettext.bat --full` (Windows) regenerates the template, merges every catalog and compiles the `.mo` files. It must exit 0.
|
||||
- Or check a single catalog with `msgfmt --check-format -o <out>.mo localization/i18n/<lang>/OrcaSlicer_<lang>.po`.
|
||||
- Fuzzy entries are not shown to users. If you correct one, clear its `fuzzy` flag, otherwise the fix never ships.
|
||||
|
||||
@@ -80,8 +80,12 @@ endif()
|
||||
|
||||
if (DEFINED BBL_RELEASE_TO_PUBLIC)
|
||||
add_compile_definitions("BBL_RELEASE_TO_PUBLIC=${BBL_RELEASE_TO_PUBLIC}")
|
||||
if (BBL_RELEASE_TO_PUBLIC)
|
||||
add_compile_definitions(WXINSPECTOR_DISABLE)
|
||||
endif ()
|
||||
else ()
|
||||
add_compile_definitions("BBL_RELEASE_TO_PUBLIC=$<CONFIG:Release>")
|
||||
add_compile_definitions("$<$<CONFIG:Release>:WXINSPECTOR_DISABLE>")
|
||||
endif ()
|
||||
|
||||
find_package(Git)
|
||||
|
||||
@@ -119,6 +119,10 @@ Download the **Windows Installer exe** for your preferred version from the [rele
|
||||
- This file may already be available on your computer if you've installed visual studio. Check the following location: `%VCINSTALLDIR%Redist\MSVC\v142`
|
||||
</details>
|
||||
|
||||
### Microsoft Store
|
||||
|
||||
Install from the [Microsoft Store](https://apps.microsoft.com/detail/9mv6gl23xm59) when you prefer a Store-signed package (helps on Windows 11 Smart App Control).
|
||||
|
||||
### Windows Package Manager
|
||||
|
||||
```shell
|
||||
|
||||
@@ -152,7 +152,7 @@ echo on
|
||||
set CMAKE_POLICY_VERSION_MINIMUM=3.5
|
||||
if "%USE_NINJA%"=="1" (
|
||||
cmake .. -G %CMAKE_GENERATOR% -DORCA_TOOLS=ON %SIG_FLAG% -DBUILD_TESTS=%BUILD_TESTS% -DCMAKE_BUILD_TYPE=%build_type%
|
||||
cmake --build . --config %build_type% --target ALL_BUILD
|
||||
cmake --build . --config %build_type% --target all
|
||||
) else (
|
||||
cmake .. -G %CMAKE_GENERATOR% -A %arch% -DORCA_TOOLS=ON %SIG_FLAG% -DBUILD_TESTS=%BUILD_TESTS% -DCMAKE_BUILD_TYPE=%build_type%
|
||||
cmake --build . --config %build_type% --target ALL_BUILD -- -m
|
||||
|
||||
8
deps/OpenSSL/OpenSSL.cmake
vendored
8
deps/OpenSSL/OpenSSL.cmake
vendored
@@ -52,6 +52,14 @@ ExternalProject_Add(dep_OpenSSL
|
||||
CONFIGURE_COMMAND ${_conf_cmd} ${_cross_arch}
|
||||
"--openssldir=${DESTDIR}"
|
||||
"--prefix=${DESTDIR}"
|
||||
# OpenSSL's linux-x86_64 target sets multilib=64, so it installs to
|
||||
# <prefix>/lib64 while every other dep uses <prefix>/lib. CPython's
|
||||
# --with-openssl only ever emits -L<dir>/lib, so it misses the bundled
|
||||
# static libs and silently links the system OpenSSL instead -- which,
|
||||
# against 1.1.1w headers, leaves _ssl.so with an undefined
|
||||
# SSL_get_peer_certificate (removed in OpenSSL 3.x). Pin libdir so the
|
||||
# prefix stays single-layout.
|
||||
"--libdir=lib"
|
||||
${_cross_comp_prefix_line}
|
||||
no-shared
|
||||
no-asm
|
||||
|
||||
98
deps/TBB/MSVC.cmake
vendored
Normal file
98
deps/TBB/MSVC.cmake
vendored
Normal file
@@ -0,0 +1,98 @@
|
||||
# Copyright (c) 2020-2021 Intel Corporation
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
set(TBB_LINK_DEF_FILE_FLAG ${CMAKE_LINK_DEF_FILE_FLAG})
|
||||
set(TBB_DEF_FILE_PREFIX win${TBB_ARCH})
|
||||
|
||||
# Workaround for CMake issue https://gitlab.kitware.com/cmake/cmake/issues/18317.
|
||||
# TODO: consider use of CMP0092 CMake policy.
|
||||
string(REGEX REPLACE "/W[0-4]" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
|
||||
|
||||
set(TBB_WARNING_LEVEL $<$<BOOL:${TBB_STRICT}>:/W4> $<$<BOOL:${TBB_STRICT}>:/WX>)
|
||||
|
||||
# Warning suppression C4324: structure was padded due to alignment specifier
|
||||
set(TBB_WARNING_SUPPRESS /wd4324)
|
||||
set(TBB_TEST_COMPILE_FLAGS /bigobj)
|
||||
|
||||
if (MSVC_VERSION LESS_EQUAL 1900)
|
||||
# Warning suppression C4503 for VS2015 and earlier:
|
||||
# decorated name length exceeded, name was truncated.
|
||||
# More info can be found at
|
||||
# https://docs.microsoft.com/en-us/cpp/error-messages/compiler-warnings/compiler-warning-level-1-c4503
|
||||
set(TBB_TEST_COMPILE_FLAGS ${TBB_TEST_COMPILE_FLAGS} /wd4503)
|
||||
endif()
|
||||
|
||||
set(TBB_LIB_COMPILE_FLAGS -D_CRT_SECURE_NO_WARNINGS /GS)
|
||||
set(TBB_COMMON_COMPILE_FLAGS /volatile:iso /FS /EHsc)
|
||||
|
||||
# Ignore /WX set through add_compile_options() or added to CMAKE_CXX_FLAGS if TBB_STRICT is disabled.
|
||||
if (NOT TBB_STRICT AND COMMAND tbb_remove_compile_flag)
|
||||
tbb_remove_compile_flag(/WX)
|
||||
endif()
|
||||
|
||||
if (WINDOWS_STORE OR TBB_WINDOWS_DRIVER)
|
||||
set(TBB_COMMON_COMPILE_FLAGS ${TBB_COMMON_COMPILE_FLAGS} /D_WIN32_WINNT=0x0A00)
|
||||
set(TBB_COMMON_LINK_FLAGS -NODEFAULTLIB:kernel32.lib -INCREMENTAL:NO)
|
||||
set(TBB_COMMON_LINK_LIBS OneCore.lib)
|
||||
endif()
|
||||
|
||||
if (WINDOWS_STORE)
|
||||
if (NOT CMAKE_SYSTEM_VERSION EQUAL 10.0)
|
||||
message(FATAL_ERROR "CMAKE_SYSTEM_VERSION must be equal to 10.0")
|
||||
endif()
|
||||
set(TBB_COMMON_COMPILE_FLAGS ${TBB_COMMON_COMPILE_FLAGS} /ZW /ZW:nostdlib)
|
||||
# CMake define this extra lib, remove it for this build type
|
||||
string(REGEX REPLACE "WindowsApp.lib" "" CMAKE_CXX_STANDARD_LIBRARIES "${CMAKE_CXX_STANDARD_LIBRARIES}")
|
||||
|
||||
if (TBB_NO_APPCONTAINER)
|
||||
set(TBB_LIB_LINK_FLAGS ${TBB_LIB_LINK_FLAGS} -APPCONTAINER:NO)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if (TBB_WINDOWS_DRIVER)
|
||||
# Since this is universal driver disable this variable
|
||||
set(CMAKE_SYSTEM_PROCESSOR "")
|
||||
# CMake define list additional libs, remove it for this build type
|
||||
set(CMAKE_CXX_STANDARD_LIBRARIES "")
|
||||
set(TBB_COMMON_COMPILE_FLAGS ${TBB_COMMON_COMPILE_FLAGS} /D _UNICODE /DUNICODE /DWINAPI_FAMILY=WINAPI_FAMILY_APP /D__WRL_NO_DEFAULT_LIB__)
|
||||
endif()
|
||||
|
||||
if (NOT DEFINED TBB_ENABLE_IPO)
|
||||
if (DEFINED CMAKE_INTERPROCEDURAL_OPTIMIZATION)
|
||||
set(TBB_ENABLE_IPO ${CMAKE_INTERPROCEDURAL_OPTIMIZATION})
|
||||
else()
|
||||
set(TBB_ENABLE_IPO ON)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if (TBB_ENABLE_IPO)
|
||||
if (CMAKE_CXX_COMPILER_ID MATCHES "(Clang|IntelLLVM)")
|
||||
if (CMAKE_SYSTEM_PROCESSOR MATCHES "(x86|AMD64)")
|
||||
set(TBB_COMMON_COMPILE_FLAGS ${TBB_COMMON_COMPILE_FLAGS} -mrtm -mwaitpkg)
|
||||
endif()
|
||||
set(TBB_OPENMP_NO_LINK_FLAG TRUE)
|
||||
set(TBB_IPO_COMPILE_FLAGS $<$<NOT:$<CONFIG:Debug>>:-flto>)
|
||||
else()
|
||||
set(TBB_IPO_COMPILE_FLAGS $<$<NOT:$<CONFIG:Debug>>:/GL>)
|
||||
set(TBB_IPO_LINK_FLAGS $<$<NOT:$<CONFIG:Debug>>:-LTCG> $<$<NOT:$<CONFIG:Debug>>:-INCREMENTAL:NO>)
|
||||
endif()
|
||||
else()
|
||||
if (CMAKE_CXX_COMPILER_ID MATCHES "(Clang|IntelLLVM)" AND CMAKE_SYSTEM_PROCESSOR MATCHES "(x86|AMD64)")
|
||||
set(TBB_COMMON_COMPILE_FLAGS ${TBB_COMMON_COMPILE_FLAGS} -mrtm -mwaitpkg)
|
||||
endif()
|
||||
set(TBB_IPO_COMPILE_FLAGS "")
|
||||
set(TBB_IPO_LINK_FLAGS "")
|
||||
endif()
|
||||
|
||||
set(TBB_OPENMP_FLAG /openmp)
|
||||
6
deps/TBB/TBB.cmake
vendored
6
deps/TBB/TBB.cmake
vendored
@@ -1,4 +1,6 @@
|
||||
if (FLATPAK AND "${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
|
||||
if (MSVC)
|
||||
set(_patch_command ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_LIST_DIR}/MSVC.cmake ./cmake/compilers/MSVC.cmake)
|
||||
elseif (FLATPAK AND "${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
|
||||
set(_patch_command ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_LIST_DIR}/GNU.cmake ./cmake/compilers/GNU.cmake)
|
||||
else()
|
||||
set(_patch_command "")
|
||||
@@ -13,6 +15,8 @@ orcaslicer_add_cmake_project(
|
||||
-DTBB_BUILD_SHARED=OFF
|
||||
-DTBB_BUILD_TESTS=OFF
|
||||
-DTBB_TEST=OFF
|
||||
-DTBB_ENABLE_IPO=OFF
|
||||
-DCMAKE_INTERPROCEDURAL_OPTIMIZATION=OFF
|
||||
-DCMAKE_POSITION_INDEPENDENT_CODE=ON
|
||||
-DCMAKE_DEBUG_POSTFIX=_debug
|
||||
)
|
||||
|
||||
28
deps/wxWidgets/0001-Clang-CL-fix.patch
vendored
Normal file
28
deps/wxWidgets/0001-Clang-CL-fix.patch
vendored
Normal file
@@ -0,0 +1,28 @@
|
||||
---
|
||||
build/cmake/wxWidgetsConfig.cmake.in | 10 +++++++++-
|
||||
1 file changed, 10 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/build/cmake/wxWidgetsConfig.cmake.in b/build/cmake/wxWidgetsConfig.cmake.in
|
||||
index 1a83f36..70ad8a4 100644
|
||||
--- a/build/cmake/wxWidgetsConfig.cmake.in
|
||||
+++ b/build/cmake/wxWidgetsConfig.cmake.in
|
||||
@@ -58,7 +58,16 @@ if(WIN32_MSVC_NAMING)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
-include("${CMAKE_CURRENT_LIST_DIR}${wxPLATFORM_LIB_DIR}/@PROJECT_NAME@Targets.cmake")
|
||||
+if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang" AND CMAKE_CXX_COMPILER_FRONTEND_VARIANT STREQUAL "MSVC")
|
||||
+ if (CMAKE_GENERATOR_PLATFORM STREQUAL "ARM64" OR CMAKE_VS_PLATFORM_NAME STREQUAL "ARM64" OR CMAKE_SYSTEM_PROCESSOR MATCHES "^(ARM64|arm64|aarch64)$")
|
||||
+ set(_wx_clang_msvc_lib_dir "vc_arm64_lib")
|
||||
+ else()
|
||||
+ set(_wx_clang_msvc_lib_dir "vc_x64_lib")
|
||||
+ endif()
|
||||
+ include("${CMAKE_CURRENT_LIST_DIR}${wxPLATFORM_LIB_DIR}/${_wx_clang_msvc_lib_dir}/@PROJECT_NAME@Targets.cmake")
|
||||
+else()
|
||||
+ include("${CMAKE_CURRENT_LIST_DIR}${wxPLATFORM_LIB_DIR}/@PROJECT_NAME@Targets.cmake")
|
||||
+endif()
|
||||
|
||||
macro(wx_inherit_property source dest name)
|
||||
# property name without _<CONFIG>
|
||||
--
|
||||
2.43.0
|
||||
1
deps/wxWidgets/wxWidgets.cmake
vendored
1
deps/wxWidgets/wxWidgets.cmake
vendored
@@ -28,6 +28,7 @@ orcaslicer_add_cmake_project(
|
||||
GIT_SHALLOW ON
|
||||
GIT_SUBMODULES 3rdparty/catch 3rdparty/pcre 3rdparty/libwebp
|
||||
DEPENDS ${PNG_PKG} ${ZLIB_PKG} ${EXPAT_PKG} ${JPEG_PKG}
|
||||
PATCH_COMMAND git apply --verbose --ignore-space-change --whitespace=fix ${CMAKE_CURRENT_LIST_DIR}/0001-Clang-CL-fix.patch
|
||||
CMAKE_ARGS
|
||||
-DwxBUILD_PRECOMP=ON
|
||||
${_wx_toolkit}
|
||||
|
||||
@@ -37,7 +37,11 @@ target_include_directories(Clipper2
|
||||
)
|
||||
|
||||
if (WIN32)
|
||||
target_compile_options(Clipper2 PRIVATE /W4 /WX)
|
||||
if (MSVC AND NOT CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
|
||||
target_compile_options(Clipper2 PRIVATE /W4 /WX)
|
||||
elseif (CMAKE_CXX_COMPILER_ID STREQUAL "Clang" AND CMAKE_CXX_COMPILER_FRONTEND_VARIANT STREQUAL "MSVC")
|
||||
target_compile_options(Clipper2 PRIVATE /W4)
|
||||
endif()
|
||||
else()
|
||||
target_compile_options(Clipper2 PRIVATE -Wall -Wextra -Wpedantic -Werror)
|
||||
target_link_libraries(Clipper2 PUBLIC -lm)
|
||||
|
||||
@@ -2856,6 +2856,7 @@ const ImWchar* ImFontAtlas::GetGlyphRangesDefault()
|
||||
{
|
||||
0x0020, 0x00FF, // Basic Latin + Latin Supplement
|
||||
0x2000, 0x206F, // General Punctuation
|
||||
0x2103, 0x2103, // ℃ Celsius symbol
|
||||
0x3000, 0x30FF, // CJK Symbols and Punctuations, Hiragana, Katakana
|
||||
0x31F0, 0x31FF, // Katakana Phonetic Extensions
|
||||
0xFF00, 0xFFEF, // Half-width characters
|
||||
|
||||
@@ -465,6 +465,57 @@ static void stb_textedit_click(STB_TEXTEDIT_STRING *str, STB_TexteditState *stat
|
||||
STB_TEXTEDIT_LAYOUTROW(&r, str, 0);
|
||||
y = r.ymin;
|
||||
}
|
||||
else
|
||||
{
|
||||
// In multi-line mode, clamp y to stay within the text vertical bounds.
|
||||
// This lets the click still land at a valid location if the mouse is slightly
|
||||
// above or below the text.
|
||||
StbTexteditRow r;
|
||||
int n = STB_TEXTEDIT_STRINGLEN(str);
|
||||
int i = 0;
|
||||
float base_y = 0, y_min, y_max;
|
||||
|
||||
// Get the first row to establish y_min and start the iteration
|
||||
STB_TEXTEDIT_LAYOUTROW(&r, str, 0);
|
||||
if (r.num_chars <= 0)
|
||||
{
|
||||
state->cursor = 0;
|
||||
state->select_start = state->cursor;
|
||||
state->select_end = state->cursor;
|
||||
state->has_preferred_x = 0;
|
||||
return;
|
||||
}
|
||||
y_min = r.ymin;
|
||||
y_max = base_y + r.ymax;
|
||||
i = r.num_chars;
|
||||
base_y += r.baseline_y_delta;
|
||||
|
||||
// Walk the remaining rows to find the bottom of the last row
|
||||
while (i < n)
|
||||
{
|
||||
STB_TEXTEDIT_LAYOUTROW(&r, str, i);
|
||||
if (r.num_chars <= 0)
|
||||
break;
|
||||
y_max = base_y + r.ymax;
|
||||
i += r.num_chars;
|
||||
base_y += r.baseline_y_delta;
|
||||
}
|
||||
|
||||
// If the text ends with a newline, account for the empty trailing line
|
||||
// so the cursor can be placed on it
|
||||
if (n > 0 && STB_TEXTEDIT_GETCHAR(str, n - 1) == STB_TEXTEDIT_NEWLINE)
|
||||
{
|
||||
STB_TEXTEDIT_LAYOUTROW(&r, str, n);
|
||||
y_max = base_y + r.ymax;
|
||||
}
|
||||
|
||||
// Subtract half the last line height to avoid rounding issues when the mouse
|
||||
// is just barely below the last line (keep cursor on the last line, not after the text)
|
||||
y_max -= (r.ymax - r.ymin) * 0.5f;
|
||||
|
||||
if (y < y_min) y = y_min;
|
||||
if (y > y_max) y = y_max;
|
||||
}
|
||||
|
||||
state->cursor = stb_text_locate_coord(str, x, y);
|
||||
state->select_start = state->cursor;
|
||||
@@ -485,6 +536,50 @@ static void stb_textedit_drag(STB_TEXTEDIT_STRING *str, STB_TexteditState *state
|
||||
STB_TEXTEDIT_LAYOUTROW(&r, str, 0);
|
||||
y = r.ymin;
|
||||
}
|
||||
else
|
||||
{
|
||||
// In multi-line mode, clamp y to stay within the text vertical bounds.
|
||||
// This lets the drag keep working if the mouse goes off the top or bottom of the text.
|
||||
StbTexteditRow r;
|
||||
int n = STB_TEXTEDIT_STRINGLEN(str);
|
||||
int i = 0;
|
||||
float base_y = 0, y_min, y_max;
|
||||
|
||||
// Get the first row to establish y_min and start the iteration
|
||||
STB_TEXTEDIT_LAYOUTROW(&r, str, 0);
|
||||
if (r.num_chars <= 0)
|
||||
return;
|
||||
y_min = r.ymin;
|
||||
y_max = base_y + r.ymax;
|
||||
i = r.num_chars;
|
||||
base_y += r.baseline_y_delta;
|
||||
|
||||
// Walk the remaining rows to find the bottom of the last row
|
||||
while (i < n)
|
||||
{
|
||||
STB_TEXTEDIT_LAYOUTROW(&r, str, i);
|
||||
if (r.num_chars <= 0)
|
||||
break;
|
||||
y_max = base_y + r.ymax;
|
||||
i += r.num_chars;
|
||||
base_y += r.baseline_y_delta;
|
||||
}
|
||||
|
||||
// If the text ends with a newline, account for the empty trailing line
|
||||
// so the cursor can be placed on it
|
||||
if (n > 0 && STB_TEXTEDIT_GETCHAR(str, n - 1) == STB_TEXTEDIT_NEWLINE)
|
||||
{
|
||||
STB_TEXTEDIT_LAYOUTROW(&r, str, n);
|
||||
y_max = base_y + r.ymax;
|
||||
}
|
||||
|
||||
// Subtract half the last line height to avoid rounding issues when the mouse
|
||||
// is just barely below the last line (keep cursor on the last line, not after the text)
|
||||
y_max -= (r.ymax - r.ymin) * 0.5f;
|
||||
|
||||
if (y < y_min) y = y_min;
|
||||
if (y > y_max) y = y_max;
|
||||
}
|
||||
|
||||
if (state->select_start == state->select_end)
|
||||
state->select_start = state->cursor;
|
||||
|
||||
@@ -11,6 +11,8 @@ add_library(miniz_static STATIC
|
||||
|
||||
if(${CMAKE_C_COMPILER_ID} STREQUAL "GNU")
|
||||
target_compile_definitions(miniz_static PRIVATE _GNU_SOURCE)
|
||||
elseif (CMAKE_C_COMPILER_ID STREQUAL "Clang" AND CMAKE_C_COMPILER_FRONTEND_VARIANT STREQUAL "MSVC")
|
||||
target_compile_options(miniz_static PRIVATE /clang:-Wno-error=incompatible-pointer-types)
|
||||
endif()
|
||||
|
||||
target_link_libraries(miniz INTERFACE miniz_static)
|
||||
|
||||
@@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-07-23 15:24-0300\n"
|
||||
"POT-Creation-Date: 2026-08-19 14:07-0300\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
@@ -982,7 +982,7 @@ msgstr ""
|
||||
#, possible-boost-format
|
||||
msgid ""
|
||||
"Objects(%1%) have duplicated connectors. Some connectors may be missing in slicing result.\n"
|
||||
"Please report to PrusaSlicer team in which scenario this issue happened.\n"
|
||||
"Please report to the OrcaSlicer team in which scenario this issue happened.\n"
|
||||
"Thank you."
|
||||
msgstr ""
|
||||
|
||||
@@ -3385,7 +3385,6 @@ msgstr ""
|
||||
msgid "Innerloop"
|
||||
msgstr ""
|
||||
|
||||
#. TRN To be shown in the main menu View->Top
|
||||
msgid "Top"
|
||||
msgstr ""
|
||||
|
||||
@@ -3609,6 +3608,9 @@ msgstr ""
|
||||
msgid "Arranging"
|
||||
msgstr ""
|
||||
|
||||
msgid "Arranging "
|
||||
msgstr ""
|
||||
|
||||
msgid "Arranging canceled."
|
||||
msgstr ""
|
||||
|
||||
@@ -4450,6 +4452,20 @@ msgstr ""
|
||||
msgid "The minimal chamber temperature (%d℃) is higher than the target chamber temperature (%d℃). The minimal value is the threshold at which printing starts while the chamber keeps heating toward the target, so it should not exceed it. It will be clamped to the target."
|
||||
msgstr ""
|
||||
|
||||
#, possible-c-format, possible-boost-format
|
||||
msgid "Layer height is too small. It will be set to the minimum (%g mm)."
|
||||
msgstr ""
|
||||
|
||||
msgid "Layer height is outside the limits set in Printer Settings -> Extruder -> Layer height limits, this may cause printing quality issues."
|
||||
msgstr ""
|
||||
|
||||
#, possible-c-format, possible-boost-format
|
||||
msgid "Adjust it to the limit (%g mm) automatically?"
|
||||
msgstr ""
|
||||
|
||||
msgid "Adjust"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"Layer height too small\n"
|
||||
"It has been reset to 0.2"
|
||||
@@ -4531,6 +4547,12 @@ msgid ""
|
||||
"No - Disable Arachne Wall Generator and set [Displacement] mode of the Fuzzy Skin"
|
||||
msgstr ""
|
||||
|
||||
msgid "Brim ear radius"
|
||||
msgstr ""
|
||||
|
||||
msgid "Brim width"
|
||||
msgstr ""
|
||||
|
||||
msgid "Spiral mode only works when wall loops is 1, support is disabled, clumping detection by probing is disabled, top shell layers is 0, sparse infill density is 0 and timelapse type is traditional."
|
||||
msgstr ""
|
||||
|
||||
@@ -4782,6 +4804,12 @@ msgstr ""
|
||||
msgid "Calibration error"
|
||||
msgstr ""
|
||||
|
||||
msgid "This printer is not configured with the hardware this control needs."
|
||||
msgstr ""
|
||||
|
||||
msgid "This control is not supported on this printer."
|
||||
msgstr ""
|
||||
|
||||
msgid "Network unavailable"
|
||||
msgstr ""
|
||||
|
||||
@@ -5470,10 +5498,24 @@ msgstr ""
|
||||
msgid "Align to Y axis"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "Camera View"
|
||||
msgid "Front"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "Camera View"
|
||||
msgid "Back"
|
||||
msgstr ""
|
||||
|
||||
#. TRN To be shown in the main menu View->Top
|
||||
msgctxt "Camera View"
|
||||
msgid "Top"
|
||||
msgstr ""
|
||||
|
||||
#. TRN To be shown in the main menu View->Bottom
|
||||
msgctxt "Camera View"
|
||||
msgid "Bottom"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "Camera View"
|
||||
msgid "Left"
|
||||
msgstr ""
|
||||
@@ -5599,7 +5641,7 @@ msgstr ""
|
||||
msgid "Size:"
|
||||
msgstr ""
|
||||
|
||||
#, possible-c-format, possible-boost-format
|
||||
#, possible-boost-format
|
||||
msgid "Conflicts of G-code paths have been found at layer %d, Z = %.2lfmm. Please separate the conflicted objects farther (%s <-> %s)."
|
||||
msgstr ""
|
||||
|
||||
@@ -5774,6 +5816,9 @@ msgstr ""
|
||||
msgid "Project"
|
||||
msgstr ""
|
||||
|
||||
msgid "Device (Web)"
|
||||
msgstr ""
|
||||
|
||||
msgid "Yes"
|
||||
msgstr ""
|
||||
|
||||
@@ -5854,19 +5899,13 @@ msgstr ""
|
||||
msgid "Top View"
|
||||
msgstr ""
|
||||
|
||||
#. TRN To be shown in the main menu View->Bottom
|
||||
msgid "Bottom"
|
||||
msgstr ""
|
||||
|
||||
msgid "Bottom View"
|
||||
msgstr ""
|
||||
|
||||
msgid "Front"
|
||||
msgstr ""
|
||||
|
||||
msgid "Front View"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "Camera View"
|
||||
msgid "Rear"
|
||||
msgstr ""
|
||||
|
||||
@@ -7770,20 +7809,20 @@ msgstr ""
|
||||
msgid "Replaced with 3D files from directory:\n"
|
||||
msgstr ""
|
||||
|
||||
#, possible-boost-format
|
||||
msgid "✖ Skipped %1%: same file.\n"
|
||||
#, possible-c-format, possible-boost-format
|
||||
msgid "✖ Skipped %s: same file.\n"
|
||||
msgstr ""
|
||||
|
||||
#, possible-boost-format
|
||||
msgid "✖ Skipped %1%: file does not exist.\n"
|
||||
#, possible-c-format, possible-boost-format
|
||||
msgid "✖ Skipped %s: file does not exist.\n"
|
||||
msgstr ""
|
||||
|
||||
#, possible-boost-format
|
||||
msgid "✖ Skipped %1%: failed to replace.\n"
|
||||
#, possible-c-format, possible-boost-format
|
||||
msgid "✖ Skipped %s: failed to replace.\n"
|
||||
msgstr ""
|
||||
|
||||
#, possible-boost-format
|
||||
msgid "✔ Replaced %1%.\n"
|
||||
#, possible-c-format, possible-boost-format
|
||||
msgid "✔ Replaced %s.\n"
|
||||
msgstr ""
|
||||
|
||||
msgid "Replaced volumes"
|
||||
@@ -8462,6 +8501,15 @@ msgstr ""
|
||||
msgid "Pop up to select filament grouping mode"
|
||||
msgstr ""
|
||||
|
||||
msgid "Visible plugin pages"
|
||||
msgstr ""
|
||||
|
||||
msgid "pages"
|
||||
msgstr ""
|
||||
|
||||
msgid "Number of plugin pages shown as fixed tabs before the remaining pages collapse into a dropdown on the last tab."
|
||||
msgstr ""
|
||||
|
||||
msgid "Behaviour"
|
||||
msgstr ""
|
||||
|
||||
@@ -8654,6 +8702,17 @@ msgstr ""
|
||||
msgid "When scrubbing the layer slider in the sliced preview, render the layers below the current one darkened so that only the layer being viewed is shown at full brightness."
|
||||
msgstr ""
|
||||
|
||||
msgid "Dimmed layer brightness"
|
||||
msgstr ""
|
||||
|
||||
msgid "%"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"How brightly the dimmed layers are rendered when \"Dim lower layers\" is enabled.\n"
|
||||
"99% is barely darkened, 0% renders them black. Capped at 99% because 100% would be the same as disabling the option."
|
||||
msgstr ""
|
||||
|
||||
msgid "Login region"
|
||||
msgstr ""
|
||||
|
||||
@@ -8776,6 +8835,14 @@ msgstr ""
|
||||
msgid "Show incompatible/unsupported presets in the printer and filament dropdown lists. These presets cannot be selected."
|
||||
msgstr ""
|
||||
|
||||
msgid "(Experimental) Use printer agents instead of print hosts"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"Route print jobs for non-Bambu printers through printer plug-in agents instead of the classic print-host upload flow.\n"
|
||||
"When disabled, OrcaSlicer uses the legacy print-host behavior."
|
||||
msgstr ""
|
||||
|
||||
msgid "Experimental Features"
|
||||
msgstr ""
|
||||
|
||||
@@ -9031,9 +9098,21 @@ msgstr ""
|
||||
msgid "Preset Inside Project"
|
||||
msgstr ""
|
||||
|
||||
msgid "Copies all inherited values from the parent into this preset and removes the parent relationship. Presets compatible only with the parent may become unsupported."
|
||||
msgstr ""
|
||||
|
||||
msgid "Detach from parent"
|
||||
msgstr ""
|
||||
|
||||
msgid "Unique preset"
|
||||
msgstr ""
|
||||
|
||||
msgid "Parent preset"
|
||||
msgstr ""
|
||||
|
||||
msgid "This preset does not inherit from another preset."
|
||||
msgstr ""
|
||||
|
||||
msgid "Name is unavailable."
|
||||
msgstr ""
|
||||
|
||||
@@ -9711,20 +9790,6 @@ msgstr ""
|
||||
msgid "Infill patterns are typically designed to handle rotation automatically to ensure proper printing and achieve their intended effects (e.g., Gyroid, Cubic). Rotating the current sparse infill pattern may lead to insufficient support. Please proceed with caution and thoroughly check for any potential printing issues. Are you sure you want to enable this option?"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"Layer height is too small.\n"
|
||||
"It will set to min_layer_height\n"
|
||||
msgstr ""
|
||||
|
||||
msgid "Layer height exceeds the limit in Printer Settings -> Extruder -> Layer height limits, this may cause printing quality issues."
|
||||
msgstr ""
|
||||
|
||||
msgid "Adjust to the set range automatically?\n"
|
||||
msgstr ""
|
||||
|
||||
msgid "Adjust"
|
||||
msgstr ""
|
||||
|
||||
msgid "Experimental feature: Retracting and cutting off the filament at a greater distance during filament changes to minimize flush. Although it can notably reduce flush, it may also elevate the risk of nozzle clogs or other printing complications."
|
||||
msgstr ""
|
||||
|
||||
@@ -9910,6 +9975,9 @@ msgstr ""
|
||||
msgid "Setting Overrides"
|
||||
msgstr ""
|
||||
|
||||
msgid "Retraction when switching material"
|
||||
msgstr ""
|
||||
|
||||
msgid "Basic information"
|
||||
msgstr ""
|
||||
|
||||
@@ -10036,6 +10104,12 @@ msgstr ""
|
||||
msgid "Printable space"
|
||||
msgstr ""
|
||||
|
||||
msgid "Printer Agent"
|
||||
msgstr ""
|
||||
|
||||
msgid "Select the network agent implementation for printer communication. Available agents are registered at startup."
|
||||
msgstr ""
|
||||
|
||||
#. TRN: The first argument is the parameter's name; the second argument is its value.
|
||||
#, possible-boost-format
|
||||
msgid "Invalid value provided for parameter %1%: %2%"
|
||||
@@ -10158,9 +10232,6 @@ msgstr ""
|
||||
msgid "Z-Hop"
|
||||
msgstr ""
|
||||
|
||||
msgid "Retraction when switching material"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"The Retract before wipe option could be only 100% when using the Firmware Retraction mode.\n"
|
||||
"\n"
|
||||
@@ -11424,6 +11495,9 @@ msgstr ""
|
||||
msgid " is too close to clumping detection area, and collisions will be caused.\n"
|
||||
msgstr ""
|
||||
|
||||
msgid " is partially outside the printable area, and it cannot be printed.\n"
|
||||
msgstr ""
|
||||
|
||||
msgid "Selected nozzle temperatures are incompatible. Each filament's nozzle temperature must fall within the recommended nozzle temperature range of the other filaments. Otherwise, nozzle clogging or printer damage may occur."
|
||||
msgstr ""
|
||||
|
||||
@@ -11719,9 +11793,6 @@ msgstr ""
|
||||
msgid "Enable this if the printer accepts a 3MF file as the print job. When enabled, Orca Slicer sends the sliced file as a .gcode.3mf, instead of a plain .gcode file."
|
||||
msgstr ""
|
||||
|
||||
msgid "Printer Agent"
|
||||
msgstr ""
|
||||
|
||||
msgid "Select the network agent implementation for printer communication."
|
||||
msgstr ""
|
||||
|
||||
@@ -12258,9 +12329,6 @@ msgstr ""
|
||||
msgid "Speed of internal bridges. If the value is expressed as a percentage, it will be calculated based on the bridge_speed. Default value is 150%."
|
||||
msgstr ""
|
||||
|
||||
msgid "Brim width"
|
||||
msgstr ""
|
||||
|
||||
msgid "This is the distance from the model to the outermost brim line."
|
||||
msgstr ""
|
||||
|
||||
@@ -12326,6 +12394,12 @@ msgid ""
|
||||
"0 to deactivate."
|
||||
msgstr ""
|
||||
|
||||
msgid "Brim ears outer only"
|
||||
msgstr ""
|
||||
|
||||
msgid "Generate mouse ears only on the outer contour of the model, excluding holes and enclosed sections."
|
||||
msgstr ""
|
||||
|
||||
msgid "upward compatible machine"
|
||||
msgstr ""
|
||||
|
||||
@@ -12350,12 +12424,26 @@ msgstr ""
|
||||
msgid "Intra-layer order"
|
||||
msgstr ""
|
||||
|
||||
msgid "Print order within a single layer."
|
||||
msgid ""
|
||||
"Order in which object instances are visited within a single layer, which controls how much travel is spent moving between them.\n"
|
||||
"\n"
|
||||
"Default: nearest-neighbor chaining, refined with 2-opt and crossing removal. A good general choice.\n"
|
||||
"As object list: instances are printed in the same order as the object list, without any path optimization. Use it when you need a predictable, manually controlled order.\n"
|
||||
"Best of all (shortest path): every strategy is evaluated and the shortest one is used. The object instance order is decided once for the whole print, while the ordering of individual islands is decided per layer, so different layers may end up using different strategies. Slightly slower to slice.\n"
|
||||
"Snake: serpentine row-by-row traversal, refined with 2-opt. Well suited to regular grids of many small parts.\n"
|
||||
"\n"
|
||||
"With multiple filaments or tools in the same layer, minimizing tool changes takes priority: objects are grouped by filament first and this setting only orders the instances within each filament group, so the overall sequence may not look like the shortest path across the plate."
|
||||
msgstr ""
|
||||
|
||||
msgid "As object list"
|
||||
msgstr ""
|
||||
|
||||
msgid "Best of all (shortest path)"
|
||||
msgstr ""
|
||||
|
||||
msgid "Snake"
|
||||
msgstr ""
|
||||
|
||||
msgid "Slow printing down for better layer cooling"
|
||||
msgstr ""
|
||||
|
||||
@@ -13324,6 +13412,12 @@ msgstr ""
|
||||
msgid "Gyroid"
|
||||
msgstr ""
|
||||
|
||||
msgid "Sparse infill smooth factor"
|
||||
msgstr ""
|
||||
|
||||
msgid "Controls how strongly sparse infill corners are rounded. 0% keeps the original sharp path, while 100% produces the largest possible curves between adjacent infill lines."
|
||||
msgstr ""
|
||||
|
||||
msgid "This is the acceleration of top surface infill. Using a lower value may improve top surface quality."
|
||||
msgstr ""
|
||||
|
||||
@@ -13804,6 +13898,12 @@ msgstr ""
|
||||
msgid "Klipper"
|
||||
msgstr ""
|
||||
|
||||
msgid "Skip G-code config block"
|
||||
msgstr ""
|
||||
|
||||
msgid "Do not write the CONFIG_BLOCK (slicer configuration key/value pairs) into the G-code file. This can help with printers whose firmware crashes when parsing these comment lines (e.g. Anycubic go-klipper). Note: the G-code file will no longer contain slicer settings, so importing it back into OrcaSlicer will not restore the configuration."
|
||||
msgstr ""
|
||||
|
||||
msgid "Pellet Modded Printer"
|
||||
msgstr ""
|
||||
|
||||
@@ -14729,7 +14829,7 @@ msgstr ""
|
||||
msgid "Retract amount after wipe"
|
||||
msgstr ""
|
||||
|
||||
#, possible-c-format
|
||||
#, no-c-format, no-boost-format
|
||||
msgid ""
|
||||
"The length of fast retraction after wipe, relative to retraction length.\n"
|
||||
"The value will be clamped by 100% minus the retract amount before the wipe value."
|
||||
@@ -14765,6 +14865,12 @@ msgstr ""
|
||||
msgid "Retraction distance when extruder change"
|
||||
msgstr ""
|
||||
|
||||
msgid "Retraction Length (Toolchange)"
|
||||
msgstr ""
|
||||
|
||||
msgid "When retraction is triggered before changing tool, filament is pulled back by the specified amount (the length is measured on raw filament, before it enters the extruder)."
|
||||
msgstr ""
|
||||
|
||||
msgid "Z-hop height"
|
||||
msgstr ""
|
||||
|
||||
@@ -14858,6 +14964,9 @@ msgstr ""
|
||||
msgid "When the retraction is compensated after the travel move, the extruder will push this additional amount of filament. This setting is rarely needed."
|
||||
msgstr ""
|
||||
|
||||
msgid "Extra length on restart (Toolchange)"
|
||||
msgstr ""
|
||||
|
||||
msgid "When the retraction is compensated after changing tool, the extruder will push this additional amount of filament."
|
||||
msgstr ""
|
||||
|
||||
@@ -15243,6 +15352,12 @@ msgstr ""
|
||||
msgid "Force the toolhead to travel to the wipe tower before issuing the tool change command (Tx). Only relevant for multi-extruder (multi-toolhead) printers using a Type 2 wipe tower. By default Orca skips the travel on multi-toolhead machines because the firmware handles the head swap, which can result in the Tx command being issued above the printed part. Enable this option if you want the tool change to always be issued above the wipe tower instead."
|
||||
msgstr ""
|
||||
|
||||
msgid "Wait for temperature on wipe tower"
|
||||
msgstr ""
|
||||
|
||||
msgid "Pick up the new tool without waiting for it to reach printing temperature, travel to the wipe tower, and wait for the temperature there, right before purging. Ooze from the heat-up lands on the tower instead of the model, and the travel overlaps with the heating. Only relevant for multi-extruder (multi-toolhead) printers using a Type 2 wipe tower. The firmware or tool change macro must not wait for the temperature itself. When disabled, the temperature wait is issued right after the tool change command."
|
||||
msgstr ""
|
||||
|
||||
msgid "No sparse layers (beta)"
|
||||
msgstr ""
|
||||
|
||||
@@ -17211,6 +17326,15 @@ msgid ""
|
||||
"Please select one that should be used."
|
||||
msgstr ""
|
||||
|
||||
msgid "Auto-scale for nozzle"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"This model is designed around a 0.4 mm nozzle with a 0.2 mm layer height. \n"
|
||||
"When the scaling option is enabled (recommended), it dynamically resizes to match your current nozzle diameter and an appropriate layer height, making the test both accurate and easy to read.\n"
|
||||
"Turn scaling off only if you wish to print the reference model exactly as-is."
|
||||
msgstr ""
|
||||
|
||||
msgid "PA Calibration"
|
||||
msgstr ""
|
||||
|
||||
@@ -17333,6 +17457,12 @@ msgstr ""
|
||||
msgid "End speed: "
|
||||
msgstr ""
|
||||
|
||||
msgid "Auto-adjust to max volumetric speed"
|
||||
msgstr ""
|
||||
|
||||
msgid "If the end speed would exceed the filament's maximum volumetric speed, automatically lower the layer height (keeping standard values and staying within the machine's limits) to reach it. If even the minimum layer height is not enough, lower the end speed instead."
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"Please input valid values:\n"
|
||||
"start > 10\n"
|
||||
@@ -17340,6 +17470,39 @@ msgid ""
|
||||
"end > start + step"
|
||||
msgstr ""
|
||||
|
||||
#, possible-c-format, possible-boost-format
|
||||
msgid ""
|
||||
"The end speed (%.0f mm/s) exceeds the filament's maximum volumetric speed (%.1f mm³/s), which limits the outer wall to about %.0f mm/s at this line width and layer height.\n"
|
||||
" Speeds above this will be clamped, so the upper blocks of the tower will not print at the requested speed.\n"
|
||||
"\n"
|
||||
"%s"
|
||||
msgstr ""
|
||||
|
||||
#, possible-c-format, possible-boost-format
|
||||
msgid ""
|
||||
"The end speed (%.0f mm/s) exceeds the filament's maximum volumetric speed (%.1f mm³/s) at the default layer height (%.2f mm).\n"
|
||||
"\n"
|
||||
"The layer height has been reduced to %.2f mm (a value used by this printer's profiles) so the tower can reach the requested speed."
|
||||
msgstr ""
|
||||
|
||||
#, possible-c-format, possible-boost-format
|
||||
msgid ""
|
||||
"Even at the smallest layer height used by this printer's profiles (%.2f mm) the end speed (%.0f mm/s) exceeds the filament's maximum volumetric speed (%.1f mm³/s).\n"
|
||||
"\n"
|
||||
"The layer height will be set to %.2f mm and the end speed lowered to %.0f mm/s.\n"
|
||||
"\n"
|
||||
"Continue?"
|
||||
msgstr ""
|
||||
|
||||
msgid "Continue anyway?"
|
||||
msgstr ""
|
||||
|
||||
msgid "Enable \"Auto-adjust\" to fix this automatically, or continue anyway?"
|
||||
msgstr ""
|
||||
|
||||
msgid "Enable \"Auto-scale for nozzle\" and \"Auto-adjust\" to fix this automatically, or continue anyway?"
|
||||
msgstr ""
|
||||
|
||||
msgid "Start retraction length: "
|
||||
msgstr ""
|
||||
|
||||
@@ -18170,9 +18333,6 @@ msgstr ""
|
||||
msgid "Print Host upload"
|
||||
msgstr ""
|
||||
|
||||
msgid "Select the network agent implementation for printer communication. Available agents are registered at startup."
|
||||
msgstr ""
|
||||
|
||||
msgid "Select a Flashforge printer"
|
||||
msgstr ""
|
||||
|
||||
@@ -19004,9 +19164,6 @@ msgstr ""
|
||||
msgid "User canceled."
|
||||
msgstr ""
|
||||
|
||||
msgid "Head diameter"
|
||||
msgstr ""
|
||||
|
||||
msgid "Max 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
@@ -3,7 +3,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Orca Slicer\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-07-23 15:24-0300\n"
|
||||
"POT-Creation-Date: 2026-08-19 14:07-0300\n"
|
||||
"PO-Revision-Date: 2026-06-17 15:44-0300\n"
|
||||
"Last-Translator: Alexandre Folle de Menezes\n"
|
||||
"Language-Team: \n"
|
||||
@@ -978,7 +978,7 @@ msgstr ""
|
||||
#, boost-format
|
||||
msgid ""
|
||||
"Objects(%1%) have duplicated connectors. Some connectors may be missing in slicing result.\n"
|
||||
"Please report to PrusaSlicer team in which scenario this issue happened.\n"
|
||||
"Please report to the OrcaSlicer team in which scenario this issue happened.\n"
|
||||
"Thank you."
|
||||
msgstr ""
|
||||
|
||||
@@ -3381,7 +3381,6 @@ msgstr ""
|
||||
msgid "Innerloop"
|
||||
msgstr ""
|
||||
|
||||
#. TRN To be shown in the main menu View->Top
|
||||
msgid "Top"
|
||||
msgstr ""
|
||||
|
||||
@@ -3605,6 +3604,9 @@ msgstr ""
|
||||
msgid "Arranging"
|
||||
msgstr ""
|
||||
|
||||
msgid "Arranging "
|
||||
msgstr ""
|
||||
|
||||
msgid "Arranging canceled."
|
||||
msgstr ""
|
||||
|
||||
@@ -4446,6 +4448,20 @@ msgstr ""
|
||||
msgid "The minimal chamber temperature (%d℃) is higher than the target chamber temperature (%d℃). The minimal value is the threshold at which printing starts while the chamber keeps heating toward the target, so it should not exceed it. It will be clamped to the target."
|
||||
msgstr ""
|
||||
|
||||
#, c-format, boost-format
|
||||
msgid "Layer height is too small. It will be set to the minimum (%g mm)."
|
||||
msgstr ""
|
||||
|
||||
msgid "Layer height is outside the limits set in Printer Settings -> Extruder -> Layer height limits, this may cause printing quality issues."
|
||||
msgstr ""
|
||||
|
||||
#, c-format, boost-format
|
||||
msgid "Adjust it to the limit (%g mm) automatically?"
|
||||
msgstr ""
|
||||
|
||||
msgid "Adjust"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"Layer height too small\n"
|
||||
"It has been reset to 0.2"
|
||||
@@ -4527,6 +4543,12 @@ msgid ""
|
||||
"No - Disable Arachne Wall Generator and set [Displacement] mode of the Fuzzy Skin"
|
||||
msgstr ""
|
||||
|
||||
msgid "Brim ear radius"
|
||||
msgstr ""
|
||||
|
||||
msgid "Brim width"
|
||||
msgstr ""
|
||||
|
||||
msgid "Spiral mode only works when wall loops is 1, support is disabled, clumping detection by probing is disabled, top shell layers is 0, sparse infill density is 0 and timelapse type is traditional."
|
||||
msgstr ""
|
||||
|
||||
@@ -4778,6 +4800,12 @@ msgstr ""
|
||||
msgid "Calibration error"
|
||||
msgstr ""
|
||||
|
||||
msgid "This printer is not configured with the hardware this control needs."
|
||||
msgstr ""
|
||||
|
||||
msgid "This control is not supported on this printer."
|
||||
msgstr ""
|
||||
|
||||
msgid "Network unavailable"
|
||||
msgstr ""
|
||||
|
||||
@@ -5466,10 +5494,24 @@ msgstr ""
|
||||
msgid "Align to Y axis"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "Camera View"
|
||||
msgid "Front"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "Camera View"
|
||||
msgid "Back"
|
||||
msgstr ""
|
||||
|
||||
#. TRN To be shown in the main menu View->Top
|
||||
msgctxt "Camera View"
|
||||
msgid "Top"
|
||||
msgstr ""
|
||||
|
||||
#. TRN To be shown in the main menu View->Bottom
|
||||
msgctxt "Camera View"
|
||||
msgid "Bottom"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "Camera View"
|
||||
msgid "Left"
|
||||
msgstr ""
|
||||
@@ -5595,7 +5637,7 @@ msgstr ""
|
||||
msgid "Size:"
|
||||
msgstr ""
|
||||
|
||||
#, c-format, boost-format
|
||||
#, boost-format
|
||||
msgid "Conflicts of G-code paths have been found at layer %d, Z = %.2lfmm. Please separate the conflicted objects farther (%s <-> %s)."
|
||||
msgstr ""
|
||||
|
||||
@@ -5770,6 +5812,9 @@ msgstr ""
|
||||
msgid "Project"
|
||||
msgstr ""
|
||||
|
||||
msgid "Device (Web)"
|
||||
msgstr ""
|
||||
|
||||
msgid "Yes"
|
||||
msgstr ""
|
||||
|
||||
@@ -5850,19 +5895,13 @@ msgstr ""
|
||||
msgid "Top View"
|
||||
msgstr ""
|
||||
|
||||
#. TRN To be shown in the main menu View->Bottom
|
||||
msgid "Bottom"
|
||||
msgstr ""
|
||||
|
||||
msgid "Bottom View"
|
||||
msgstr ""
|
||||
|
||||
msgid "Front"
|
||||
msgstr ""
|
||||
|
||||
msgid "Front View"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "Camera View"
|
||||
msgid "Rear"
|
||||
msgstr ""
|
||||
|
||||
@@ -7766,20 +7805,20 @@ msgstr ""
|
||||
msgid "Replaced with 3D files from directory:\n"
|
||||
msgstr ""
|
||||
|
||||
#, boost-format
|
||||
msgid "✖ Skipped %1%: same file.\n"
|
||||
#, c-format, boost-format
|
||||
msgid "✖ Skipped %s: same file.\n"
|
||||
msgstr ""
|
||||
|
||||
#, boost-format
|
||||
msgid "✖ Skipped %1%: file does not exist.\n"
|
||||
#, c-format, boost-format
|
||||
msgid "✖ Skipped %s: file does not exist.\n"
|
||||
msgstr ""
|
||||
|
||||
#, boost-format
|
||||
msgid "✖ Skipped %1%: failed to replace.\n"
|
||||
#, c-format, boost-format
|
||||
msgid "✖ Skipped %s: failed to replace.\n"
|
||||
msgstr ""
|
||||
|
||||
#, boost-format
|
||||
msgid "✔ Replaced %1%.\n"
|
||||
#, c-format, boost-format
|
||||
msgid "✔ Replaced %s.\n"
|
||||
msgstr ""
|
||||
|
||||
msgid "Replaced volumes"
|
||||
@@ -8458,6 +8497,15 @@ msgstr ""
|
||||
msgid "Pop up to select filament grouping mode"
|
||||
msgstr ""
|
||||
|
||||
msgid "Visible plugin pages"
|
||||
msgstr ""
|
||||
|
||||
msgid "pages"
|
||||
msgstr ""
|
||||
|
||||
msgid "Number of plugin pages shown as fixed tabs before the remaining pages collapse into a dropdown on the last tab."
|
||||
msgstr ""
|
||||
|
||||
msgid "Behaviour"
|
||||
msgstr ""
|
||||
|
||||
@@ -8650,6 +8698,17 @@ msgstr ""
|
||||
msgid "When scrubbing the layer slider in the sliced preview, render the layers below the current one darkened so that only the layer being viewed is shown at full brightness."
|
||||
msgstr ""
|
||||
|
||||
msgid "Dimmed layer brightness"
|
||||
msgstr ""
|
||||
|
||||
msgid "%"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"How brightly the dimmed layers are rendered when \"Dim lower layers\" is enabled.\n"
|
||||
"99% is barely darkened, 0% renders them black. Capped at 99% because 100% would be the same as disabling the option."
|
||||
msgstr ""
|
||||
|
||||
msgid "Login region"
|
||||
msgstr ""
|
||||
|
||||
@@ -8772,6 +8831,14 @@ msgstr ""
|
||||
msgid "Show incompatible/unsupported presets in the printer and filament dropdown lists. These presets cannot be selected."
|
||||
msgstr ""
|
||||
|
||||
msgid "(Experimental) Use printer agents instead of print hosts"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"Route print jobs for non-Bambu printers through printer plug-in agents instead of the classic print-host upload flow.\n"
|
||||
"When disabled, OrcaSlicer uses the legacy print-host behavior."
|
||||
msgstr ""
|
||||
|
||||
msgid "Experimental Features"
|
||||
msgstr ""
|
||||
|
||||
@@ -9027,9 +9094,21 @@ msgstr ""
|
||||
msgid "Preset Inside Project"
|
||||
msgstr ""
|
||||
|
||||
msgid "Copies all inherited values from the parent into this preset and removes the parent relationship. Presets compatible only with the parent may become unsupported."
|
||||
msgstr ""
|
||||
|
||||
msgid "Detach from parent"
|
||||
msgstr ""
|
||||
|
||||
msgid "Unique preset"
|
||||
msgstr ""
|
||||
|
||||
msgid "Parent preset"
|
||||
msgstr ""
|
||||
|
||||
msgid "This preset does not inherit from another preset."
|
||||
msgstr ""
|
||||
|
||||
msgid "Name is unavailable."
|
||||
msgstr ""
|
||||
|
||||
@@ -9707,20 +9786,6 @@ msgstr ""
|
||||
msgid "Infill patterns are typically designed to handle rotation automatically to ensure proper printing and achieve their intended effects (e.g., Gyroid, Cubic). Rotating the current sparse infill pattern may lead to insufficient support. Please proceed with caution and thoroughly check for any potential printing issues. Are you sure you want to enable this option?"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"Layer height is too small.\n"
|
||||
"It will set to min_layer_height\n"
|
||||
msgstr ""
|
||||
|
||||
msgid "Layer height exceeds the limit in Printer Settings -> Extruder -> Layer height limits, this may cause printing quality issues."
|
||||
msgstr ""
|
||||
|
||||
msgid "Adjust to the set range automatically?\n"
|
||||
msgstr ""
|
||||
|
||||
msgid "Adjust"
|
||||
msgstr ""
|
||||
|
||||
msgid "Experimental feature: Retracting and cutting off the filament at a greater distance during filament changes to minimize flush. Although it can notably reduce flush, it may also elevate the risk of nozzle clogs or other printing complications."
|
||||
msgstr ""
|
||||
|
||||
@@ -9906,6 +9971,9 @@ msgstr ""
|
||||
msgid "Setting Overrides"
|
||||
msgstr ""
|
||||
|
||||
msgid "Retraction when switching material"
|
||||
msgstr ""
|
||||
|
||||
msgid "Basic information"
|
||||
msgstr ""
|
||||
|
||||
@@ -10032,6 +10100,12 @@ msgstr ""
|
||||
msgid "Printable space"
|
||||
msgstr ""
|
||||
|
||||
msgid "Printer Agent"
|
||||
msgstr ""
|
||||
|
||||
msgid "Select the network agent implementation for printer communication. Available agents are registered at startup."
|
||||
msgstr ""
|
||||
|
||||
#. TRN: The first argument is the parameter's name; the second argument is its value.
|
||||
#, boost-format
|
||||
msgid "Invalid value provided for parameter %1%: %2%"
|
||||
@@ -10154,9 +10228,6 @@ msgstr ""
|
||||
msgid "Z-Hop"
|
||||
msgstr ""
|
||||
|
||||
msgid "Retraction when switching material"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"The Retract before wipe option could be only 100% when using the Firmware Retraction mode.\n"
|
||||
"\n"
|
||||
@@ -11420,6 +11491,9 @@ msgstr ""
|
||||
msgid " is too close to clumping detection area, and collisions will be caused.\n"
|
||||
msgstr ""
|
||||
|
||||
msgid " is partially outside the printable area, and it cannot be printed.\n"
|
||||
msgstr ""
|
||||
|
||||
msgid "Selected nozzle temperatures are incompatible. Each filament's nozzle temperature must fall within the recommended nozzle temperature range of the other filaments. Otherwise, nozzle clogging or printer damage may occur."
|
||||
msgstr ""
|
||||
|
||||
@@ -11715,9 +11789,6 @@ msgstr ""
|
||||
msgid "Enable this if the printer accepts a 3MF file as the print job. When enabled, Orca Slicer sends the sliced file as a .gcode.3mf, instead of a plain .gcode file."
|
||||
msgstr ""
|
||||
|
||||
msgid "Printer Agent"
|
||||
msgstr ""
|
||||
|
||||
msgid "Select the network agent implementation for printer communication."
|
||||
msgstr ""
|
||||
|
||||
@@ -12254,9 +12325,6 @@ msgstr ""
|
||||
msgid "Speed of internal bridges. If the value is expressed as a percentage, it will be calculated based on the bridge_speed. Default value is 150%."
|
||||
msgstr ""
|
||||
|
||||
msgid "Brim width"
|
||||
msgstr ""
|
||||
|
||||
msgid "This is the distance from the model to the outermost brim line."
|
||||
msgstr ""
|
||||
|
||||
@@ -12322,6 +12390,12 @@ msgid ""
|
||||
"0 to deactivate."
|
||||
msgstr ""
|
||||
|
||||
msgid "Brim ears outer only"
|
||||
msgstr ""
|
||||
|
||||
msgid "Generate mouse ears only on the outer contour of the model, excluding holes and enclosed sections."
|
||||
msgstr ""
|
||||
|
||||
msgid "upward compatible machine"
|
||||
msgstr ""
|
||||
|
||||
@@ -12346,12 +12420,26 @@ msgstr ""
|
||||
msgid "Intra-layer order"
|
||||
msgstr ""
|
||||
|
||||
msgid "Print order within a single layer."
|
||||
msgid ""
|
||||
"Order in which object instances are visited within a single layer, which controls how much travel is spent moving between them.\n"
|
||||
"\n"
|
||||
"Default: nearest-neighbor chaining, refined with 2-opt and crossing removal. A good general choice.\n"
|
||||
"As object list: instances are printed in the same order as the object list, without any path optimization. Use it when you need a predictable, manually controlled order.\n"
|
||||
"Best of all (shortest path): every strategy is evaluated and the shortest one is used. The object instance order is decided once for the whole print, while the ordering of individual islands is decided per layer, so different layers may end up using different strategies. Slightly slower to slice.\n"
|
||||
"Snake: serpentine row-by-row traversal, refined with 2-opt. Well suited to regular grids of many small parts.\n"
|
||||
"\n"
|
||||
"With multiple filaments or tools in the same layer, minimizing tool changes takes priority: objects are grouped by filament first and this setting only orders the instances within each filament group, so the overall sequence may not look like the shortest path across the plate."
|
||||
msgstr ""
|
||||
|
||||
msgid "As object list"
|
||||
msgstr ""
|
||||
|
||||
msgid "Best of all (shortest path)"
|
||||
msgstr ""
|
||||
|
||||
msgid "Snake"
|
||||
msgstr ""
|
||||
|
||||
msgid "Slow printing down for better layer cooling"
|
||||
msgstr ""
|
||||
|
||||
@@ -13320,6 +13408,12 @@ msgstr ""
|
||||
msgid "Gyroid"
|
||||
msgstr ""
|
||||
|
||||
msgid "Sparse infill smooth factor"
|
||||
msgstr ""
|
||||
|
||||
msgid "Controls how strongly sparse infill corners are rounded. 0% keeps the original sharp path, while 100% produces the largest possible curves between adjacent infill lines."
|
||||
msgstr ""
|
||||
|
||||
msgid "This is the acceleration of top surface infill. Using a lower value may improve top surface quality."
|
||||
msgstr ""
|
||||
|
||||
@@ -13800,6 +13894,12 @@ msgstr ""
|
||||
msgid "Klipper"
|
||||
msgstr ""
|
||||
|
||||
msgid "Skip G-code config block"
|
||||
msgstr ""
|
||||
|
||||
msgid "Do not write the CONFIG_BLOCK (slicer configuration key/value pairs) into the G-code file. This can help with printers whose firmware crashes when parsing these comment lines (e.g. Anycubic go-klipper). Note: the G-code file will no longer contain slicer settings, so importing it back into OrcaSlicer will not restore the configuration."
|
||||
msgstr ""
|
||||
|
||||
msgid "Pellet Modded Printer"
|
||||
msgstr ""
|
||||
|
||||
@@ -14725,7 +14825,7 @@ msgstr ""
|
||||
msgid "Retract amount after wipe"
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
#, no-c-format, no-boost-format
|
||||
msgid ""
|
||||
"The length of fast retraction after wipe, relative to retraction length.\n"
|
||||
"The value will be clamped by 100% minus the retract amount before the wipe value."
|
||||
@@ -14761,6 +14861,12 @@ msgstr ""
|
||||
msgid "Retraction distance when extruder change"
|
||||
msgstr ""
|
||||
|
||||
msgid "Retraction Length (Toolchange)"
|
||||
msgstr ""
|
||||
|
||||
msgid "When retraction is triggered before changing tool, filament is pulled back by the specified amount (the length is measured on raw filament, before it enters the extruder)."
|
||||
msgstr ""
|
||||
|
||||
msgid "Z-hop height"
|
||||
msgstr ""
|
||||
|
||||
@@ -14854,6 +14960,9 @@ msgstr ""
|
||||
msgid "When the retraction is compensated after the travel move, the extruder will push this additional amount of filament. This setting is rarely needed."
|
||||
msgstr ""
|
||||
|
||||
msgid "Extra length on restart (Toolchange)"
|
||||
msgstr ""
|
||||
|
||||
msgid "When the retraction is compensated after changing tool, the extruder will push this additional amount of filament."
|
||||
msgstr ""
|
||||
|
||||
@@ -15239,6 +15348,12 @@ msgstr ""
|
||||
msgid "Force the toolhead to travel to the wipe tower before issuing the tool change command (Tx). Only relevant for multi-extruder (multi-toolhead) printers using a Type 2 wipe tower. By default Orca skips the travel on multi-toolhead machines because the firmware handles the head swap, which can result in the Tx command being issued above the printed part. Enable this option if you want the tool change to always be issued above the wipe tower instead."
|
||||
msgstr ""
|
||||
|
||||
msgid "Wait for temperature on wipe tower"
|
||||
msgstr ""
|
||||
|
||||
msgid "Pick up the new tool without waiting for it to reach printing temperature, travel to the wipe tower, and wait for the temperature there, right before purging. Ooze from the heat-up lands on the tower instead of the model, and the travel overlaps with the heating. Only relevant for multi-extruder (multi-toolhead) printers using a Type 2 wipe tower. The firmware or tool change macro must not wait for the temperature itself. When disabled, the temperature wait is issued right after the tool change command."
|
||||
msgstr ""
|
||||
|
||||
msgid "No sparse layers (beta)"
|
||||
msgstr ""
|
||||
|
||||
@@ -17207,6 +17322,15 @@ msgid ""
|
||||
"Please select one that should be used."
|
||||
msgstr ""
|
||||
|
||||
msgid "Auto-scale for nozzle"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"This model is designed around a 0.4 mm nozzle with a 0.2 mm layer height. \n"
|
||||
"When the scaling option is enabled (recommended), it dynamically resizes to match your current nozzle diameter and an appropriate layer height, making the test both accurate and easy to read.\n"
|
||||
"Turn scaling off only if you wish to print the reference model exactly as-is."
|
||||
msgstr ""
|
||||
|
||||
msgid "PA Calibration"
|
||||
msgstr ""
|
||||
|
||||
@@ -17329,6 +17453,12 @@ msgstr ""
|
||||
msgid "End speed: "
|
||||
msgstr ""
|
||||
|
||||
msgid "Auto-adjust to max volumetric speed"
|
||||
msgstr ""
|
||||
|
||||
msgid "If the end speed would exceed the filament's maximum volumetric speed, automatically lower the layer height (keeping standard values and staying within the machine's limits) to reach it. If even the minimum layer height is not enough, lower the end speed instead."
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"Please input valid values:\n"
|
||||
"start > 10\n"
|
||||
@@ -17336,6 +17466,39 @@ msgid ""
|
||||
"end > start + step"
|
||||
msgstr ""
|
||||
|
||||
#, c-format, boost-format
|
||||
msgid ""
|
||||
"The end speed (%.0f mm/s) exceeds the filament's maximum volumetric speed (%.1f mm³/s), which limits the outer wall to about %.0f mm/s at this line width and layer height.\n"
|
||||
" Speeds above this will be clamped, so the upper blocks of the tower will not print at the requested speed.\n"
|
||||
"\n"
|
||||
"%s"
|
||||
msgstr ""
|
||||
|
||||
#, c-format, boost-format
|
||||
msgid ""
|
||||
"The end speed (%.0f mm/s) exceeds the filament's maximum volumetric speed (%.1f mm³/s) at the default layer height (%.2f mm).\n"
|
||||
"\n"
|
||||
"The layer height has been reduced to %.2f mm (a value used by this printer's profiles) so the tower can reach the requested speed."
|
||||
msgstr ""
|
||||
|
||||
#, c-format, boost-format
|
||||
msgid ""
|
||||
"Even at the smallest layer height used by this printer's profiles (%.2f mm) the end speed (%.0f mm/s) exceeds the filament's maximum volumetric speed (%.1f mm³/s).\n"
|
||||
"\n"
|
||||
"The layer height will be set to %.2f mm and the end speed lowered to %.0f mm/s.\n"
|
||||
"\n"
|
||||
"Continue?"
|
||||
msgstr ""
|
||||
|
||||
msgid "Continue anyway?"
|
||||
msgstr ""
|
||||
|
||||
msgid "Enable \"Auto-adjust\" to fix this automatically, or continue anyway?"
|
||||
msgstr ""
|
||||
|
||||
msgid "Enable \"Auto-scale for nozzle\" and \"Auto-adjust\" to fix this automatically, or continue anyway?"
|
||||
msgstr ""
|
||||
|
||||
msgid "Start retraction length: "
|
||||
msgstr ""
|
||||
|
||||
@@ -18166,9 +18329,6 @@ msgstr ""
|
||||
msgid "Print Host upload"
|
||||
msgstr ""
|
||||
|
||||
msgid "Select the network agent implementation for printer communication. Available agents are registered at startup."
|
||||
msgstr ""
|
||||
|
||||
msgid "Select a Flashforge printer"
|
||||
msgstr ""
|
||||
|
||||
@@ -19000,9 +19160,6 @@ msgstr ""
|
||||
msgid "User canceled."
|
||||
msgstr ""
|
||||
|
||||
msgid "Head diameter"
|
||||
msgstr ""
|
||||
|
||||
msgid "Max angle"
|
||||
msgstr ""
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Orca Slicer\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-07-23 15:24-0300\n"
|
||||
"POT-Creation-Date: 2026-08-19 14:07-0300\n"
|
||||
"PO-Revision-Date: \n"
|
||||
"Last-Translator: Ian A. Bassi <>\n"
|
||||
"Language-Team: \n"
|
||||
@@ -983,11 +983,11 @@ msgstr "Conector"
|
||||
#, boost-format
|
||||
msgid ""
|
||||
"Objects(%1%) have duplicated connectors. Some connectors may be missing in slicing result.\n"
|
||||
"Please report to PrusaSlicer team in which scenario this issue happened.\n"
|
||||
"Please report to the OrcaSlicer team in which scenario this issue happened.\n"
|
||||
"Thank you."
|
||||
msgstr ""
|
||||
"Los objetos(%1%) tienen conectores duplicados. Es posible que falten algunos conectores en el resultado del laminado.\n"
|
||||
"Informe al equipo de PrusaSlicer sobre el escenario en el que se produjo este problema.\n"
|
||||
"Informe al equipo de OrcaSlicer sobre el escenario en el que se produjo este problema.\n"
|
||||
"Gracias."
|
||||
|
||||
msgid "Cut by Plane"
|
||||
@@ -3459,7 +3459,6 @@ msgstr "Recámara"
|
||||
msgid "Innerloop"
|
||||
msgstr "Bucle interno"
|
||||
|
||||
#. TRN To be shown in the main menu View->Top
|
||||
msgid "Top"
|
||||
msgstr "Superior"
|
||||
|
||||
@@ -3687,6 +3686,10 @@ msgstr "Organizando..."
|
||||
msgid "Arranging"
|
||||
msgstr "Organizando"
|
||||
|
||||
# AI Translated
|
||||
msgid "Arranging "
|
||||
msgstr "Organizando "
|
||||
|
||||
msgid "Arranging canceled."
|
||||
msgstr "Organización cancelada."
|
||||
|
||||
@@ -4561,6 +4564,23 @@ msgstr "La temperatura actual de la recámara es superior a la temperatura de se
|
||||
msgid "The minimal chamber temperature (%d℃) is higher than the target chamber temperature (%d℃). The minimal value is the threshold at which printing starts while the chamber keeps heating toward the target, so it should not exceed it. It will be clamped to the target."
|
||||
msgstr "La temperatura mínima de la recámara (%d℃) es superior a la temperatura objetivo de la recámara (%d℃). El valor mínimo es el umbral en el que comienza la impresión mientras la recámara continúa calentándose hacia el objetivo, por lo que no debería superarlo. Se ajustará al valor objetivo."
|
||||
|
||||
# AI Translated
|
||||
#, c-format, boost-format
|
||||
msgid "Layer height is too small. It will be set to the minimum (%g mm)."
|
||||
msgstr "La altura de capa es demasiado pequeña. Se establecerá en el mínimo (%g mm)."
|
||||
|
||||
# AI Translated
|
||||
msgid "Layer height is outside the limits set in Printer Settings -> Extruder -> Layer height limits, this may cause printing quality issues."
|
||||
msgstr "La altura de capa está fuera de los límites establecidos en Ajustes de la Impresora -> Extrusor -> Limite de Altura de Capa, esto puede causar problemas de calidad de impresión."
|
||||
|
||||
# AI Translated
|
||||
#, c-format, boost-format
|
||||
msgid "Adjust it to the limit (%g mm) automatically?"
|
||||
msgstr "¿Ajustarla automáticamente al límite (%g mm)?"
|
||||
|
||||
msgid "Adjust"
|
||||
msgstr "Ajustar"
|
||||
|
||||
msgid ""
|
||||
"Layer height too small\n"
|
||||
"It has been reset to 0.2"
|
||||
@@ -4681,6 +4701,13 @@ msgstr ""
|
||||
"Sí: habilitar el generador de muros Arachne\n"
|
||||
"No: deshabilitar el generador de paredes Arachne y establecer el modo [Desplazamiento] de la piel rugosa"
|
||||
|
||||
# AI Translated
|
||||
msgid "Brim ear radius"
|
||||
msgstr "Radio de las orejas de borde"
|
||||
|
||||
msgid "Brim width"
|
||||
msgstr "Ancho del borde de adherencia"
|
||||
|
||||
msgid "Spiral mode only works when wall loops is 1, support is disabled, clumping 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 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."
|
||||
|
||||
@@ -4935,6 +4962,14 @@ msgstr "Fallo al generar el G-Code de calibración"
|
||||
msgid "Calibration error"
|
||||
msgstr "Error de calibración"
|
||||
|
||||
# AI Translated
|
||||
msgid "This printer is not configured with the hardware this control needs."
|
||||
msgstr "Esta impresora no está configurada con el hardware que necesita este control."
|
||||
|
||||
# AI Translated
|
||||
msgid "This control is not supported on this printer."
|
||||
msgstr "Este control no es compatible con esta impresora."
|
||||
|
||||
msgid "Network unavailable"
|
||||
msgstr "Red no disponible"
|
||||
|
||||
@@ -5630,10 +5665,27 @@ msgstr "Evitar la zona de calibración del extrusor"
|
||||
msgid "Align to Y axis"
|
||||
msgstr "Alinear con el eje Y"
|
||||
|
||||
# AI Translated
|
||||
msgctxt "Camera View"
|
||||
msgid "Front"
|
||||
msgstr "Frontal"
|
||||
|
||||
msgctxt "Camera View"
|
||||
msgid "Back"
|
||||
msgstr "Posterior"
|
||||
|
||||
# AI Translated
|
||||
#. TRN To be shown in the main menu View->Top
|
||||
msgctxt "Camera View"
|
||||
msgid "Top"
|
||||
msgstr "Superior"
|
||||
|
||||
# AI Translated
|
||||
#. TRN To be shown in the main menu View->Bottom
|
||||
msgctxt "Camera View"
|
||||
msgid "Bottom"
|
||||
msgstr "Inferior"
|
||||
|
||||
msgctxt "Camera View"
|
||||
msgid "Left"
|
||||
msgstr "Izquierda"
|
||||
@@ -5759,7 +5811,7 @@ msgstr "Volumen:"
|
||||
msgid "Size:"
|
||||
msgstr "Tamaño:"
|
||||
|
||||
#, c-format, boost-format
|
||||
#, boost-format
|
||||
msgid "Conflicts of G-code paths have been found at layer %d, Z = %.2lfmm. Please separate the conflicted objects farther (%s <-> %s)."
|
||||
msgstr "Se han encontrado conflictos de rutas G-Code en la capa %d, Z = %.2lfmm. Por favor, separe más los objetos en conflicto (%s <-> %s)."
|
||||
|
||||
@@ -5940,6 +5992,10 @@ msgstr "Multi-dispositivo"
|
||||
msgid "Project"
|
||||
msgstr "Proyecto"
|
||||
|
||||
# AI Translated
|
||||
msgid "Device (Web)"
|
||||
msgstr "Dispositivo (Web)"
|
||||
|
||||
msgid "Yes"
|
||||
msgstr "Sí"
|
||||
|
||||
@@ -6020,19 +6076,14 @@ msgstr "Vista por Defecto"
|
||||
msgid "Top View"
|
||||
msgstr "Vista superior"
|
||||
|
||||
#. TRN To be shown in the main menu View->Bottom
|
||||
msgid "Bottom"
|
||||
msgstr "Inferior"
|
||||
|
||||
msgid "Bottom View"
|
||||
msgstr "Vista inferior"
|
||||
|
||||
msgid "Front"
|
||||
msgstr "Frontal"
|
||||
|
||||
msgid "Front View"
|
||||
msgstr "Vista frontal"
|
||||
|
||||
# AI Translated
|
||||
msgctxt "Camera View"
|
||||
msgid "Rear"
|
||||
msgstr "Posterior"
|
||||
|
||||
@@ -7982,21 +8033,21 @@ msgstr "No se seleccionó el directorio para el reemplazo"
|
||||
msgid "Replaced with 3D files from directory:\n"
|
||||
msgstr "Reemplazado con archivos 3D desde el directorio:\n"
|
||||
|
||||
#, boost-format
|
||||
msgid "✖ Skipped %1%: same file.\n"
|
||||
msgstr "✖ Omitido %1%: mismo archivo.\n"
|
||||
#, c-format, boost-format
|
||||
msgid "✖ Skipped %s: same file.\n"
|
||||
msgstr "✖ Omitido %s: mismo archivo.\n"
|
||||
|
||||
#, boost-format
|
||||
msgid "✖ Skipped %1%: file does not exist.\n"
|
||||
msgstr "✖ Omitido %1%: el archivo no existe.\n"
|
||||
#, c-format, boost-format
|
||||
msgid "✖ Skipped %s: file does not exist.\n"
|
||||
msgstr "✖ Omitido %s: el archivo no existe.\n"
|
||||
|
||||
#, boost-format
|
||||
msgid "✖ Skipped %1%: failed to replace.\n"
|
||||
msgstr "✖ Omitido %1%: fallo al reemplazar.\n"
|
||||
#, c-format, boost-format
|
||||
msgid "✖ Skipped %s: failed to replace.\n"
|
||||
msgstr "✖ Omitido %s: fallo al reemplazar.\n"
|
||||
|
||||
#, boost-format
|
||||
msgid "✔ Replaced %1%.\n"
|
||||
msgstr "✔ Reemplazado %1%.\n"
|
||||
#, c-format, boost-format
|
||||
msgid "✔ Replaced %s.\n"
|
||||
msgstr "✔ Reemplazado %s.\n"
|
||||
|
||||
msgid "Replaced volumes"
|
||||
msgstr "Volúmenes reemplazados"
|
||||
@@ -8710,6 +8761,18 @@ msgstr "Con esta opción activada, puede enviar una tarea a varios dispositivos
|
||||
msgid "Pop up to select filament grouping mode"
|
||||
msgstr "Ventana emergente para seleccionar el modo de agrupación de filamentos"
|
||||
|
||||
# AI Translated
|
||||
msgid "Visible plugin pages"
|
||||
msgstr "Páginas de plugins visibles"
|
||||
|
||||
# AI Translated
|
||||
msgid "pages"
|
||||
msgstr "páginas"
|
||||
|
||||
# AI Translated
|
||||
msgid "Number of plugin pages shown as fixed tabs before the remaining pages collapse into a dropdown on the last tab."
|
||||
msgstr "Número de páginas de plugins que se muestran como pestañas fijas antes de que el resto de páginas se agrupe en un desplegable en la última pestaña."
|
||||
|
||||
msgid "Behaviour"
|
||||
msgstr "Comportamiento"
|
||||
|
||||
@@ -8920,6 +8983,21 @@ msgstr "Atenuar las capas inferiores"
|
||||
msgid "When scrubbing the layer slider in the sliced preview, render the layers below the current one darkened so that only the layer being viewed is shown at full brightness."
|
||||
msgstr "Al desplazar el control deslizante de capas en la vista previa laminada, oscurece las capas inferiores a la actual para que solo la capa visualizada se muestre a pleno brillo."
|
||||
|
||||
# AI Translated
|
||||
msgid "Dimmed layer brightness"
|
||||
msgstr "Brillo de las capas atenuadas"
|
||||
|
||||
msgid "%"
|
||||
msgstr "%"
|
||||
|
||||
# AI Translated
|
||||
msgid ""
|
||||
"How brightly the dimmed layers are rendered when \"Dim lower layers\" is enabled.\n"
|
||||
"99% is barely darkened, 0% renders them black. Capped at 99% because 100% would be the same as disabling the option."
|
||||
msgstr ""
|
||||
"Con qué brillo se muestran las capas atenuadas cuando \"Atenuar las capas inferiores\" está activado.\n"
|
||||
"99% apenas se oscurece y 0% las muestra en negro. Está limitado al 99% porque el 100% equivaldría a desactivar la opción."
|
||||
|
||||
msgid "Login region"
|
||||
msgstr "Región de inicio de sesión"
|
||||
|
||||
@@ -9044,6 +9122,18 @@ msgstr "Mostrar ajustes preestablecidos no compatibles"
|
||||
msgid "Show incompatible/unsupported presets in the printer and filament dropdown lists. These presets cannot be selected."
|
||||
msgstr "Mostrar los ajustes preestablecidos incompatibles o no compatibles en los menús desplegables de impresoras y filamentos. Estos ajustes preestablecidos no se pueden seleccionar."
|
||||
|
||||
# AI Translated
|
||||
msgid "(Experimental) Use printer agents instead of print hosts"
|
||||
msgstr "(Experimental) Usar agentes de impresora en lugar de hosts de impresión"
|
||||
|
||||
# AI Translated
|
||||
msgid ""
|
||||
"Route print jobs for non-Bambu printers through printer plug-in agents instead of the classic print-host upload flow.\n"
|
||||
"When disabled, OrcaSlicer uses the legacy print-host behavior."
|
||||
msgstr ""
|
||||
"Envía los trabajos de impresión de impresoras que no son Bambu a través de los agentes de plugin de impresora en lugar del flujo clásico de subida al host de impresión.\n"
|
||||
"Cuando está desactivado, OrcaSlicer utiliza el comportamiento heredado del host de impresión."
|
||||
|
||||
msgid "Experimental Features"
|
||||
msgstr "Funciones experimentales"
|
||||
|
||||
@@ -9303,9 +9393,25 @@ msgstr "Perfil de usuario"
|
||||
msgid "Preset Inside Project"
|
||||
msgstr "Perfil interno del proyecto"
|
||||
|
||||
# AI Translated
|
||||
msgid "Copies all inherited values from the parent into this preset and removes the parent relationship. Presets compatible only with the parent may become unsupported."
|
||||
msgstr "Copia en este perfil todos los valores heredados del perfil padre y elimina la relación de herencia. Los perfiles compatibles solo con el perfil padre pueden dejar de ser compatibles."
|
||||
|
||||
msgid "Detach from parent"
|
||||
msgstr "Separar del elemento padre"
|
||||
|
||||
# AI Translated
|
||||
msgid "Unique preset"
|
||||
msgstr "Perfil único"
|
||||
|
||||
# AI Translated
|
||||
msgid "Parent preset"
|
||||
msgstr "Perfil padre"
|
||||
|
||||
# AI Translated
|
||||
msgid "This preset does not inherit from another preset."
|
||||
msgstr "Este perfil no hereda de otro perfil."
|
||||
|
||||
msgid "Name is unavailable."
|
||||
msgstr "El nombre no está disponible."
|
||||
|
||||
@@ -10001,22 +10107,6 @@ msgstr "¿Está seguro de que desea activar esta opción?"
|
||||
msgid "Infill patterns are typically designed to handle rotation automatically to ensure proper printing and achieve their intended effects (e.g., Gyroid, Cubic). Rotating the current sparse infill pattern may lead to insufficient support. Please proceed with caution and thoroughly check for any potential printing issues. Are you sure you want to enable this option?"
|
||||
msgstr "Los patrones de relleno suelen diseñarse para gestionar la rotación automáticamente y asegurar una impresión adecuada y lograr sus efectos previstos (p. ej., Giroide, Cúbico). Rotar el patrón de relleno actual puede provocar soporte insuficiente. Proceda con precaución y compruebe detenidamente posibles problemas de impresión. ¿Está seguro de que desea activar esta opción?"
|
||||
|
||||
msgid ""
|
||||
"Layer height is too small.\n"
|
||||
"It will set to min_layer_height\n"
|
||||
msgstr ""
|
||||
"La altura de la capa es demasiado pequeña.\n"
|
||||
"Se establecerá en min_layer_height\n"
|
||||
|
||||
msgid "Layer height exceeds the limit in Printer Settings -> Extruder -> Layer height limits, this may cause printing quality issues."
|
||||
msgstr "La altura de la capa excede el límite en Ajustes de la Impresora -> Extrusor -> Limite de Altura de Capa, esto puede causar problemas de calidad de impresión."
|
||||
|
||||
msgid "Adjust to the set range automatically?\n"
|
||||
msgstr "¿Desea ajustar el rango automáticamente?\n"
|
||||
|
||||
msgid "Adjust"
|
||||
msgstr "Ajustar"
|
||||
|
||||
msgid "Experimental feature: Retracting and cutting off the filament at a greater distance during filament changes to minimize flush. Although it can notably reduce flush, it may also elevate the risk of nozzle clogs or other printing complications."
|
||||
msgstr "Función experimental: retraer y cortar el filamento a una mayor distancia durante los cambios de filamento para minimizar el purgado. Aunque puede reducir notablemente el purgado, también puede aumentar el riesgo de atascos de boquilla u otras complicaciones de impresión.Característica experimental: Retraer y cortar el filamento a mayor distancia durante los cambios de filamento para minimizar el descarte. Aunque puede reducir notablemente el descarte, también puede elevar el riesgo de atascos de boquillas u otros problemas en la impresión."
|
||||
|
||||
@@ -10208,6 +10298,9 @@ msgstr "Palabras clave utilizadas y encontradas"
|
||||
msgid "Setting Overrides"
|
||||
msgstr "Sobreescribir Ajustes de impresora"
|
||||
|
||||
msgid "Retraction when switching material"
|
||||
msgstr "Retracción al cambiar de material"
|
||||
|
||||
msgid "Basic information"
|
||||
msgstr "Información básica"
|
||||
|
||||
@@ -10334,6 +10427,12 @@ msgstr "Perfiles de proceso compatibles"
|
||||
msgid "Printable space"
|
||||
msgstr "Espacio imprimible"
|
||||
|
||||
msgid "Printer Agent"
|
||||
msgstr "Agente de impresora"
|
||||
|
||||
msgid "Select the network agent implementation for printer communication. Available agents are registered at startup."
|
||||
msgstr "Seleccione la implementación del agente de red para la comunicación con la impresora. Los agentes disponibles se registran al iniciar el sistema."
|
||||
|
||||
#. TRN: The first argument is the parameter's name; the second argument is its value.
|
||||
#, boost-format
|
||||
msgid "Invalid value provided for parameter %1%: %2%"
|
||||
@@ -10459,9 +10558,6 @@ msgstr "Límites de altura de la capa"
|
||||
msgid "Z-Hop"
|
||||
msgstr "Salto en Z"
|
||||
|
||||
msgid "Retraction when switching material"
|
||||
msgstr "Retracción al cambiar de material"
|
||||
|
||||
msgid ""
|
||||
"The Retract before wipe option could be only 100% when using the Firmware Retraction mode.\n"
|
||||
"\n"
|
||||
@@ -11779,6 +11875,10 @@ msgstr " está demasiado cerca de una zona de exclusión, lo que provocará coli
|
||||
msgid " is too close to clumping detection area, and collisions will be caused.\n"
|
||||
msgstr " está demasiado cerca del área de detección de aglomeraciones, y se producirán colisiones.\n"
|
||||
|
||||
# AI Translated
|
||||
msgid " is partially outside the printable area, and it cannot be printed.\n"
|
||||
msgstr " está parcialmente fuera del área imprimible, y no se puede imprimir.\n"
|
||||
|
||||
msgid "Selected nozzle temperatures are incompatible. Each filament's nozzle temperature must fall within the recommended nozzle temperature range of the other filaments. Otherwise, nozzle clogging or printer damage may occur."
|
||||
msgstr "Las temperaturas de boquilla seleccionadas son incompatibles. La temperatura de boquilla de cada filamento debe estar dentro del rango de temperaturas recomendado para los demás filamentos. De lo contrario, podrían producirse atascos en la boquilla o daños en la impresora."
|
||||
|
||||
@@ -12086,9 +12186,6 @@ msgstr "Utiliza 3MF en lugar de G-code"
|
||||
msgid "Enable this if the printer accepts a 3MF file as the print job. When enabled, Orca Slicer sends the sliced file as a .gcode.3mf, instead of a plain .gcode file."
|
||||
msgstr "Activa esta opción si la impresora admite un archivo 3MF como trabajo de impresión. Cuando está activada, Orca Slicer envía el archivo cortado como un archivo .gcode.3mf, en lugar de como un archivo .gcode convencional."
|
||||
|
||||
msgid "Printer Agent"
|
||||
msgstr "Agente de impresora"
|
||||
|
||||
msgid "Select the network agent implementation for printer communication."
|
||||
msgstr "Seleccione la implementación del agente de red para la comunicación con la impresora."
|
||||
|
||||
@@ -12764,9 +12861,6 @@ msgstr ""
|
||||
msgid "Speed of internal bridges. If the value is expressed as a percentage, it will be calculated based on the bridge_speed. Default value is 150%."
|
||||
msgstr "Velocidad de los puntes internos. Si se expresa como un porcentaje, será Calculado en base a la velocidad de puente. El valor por defecto es 150%."
|
||||
|
||||
msgid "Brim width"
|
||||
msgstr "Ancho del borde de adherencia"
|
||||
|
||||
msgid "This is the distance from the model to the outermost brim line."
|
||||
msgstr "Distancia del modelo a la línea más externa del borde de adherencia."
|
||||
|
||||
@@ -12846,6 +12940,14 @@ msgstr ""
|
||||
"La geometría se verá diezmada antes de detectar angulos agudos. Este parámetro indica la longitud mínima de desviación para el diezmado\n"
|
||||
"0 para desactivar."
|
||||
|
||||
# AI Translated
|
||||
msgid "Brim ears outer only"
|
||||
msgstr "Orejas de borde solo en el exterior"
|
||||
|
||||
# AI Translated
|
||||
msgid "Generate mouse ears only on the outer contour of the model, excluding holes and enclosed sections."
|
||||
msgstr "Genera orejas de ratón únicamente en el contorno exterior del modelo, excluyendo agujeros y secciones cerradas."
|
||||
|
||||
msgid "upward compatible machine"
|
||||
msgstr "máquina compatible ascendente"
|
||||
|
||||
@@ -12870,12 +12972,37 @@ msgstr "Por objeto"
|
||||
msgid "Intra-layer order"
|
||||
msgstr "Orden dentro de la capa"
|
||||
|
||||
msgid "Print order within a single layer."
|
||||
msgstr "Orden de impresión dentro de cada capa."
|
||||
# AI Translated
|
||||
msgid ""
|
||||
"Order in which object instances are visited within a single layer, which controls how much travel is spent moving between them.\n"
|
||||
"\n"
|
||||
"Default: nearest-neighbor chaining, refined with 2-opt and crossing removal. A good general choice.\n"
|
||||
"As object list: instances are printed in the same order as the object list, without any path optimization. Use it when you need a predictable, manually controlled order.\n"
|
||||
"Best of all (shortest path): every strategy is evaluated and the shortest one is used. The object instance order is decided once for the whole print, while the ordering of individual islands is decided per layer, so different layers may end up using different strategies. Slightly slower to slice.\n"
|
||||
"Snake: serpentine row-by-row traversal, refined with 2-opt. Well suited to regular grids of many small parts.\n"
|
||||
"\n"
|
||||
"With multiple filaments or tools in the same layer, minimizing tool changes takes priority: objects are grouped by filament first and this setting only orders the instances within each filament group, so the overall sequence may not look like the shortest path across the plate."
|
||||
msgstr ""
|
||||
"Orden en el que se recorren las instancias de objeto dentro de una misma capa, lo que determina cuánto desplazamiento se emplea para moverse entre ellas.\n"
|
||||
"\n"
|
||||
"Por defecto: encadenado por vecino más cercano, refinado con 2-opt y eliminación de cruces. Una buena opción general.\n"
|
||||
"Como lista de objetos: las instancias se imprimen en el mismo orden que la lista de objetos, sin ninguna optimización de trayectoria. Úselo cuando necesite un orden predecible y controlado manualmente.\n"
|
||||
"La mejor de todas (trayectoria más corta): se evalúan todas las estrategias y se utiliza la más corta. El orden de las instancias de objeto se decide una sola vez para toda la impresión, mientras que el orden de las islas individuales se decide capa por capa, por lo que distintas capas pueden acabar usando estrategias diferentes. El laminado es algo más lento.\n"
|
||||
"Serpentina: recorrido serpenteante fila por fila, refinado con 2-opt. Muy adecuado para rejillas regulares de muchas piezas pequeñas.\n"
|
||||
"\n"
|
||||
"Con varios filamentos o herramientas en la misma capa, minimizar los cambios de herramienta tiene prioridad: los objetos se agrupan primero por filamento y este ajuste solo ordena las instancias dentro de cada grupo de filamento, por lo que la secuencia global puede no parecer la trayectoria más corta a lo largo de la cama."
|
||||
|
||||
msgid "As object list"
|
||||
msgstr "Como lista de objetos"
|
||||
|
||||
# AI Translated
|
||||
msgid "Best of all (shortest path)"
|
||||
msgstr "La mejor de todas (trayectoria más corta)"
|
||||
|
||||
# AI Translated
|
||||
msgid "Snake"
|
||||
msgstr "Serpentina"
|
||||
|
||||
msgid "Slow printing down for better layer cooling"
|
||||
msgstr "Reducir la velocidad de impresión para mejorar la refrigeración de las capas"
|
||||
|
||||
@@ -13956,6 +14083,14 @@ msgstr "TPMS-FK"
|
||||
msgid "Gyroid"
|
||||
msgstr "Giroide"
|
||||
|
||||
# AI Translated
|
||||
msgid "Sparse infill smooth factor"
|
||||
msgstr "Factor de suavizado del relleno poco denso"
|
||||
|
||||
# AI Translated
|
||||
msgid "Controls how strongly sparse infill corners are rounded. 0% keeps the original sharp path, while 100% produces the largest possible curves between adjacent infill lines."
|
||||
msgstr "Controla cuánto se redondean las esquinas del relleno poco denso. 0% mantiene el trazado original con esquinas vivas, mientras que 100% produce las curvas más amplias posibles entre líneas de relleno adyacentes."
|
||||
|
||||
msgid "This is the acceleration of top surface infill. Using a lower value may improve top surface quality."
|
||||
msgstr "Aceleración del relleno de la superficie superior. El uso de un valor más bajo puede mejorar la calidad de la superficie superior."
|
||||
|
||||
@@ -14489,6 +14624,14 @@ msgstr "Con qué tipo de G-Code es compatible la impresora."
|
||||
msgid "Klipper"
|
||||
msgstr "Klipper"
|
||||
|
||||
# AI Translated
|
||||
msgid "Skip G-code config block"
|
||||
msgstr "Omitir el bloque de configuración del G-code"
|
||||
|
||||
# AI Translated
|
||||
msgid "Do not write the CONFIG_BLOCK (slicer configuration key/value pairs) into the G-code file. This can help with printers whose firmware crashes when parsing these comment lines (e.g. Anycubic go-klipper). Note: the G-code file will no longer contain slicer settings, so importing it back into OrcaSlicer will not restore the configuration."
|
||||
msgstr "No escribe el CONFIG_BLOCK (los pares clave/valor de la configuración del laminador) en el archivo G-code. Esto puede ayudar con impresoras cuyo firmware falla al analizar esas líneas de comentario (p. ej. Anycubic go-klipper). Nota: el archivo G-code ya no contendrá los ajustes del laminador, por lo que al importarlo de nuevo en OrcaSlicer no se restaurará la configuración."
|
||||
|
||||
msgid "Pellet Modded Printer"
|
||||
msgstr "Impresora Modificada para Pellets"
|
||||
|
||||
@@ -15490,7 +15633,7 @@ msgstr "La longitud de la retracción rápida antes de la purga, en relación co
|
||||
msgid "Retract amount after wipe"
|
||||
msgstr "Cantidad de retracción después de la limpieza"
|
||||
|
||||
#, c-format
|
||||
#, no-c-format, no-boost-format
|
||||
msgid ""
|
||||
"The length of fast retraction after wipe, relative to retraction length.\n"
|
||||
"The value will be clamped by 100% minus the retract amount before the wipe value."
|
||||
@@ -15528,6 +15671,14 @@ msgstr "Retracción larga al cambiar de extrusor"
|
||||
msgid "Retraction distance when extruder change"
|
||||
msgstr "Distancia de retracción al cambiar de extrusor"
|
||||
|
||||
# AI Translated
|
||||
msgid "Retraction Length (Toolchange)"
|
||||
msgstr "Longitud de retracción (Cambio de herramienta)"
|
||||
|
||||
# AI Translated
|
||||
msgid "When retraction is triggered before changing tool, filament is pulled back by the specified amount (the length is measured on raw filament, before it enters the extruder)."
|
||||
msgstr "Cuando se activa la retracción antes de un cambio de herramienta, el filamento se retrae la cantidad especificada (la longitud se mide sobre el filamento en bruto, antes de entrar en el extrusor)."
|
||||
|
||||
msgid "Z-hop height"
|
||||
msgstr "Altura de Salto en Z"
|
||||
|
||||
@@ -15621,6 +15772,10 @@ msgstr "Longitud extra de reinicio"
|
||||
msgid "When the retraction is compensated after the travel move, the extruder will push this additional amount of filament. This setting is rarely needed."
|
||||
msgstr "Cuando la retracción se compensa después de un desplazamiento, el extrusor expulsará esta cantidad adicional de filamento. Esta función no suele ser necesaria."
|
||||
|
||||
# AI Translated
|
||||
msgid "Extra length on restart (Toolchange)"
|
||||
msgstr "Longitud extra de reinicio (Cambio de herramienta)"
|
||||
|
||||
msgid "When the retraction is compensated after changing tool, the extruder will push this additional amount of filament."
|
||||
msgstr "Cuando se compensa la retracción después de cambiar de cabezal, el extrusor expulsará esta cantidad adicional de filamento."
|
||||
|
||||
@@ -16027,6 +16182,14 @@ msgstr "Cambio de herramienta en la torre de purga"
|
||||
msgid "Force the toolhead to travel to the wipe tower before issuing the tool change command (Tx). Only relevant for multi-extruder (multi-toolhead) printers using a Type 2 wipe tower. By default Orca skips the travel on multi-toolhead machines because the firmware handles the head swap, which can result in the Tx command being issued above the printed part. Enable this option if you want the tool change to always be issued above the wipe tower instead."
|
||||
msgstr "Obliga al cabezal a desplazarse hasta la torre de purga antes de emitir el comando de cambio de herramienta (Tx). Solo es relevante para impresoras con múltiples extrusores (múltiples cabezales) que utilicen una torre de limpieza de tipo 2. Por defecto, Orca omite el desplazamiento en máquinas con múltiples cabezales porque el firmware se encarga del cambio de cabezal, lo que puede provocar que el comando Tx se emita por encima de la pieza impresa. Habilita esta opción si deseas que el cambio de herramienta se emita siempre por encima de la torre de purga."
|
||||
|
||||
# AI Translated
|
||||
msgid "Wait for temperature on wipe tower"
|
||||
msgstr "Esperar la temperatura en la torre de purga"
|
||||
|
||||
# AI Translated
|
||||
msgid "Pick up the new tool without waiting for it to reach printing temperature, travel to the wipe tower, and wait for the temperature there, right before purging. Ooze from the heat-up lands on the tower instead of the model, and the travel overlaps with the heating. Only relevant for multi-extruder (multi-toolhead) printers using a Type 2 wipe tower. The firmware or tool change macro must not wait for the temperature itself. When disabled, the temperature wait is issued right after the tool change command."
|
||||
msgstr "Recoge la nueva herramienta sin esperar a que alcance la temperatura de impresión, se desplaza a la torre de purga y espera allí la temperatura, justo antes de purgar. El rezumado del calentamiento cae sobre la torre en lugar de sobre el modelo, y el desplazamiento se solapa con el calentamiento. Solo es relevante para impresoras multiextrusor (multicabezal) que usan una torre de purga de tipo 2. El firmware o la macro de cambio de herramienta no deben esperar la temperatura por su cuenta. Cuando está desactivado, la espera de temperatura se emite justo después del comando de cambio de herramienta."
|
||||
|
||||
msgid "No sparse layers (beta)"
|
||||
msgstr "Sin capas de baja densidad (beta)"
|
||||
|
||||
@@ -18111,6 +18274,20 @@ msgstr ""
|
||||
"Hay varias direcciones IP resueltas del nombre del host %1%.\n"
|
||||
"Por favor, seleccione la que debe usarse."
|
||||
|
||||
# AI Translated
|
||||
msgid "Auto-scale for nozzle"
|
||||
msgstr "Escalar automáticamente para la boquilla"
|
||||
|
||||
# AI Translated
|
||||
msgid ""
|
||||
"This model is designed around a 0.4 mm nozzle with a 0.2 mm layer height. \n"
|
||||
"When the scaling option is enabled (recommended), it dynamically resizes to match your current nozzle diameter and an appropriate layer height, making the test both accurate and easy to read.\n"
|
||||
"Turn scaling off only if you wish to print the reference model exactly as-is."
|
||||
msgstr ""
|
||||
"Este modelo está diseñado para una boquilla de 0,4 mm con una altura de la capa de 0,2 mm. \n"
|
||||
"Cuando la opción de escalado está activada (recomendado), el modelo se redimensiona dinámicamente para adaptarse al diámetro de boquilla actual y a una altura de capa adecuada, lo que hace que la prueba sea precisa y fácil de leer.\n"
|
||||
"Desactive el escalado solo si desea imprimir el modelo de referencia exactamente tal cual."
|
||||
|
||||
msgid "PA Calibration"
|
||||
msgstr "Calibración PA"
|
||||
|
||||
@@ -18247,6 +18424,14 @@ msgstr "Velocidad inicial: "
|
||||
msgid "End speed: "
|
||||
msgstr "Velocidad final: "
|
||||
|
||||
# AI Translated
|
||||
msgid "Auto-adjust to max volumetric speed"
|
||||
msgstr "Ajustar automáticamente a la velocidad volumétrica máxima"
|
||||
|
||||
# AI Translated
|
||||
msgid "If the end speed would exceed the filament's maximum volumetric speed, automatically lower the layer height (keeping standard values and staying within the machine's limits) to reach it. If even the minimum layer height is not enough, lower the end speed instead."
|
||||
msgstr "Si la velocidad final superara la velocidad volumétrica máxima del filamento, se reduce automáticamente la altura de la capa (manteniendo valores estándar y dentro de los límites de la máquina) para alcanzarla. Si ni siquiera la altura de capa mínima es suficiente, se reduce la velocidad final."
|
||||
|
||||
msgid ""
|
||||
"Please input valid values:\n"
|
||||
"start > 10\n"
|
||||
@@ -18258,6 +18443,57 @@ msgstr ""
|
||||
"incremento >=0\n"
|
||||
"final > inicio + paso"
|
||||
|
||||
# AI Translated
|
||||
#, c-format, boost-format
|
||||
msgid ""
|
||||
"The end speed (%.0f mm/s) exceeds the filament's maximum volumetric speed (%.1f mm³/s), which limits the outer wall to about %.0f mm/s at this line width and layer height.\n"
|
||||
" Speeds above this will be clamped, so the upper blocks of the tower will not print at the requested speed.\n"
|
||||
"\n"
|
||||
"%s"
|
||||
msgstr ""
|
||||
"La velocidad final (%.0f mm/s) supera la velocidad volumétrica máxima del filamento (%.1f mm³/s), lo que limita el perímetro externo a unos %.0f mm/s con este ancho de línea y esta altura de capa.\n"
|
||||
" Las velocidades superiores se recortarán, por lo que los bloques superiores de la torre no se imprimirán a la velocidad solicitada.\n"
|
||||
"\n"
|
||||
"%s"
|
||||
|
||||
# AI Translated
|
||||
#, c-format, boost-format
|
||||
msgid ""
|
||||
"The end speed (%.0f mm/s) exceeds the filament's maximum volumetric speed (%.1f mm³/s) at the default layer height (%.2f mm).\n"
|
||||
"\n"
|
||||
"The layer height has been reduced to %.2f mm (a value used by this printer's profiles) so the tower can reach the requested speed."
|
||||
msgstr ""
|
||||
"La velocidad final (%.0f mm/s) supera la velocidad volumétrica máxima del filamento (%.1f mm³/s) con la altura de capa predeterminada (%.2f mm).\n"
|
||||
"\n"
|
||||
"La altura de la capa se ha reducido a %.2f mm (un valor usado por los perfiles de esta impresora) para que la torre pueda alcanzar la velocidad solicitada."
|
||||
|
||||
# AI Translated
|
||||
#, c-format, boost-format
|
||||
msgid ""
|
||||
"Even at the smallest layer height used by this printer's profiles (%.2f mm) the end speed (%.0f mm/s) exceeds the filament's maximum volumetric speed (%.1f mm³/s).\n"
|
||||
"\n"
|
||||
"The layer height will be set to %.2f mm and the end speed lowered to %.0f mm/s.\n"
|
||||
"\n"
|
||||
"Continue?"
|
||||
msgstr ""
|
||||
"Incluso con la altura de capa más pequeña usada por los perfiles de esta impresora (%.2f mm), la velocidad final (%.0f mm/s) supera la velocidad volumétrica máxima del filamento (%.1f mm³/s).\n"
|
||||
"\n"
|
||||
"La altura de la capa se establecerá en %.2f mm y la velocidad final se reducirá a %.0f mm/s.\n"
|
||||
"\n"
|
||||
"¿Continuar?"
|
||||
|
||||
# AI Translated
|
||||
msgid "Continue anyway?"
|
||||
msgstr "¿Continuar de todos modos?"
|
||||
|
||||
# AI Translated
|
||||
msgid "Enable \"Auto-adjust\" to fix this automatically, or continue anyway?"
|
||||
msgstr "¿Activar \"Ajuste automático\" para corregir esto automáticamente o continuar de todos modos?"
|
||||
|
||||
# AI Translated
|
||||
msgid "Enable \"Auto-scale for nozzle\" and \"Auto-adjust\" to fix this automatically, or continue anyway?"
|
||||
msgstr "¿Activar \"Escalar automáticamente para la boquilla\" y \"Ajuste automático\" para corregir esto automáticamente o continuar de todos modos?"
|
||||
|
||||
msgid "Start retraction length: "
|
||||
msgstr "Longitud de retracción inicial: "
|
||||
|
||||
@@ -19153,9 +19389,6 @@ msgstr "Impresora física"
|
||||
msgid "Print Host upload"
|
||||
msgstr "Mandar al servidor de impresión"
|
||||
|
||||
msgid "Select the network agent implementation for printer communication. Available agents are registered at startup."
|
||||
msgstr "Seleccione la implementación del agente de red para la comunicación con la impresora. Los agentes disponibles se registran al iniciar el sistema."
|
||||
|
||||
msgid "Select a Flashforge printer"
|
||||
msgstr "Selecciona una impresora Flashforge"
|
||||
|
||||
@@ -19997,9 +20230,6 @@ msgstr "Ha ocurrido algo inesperado al intentar iniciar sesión, inténtelo de n
|
||||
msgid "User canceled."
|
||||
msgstr "Cancelado por el usuario."
|
||||
|
||||
msgid "Head diameter"
|
||||
msgstr "Diámetro de la cabeza"
|
||||
|
||||
msgid "Max angle"
|
||||
msgstr "Ángulo máximo"
|
||||
|
||||
@@ -20733,6 +20963,34 @@ msgstr ""
|
||||
"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?"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "Layer height is too small.\n"
|
||||
#~ "It will set to min_layer_height\n"
|
||||
#~ msgstr ""
|
||||
#~ "La altura de la capa es demasiado pequeña.\n"
|
||||
#~ "Se establecerá en min_layer_height\n"
|
||||
|
||||
#~ msgid "Layer height exceeds the limit in Printer Settings -> Extruder -> Layer height limits, this may cause printing quality issues."
|
||||
#~ msgstr "La altura de la capa excede el límite en Ajustes de la Impresora -> Extrusor -> Limite de Altura de Capa, esto puede causar problemas de calidad de impresión."
|
||||
|
||||
#~ msgid "Adjust to the set range automatically?\n"
|
||||
#~ msgstr "¿Desea ajustar el rango automáticamente?\n"
|
||||
|
||||
#~ msgid "Head diameter"
|
||||
#~ msgstr "Diámetro de la cabeza"
|
||||
|
||||
#~ msgid "Print order within a single layer."
|
||||
#~ msgstr "Orden de impresión dentro de cada capa."
|
||||
|
||||
#~ msgid "Bottom"
|
||||
#~ msgstr "Inferior"
|
||||
|
||||
#~ msgid "Front"
|
||||
#~ msgstr "Frontal"
|
||||
|
||||
#~ msgid "Rear"
|
||||
#~ msgstr "Posterior"
|
||||
|
||||
#~ msgid "Enter"
|
||||
#~ msgstr "Enter"
|
||||
|
||||
@@ -20817,9 +21075,6 @@ msgstr ""
|
||||
#~ msgid "°C"
|
||||
#~ msgstr "°C"
|
||||
|
||||
#~ msgid "%"
|
||||
#~ msgstr "%"
|
||||
|
||||
#~ msgid "Anisotropic surfaces"
|
||||
#~ msgstr "Superficies anisótropas"
|
||||
|
||||
|
||||
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
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
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
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
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "Creality",
|
||||
"version": "02.03.02.75",
|
||||
"version": "02.03.02.76",
|
||||
"force_update": "0",
|
||||
"description": "Creality configurations",
|
||||
"machine_model_list": [
|
||||
|
||||
@@ -39,7 +39,7 @@
|
||||
"draft_shield": "disabled",
|
||||
"elefant_foot_compensation": "0.15",
|
||||
"elefant_foot_compensation_layers": "1",
|
||||
"enable_arc_fitting": "1",
|
||||
"enable_arc_fitting": "0",
|
||||
"enable_overhang_speed": "1",
|
||||
"enable_prime_tower": "1",
|
||||
"enable_support": "0",
|
||||
|
||||
@@ -39,7 +39,7 @@
|
||||
"draft_shield": "disabled",
|
||||
"elefant_foot_compensation": "0.15",
|
||||
"elefant_foot_compensation_layers": "1",
|
||||
"enable_arc_fitting": "1",
|
||||
"enable_arc_fitting": "0",
|
||||
"enable_overhang_speed": "1",
|
||||
"enable_prime_tower": "1",
|
||||
"enable_support": "0",
|
||||
|
||||
@@ -39,7 +39,7 @@
|
||||
"draft_shield": "disabled",
|
||||
"elefant_foot_compensation": "0.15",
|
||||
"elefant_foot_compensation_layers": "1",
|
||||
"enable_arc_fitting": "1",
|
||||
"enable_arc_fitting": "0",
|
||||
"enable_overhang_speed": "1",
|
||||
"enable_prime_tower": "1",
|
||||
"enable_support": "0",
|
||||
|
||||
@@ -39,7 +39,7 @@
|
||||
"draft_shield": "disabled",
|
||||
"elefant_foot_compensation": "0.15",
|
||||
"elefant_foot_compensation_layers": "1",
|
||||
"enable_arc_fitting": "1",
|
||||
"enable_arc_fitting": "0",
|
||||
"enable_overhang_speed": "1",
|
||||
"enable_prime_tower": "1",
|
||||
"enable_support": "0",
|
||||
|
||||
@@ -39,7 +39,7 @@
|
||||
"draft_shield": "disabled",
|
||||
"elefant_foot_compensation": "0.15",
|
||||
"elefant_foot_compensation_layers": "1",
|
||||
"enable_arc_fitting": "1",
|
||||
"enable_arc_fitting": "0",
|
||||
"enable_overhang_speed": "1",
|
||||
"enable_prime_tower": "1",
|
||||
"enable_support": "0",
|
||||
|
||||
@@ -39,7 +39,7 @@
|
||||
"draft_shield": "disabled",
|
||||
"elefant_foot_compensation": "0.15",
|
||||
"elefant_foot_compensation_layers": "1",
|
||||
"enable_arc_fitting": "1",
|
||||
"enable_arc_fitting": "0",
|
||||
"enable_overhang_speed": "1",
|
||||
"enable_prime_tower": "1",
|
||||
"enable_support": "0",
|
||||
|
||||
@@ -39,7 +39,7 @@
|
||||
"draft_shield": "disabled",
|
||||
"elefant_foot_compensation": "0.15",
|
||||
"elefant_foot_compensation_layers": "1",
|
||||
"enable_arc_fitting": "1",
|
||||
"enable_arc_fitting": "0",
|
||||
"enable_overhang_speed": "1",
|
||||
"enable_prime_tower": "1",
|
||||
"enable_support": "0",
|
||||
|
||||
@@ -39,7 +39,7 @@
|
||||
"draft_shield": "disabled",
|
||||
"elefant_foot_compensation": "0.15",
|
||||
"elefant_foot_compensation_layers": "1",
|
||||
"enable_arc_fitting": "1",
|
||||
"enable_arc_fitting": "0",
|
||||
"enable_overhang_speed": "1",
|
||||
"enable_prime_tower": "1",
|
||||
"enable_support": "0",
|
||||
|
||||
@@ -38,7 +38,7 @@
|
||||
"draft_shield": "disabled",
|
||||
"elefant_foot_compensation": "0.15",
|
||||
"elefant_foot_compensation_layers": "1",
|
||||
"enable_arc_fitting": "1",
|
||||
"enable_arc_fitting": "0",
|
||||
"enable_overhang_speed": "1",
|
||||
"enable_prime_tower": "1",
|
||||
"enable_support": "0",
|
||||
|
||||
@@ -38,7 +38,7 @@
|
||||
"draft_shield": "disabled",
|
||||
"elefant_foot_compensation": "0.15",
|
||||
"elefant_foot_compensation_layers": "1",
|
||||
"enable_arc_fitting": "1",
|
||||
"enable_arc_fitting": "0",
|
||||
"enable_overhang_speed": "1",
|
||||
"enable_prime_tower": "1",
|
||||
"enable_support": "0",
|
||||
|
||||
@@ -39,7 +39,7 @@
|
||||
"draft_shield": "disabled",
|
||||
"elefant_foot_compensation": "0.15",
|
||||
"elefant_foot_compensation_layers": "1",
|
||||
"enable_arc_fitting": "1",
|
||||
"enable_arc_fitting": "0",
|
||||
"enable_overhang_speed": "1",
|
||||
"enable_prime_tower": "1",
|
||||
"enable_support": "0",
|
||||
|
||||
@@ -39,7 +39,7 @@
|
||||
"draft_shield": "disabled",
|
||||
"elefant_foot_compensation": "0.15",
|
||||
"elefant_foot_compensation_layers": "1",
|
||||
"enable_arc_fitting": "1",
|
||||
"enable_arc_fitting": "0",
|
||||
"enable_overhang_speed": "1",
|
||||
"enable_prime_tower": "1",
|
||||
"enable_support": "0",
|
||||
|
||||
@@ -39,7 +39,7 @@
|
||||
"draft_shield": "disabled",
|
||||
"elefant_foot_compensation": "0.15",
|
||||
"elefant_foot_compensation_layers": "1",
|
||||
"enable_arc_fitting": "1",
|
||||
"enable_arc_fitting": "0",
|
||||
"enable_overhang_speed": "1",
|
||||
"enable_prime_tower": "1",
|
||||
"enable_support": "0",
|
||||
|
||||
@@ -39,7 +39,7 @@
|
||||
"draft_shield": "disabled",
|
||||
"elefant_foot_compensation": "0.15",
|
||||
"elefant_foot_compensation_layers": "1",
|
||||
"enable_arc_fitting": "1",
|
||||
"enable_arc_fitting": "0",
|
||||
"enable_overhang_speed": "1",
|
||||
"enable_prime_tower": "1",
|
||||
"enable_support": "0",
|
||||
|
||||
@@ -128,7 +128,7 @@
|
||||
"detect_narrow_internal_solid_infill": "1",
|
||||
"dont_filter_internal_bridges": "disabled",
|
||||
"elefant_foot_compensation_layers": "1",
|
||||
"enable_arc_fitting": "1",
|
||||
"enable_arc_fitting": "0",
|
||||
"enable_overhang_speed": "1",
|
||||
"enforce_support_layers": "0",
|
||||
"ensure_vertical_shell_thickness": "ensure_all",
|
||||
|
||||
@@ -39,7 +39,7 @@
|
||||
"draft_shield": "disabled",
|
||||
"elefant_foot_compensation": "0.15",
|
||||
"elefant_foot_compensation_layers": "1",
|
||||
"enable_arc_fitting": "1",
|
||||
"enable_arc_fitting": "0",
|
||||
"enable_overhang_speed": "1",
|
||||
"enable_prime_tower": "1",
|
||||
"enable_support": "0",
|
||||
|
||||
@@ -124,7 +124,7 @@
|
||||
"detect_narrow_internal_solid_infill": "1",
|
||||
"dont_filter_internal_bridges": "disabled",
|
||||
"elefant_foot_compensation_layers": "1",
|
||||
"enable_arc_fitting": "1",
|
||||
"enable_arc_fitting": "0",
|
||||
"enable_overhang_speed": "1",
|
||||
"enforce_support_layers": "0",
|
||||
"ensure_vertical_shell_thickness": "ensure_all",
|
||||
|
||||
@@ -38,7 +38,7 @@
|
||||
"draft_shield": "disabled",
|
||||
"elefant_foot_compensation": "0.15",
|
||||
"elefant_foot_compensation_layers": "1",
|
||||
"enable_arc_fitting": "1",
|
||||
"enable_arc_fitting": "0",
|
||||
"enable_overhang_speed": "1",
|
||||
"enable_prime_tower": "1",
|
||||
"enable_support": "0",
|
||||
|
||||
@@ -128,7 +128,7 @@
|
||||
"detect_narrow_internal_solid_infill": "1",
|
||||
"dont_filter_internal_bridges": "disabled",
|
||||
"elefant_foot_compensation_layers": "1",
|
||||
"enable_arc_fitting": "1",
|
||||
"enable_arc_fitting": "0",
|
||||
"enable_overhang_speed": "1",
|
||||
"enforce_support_layers": "0",
|
||||
"ensure_vertical_shell_thickness": "ensure_all",
|
||||
|
||||
@@ -39,7 +39,7 @@
|
||||
"draft_shield": "disabled",
|
||||
"elefant_foot_compensation": "0.15",
|
||||
"elefant_foot_compensation_layers": "1",
|
||||
"enable_arc_fitting": "1",
|
||||
"enable_arc_fitting": "0",
|
||||
"enable_overhang_speed": "1",
|
||||
"enable_prime_tower": "1",
|
||||
"enable_support": "0",
|
||||
|
||||
@@ -128,7 +128,7 @@
|
||||
"detect_narrow_internal_solid_infill": "1",
|
||||
"dont_filter_internal_bridges": "disabled",
|
||||
"elefant_foot_compensation_layers": "1",
|
||||
"enable_arc_fitting": "1",
|
||||
"enable_arc_fitting": "0",
|
||||
"enable_overhang_speed": "1",
|
||||
"enforce_support_layers": "0",
|
||||
"ensure_vertical_shell_thickness": "ensure_all",
|
||||
|
||||
@@ -39,7 +39,7 @@
|
||||
"draft_shield": "disabled",
|
||||
"elefant_foot_compensation": "0.15",
|
||||
"elefant_foot_compensation_layers": "1",
|
||||
"enable_arc_fitting": "1",
|
||||
"enable_arc_fitting": "0",
|
||||
"enable_overhang_speed": "1",
|
||||
"enable_prime_tower": "1",
|
||||
"enable_support": "0",
|
||||
|
||||
@@ -39,7 +39,7 @@
|
||||
"draft_shield": "disabled",
|
||||
"elefant_foot_compensation": "0.15",
|
||||
"elefant_foot_compensation_layers": "1",
|
||||
"enable_arc_fitting": "1",
|
||||
"enable_arc_fitting": "0",
|
||||
"enable_overhang_speed": "1",
|
||||
"enable_prime_tower": "1",
|
||||
"enable_support": "0",
|
||||
|
||||
@@ -39,7 +39,7 @@
|
||||
"draft_shield": "disabled",
|
||||
"elefant_foot_compensation": "0.15",
|
||||
"elefant_foot_compensation_layers": "1",
|
||||
"enable_arc_fitting": "1",
|
||||
"enable_arc_fitting": "0",
|
||||
"enable_overhang_speed": "1",
|
||||
"enable_prime_tower": "1",
|
||||
"enable_support": "0",
|
||||
|
||||
@@ -38,7 +38,7 @@
|
||||
"draft_shield": "disabled",
|
||||
"elefant_foot_compensation": "0.15",
|
||||
"elefant_foot_compensation_layers": "1",
|
||||
"enable_arc_fitting": "1",
|
||||
"enable_arc_fitting": "0",
|
||||
"enable_overhang_speed": "1",
|
||||
"enable_prime_tower": "1",
|
||||
"enable_support": "0",
|
||||
|
||||
@@ -38,7 +38,7 @@
|
||||
"draft_shield": "disabled",
|
||||
"elefant_foot_compensation": "0.15",
|
||||
"elefant_foot_compensation_layers": "1",
|
||||
"enable_arc_fitting": "1",
|
||||
"enable_arc_fitting": "0",
|
||||
"enable_overhang_speed": "1",
|
||||
"enable_prime_tower": "1",
|
||||
"enable_support": "0",
|
||||
|
||||
@@ -39,7 +39,7 @@
|
||||
"draft_shield": "disabled",
|
||||
"elefant_foot_compensation": "0.15",
|
||||
"elefant_foot_compensation_layers": "1",
|
||||
"enable_arc_fitting": "1",
|
||||
"enable_arc_fitting": "0",
|
||||
"enable_overhang_speed": "1",
|
||||
"enable_prime_tower": "1",
|
||||
"enable_support": "0",
|
||||
|
||||
@@ -39,7 +39,7 @@
|
||||
"draft_shield": "disabled",
|
||||
"elefant_foot_compensation": "0.15",
|
||||
"elefant_foot_compensation_layers": "1",
|
||||
"enable_arc_fitting": "1",
|
||||
"enable_arc_fitting": "0",
|
||||
"enable_overhang_speed": "1",
|
||||
"enable_prime_tower": "1",
|
||||
"enable_support": "0",
|
||||
|
||||
@@ -39,7 +39,7 @@
|
||||
"draft_shield": "disabled",
|
||||
"elefant_foot_compensation": "0.15",
|
||||
"elefant_foot_compensation_layers": "1",
|
||||
"enable_arc_fitting": "1",
|
||||
"enable_arc_fitting": "0",
|
||||
"enable_overhang_speed": "1",
|
||||
"enable_prime_tower": "1",
|
||||
"enable_support": "0",
|
||||
|
||||
@@ -39,7 +39,7 @@
|
||||
"draft_shield": "disabled",
|
||||
"elefant_foot_compensation": "0.15",
|
||||
"elefant_foot_compensation_layers": "1",
|
||||
"enable_arc_fitting": "1",
|
||||
"enable_arc_fitting": "0",
|
||||
"enable_overhang_speed": "1",
|
||||
"enable_prime_tower": "1",
|
||||
"enable_support": "0",
|
||||
|
||||
@@ -126,7 +126,7 @@
|
||||
"detect_narrow_internal_solid_infill": "1",
|
||||
"dont_filter_internal_bridges": "disabled",
|
||||
"elefant_foot_compensation_layers": "1",
|
||||
"enable_arc_fitting": "1",
|
||||
"enable_arc_fitting": "0",
|
||||
"enable_overhang_speed": "1",
|
||||
"enforce_support_layers": "0",
|
||||
"ensure_vertical_shell_thickness": "ensure_all",
|
||||
|
||||
@@ -38,7 +38,7 @@
|
||||
"draft_shield": "disabled",
|
||||
"elefant_foot_compensation": "0.15",
|
||||
"elefant_foot_compensation_layers": "1",
|
||||
"enable_arc_fitting": "1",
|
||||
"enable_arc_fitting": "0",
|
||||
"enable_overhang_speed": "1",
|
||||
"enable_prime_tower": "0",
|
||||
"enable_support": "0",
|
||||
|
||||
@@ -126,7 +126,7 @@
|
||||
"detect_narrow_internal_solid_infill": "1",
|
||||
"dont_filter_internal_bridges": "disabled",
|
||||
"elefant_foot_compensation_layers": "1",
|
||||
"enable_arc_fitting": "1",
|
||||
"enable_arc_fitting": "0",
|
||||
"enable_overhang_speed": "1",
|
||||
"enforce_support_layers": "0",
|
||||
"ensure_vertical_shell_thickness": "ensure_all",
|
||||
|
||||
@@ -126,7 +126,7 @@
|
||||
"detect_narrow_internal_solid_infill": "1",
|
||||
"dont_filter_internal_bridges": "disabled",
|
||||
"elefant_foot_compensation_layers": "1",
|
||||
"enable_arc_fitting": "1",
|
||||
"enable_arc_fitting": "0",
|
||||
"enable_overhang_speed": "1",
|
||||
"enforce_support_layers": "0",
|
||||
"ensure_vertical_shell_thickness": "ensure_all",
|
||||
|
||||
@@ -126,7 +126,7 @@
|
||||
"detect_narrow_internal_solid_infill": "1",
|
||||
"dont_filter_internal_bridges": "disabled",
|
||||
"elefant_foot_compensation_layers": "1",
|
||||
"enable_arc_fitting": "1",
|
||||
"enable_arc_fitting": "0",
|
||||
"enable_overhang_speed": "1",
|
||||
"enforce_support_layers": "0",
|
||||
"ensure_vertical_shell_thickness": "ensure_all",
|
||||
|
||||
@@ -126,7 +126,7 @@
|
||||
"detect_narrow_internal_solid_infill": "1",
|
||||
"dont_filter_internal_bridges": "disabled",
|
||||
"elefant_foot_compensation_layers": "1",
|
||||
"enable_arc_fitting": "1",
|
||||
"enable_arc_fitting": "0",
|
||||
"enable_overhang_speed": "1",
|
||||
"enforce_support_layers": "0",
|
||||
"ensure_vertical_shell_thickness": "ensure_all",
|
||||
|
||||
@@ -126,7 +126,7 @@
|
||||
"detect_narrow_internal_solid_infill": "1",
|
||||
"dont_filter_internal_bridges": "disabled",
|
||||
"elefant_foot_compensation_layers": "1",
|
||||
"enable_arc_fitting": "1",
|
||||
"enable_arc_fitting": "0",
|
||||
"enable_overhang_speed": "1",
|
||||
"enforce_support_layers": "0",
|
||||
"ensure_vertical_shell_thickness": "ensure_all",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "Custom Printer",
|
||||
"version": "02.04.00.01",
|
||||
"version": "02.04.00.03",
|
||||
"force_update": "0",
|
||||
"description": "My configurations",
|
||||
"machine_model_list": [
|
||||
|
||||
@@ -24,12 +24,6 @@
|
||||
"filament_loading_speed_start": [
|
||||
"50"
|
||||
],
|
||||
"filament_multitool_ramming": [
|
||||
"1"
|
||||
],
|
||||
"filament_multitool_ramming_flow": [
|
||||
"40"
|
||||
],
|
||||
"filament_stamping_distance": [
|
||||
"45"
|
||||
],
|
||||
|
||||
@@ -24,12 +24,6 @@
|
||||
"filament_loading_speed_start": [
|
||||
"50"
|
||||
],
|
||||
"filament_multitool_ramming": [
|
||||
"1"
|
||||
],
|
||||
"filament_multitool_ramming_flow": [
|
||||
"40"
|
||||
],
|
||||
"filament_stamping_distance": [
|
||||
"45"
|
||||
],
|
||||
|
||||
@@ -24,12 +24,6 @@
|
||||
"filament_loading_speed_start": [
|
||||
"50"
|
||||
],
|
||||
"filament_multitool_ramming": [
|
||||
"1"
|
||||
],
|
||||
"filament_multitool_ramming_flow": [
|
||||
"40"
|
||||
],
|
||||
"filament_stamping_distance": [
|
||||
"45"
|
||||
],
|
||||
|
||||
@@ -24,12 +24,6 @@
|
||||
"filament_loading_speed_start": [
|
||||
"50"
|
||||
],
|
||||
"filament_multitool_ramming": [
|
||||
"1"
|
||||
],
|
||||
"filament_multitool_ramming_flow": [
|
||||
"40"
|
||||
],
|
||||
"filament_stamping_distance": [
|
||||
"45"
|
||||
],
|
||||
|
||||
@@ -25,12 +25,6 @@
|
||||
"filament_loading_speed_start": [
|
||||
"50"
|
||||
],
|
||||
"filament_multitool_ramming": [
|
||||
"1"
|
||||
],
|
||||
"filament_multitool_ramming_flow": [
|
||||
"40"
|
||||
],
|
||||
"filament_stamping_distance": [
|
||||
"45"
|
||||
],
|
||||
|
||||
@@ -25,12 +25,6 @@
|
||||
"filament_loading_speed_start": [
|
||||
"50"
|
||||
],
|
||||
"filament_multitool_ramming": [
|
||||
"1"
|
||||
],
|
||||
"filament_multitool_ramming_flow": [
|
||||
"40"
|
||||
],
|
||||
"filament_stamping_distance": [
|
||||
"45"
|
||||
],
|
||||
|
||||
@@ -25,12 +25,6 @@
|
||||
"filament_loading_speed_start": [
|
||||
"50"
|
||||
],
|
||||
"filament_multitool_ramming": [
|
||||
"1"
|
||||
],
|
||||
"filament_multitool_ramming_flow": [
|
||||
"40"
|
||||
],
|
||||
"filament_stamping_distance": [
|
||||
"45"
|
||||
],
|
||||
|
||||
@@ -25,12 +25,6 @@
|
||||
"filament_loading_speed_start": [
|
||||
"50"
|
||||
],
|
||||
"filament_multitool_ramming": [
|
||||
"1"
|
||||
],
|
||||
"filament_multitool_ramming_flow": [
|
||||
"40"
|
||||
],
|
||||
"filament_stamping_distance": [
|
||||
"45"
|
||||
],
|
||||
|
||||
@@ -25,12 +25,6 @@
|
||||
"filament_loading_speed_start": [
|
||||
"50"
|
||||
],
|
||||
"filament_multitool_ramming": [
|
||||
"1"
|
||||
],
|
||||
"filament_multitool_ramming_flow": [
|
||||
"40"
|
||||
],
|
||||
"filament_stamping_distance": [
|
||||
"45"
|
||||
],
|
||||
|
||||
@@ -116,7 +116,7 @@
|
||||
"deretraction_speed": [
|
||||
"30"
|
||||
],
|
||||
"z_hop_types": "Normal Lift",
|
||||
"z_hop_types": "Slope Lift",
|
||||
"silent_mode": "0",
|
||||
"single_extruder_multi_material": "1",
|
||||
"change_filament_gcode": "",
|
||||
|
||||
@@ -118,7 +118,7 @@
|
||||
"deretraction_speed": [
|
||||
"30"
|
||||
],
|
||||
"z_hop_types": "Normal Lift",
|
||||
"z_hop_types": "Slope Lift",
|
||||
"silent_mode": "0",
|
||||
"single_extruder_multi_material": "1",
|
||||
"change_filament_gcode": "",
|
||||
|
||||
@@ -116,7 +116,7 @@
|
||||
"deretraction_speed": [
|
||||
"30"
|
||||
],
|
||||
"z_hop_types": "Normal Lift",
|
||||
"z_hop_types": "Slope Lift",
|
||||
"silent_mode": "0",
|
||||
"single_extruder_multi_material": "1",
|
||||
"change_filament_gcode": "",
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
"instantiation": "false",
|
||||
"gcode_flavor": "klipper",
|
||||
"single_extruder_multi_material": "0",
|
||||
"wait_for_temp_on_wipe_tower": "1",
|
||||
"default_filament_profile": [
|
||||
"Generic PLA @MyToolChanger"
|
||||
],
|
||||
@@ -172,11 +173,11 @@
|
||||
"0.4"
|
||||
],
|
||||
"z_hop_types": [
|
||||
"Normal Lift",
|
||||
"Normal Lift",
|
||||
"Normal Lift",
|
||||
"Normal Lift",
|
||||
"Normal Lift"
|
||||
"Slope Lift",
|
||||
"Slope Lift",
|
||||
"Slope Lift",
|
||||
"Slope Lift",
|
||||
"Slope Lift"
|
||||
],
|
||||
"purge_in_prime_tower": "0",
|
||||
"machine_pause_gcode": "M601",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "OrcaFilamentLibrary",
|
||||
"version": "02.04.00.03",
|
||||
"version": "02.04.00.04",
|
||||
"force_update": "0",
|
||||
"description": "Orca Filament Library",
|
||||
"filament_list": [
|
||||
|
||||
@@ -36,6 +36,9 @@
|
||||
"filament_max_volumetric_speed": [
|
||||
"8"
|
||||
],
|
||||
"filament_multitool_ramming_flow": [
|
||||
"8"
|
||||
],
|
||||
"filament_type": [
|
||||
"PET-CF"
|
||||
],
|
||||
|
||||
@@ -39,6 +39,9 @@
|
||||
"filament_max_volumetric_speed": [
|
||||
"8"
|
||||
],
|
||||
"filament_multitool_ramming_flow": [
|
||||
"8"
|
||||
],
|
||||
"filament_vendor": [
|
||||
"Bambu Lab"
|
||||
],
|
||||
|
||||
@@ -39,6 +39,9 @@
|
||||
"filament_max_volumetric_speed": [
|
||||
"6"
|
||||
],
|
||||
"filament_multitool_ramming_flow": [
|
||||
"6"
|
||||
],
|
||||
"filament_vendor": [
|
||||
"Bambu Lab"
|
||||
],
|
||||
|
||||
@@ -21,6 +21,9 @@
|
||||
"filament_max_volumetric_speed": [
|
||||
"6"
|
||||
],
|
||||
"filament_multitool_ramming_flow": [
|
||||
"6"
|
||||
],
|
||||
"filament_type": [
|
||||
"PLA-AERO"
|
||||
],
|
||||
|
||||
@@ -27,6 +27,9 @@
|
||||
"filament_max_volumetric_speed": [
|
||||
"6"
|
||||
],
|
||||
"filament_multitool_ramming_flow": [
|
||||
"6"
|
||||
],
|
||||
"filament_scarf_seam_type": [
|
||||
"none"
|
||||
],
|
||||
|
||||
@@ -21,6 +21,9 @@
|
||||
"filament_max_volumetric_speed": [
|
||||
"6"
|
||||
],
|
||||
"filament_multitool_ramming_flow": [
|
||||
"6"
|
||||
],
|
||||
"filament_vendor": [
|
||||
"Bambu Lab"
|
||||
],
|
||||
|
||||
@@ -36,6 +36,9 @@
|
||||
"filament_max_volumetric_speed": [
|
||||
"1"
|
||||
],
|
||||
"filament_multitool_ramming_flow": [
|
||||
"1"
|
||||
],
|
||||
"filament_retraction_minimum_travel": [
|
||||
"3"
|
||||
],
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user